ports/136359: New port - lang/gnat-gcc44
M Rothwell
freebsd-ports at coreland.ath.cx
Sun Jul 5 18:40:03 UTC 2009
>Number: 136359
>Category: ports
>Synopsis: New port - lang/gnat-gcc44
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Sun Jul 05 18:40:03 UTC 2009
>Closed-Date:
>Last-Modified:
>Originator: M Rothwell
>Release: 7.2-RELEASE
>Organization:
n/a
>Environment:
>Description:
New port.
>How-To-Repeat:
>Fix:
Patch attached with submission follows:
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# lang.gnat-gcc44
# lang.gnat-gcc44/Makefile
# lang.gnat-gcc44/distinfo
# lang.gnat-gcc44/pkg-descr
# lang.gnat-gcc44/files
# lang.gnat-gcc44/files/system-freebsd-x86_64.ads.patch
# lang.gnat-gcc44/files/gcc-interface-Makefile.in.patch
# lang.gnat-gcc44/pkg-plist
#
echo c - lang.gnat-gcc44
mkdir -p lang.gnat-gcc44 > /dev/null 2>&1
echo x - lang.gnat-gcc44/Makefile
sed 's/^X//' >lang.gnat-gcc44/Makefile << '3836f74216733f6562b63dd0816d4a5f'
X# ex:ts=8
X# Ports collection makefile for: gnat-gcc
X# Date created: 2009-07-04
X# Whom: <freebsd-ports at coreland.ath.cx>
X#
X# $FreeBSD$
X#
X
XPORTNAME= gnat-gcc
XPORTVERSION= 4.4.0
XCATEGORIES= lang
XMASTER_SITES= GCC/releases/gcc-${PORTVERSION} \
X http://coreland.ath.cx/data/code/gnatport/src/:boot
XDISTFILES= gcc-core-${PORTVERSION}${EXTRACT_SUFX} \
X gcc-ada-${PORTVERSION}${EXTRACT_SUFX} \
X gcc-testsuite-${PORTVERSION}${EXTRACT_SUFX} \
X gnat-gcc44-boot-${boot_stamp}.tbz:boot
X
XMAINTAINER= freebsd-ports at coreland.ath.cx
XCOMMENT= The GNU Ada Compiler system
X
XLIB_DEPENDS= gmp.8:${PORTSDIR}/math/libgmp4 \
X mpfr.3:${PORTSDIR}/math/mpfr
X
XONLY_FOR_ARCHS= i386 amd64
X
XUSE_BZIP2= yes
XUSE_GMAKE= yes
XUSE_ICONV= yes
XUSE_PERL5_BUILD= yes # Needed for man pages.
XUSE_BISON= build
X
XCONFLICTS= gcc-4.4.*
XWRKSRC= ${WRKDIR}/build
X
XMAN1= cpp${gcc_suffix}.1 \
X gcc${gcc_suffix}.1 \
X gcov${gcc_suffix}.1
XMAN7= ${fsf_mans:S/$/${fsf_suffix}.7/}
XNOMANCOMPRESS= yes # XXX 5-cur and releng4 problems?
XINFO= gcc${gcc_suffix}/cpp \
X gcc${gcc_suffix}/cppinternals \
X gcc${gcc_suffix}/gcc \
X gcc${gcc_suffix}/gccinstall \
X gcc${gcc_suffix}/gccint \
X gcc${gcc_suffix}/gnat-style \
X gcc${gcc_suffix}/gnat_rm \
X gcc${gcc_suffix}/gnat_ugn \
X gcc${gcc_suffix}/libgomp
X
XLATEST_LINK= ${PORTNAME}${gcc_suffix}
X
X.include <bsd.port.pre.mk>
X
Xsrcdir= ${WRKDIR}/gcc-${PORTVERSION}
Xgcc_suffix= 44
Xfsf_mans= fsf-funding gfdl gpl
Xfsf_suffix= -${PORTNAME}${gcc_suffix}
Xtarglib= ${PREFIX}/lib/gcc-${PORTVERSION}
Xgcc_link= ${PREFIX}/bin/gcc${gcc_suffix}/gcc
Xboot_stamp= ${ARCH}-freebsd-${OSREL:C/\.[0-9.]*//:S/8/7/}
Xcheck_target= check # XXX
X
XPATCH_WRKSRC= ${srcdir}
X
XGNU_CONFIGURE= yes
XCONFIGURE_SCRIPT= ../${srcdir:C/${WRKDIR}//}/configure
X
X# XXX: This should be automated with GNU_CONFIGURE. For some reason,
X# it isn't.
X
X.if ${ARCH} == "amd64"
XCONFIGURE_TARGET= x86_64-portbld-freebsd${OSREL}
X.else
XCONFIGURE_TARGET= ${ARCH}-portbld-freebsd${OSREL}
X.endif
X
XCONFIGURE_ARGS= --enable-languages="c,ada" \
X --disable-nls \
X --with-system-zlib \
X --with-libiconv-prefix=${LOCALBASE} \
X --program-suffix=${gcc_suffix} \
X --bindir=${PREFIX}/bin/gcc${gcc_suffix} \
X --libdir=${targlib}
X
XALL_TARGET= bootstrap-lean
XMAKE_ENV+= MAKEINFOFLAGS="--no-split" PTHREAD_LIBS=${PTHREAD_LIBS}
X
XPLIST_SUB= GCC_VER=${PORTVERSION} \
X GNU_HOST=${CONFIGURE_TARGET} \
X SUFFIX=${gcc_suffix}
X
XUSE_LDCONFIG= ${targlib}
X
X# Prepare environment for the bootstrap compiler.
XCC= ${WRKDIR}/boot/bin/gcc
Xbuild_env= PTHREAD_LIBS=${PTHREAD_LIBS} \
X PATH=${WRKDIR}/boot/bin:${WRKDIR}/boot/libexec:${PATH}
X
XCONFIGURE_ENV+= ${build_env} CC="${CC}"
XMAKE_ENV+= ${build_env}
X
Xpre-everything::
X @${ECHO_MSG} -n "Making GCC ${DISTNAME:S/^gcc-//} for ${OPSYS} "
X @${ECHO_MSG} "${OSREL} target=${CONFIGURE_TARGET}"
X
Xpost-patch:
X # Append ' [FreeBSD]' to the gcc version string.
X ${REINPLACE_CMD} \
X -e 's|\(const char version_string.*\)";|\1 [FreeBSD]";|' \
X ${srcdir}/gcc/version.c
X # New putenv(3) behavior in FreeBSD 7.
X if [ ${OSVERSION} -ge 700050 ]; then \
X ${REINPLACE_CMD} -e 's/#if defined (__FreeBSD__) ||/#if/' \
X ${srcdir}/gcc/ada/env.c; \
X fi
X
Xpre-configure:
X cd ${srcdir} ; contrib/gcc_update --touch
X ${RM} -f ${srcdir}/gcc/*/*.info*
X ${MKDIR} ${CONFIGURE_WRKSRC}
X
Xpost-build:
X @${ECHO_MSG} -n "Consider running 'make check' before 'make install', "
X @${ECHO_MSG} -n "especially if you have not performed this build on "
X @${ECHO_MSG} -n "-STABLE or -CURRENT. This assumes that you have "
X @${ECHO_MSG} "dejagnu and autogen ports installed."
X
Xcheck: build
X cd ${WRKSRC} && \
X export RUNTESTFLAGS='--target_board ''unix{-pthread}''' && \
X ${GMAKE} -sk ${check_target}
X
Xpost-install:
X # Create a gcc link.
X ${RM} -f ${gcc_link}
X ${LN} -s ${PREFIX}/bin/gcc${gcc_suffix}/gcc${gcc_suffix} ${gcc_link}
X # This empty fortran directory is making trouble.
X ${RM} -rf ${PREFIX}/lib/gcc-${PORTVERSION}/gcc/${CONFIGURE_TARGET}/${PORTVERSION}/finclude
X # Man pages can only be generated if Perl >= 5.6 is installed; fake them otherwise.
X for mp in ${_MANPAGES}; do \
X ${TEST} -e $${mp} || ${TOUCH} ${TOUCH_FLAGS} $${mp}; \
X done
X # Version FSF funding and licensing manuals. XXX Fix before it happens!
X for mp in ${fsf_mans}; do \
X ${MV} -f ${PREFIX}/man/man7/$${mp}.7 \
X ${PREFIX}/man/man7/$${mp}${fsf_suffix}.7; \
X done
X # Prepare a temporary list of installed libraries and include files.
X ${RM} -f ${WRKDIR}/PLIST.lib
X for d in lib/gcc-${PORTVERSION} libexec/gcc/${CONFIGURE_TARGET}/${PORTVERSION}; do \
X cd ${PREFIX}; \
X if [ -d $${d} ]; then \
X ${FIND} $${d} -type f -o -type l >>${WRKDIR}/PLIST.lib; \
X ${FIND} $${d} -type d | ${SORT} -r | ${SED} -e 's/^/@dirrm /g' >>${WRKDIR}/PLIST.lib; \
X fi; \
X done
X # Following directories should be removed on deinstal if empty. Add them to the temporary list.
X ${ECHO_CMD} "@unexec ${RMDIR} %D/libexec/gcc/${CONFIGURE_TARGET} 2>/dev/null || true" >> ${WRKDIR}/PLIST.lib
X ${ECHO_CMD} "@unexec ${RMDIR} %D/libexec/gcc 2>/dev/null || true" >> ${WRKDIR}/PLIST.lib
X # Insert the temporary list in the packing list.
X cd ${WRKDIR}; ${SED} -i -e "/PLIST.lib/ r PLIST.lib" ${TMPPLIST}
X
X.include <bsd.port.post.mk>
3836f74216733f6562b63dd0816d4a5f
echo x - lang.gnat-gcc44/distinfo
sed 's/^X//' >lang.gnat-gcc44/distinfo << '6e083b8dd7253edbd34a1489f65a3183'
XMD5 (gcc-core-4.4.0.tar.bz2) = c7e65c47fa94541f7f6cd0cf3d9c850b
XSHA256 (gcc-core-4.4.0.tar.bz2) = 619fadd010408b1f7ef09b3ffb5af01e5a2604109d762fdc1c66f0dc898e0f5c
XSIZE (gcc-core-4.4.0.tar.bz2) = 25722128
XMD5 (gcc-ada-4.4.0.tar.bz2) = fe387009d6fcd56fa4c11beaffe1a05f
XSHA256 (gcc-ada-4.4.0.tar.bz2) = 39a81afa402bb866c1d33816ed8dfe5c5c50156ae651c035907f0b0470f3dcb6
XSIZE (gcc-ada-4.4.0.tar.bz2) = 5431582
XMD5 (gcc-testsuite-4.4.0.tar.bz2) = c18d53bf941614217a5748b9c98c7e22
XSHA256 (gcc-testsuite-4.4.0.tar.bz2) = c7d27efbbb4a7894318c9bf6f07bc7b0410d43294cb9dbdd4d95244e892456d7
XSIZE (gcc-testsuite-4.4.0.tar.bz2) = 5040536
XMD5 (gnat-gcc44-boot-amd64-freebsd-7.tbz) = 62979789dbc22b75fbfca2db92d96e41
XSHA256 (gnat-gcc44-boot-amd64-freebsd-7.tbz) = 524d3f390930dce7f0ec9dd80474fb1c6bda1bbef93b9c1ba8071a5262bfc2ed
XSIZE (gnat-gcc44-boot-amd64-freebsd-7.tbz) = 55023288
6e083b8dd7253edbd34a1489f65a3183
echo x - lang.gnat-gcc44/pkg-descr
sed 's/^X//' >lang.gnat-gcc44/pkg-descr << '37bffb4ece9eef6ad319f27ac48c1f89'
XThe GNU Ada compiler system built from GCC 4.4.0.
X
XPlease add ${PREFIX}/bin/gcc44 to your PATH variable
Xbefore using this port.
X
XWWW: http://gcc.gnu.org/
37bffb4ece9eef6ad319f27ac48c1f89
echo c - lang.gnat-gcc44/files
mkdir -p lang.gnat-gcc44/files > /dev/null 2>&1
echo x - lang.gnat-gcc44/files/system-freebsd-x86_64.ads.patch
sed 's/^X//' >lang.gnat-gcc44/files/system-freebsd-x86_64.ads.patch << '8276f7968dd20a41a17d056e6f334c7c'
X--- gcc/ada/system-freebsd-x86_64.ads.orig 1970-01-01 01:00:00.000000000 +0100
X+++ gcc/ada/system-freebsd-x86_64.ads 2009-07-05 14:19:37.000000000 +0100
X@@ -0,0 +1,145 @@
X+------------------------------------------------------------------------------
X+-- --
X+-- GNAT RUN-TIME COMPONENTS --
X+-- --
X+-- S Y S T E M --
X+-- --
X+-- S p e c --
X+-- (FreeBSD/x86 Version) --
X+-- --
X+-- Copyright (C) 1992-2009, Free Software Foundation, Inc. --
X+-- --
X+-- This specification is derived from the Ada Reference Manual for use with --
X+-- GNAT. The copyright notice above, and the license provisions that follow --
X+-- apply solely to the contents of the part following the private keyword. --
X+-- --
X+-- GNAT is free software; you can redistribute it and/or modify it under --
X+-- terms of the GNU General Public License as published by the Free Soft- --
X+-- ware Foundation; either version 3, or (at your option) any later ver- --
X+-- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
X+-- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
X+-- or FITNESS FOR A PARTICULAR PURPOSE. --
X+-- --
X+-- As a special exception under Section 7 of GPL version 3, you are granted --
X+-- additional permissions described in the GCC Runtime Library Exception, --
X+-- version 3.1, as published by the Free Software Foundation. --
X+-- --
X+-- You should have received a copy of the GNU General Public License and --
X+-- a copy of the GCC Runtime Library Exception along with this program; --
X+-- see the files COPYING3 and COPYING.RUNTIME respectively. If not, see --
X+-- <http://www.gnu.org/licenses/>. --
X+-- --
X+-- GNAT was originally developed by the GNAT team at New York University. --
X+-- Extensive contributions were provided by Ada Core Technologies Inc. --
X+-- --
X+------------------------------------------------------------------------------
X+
X+package System is
X+ pragma Pure;
X+ -- Note that we take advantage of the implementation permission to make
X+ -- this unit Pure instead of Preelaborable; see RM 13.7.1(15). In Ada
X+ -- 2005, this is Pure in any case (AI-362).
X+
X+ type Name is (SYSTEM_NAME_GNAT);
X+ System_Name : constant Name := SYSTEM_NAME_GNAT;
X+
X+ -- System-Dependent Named Numbers
X+
X+ Min_Int : constant := Long_Long_Integer'First;
X+ Max_Int : constant := Long_Long_Integer'Last;
X+
X+ Max_Binary_Modulus : constant := 2 ** Long_Long_Integer'Size;
X+ Max_Nonbinary_Modulus : constant := 2 ** Integer'Size - 1;
X+
X+ Max_Base_Digits : constant := Long_Long_Float'Digits;
X+ Max_Digits : constant := Long_Long_Float'Digits;
X+
X+ Max_Mantissa : constant := 63;
X+ Fine_Delta : constant := 2.0 ** (-Max_Mantissa);
X+
X+ Tick : constant := 0.000_001;
X+
X+ -- Storage-related Declarations
X+
X+ type Address is private;
X+ pragma Preelaborable_Initialization (Address);
X+ Null_Address : constant Address;
X+
X+ Storage_Unit : constant := 8;
X+ Word_Size : constant := 64;
X+ Memory_Size : constant := 2 ** 64;
X+
X+ -- Address comparison
X+
X+ function "<" (Left, Right : Address) return Boolean;
X+ function "<=" (Left, Right : Address) return Boolean;
X+ function ">" (Left, Right : Address) return Boolean;
X+ function ">=" (Left, Right : Address) return Boolean;
X+ function "=" (Left, Right : Address) return Boolean;
X+
X+ pragma Import (Intrinsic, "<");
X+ pragma Import (Intrinsic, "<=");
X+ pragma Import (Intrinsic, ">");
X+ pragma Import (Intrinsic, ">=");
X+ pragma Import (Intrinsic, "=");
X+
X+ -- Other System-Dependent Declarations
X+
X+ type Bit_Order is (High_Order_First, Low_Order_First);
X+ Default_Bit_Order : constant Bit_Order := Low_Order_First;
X+ pragma Warnings (Off, Default_Bit_Order); -- kill constant condition warning
X+
X+ -- Priority-related Declarations (RM D.1)
X+
X+ Max_Priority : constant Positive := 30;
X+ Max_Interrupt_Priority : constant Positive := 31;
X+
X+ subtype Any_Priority is Integer range 0 .. 31;
X+ subtype Priority is Any_Priority range 0 .. 30;
X+ subtype Interrupt_Priority is Any_Priority range 31 .. 31;
X+
X+ Default_Priority : constant Priority := 15;
X+
X+private
X+
X+ type Address is mod Memory_Size;
X+ Null_Address : constant Address := 0;
X+
X+ --------------------------------------
X+ -- System Implementation Parameters --
X+ --------------------------------------
X+
X+ -- These parameters provide information about the target that is used
X+ -- by the compiler. They are in the private part of System, where they
X+ -- can be accessed using the special circuitry in the Targparm unit
X+ -- whose source should be consulted for more detailed descriptions
X+ -- of the individual switch values.
X+
X+ Backend_Divide_Checks : constant Boolean := False;
X+ Backend_Overflow_Checks : constant Boolean := False;
X+ Command_Line_Args : constant Boolean := True;
X+ Configurable_Run_Time : constant Boolean := False;
X+ Denorm : constant Boolean := True;
X+ Duration_32_Bits : constant Boolean := False;
X+ Exit_Status_Supported : constant Boolean := True;
X+ Fractional_Fixed_Ops : constant Boolean := False;
X+ Frontend_Layout : constant Boolean := False;
X+ Machine_Overflows : constant Boolean := False;
X+ Machine_Rounds : constant Boolean := True;
X+ Preallocated_Stacks : constant Boolean := False;
X+ Signed_Zeros : constant Boolean := True;
X+ Stack_Check_Default : constant Boolean := False;
X+ Stack_Check_Probes : constant Boolean := True;
X+ Stack_Check_Limits : constant Boolean := False;
X+ Support_64_Bit_Divides : constant Boolean := True;
X+ Support_Aggregates : constant Boolean := True;
X+ Support_Composite_Assign : constant Boolean := True;
X+ Support_Composite_Compare : constant Boolean := True;
X+ Support_Long_Shifts : constant Boolean := True;
X+ Always_Compatible_Rep : constant Boolean := False;
X+ Suppress_Standard_Library : constant Boolean := False;
X+ Use_Ada_Main_Program_Name : constant Boolean := False;
X+ ZCX_By_Default : constant Boolean := True;
X+ GCC_ZCX_Support : constant Boolean := True;
X+
X+end System;
8276f7968dd20a41a17d056e6f334c7c
echo x - lang.gnat-gcc44/files/gcc-interface-Makefile.in.patch
sed 's/^X//' >lang.gnat-gcc44/files/gcc-interface-Makefile.in.patch << 'a51f54c20704e2af48d77e4588c38450'
X--- gcc/ada/gcc-interface/Makefile.in.old 2009-07-05 14:26:09.000000000 +0100
X+++ gcc/ada/gcc-interface/Makefile.in 2009-07-05 14:27:11.000000000 +0100
X@@ -903,6 +903,33 @@
X LIBRARY_VERSION := $(LIB_VERSION)
X endif
X
X+ifeq ($(strip $(filter-out %x86_64 freebsd%,$(arch) $(osys))),)
X+ LIBGNAT_TARGET_PAIRS = \
X+ a-intnam.ads<a-intnam-freebsd.ads \
X+ a-numaux.adb<a-numaux-x86.adb \
X+ a-numaux.ads<a-numaux-x86.ads \
X+ g-bytswa.adb<g-bytswa-x86.adb \
X+ s-inmaop.adb<s-inmaop-posix.adb \
X+ s-intman.adb<s-intman-posix.adb \
X+ s-osinte.adb<s-osinte-freebsd.adb \
X+ s-osinte.ads<s-osinte-freebsd.ads \
X+ s-osprim.adb<s-osprim-posix.adb \
X+ s-taprop.adb<s-taprop-posix.adb \
X+ s-taspri.ads<s-taspri-posix.ads \
X+ s-tpopsp.adb<s-tpopsp-posix.adb \
X+ system.ads<system-freebsd-x86_64.ads
X+
X+ TOOLS_TARGET_PAIRS = \
X+ mlib-tgt-specific.adb<mlib-tgt-specific-linux.adb
X+ GNATLIB_SHARED = gnatlib-shared-dual
X+
X+ EH_MECHANISM=-gcc
X+ THREADSLIB= -lpthread
X+ GMEM_LIB = gmemlib
X+ PREFIX_OBJS = $(PREFIX_REAL_OBJS)
X+ LIBRARY_VERSION := $(LIB_VERSION)
X+endif
X+
X ifeq ($(strip $(filter-out %86 kfreebsd%,$(arch) $(osys))),)
X LIBGNAT_TARGET_PAIRS = \
X a-intnam.ads<a-intnam-freebsd.ads \
a51f54c20704e2af48d77e4588c38450
echo x - lang.gnat-gcc44/pkg-plist
sed 's/^X//' >lang.gnat-gcc44/pkg-plist << 'a02c86d09d87f1832f4e77b0cc7d2b22'
Xbin/gcc%%SUFFIX%%/cpp%%SUFFIX%%
Xbin/gcc%%SUFFIX%%/gcc
Xbin/gcc%%SUFFIX%%/gcc%%SUFFIX%%
Xbin/gcc%%SUFFIX%%/gccbug%%SUFFIX%%
Xbin/gcc%%SUFFIX%%/gcov%%SUFFIX%%
Xbin/gcc%%SUFFIX%%/gnat
Xbin/gcc%%SUFFIX%%/gnatbind
Xbin/gcc%%SUFFIX%%/gnatchop
Xbin/gcc%%SUFFIX%%/gnatclean
Xbin/gcc%%SUFFIX%%/gnatfind
Xbin/gcc%%SUFFIX%%/gnatkr
Xbin/gcc%%SUFFIX%%/gnatlink
Xbin/gcc%%SUFFIX%%/gnatls
Xbin/gcc%%SUFFIX%%/gnatmake
Xbin/gcc%%SUFFIX%%/gnatname
Xbin/gcc%%SUFFIX%%/gnatprep
Xbin/gcc%%SUFFIX%%/gnatxref
Xbin/gcc%%SUFFIX%%/%%GNU_HOST%%-gcc-%%GCC_VER%%
Xbin/gcc%%SUFFIX%%/%%GNU_HOST%%-gcc%%SUFFIX%%
Xinfo/gcc%%SUFFIX%%/dir
X at dirrm bin/gcc%%SUFFIX%%
X at comment Insert PLIST.lib here
a02c86d09d87f1832f4e77b0cc7d2b22
exit
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list