the Fink project is an effort to port
popular Unix programs to Mac OS X
Info2: <<
Package: gcc44
Version: 4.4.6
Revision: 1001
Source: ftp://gcc.gnu.org/pub/gcc/releases/gcc-%v/gcc-%v.tar.bz2
Source-MD5: ab525d429ee4425050a554bc9247d6c4
Source2: ftp://sourceware.org/pub/java/ecj-4.3.jar
Source2-MD5: fd299f26c02268878b5d6c0e86f57c43
PatchFile: %n.patch
PatchFile-MD5: a4b4028e80e9d6f761e402b14e60d418
Distribution: 10.5, 10.6
Type: -64bit -64bit
Architecture: powerpc, i386
NoSetCPPFLAGS: True
NoSetLDFLAGS: True
UseMaxBuildJobs: True
Conflicts: gcc42, gcc43, gcc45, gcc46, gcc47
Replaces: gcc42, gcc43, gcc45, gcc46, gcc47
Depends: %N-compiler (= %v-%r)
BuildDepends: gmp5, libmpfr4, libiconv-dev, gettext-tools, libgettext8-dev, libmpc2 (>= 0.9), xcode (>= 3.1.2), fink (>= 0.28)
ConfigureParams: <<
--prefix=%p/lib/gcc4.4 --mandir=%p/share/man --infodir=%p/lib/gcc4.4/info --enable-languages=c,c++,fortran,objc,obj-c++,java \
--with-gmp=%p --with-libiconv-prefix=%p --without-ppl --without-cloog --with-mpc=%p --with-system-zlib \
--x-includes=/usr/X11R6/include --x-libraries=/usr/X11R6/lib --program-suffix=-fsf-4.4
<<
InfoTest: <<
TestDepends: autogen, dejagnu
TestScript: cd ../darwin_objdir; make -k check || :
<<
InfoDocs: cp-tools.info gcc.info gfortran.info cpp.info gccinstall.info libgomp.info cppinternals.info gccint.info gcj.info
CompileScript: <<
#!/bin/bash -ev
set +x
if [ -e /usr/local/lib/libgmp.a ] || [ -e /usr/local/lib/libgmp.dylib ]; then
echo "-----WARNING-----WARNING-----WARNING-----"
echo "You seem to have GMP installed in /usr/local."
echo "This is known to cause %N to fail to build."
echo "Please move aside /usr/local and try again."
echo "-----WARNING-----WARNING-----WARNING-----"
exit 1
fi
set -x
ulimit -s `ulimit -s`
mv ../ecj-4.3.jar ecj.jar
mkdir ../darwin_objdir
cd ../darwin_objdir
if [ "%m" = "powerpc" ]; then
../gcc-%v/configure %c --disable-libjava-multilib
else
../gcc-%v/configure %c
fi
make
## make check requires autogen, dejagnu and expect, and should be run, in darwin_objdir, after install.
## on 32-bit processors use
# make -k check
## on 64-bit processors use
# make -k check RUNTESTFLAGS="--target_board=unix'{-m32,-m64}'"
<<
InstallScript: <<
#!/bin/sh -ev
darwinvers=`uname -r`
cd ../darwin_objdir
make -j1 install DESTDIR=%d
mkdir -p %i/bin
# Add symlinks to recreate previous naming of executables in %p/bin
# as well as %p/lib/gcc4.4/bin and new -fsf-4.4 naming in %p/bin.
binfiles="gcc g++ c++ cpp gcov"
for binfile in $binfiles ; do
ln -s %p/lib/gcc4.4/bin/$binfile-fsf-4.4 %i/lib/gcc4.4/bin/$binfile-4
ln -s %p/lib/gcc4.4/bin/$binfile-fsf-4.4 %i/bin/$binfile-4
ln -s %p/lib/gcc4.4/bin/$binfile-fsf-4.4 %i/bin/$binfile-fsf-4.4
done
binfiles="gfortran gcj gcj-dbtool gcjh gij gjnih grmiregistry grmic jcf-dump jv-convert jv-scan"
for binfile in $binfiles ; do
ln -s %p/lib/gcc4.4/bin/$binfile-fsf-4.4 %i/lib/gcc4.4/bin/$binfile
ln -s %p/lib/gcc4.4/bin/$binfile-fsf-4.4 %i/bin/$binfile
ln -s %p/lib/gcc4.4/bin/$binfile-fsf-4.4 %i/bin/$binfile-fsf-4.4
done
# Add symlinks for manpages under old names.
man1files="cpp g++ gcc gcov"
for man1file in $man1files ; do
ln -s %p/share/man/man1/$man1file-fsf-4.4.1 %i/share/man/man1/$man1file-4.1
done
man1files="aot-compile gappletviewer gc-analyze gcj-dbtool gcj gcjh gfortran gij gjar gjarsigner gjavah gjdoc gkeytool gnative2ascii gorbd grmic grmid grmiregistry gserialver gtnameserv jcf-dump jv-convert rebuild-gcj-db"
for man1file in $man1files ; do
ln -s %p/share/man/man1/$man1file-fsf-4.4.1 %i/share/man/man1/$man1file.1
done
# Rename manpages with -fsf-4.4 suffix and create symlinks to old names.
man7files="fsf-funding gfdl gpl"
for man7file in $man7files ; do
mv %i/share/man/man7/$man7file.7 %i/share/man/man7/$man7file-fsf-4.4.7
ln -s %p/share/man/man7/$man7file-fsf-4.4.7 %i/share/man/man7/$man7file.7
done
# Add dir for installed info files, and link them to %i/share/info.
# the %i/lib/gcc4.4/info/* files will go into the -compiler package
# and the files in %i/share/info go into the main package, this allows
# the info files for specific compiler versions to be accessed with
# e.g. `info -d /fink_install_dir/lib/gcc4.4/info gcc', but the "main" info files will
# be available for the install gcc4N package in %p/share/info, as usual
install -d -m 755 %i/share/info
for infofile in $(find %i/lib/gcc4.4/info -name '*.info*'); do
infobase=$(basename $infofile)
case $infofile in
*info) /usr/bin/install-info --infodir=%i/lib/gcc4.4/info ${infofile} ;;
esac
ln -s %p/lib/gcc4.4/info/$infobase %i/share/info/$infobase
done
# remove build path from .la files
perl -pi -e "s, \-L[^ ']*/%n-%v-%r/darwin_objdir/[^ ']*,,g" `find %i/lib/gcc4.4/lib -name '*.la'`
<<
SplitOff: <<
Package: %N-shlibs
Replaces: gcc4 (<= 20050130-4), gfortran-shlibs
Provides: gfortran-shlibs
Description: Shared libraries for gcc4
DocFiles: gcc/COPYING gcc/COPYING.LIB
Homepage: http://gcc.gnu.org/
Files: <<
lib/gcc4.4/lib/libgfortran.3*.dylib
lib/gcc4.4/lib/libffi.4*.dylib
lib/gcc4.4/lib/libstdc++.6*.dylib
lib/gcc4.4/lib/libgcc_s.1*.dylib
lib/gcc4.4/lib/libgcj.10*.dylib
lib/gcc4.4/lib/libgcj-tools.10*.dylib
lib/gcc4.4/lib/libgij.10*.dylib
lib/gcc4.4/lib/libssp.0*.dylib
lib/gcc4.4/lib/libobjc-gnu.2*.dylib
lib/gcc4.4/lib/libgomp.1*.dylib
lib/gcc4.4/lib/gcj-4.4.6-10
lib/gcc4.4/%lib/libgfortran.3*.dylib
lib/gcc4.4/%lib/libffi.4*.dylib
(%m != powerpc) lib/gcc4.4/%lib/libgcj.10*.dylib
(%m != powerpc) lib/gcc4.4/%lib/libgcj-tools.10*.dylib
(%m != powerpc) lib/gcc4.4/%lib/libgij.10*.dylib
lib/gcc4.4/%lib/libstdc++.6*.dylib
lib/gcc4.4/%lib/libssp.0*.dylib
lib/gcc4.4/%lib/libobjc-gnu.2*.dylib
lib/gcc4.4/%lib/libgomp.1*.dylib
(%m != powerpc) lib/gcc4.4/%lib/gcj-4.4.6-10
<<
Shlibs: <<
%p/lib/gcc4.4/lib/libgfortran.3.dylib 4.0.0 %n (>= 4.4-1)
%p/lib/gcc4.4/lib/libffi.4.dylib 5.0.0 %n (>= 4.4-1)
%p/lib/gcc4.4/lib/libstdc++.6.dylib 7.0.0 %n (>= 4.4-1)
%p/lib/gcc4.4/lib/libgcc_s.1.dylib 1.0.0 %n (>= 4.4-1)
%p/lib/gcc4.4/lib/libgcj.10.dylib 11.0.0 %n (>= 4.4-1)
%p/lib/gcc4.4/lib/libgcj-tools.10.dylib 11.0.0 %n (>= 4.4-1)
%p/lib/gcc4.4/lib/libgij.10.dylib 11.0.0 %n (>= 4.4-1)
%p/lib/gcc4.4/lib/libssp.0.dylib 1.0.0 %n (>= 4.4-1)
%p/lib/gcc4.4/lib/libobjc-gnu.2.dylib 3.0.0 %n (>= 4.4-1)
%p/lib/gcc4.4/lib/libgomp.1.dylib 2.0.0 %n (>= 4.4-1)
!%p/lib/gcc4.4/lib/gcj-4.4.6-10/libjvm.dylib
%p/lib/gcc4.4/%lib/libgfortran.3.dylib 4.0.0 %n (>= 4.4-1) 64
%p/lib/gcc4.4/%lib/libffi.4.dylib 5.0.0 %n (>= 4.4-1) 64
(%m != powerpc) %p/lib/gcc4.4/%lib/libgcj.10.dylib 11.0.0 %n (>= 4.4-1) 64
(%m != powerpc) %p/lib/gcc4.4/%lib/libgcj-tools.10.dylib 11.0.0 %n (>= 4.4-1) 64
(%m != powerpc) %p/lib/gcc4.4/%lib/libgij.10.dylib 11.0.0 %n (>= 4.4-1) 64
%p/lib/gcc4.4/%lib/libstdc++.6.dylib 7.0.0 %n (>= 4.4-1) 64
%p/lib/gcc4.4/%lib/libssp.0.dylib 1.0.0 %n (>= 4.4-1) 64
%p/lib/gcc4.4/%lib/libobjc-gnu.2.dylib 3.0.0 %n (>= 4.4-1) 64
%p/lib/gcc4.4/%lib/libgomp.1.dylib 2.0.0 %n (>= 4.4-1) 64
(%m != powerpc) !%p/lib/gcc4.4/%lib/gcj-4.4.6-10/libjvm.dylib
<<
<<
SplitOff2: <<
Package: %N-compiler
Depends: gmp5-shlibs, libgmpxx5-shlibs, libmpfr4-shlibs, %N-shlibs (= %v-%r), libiconv, libgettext8-shlibs, libmpc2-shlibs (>= 0.9), xcode (>= 3.1.2)
BuildDependsOnly: False
Description: Compiler Binaries for gcc44.
DocFiles: gcc/COPYING gcc/COPYING.LIB
Homepage: http://gcc.gnu.org/
Files: <<
bin/*-fsf-4.4
lib/gcc4.4
share/man/man1/*-fsf-4.4.1
share/man/man7/*-fsf-4.4.7
<<
<<
License: GPL
Description: GNU Compiler Collection Version 4.4
DescDetail: <<
GCC, the GNU Compiler Collection, includes front ends for
C, C++, Objective-C, Objective-C++, Fortran, Java, and Ada.
.
C, C++, Objective C and Fortran and Java are included in this package.
.
The C and C++ compilers are named gcc-4 and g++-4 to avoid
conflicts with gcc and g++ installed by the Apple Developer Tools
<<
DescPackaging: <<
The multilib build of libjava is disabled for PowerPC since the
64-bit support is incomplete on Darwin for libffi.
Build with -fsf-4.4 suffix and place non-overlapping files into new gcc44-compiler
package which can co-exist with other gcc4x-compiler packages. Overlapping files
are left in main gcc44 package which still conflicts with other gcc4x packages.
Disable graphite with --without-cloog/--without-ppl to free upgrading cloog to
ppl9 for gcc45 package.
<<
Homepage: http://gcc.gnu.org/
Maintainer: Jack Howarth
<<
--- gcc/libjava/configure.ac.org 2008-01-25 18:55:24.000000000 -0500
+++ gcc/libjava/configure.ac 2008-01-25 18:56:16.000000000 -0500
@@ -82,6 +82,13 @@
[allow rebuilding of .class and .h files]))
AM_CONDITIONAL(JAVA_MAINTAINER_MODE, test "$enable_java_maintainer_mode" = yes)
+AC_ARG_ENABLE(libjava-multilib,
+ AS_HELP_STRING([--enable-libjava-multilib], [build libjava as multilib]))
+if test "$enable_libjava_multilib" = no; then
+ multilib=no
+ ac_configure_args="$ac_configure_args --disable-multilib"
+fi
+
# It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
GCC_NO_EXECUTABLES
--- gcc/libjava/configure.org 2008-01-25 18:56:41.000000000 -0500
+++ gcc/libjava/configure 2008-01-25 18:57:21.000000000 -0500
@@ -1018,6 +1018,8 @@
--enable-gconf-peer compile GConf native peers for util.preferences
--enable-java-maintainer-mode
allow rebuilding of .class and .h files
+ --enable-libjava-multilib
+ build libjava as multilib
--disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking do not reject slow dependency extractors
--enable-maintainer-mode enable make rules and dependencies not useful
@@ -1850,6 +1852,16 @@
fi
+# Check whether --enable-libjava-multilib was given.
+if test "${enable_libjava_multilib+set}" = set; then
+ enableval=$enable_libjava_multilib;
+fi
+
+if test "$enable_libjava_multilib" = no; then
+ multilib=no
+ ac_configure_args="$ac_configure_args --disable-multilib"
+fi
+
# It may not be safe to run linking tests in AC_PROG_CC/AC_PROG_CXX.
--- gcc-4.4.6/libjava/configure.orig 2011-06-28 23:23:46.000000000 -0400
+++ gcc-4.4.6/libjava/configure 2011-06-28 23:48:05.000000000 -0400
@@ -19167,9 +19167,12 @@
SYSTEMSPEC="-lunicows $SYSTEMSPEC"
fi
;;
- *-*-darwin[912]*)
+ *-*-darwin9*)
SYSTEMSPEC="-allow_stack_execute"
;;
+ *-*-darwin[1][1-9]*)
+ SYSTEMSPEC="-no_pie -allow_stack_execute"
+ ;;
*)
SYSTEMSPEC=
;;
--- gcc-4.4.6/libjava/configure.ac.orig 2011-06-28 23:23:46.000000000 -0400
+++ gcc-4.4.6/libjava/configure.ac 2011-06-28 23:48:05.000000000 -0400
@@ -853,9 +853,12 @@
SYSTEMSPEC="-lunicows $SYSTEMSPEC"
fi
;;
- *-*-darwin[[912]]*)
+ *-*-darwin9*)
SYSTEMSPEC="-allow_stack_execute"
;;
+ *-*-darwin[[1]][[1-9]]*)
+ SYSTEMSPEC="-no_pie -allow_stack_execute"
+ ;;
*)
SYSTEMSPEC=
;;
--- gcc-4.4.6/libjava/libgcj.spec.in.orig 2007-09-04 14:00:31.000000000 -0400
+++ gcc-4.4.6/libjava/libgcj.spec.in 2011-06-28 23:48:05.000000000 -0400
@@ -7,6 +7,6 @@
*startfile: @THREADSTARTFILESPEC@ %(startfileorig)
%rename lib liborig
-*lib: @LD_START_STATIC_SPEC@ @LIBGCJ_SPEC@ @LD_FINISH_STATIC_SPEC@ -lm @LIBICONV@ @GCSPEC@ @THREADSPEC@ @ZLIBSPEC@ @SYSTEMSPEC@ %(libgcc) @LIBSTDCXXSPEC@ %(liborig)
+*lib: @LD_START_STATIC_SPEC@ @LIBGCJ_SPEC@ @LD_FINISH_STATIC_SPEC@ -lm @GCSPEC@ @THREADSPEC@ @ZLIBSPEC@ @SYSTEMSPEC@ %(libgcc) @LIBSTDCXXSPEC@ %(liborig)
*jc1: @HASH_SYNC_SPEC@ @DIVIDESPEC@ @CHECKREFSPEC@ @JC1GCSPEC@ @EXCEPTIONSPEC@ @BACKTRACESPEC@ @IEEESPEC@ -fkeep-inline-functions
--- gcc-4.4.6/libjava/Makefile.am.orig 2009-12-09 13:46:11.000000000 -0500
+++ gcc-4.4.6/libjava/Makefile.am 2011-06-28 23:48:05.000000000 -0400
@@ -279,7 +279,7 @@
libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(extra_ldflags) $(THREADLIBS) \
$(LIBLTDL) $(SYS_ZLIBS) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` \
- $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
+ $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBICONV)
libgcj_la_LIBADD = \
classpath/native/fdlibm/libfdlibm.la \
java/lang/Object.lo \
--- gcc-4.4.6/libjava/Makefile.in.orig 2011-04-16 04:11:00.000000000 -0400
+++ gcc-4.4.6/libjava/Makefile.in 2011-06-28 23:48:05.000000000 -0400
@@ -921,7 +921,7 @@
libgcj_la_LDFLAGS = -rpath $(toolexeclibdir) $(THREADLDFLAGS) $(extra_ldflags) $(THREADLIBS) \
$(LIBLTDL) $(SYS_ZLIBS) \
-version-info `grep -v '^\#' $(srcdir)/libtool-version` \
- $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS)
+ $(LIBGCJ_LD_SYMBOLIC_FUNCTIONS) $(LIBICONV)
libgcj_la_LIBADD = \
classpath/native/fdlibm/libfdlibm.la \
--- gcc-4.4.6/configure.orig 2010-10-02 07:40:32.000000000 -0400
+++ gcc-4.4.6/configure 2011-06-28 23:48:05.000000000 -0400
@@ -2882,6 +2882,9 @@
tentative_cc="/usr/cygnus/progressive/bin/gcc"
host_makefile_frag="config/mh-lynxrs6k"
;;
+ i[3456789]86-*-darwin* | x86_64-*-darwin*)
+ host_makefile_frag="config/mh-x86-darwin"
+ ;;
powerpc-*-darwin*)
host_makefile_frag="config/mh-ppc-darwin"
;;
--- gcc-4.4.6/configure.ac.orig 2010-10-02 07:40:32.000000000 -0400
+++ gcc-4.4.6/configure.ac 2011-06-28 23:48:05.000000000 -0400
@@ -1091,6 +1091,9 @@
tentative_cc="/usr/cygnus/progressive/bin/gcc"
host_makefile_frag="config/mh-lynxrs6k"
;;
+ i[[3456789]]86-*-darwin* | x86_64-*-darwin*)
+ host_makefile_frag="config/mh-x86-darwin"
+ ;;
powerpc-*-darwin*)
host_makefile_frag="config/mh-ppc-darwin"
;;
--- /dev/null 2011-06-28 23:50:27.000000000 -0400
+++ gcc-4.4.6/config/mh-x86-darwin 2011-06-28 23:48:05.000000000 -0400
@@ -0,0 +1,2 @@
+# Ensure we don't try and use -pie, as it is incompatible with pch.
+BOOT_LDFLAGS += `case ${host} in *-*-darwin[1][1-9]*) echo -Wl,-no_pie ;; esac;`
--- gcc-4.5.4/gcc/testsuite/lib/prune.exp.orig 2011-02-15 19:06:56.000000000 -0500
+++ gcc-4.5.4/gcc/testsuite/lib/prune.exp 2011-06-30 10:44:26.000000000 -0400
@@ -54,6 +54,9 @@
# Ignore harmless warnings from Xcode 3.2.x.
regsub -all "(^|\n)\[^\n\]*ld: warning: can't add line info to anonymous symbol\[^\n\]*" $text "" text
+ # Ignore harmless warnings from Xcode 4.0.
+ regsub -all "(^|\n)\[^\n\]*ld: warning: could not create compact unwind for\[^\n\]*" $text "" text
+
#send_user "After:$text\n"
return $text
--- gcc-4.5.4/libstdc++-v3/testsuite/lib/prune.exp.orig 2011-02-15 19:06:56.000000000 -0500
+++ gcc-4.5.4/libstdc++-v3/testsuite/lib/prune.exp 2011-06-30 10:46:54.000000000 -0400
@@ -30,5 +30,9 @@
regsub -all "(^|\n)\[^\n\]*: Additional NOP may be necessary to workaround Itanium processor A/B step errata" $text "" text
regsub -all "(^|\n)\[^\n*\]*: Assembler messages:\[^\n\]*" $text "" text
+ # Ignore harmless warnings from Xcode 4.0.
+ regsub -all "(^|\n)\[^\n\]*ld: warning: could not create compact unwind for\[^\n\]*" $text "" text
+
+
return $text
}