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