summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2004-04-22 02:51:58 +0000
committerMike Frysinger <vapier@gentoo.org>2004-04-22 02:51:58 +0000
commitef0b6a079fda0f6793f0a3470b93a1db3842d00b (patch)
tree898f6a55f6b1e967894c47b66875d4328b85adba
parentremove masks for never-released gccs (diff)
downloadhistorical-ef0b6a079fda0f6793f0a3470b93a1db3842d00b.tar.gz
historical-ef0b6a079fda0f6793f0a3470b93a1db3842d00b.tar.bz2
historical-ef0b6a079fda0f6793f0a3470b93a1db3842d00b.zip
was never released
-rw-r--r--sys-devel/gcc/ChangeLog6
-rw-r--r--sys-devel/gcc/files/digest-gcc-3.1-r81
-rw-r--r--sys-devel/gcc/files/digest-gcc-3.2-r52
-rw-r--r--sys-devel/gcc/gcc-3.1-r8.ebuild339
-rw-r--r--sys-devel/gcc/gcc-3.2-r5.ebuild427
5 files changed, 3 insertions, 772 deletions
diff --git a/sys-devel/gcc/ChangeLog b/sys-devel/gcc/ChangeLog
index 40b171600f96..03a047dec69a 100644
--- a/sys-devel/gcc/ChangeLog
+++ b/sys-devel/gcc/ChangeLog
@@ -1,9 +1,9 @@
# ChangeLog for sys-devel/gcc
# Copyright 2002-2004 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.208 2004/04/22 02:50:32 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.209 2004/04/22 02:51:58 vapier Exp $
- 21 Apr 2004; Mike Frysinger <vapier@gentoo.org> gcc-3.2-r5:
- This was never released so lets prune it.
+ 21 Apr 2004; Mike Frysinger <vapier@gentoo.org> gcc-3.2-r5 gcc-3.1-r8:
+ These were never released so lets prune them.
21 Apr 2004; Mike Frysinger <vapier@gentoo.org> gcc-3.2.3-r2 gcc-3.2.3-r3
gcc-3.2.3-r4:
diff --git a/sys-devel/gcc/files/digest-gcc-3.1-r8 b/sys-devel/gcc/files/digest-gcc-3.1-r8
deleted file mode 100644
index fba8a6ab4cea..000000000000
--- a/sys-devel/gcc/files/digest-gcc-3.1-r8
+++ /dev/null
@@ -1 +0,0 @@
-MD5 605adcc9c90f1674043c8c3749f43636 gcc-3.1.tar.bz2 20445209
diff --git a/sys-devel/gcc/files/digest-gcc-3.2-r5 b/sys-devel/gcc/files/digest-gcc-3.2-r5
deleted file mode 100644
index cae83304b185..000000000000
--- a/sys-devel/gcc/files/digest-gcc-3.2-r5
+++ /dev/null
@@ -1,2 +0,0 @@
-MD5 13f289fff789927b9b798bf37552019c gcc-3.2.tar.bz2 20523950
-MD5 3fd60ca7fc4e92a048d10f49b0ff769c gcc-3.2-patches-1.0.tar.bz2 100997
diff --git a/sys-devel/gcc/gcc-3.1-r8.ebuild b/sys-devel/gcc/gcc-3.1-r8.ebuild
deleted file mode 100644
index 673229a99757..000000000000
--- a/sys-devel/gcc/gcc-3.1-r8.ebuild
+++ /dev/null
@@ -1,339 +0,0 @@
-# Copyright 1999-2004 Gentoo Technologies, Inc.
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.1-r8.ebuild,v 1.16 2004/02/26 20:36:49 pappy Exp $
-
-IUSE="nls bootstrap static build"
-
-# NOTE TO MAINTAINER: Info pages get nuked for multiple version installs.
-# Ill fix it later if i get a chance.
-#
-# IMPORTANT: The versions of libs installed should be updated
-# in src_install() ... Ill implement auto-version detection
-# later on.
-
-inherit libtool
-
-GCC_SUFFIX=-3.1
-LOC=/usr
-# dont install in /usr/include/g++-v3/, as it will nuke gcc-3.0.x installs
-STDCXX_INCDIR="${LOC}/include/g++-v${PV/\./}"
-SLOT="3.1"
-# we need to set $S to where stuff gets build, else the libtool-portage patch
-# do not work
-S=${WORKDIR}/build
-# the true/original $S
-SORIG=${WORKDIR}/${P}
-SRC_URI="ftp://gcc.gnu.org/pub/gcc/releases/${P}/${P}.tar.bz2
- ftp://ftp.funet.fi/pub/mirrors/sourceware.cygnus.com/pub/gcc/releases/${P}/${P}.tar.bz2"
-DESCRIPTION="Modern GCC C/C++ compiler"
-HOMEPAGE="http://www.gnu.org/software/gcc/gcc.html"
-LICENSE="GPL-2 LGPL-2.1"
-KEYWORDS="x86 sparc -ppc"
-
-DEPEND="virtual/glibc"
-RDEPEND="virtual/glibc
- >=sys-libs/zlib-1.1.4
- >=sys-apps/texinfo-4.2-r4"
-if [ -z "`use build`" ]
-then
- DEPEND="${DEPEND}
- nls? ( sys-devel/gettext )
- >=sys-libs/ncurses-5.2-r2"
- RDEPEND="${RDEPEND}
- >=sys-libs/ncurses-5.2-r2"
-fi
-
-build_multiple() {
- #try to make sure that we should build multiple
- #versions of gcc (dual install of gcc2 and gcc3)
- profile="`readlink /etc/make.profile`"
- # [ "`gcc -dumpversion | cut -d. -f1,2`" != "`echo ${PV} | cut -d. -f1,2`" ]
- #
- # Check the major and minor versions only, and drop the micro version.
- # This is done, as compadibility only differ when major and minor differ.
- if [ -z "`use build`" ] && \
- [ -z "`use bootstrap`" ] && \
- [ "`gcc -dumpversion | cut -d. -f1,2`" != "`echo ${PV} | cut -d. -f1,2`" ] && \
- [ "${profile/gcc3}" = "${profile}" ] && \
- [ "${GCCBUILD}" != "default" ]
- then
- return 0
- else
- return 1
- fi
-}
-
-# used to patch Makefiles to install into the build dir
-FAKE_ROOT=""
-
-src_unpack() {
- unpack ${P}.tar.bz2
-
- cd ${SORIG}
- # Fixup libtool to correctly generate .la files with portage
- # Only apply the portage patch, and only to ltmain.sh in ${SORIG}/
- # elibtoolize uses $S as work directory....
- S=${SORIG} \
- elibtoolize --portage --shallow
-
- # Red Hat patches
- for x in gcc31-boehm-gc-libs.patch.bz2 \
- gcc31-fde-merge-compat.patch.bz2 \
- gcc31-attr-visibility.patch.bz2 \
- gcc31-attr-visibility2.patch.bz2 \
- gcc31-trunc_int_for_mode.patch.bz2 \
- gcc31-dwarf2-pr6381.patch.bz2 \
- gcc31-dwarf2-pr6436-test.patch.bz2 \
- gcc31-c++-null-pm-init.patch.bz2 \
- gcc31-c++-tsubst-asm.patch.bz2 \
- gcc31-fdata-sections.patch.bz2 \
- gcc31-fold-const.patch.bz2 \
- gcc31-fold-const2.patch.bz2 \
- gcc31-i386-malign-double-doc.patch.bz2 \
- gcc31-libstdc++-pr6594.patch.bz2 \
- gcc31-libstdc++-pr6648.patch.bz2 \
- gcc31-libstdc++-setrlim.patch.bz2 \
- gcc31-pr6643.patch.bz2 \
- gcc31-test-rotate.patch.bz2
- do
- bzip2 -dc ${FILESDIR}/${PV}/${x} | \
- patch -p0 || die "failed with patch ${x}"
- done
-
- # SuSE patches
- bzip2 -dc ${FILESDIR}/${PV}/gcc31-i386-expand-clrstr.patch.bz2 | \
- patch -p1 || die "failed with patch gcc31-i386-expand-clrstr"
-
- # Mandrake patches
- # cp/lex.c (cxx_init_options): By default, don't wrap lines since the
- # C front-end operates that way, already.
- bzip2 -dc ${FILESDIR}/${PV}/gcc31-c++-diagnostic-no-line-wrapping.patch.bz2 | \
- patch -p1 || die "failed with patch gcc31-c++-diagnostic-no-line-wrapping"
-
- # Currently if any path is changed via the configure script, it breaks
- # installing into ${D}. We should not patch it in src_install() with
- # absolute paths, as some modules then gets rebuild with the wrong
- # paths. Thus we use $FAKE_ROOT.
- cd ${SORIG}
- for x in $(find . -name Makefile.in)
- do
-# cp ${x} ${x}.orig
- # Fix --datadir=
-# sed -e 's:datadir = @datadir@:datadir = $(FAKE_ROOT)@datadir@:' \
-# ${x}.orig > ${x}
- cp ${x} ${x}.orig
- # Fix --with-gxx-include-dir=
- sed -e 's:gxx_include_dir = @gxx_:gxx_include_dir = $(FAKE_ROOT)@gxx_:' \
- -e 's:glibcppinstalldir = @gxx_:glibcppinstalldir = $(FAKE_ROOT)@gxx_:' \
- ${x}.orig > ${x}
- rm -f ${x}.orig
- done
-}
-
-src_compile() {
- local myconf=""
- # use the system zlib!!!
- myconf="--with-system-zlib"
- if [ -z "`use build`" ]
- then
- myconf="${myconf} --enable-shared"
- else
- myconf="${myconf} --enable-languages=c"
- fi
- if [ -z "`use nls`" ] || [ "`use build`" ] ; then
- myconf="${myconf} --disable-nls"
- else
- myconf="${myconf} --enable-nls --without-included-gettext"
- fi
-
- #only build with a program suffix if it is not our
- #default compiler. Also check $GCCBUILD until we got
- #compilers sorted out.
- #
- #NOTE: for software to detirmine gcc version, it will be easier
- # if we have gcc, gcc-3.0 and gcc-3.1, and NOT gcc-3.0.4.
- if build_multiple
- then
- myconf="${myconf} --program-suffix=${GCC_SUFFIX}"
- fi
-
- # gcc does not like optimization
-
- export CFLAGS="${CFLAGS/-O?/}"
- export CXXFLAGS="${CXXFLAGS/-O?/}"
-
- #build in a separate build tree
- mkdir -p ${S}
- cd ${S}
-
- addwrite "/dev/zero"
- ${SORIG}/configure --prefix=${LOC} \
- --mandir=${LOC}/share/man \
- --infodir=${LOC}/share/info \
- --enable-shared \
- --host=${CHOST} \
- --build=${CHOST} \
- --target=${CHOST} \
- --enable-threads=posix \
- --enable-long-long \
- --enable-cstdio=stdio \
- --enable-clocale=generic \
- --disable-checking \
- --enable-version-specific-runtime-libs \
- --with-gxx-include-dir=${STDCXX_INCDIR} \
- --with-local-prefix=${LOC}/local \
- ${myconf} || die
-
- if [ -z "`use static`" ]
- then
- emake bootstrap-lean || die
- else
- emake LDFLAGS=-static bootstrap || die
- fi
-}
-
-src_install() {
- #make install from the build directory
- cd ${S}
- make prefix=${D}${LOC} \
- mandir=${D}${LOC}/share/man \
- infodir=${D}${LOC}/share/info \
- FAKE_ROOT=${D} \
- install || die
-
- if ! build_multiple
- then
- GCC_SUFFIX=""
- fi
-
- [ -e ${D}${LOC}/bin/gcc${GCC_SUFFIX} ] || die "gcc not found in ${D}"
-
- FULLPATH=${LOC}/lib/gcc-lib/${CHOST}/${PV}
- FULLPATH_D=${D}${LOC}/lib/gcc-lib/${CHOST}/${PV}
- cd ${FULLPATH_D}
- dodir /lib
- dodir /etc/env.d
- echo "LDPATH=${FULLPATH}" > ${D}/etc/env.d/05gcc${GCC_SUFFIX}
- if ! build_multiple
- then
- dosym /usr/bin/cpp /lib/cpp
- dosym gcc /usr/bin/cc
- fi
-
- # gcc-3.1 have a problem with the ordering of Search Directories. For
- # instance, if you have libreadline.so in /lib, and libreadline.a in
- # /usr/lib, then it will link with libreadline.a instead of .so. As far
- # as I can see from the source, /lib should be searched before /usr/lib,
- # and this also differs from gcc-2.95.3 and possibly 3.0.4, but ill have
- # to check on 3.0.4. Thanks to Daniel Robbins for noticing this oddity.
- #
- # Azarah - 3 Jul 2002
- #
- cd ${FULLPATH_D}
- dosed -e "s:%{L\*} %(link_libgcc):%{L\*} -L/lib %(link_libgcc):" \
- ${FULLPATH}/specs
-
- #make sure we dont have stuff lying around that
- #can nuke multiple versions of gcc
- if [ -z "`use build`" ]
- then
- cd ${FULLPATH_D}
-
- #Tell libtool files where real libraries are
- for LA in ${D}${LOC}/lib/*.la ${FULLPATH_D}/../*.la
- do
- sed -e "s:/usr/lib:${FULLPATH}:" ${LA} > ${LA}.hacked
- mv ${LA}.hacked ${LA}
- mv ${LA} ${FULLPATH_D}
- done
-
- #move all the libraries to version specific libdir.
- mv ${D}${LOC}/lib/*.{so,a}* ${FULLPATH_D}/../*.{so,a}* \
- ${FULLPATH_D}
-
- #move Java headers to compiler-specific dir
- mv ${D}${LOC}/include/gc*.h ${FULLPATH_D}/include/
- mv ${D}${LOC}/include/j*.h ${FULLPATH_D}/include/
- for x in gcj gnu java javax org
- do
- mkdir -p ${FULLPATH_D}/include/${x}
- mv ${D}${LOC}/include/${x}/* ${FULLPATH_D}/include/${x}/
- rm -rf ${D}${LOC}/include/${x}
- done
-
- #move libgcj.spec to compiler-specific directories
- mv ${D}${LOC}/lib/libgcj.spec ${FULLPATH_D}/libgcj.spec
-
- #rename jar because it could clash with Kaffe's jar if this gcc is
- #primary compiler (aka don't have the -<version> extension)
- cd ${D}${LOC}/bin
- mv jar${GCC_SUFFIX} gcj-jar${GCC_SUFFIX}
-
- #move <cxxabi.h> to compiler-specific directories
- mv ${D}${STDCXX_INCDIR}/cxxabi.h ${FULLPATH_D}/include/
-
- #now fix the manpages
- cd ${D}${LOC}/share/man/man1;
- mv cpp.1 cpp${GCC_SUFFIX}.1
- mv gcov.1 gcov${GCC_SUFFIX}.1
- fi
-
- cd ${SORIG}
- if [ -z "`use build`" ]
- then
- cd ${SORIG}
- docinto /
- dodoc BUGS COPYING COPYING.LIB ChangeLog GNATS README* FAQ MAINTAINERS
- docinto html
- dodoc *.html
- cd ${SORIG}/boehm-gc
- docinto boehm-gc
- dodoc ChangeLog README*
- cd ${SORIG}/gcc
- docinto gcc
- dodoc ChangeLog* COPYING* FSFChangeLog* LANGUAGES NEWS ONEWS \
- README* SERVICE
- cd ${SORIG}/fastjar
- docinto fastjar
- dodoc AUTHORS CHANGES COPYING ChangeLog NEWS README
- cd ${SORIG}/libf2c
- docinto libf2c
- dodoc ChangeLog README TODO changes.netlib disclaimer.netlib \
- permission.netlib readme.netlib
- cd ${SORIG}/libffi
- docinto libffi
- dodoc ChangeLog* LICENSE README
- cd ${SORIG}/libjava
- docinto libjava
- dodoc ChangeLog* COPYING HACKING LIBGCJ_LICENSE NEWS README THANKS
- cd ${SORIG}/libiberty
- docinto libiberty
- dodoc ChangeLog COPYING.LIB README
- cd ${SORIG}/libobjc
- docinto libobjc
- dodoc ChangeLog README* THREADS*
- cd ${SORIG}/libstdc++-v3
- docinto libstdc++-v3
- dodoc ChangeLog* README
- else
- rm -rf ${D}/usr/share/{man,info}
- fi
-
- # Fix ncurses b0rking
- find ${D}/ -name '*curses.h' -exec rm -f {} \;
-}
-
-pkg_postrm() {
- if [ ! -L ${ROOT}/lib/cpp ]
- then
- ln -sf /usr/bin/cpp ${ROOT}/lib/cpp
- fi
- if [ ! -L ${ROOT}/usr/bin/cc ]
- then
- ln -sf gcc ${ROOT}/usr/bin/cc
- fi
-
- # Fix ncurses b0rking (if r5 isn't unmerged)
- find /usr/lib/gcc-lib -name '*curses.h' -exec rm -f {} \;
-}
-
diff --git a/sys-devel/gcc/gcc-3.2-r5.ebuild b/sys-devel/gcc/gcc-3.2-r5.ebuild
deleted file mode 100644
index b1e13fa05cad..000000000000
--- a/sys-devel/gcc/gcc-3.2-r5.ebuild
+++ /dev/null
@@ -1,427 +0,0 @@
-# Copyright 1999-2004 Gentoo Technologies, Inc.
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.2-r5.ebuild,v 1.13 2004/01/08 19:53:24 agriffis Exp $
-
-IUSE="static nls bootstrap java build"
-
-inherit eutils flag-o-matic libtool
-
-# Compile problems with these (bug #6641 among others)...
-filter-flags "-fno-exceptions -fomit-frame-pointer"
-
-# Recently there has been a lot of stability problem in Gentoo-land. Many
-# things can be the cause to this, but I believe that it is due to gcc3
-# still having issues with optimizations, or with it not filtering bad
-# combinations (protecting the user maybe from himeself) yet.
-#
-# This can clearly be seen in large builds like glibc, where too aggressive
-# CFLAGS cause the tests to fail miserbly.
-#
-# Quote from Nick Jones <carpaski@gentoo.org>, who in my opinion
-# knows what he is talking about:
-#
-# People really shouldn't force code-specific options on... It's a
-# bad idea. The -march options aren't just to look pretty. They enable
-# options that are sensible (and include sse,mmx,3dnow when apropriate).
-#
-# The next command strips CFLAGS and CXXFLAGS from nearly all flags. If
-# you do not like it, comment it, but do not bugreport if you run into
-# problems.
-#
-# <azarah@gentoo.org> (13 Oct 2002)
-strip-flags
-
-# Theoretical cross compiler support
-[ ! -n "${CCHOST}" ] && export CCHOST="${CHOST}"
-
-LOC="/usr"
-MY_PV="`echo ${PV} | awk -F. '{ gsub(/_pre.*|_alpha.*/, ""); print $1 "." $2 }'`"
-MY_PV_FULL="`echo ${PV} | awk '{ gsub(/_pre.*|_alpha.*/, ""); print $0 }'`"
-
-LIBPATH="${LOC}/lib/gcc-lib/${CCHOST}/${MY_PV_FULL}"
-BINPATH="${LOC}/${CCHOST}/gcc-bin/${MY_PV}"
-DATAPATH="${LOC}/share/gcc-data/${CCHOST}/${MY_PV}"
-# Dont install in /usr/include/g++-v3/, but in gcc internal directory.
-# We will handle /usr/include/g++-v3/ with gcc-config ...
-STDCXX_INCDIR="${LIBPATH}/include/g++-v${MY_PV/\.*/}"
-
-PATCH_VER="1.0"
-
-# Snapshot support ...
-#SNAPSHOT="2002-08-12"
-SNAPSHOT=""
-
-if [ -z "${SNAPSHOT}" ]
-then
- S="${WORKDIR}/${P}"
- SRC_URI="ftp://gcc.gnu.org/pub/gcc/releases/${P}/${P}.tar.bz2
- mirror://gentoo/distfiles/${P}-patches-${PATCH_VER}.tar.bz2"
-else
- S="${WORKDIR}/gcc-${SNAPSHOT//-}"
- SRC_URI="ftp://sources.redhat.com/pub/gcc/snapshots/${SNAPSHOT}/gcc-${SNAPSHOT//-}.tar.bz2"
-fi
-
-DESCRIPTION="Modern C/C++ compiler written by the GNU people"
-HOMEPAGE="http://www.gnu.org/software/gcc/gcc.html"
-
-LICENSE="GPL-2 LGPL-2.1"
-KEYWORDS="x86 ppc sparc alpha ~ia64"
-
-# Ok, this is a hairy one again, but lets assume that we
-# are not cross compiling, than we want SLOT to only contain
-# $PV, as people upgrading to new gcc layout will not have
-# their old gcc unmerged ...
-if [ "${CHOST}" = "${CCHOST}" ]
-then
- SLOT="${MY_PV}"
-else
- SLOT="${CCHOST}-${MY_PV}"
-fi
-
-DEPEND="virtual/glibc
- >=sys-devel/gcc-config-1.2
- !build? ( >=sys-libs/ncurses-5.2-r2
- nls? ( sys-devel/gettext ) )"
-
-RDEPEND="virtual/glibc
- >=sys-devel/gcc-config-1.2
- >=sys-libs/zlib-1.1.4
- >=sys-apps/texinfo-4.2-r4
- !build? ( >=sys-libs/ncurses-5.2-r2 )"
-
-
-# Hack used to patch Makefiles to install into the build dir
-FAKE_ROOT=""
-
-src_unpack() {
- if [ -z "${SNAPSHOT}" ]
- then
- unpack ${P}.tar.bz2 ${P}-patches-${PATCH_VER}.tar.bz2
- else
- unpack gcc-${SNAPSHOT//-}.tar.bz2
- fi
-
- cd ${S}
- # Fixup libtool to correctly generate .la files with portage
- elibtoolize --portage --shallow
-
- # Do bulk patches included in ${P}-patches-${PATCH_VER}.tar.bz2
- epatch ${WORKDIR}/patch
-
- # Fixes a bug in gcc-3.1 and above ... -maccumulate-outgoing-args flag (added
- # in gcc-3.1) causes gcc to misconstruct the function call frame in many cases.
- # Thanks to Ronald Hummelink <ronald@hummelink.xs4all.nl> for bringing it to
- # our attention.
- #
- # http://archive.linuxfromscratch.org/mail-archives/lfs-dev/2002/08/
- # http://archive.linuxfromscratch.org/mail-archives/lfs-dev/2002/08/0319.html
- # http://archive.linuxfromscratch.org/mail-archives/lfs-dev/2002/08/0350.html
- # http://archive.linuxfromscratch.org/mail-archives/lfs-dev/2002/08/0410.html
- # http://gcc.gnu.org/ml/gcc/2002-08/msg00731.html
- #
- # Also for the updated patches, see:
- #
- # http://archive.linuxfromscratch.org/mail-archives/lfs-dev/2002/08/0588.html
- #
- epatch ${FILESDIR}/${PV}/${P}.fix-copy.patch
- epatch ${FILESDIR}/${PV}/${P}.fix-var.patch
-
- # Fixes to get gcc to compile under glibc-2.3*
- epatch ${FILESDIR}/${PV}/${P}-glibc-2.3-compat.diff
- # This one is thanks to cretin@gentoo.org
- epatch ${FILESDIR}/${PV}/${P}.ctype.patch
-
- # Currently if any path is changed via the configure script, it breaks
- # installing into ${D}. We should not patch it in src_install() with
- # absolute paths, as some modules then gets rebuild with the wrong
- # paths. Thus we use $FAKE_ROOT.
- cd ${S}
- for x in $(find . -name Makefile.in)
- do
- # Fix --datadir=
- cp ${x} ${x}.orig
- sed -e 's:datadir = @datadir@:datadir = $(FAKE_ROOT)@datadir@:' \
- ${x}.orig > ${x}
-
- # Fix --bindir=
- cp ${x} ${x}.orig
- sed -e 's:bindir = @bindir@:bindir = $(FAKE_ROOT)@bindir@:' \
- ${x}.orig > ${x}
-
- # Fix --with-gxx-include-dir=
- cp ${x} ${x}.orig
- sed -e 's:gxx_include_dir = @gxx_:gxx_include_dir = $(FAKE_ROOT)@gxx_:' \
- -e 's:glibcppinstalldir = @gxx_:glibcppinstalldir = $(FAKE_ROOT)@gxx_:' \
- ${x}.orig > ${x}
-
- # Where java security stuff should be installed
- cp ${x} ${x}.orig
- sed -e 's:secdir = $(libdir)/security:secdir = $(FAKE_ROOT)$(LIBPATH)/security:' \
- ${x}.orig > ${x}
-
- rm -f ${x}.orig
- done
-}
-
-src_compile() {
- local myconf=""
- local gcc_lang=""
- if [ -z "`use build`" ]
- then
- myconf="${myconf} --enable-shared"
- gcc_lang="c,c++,f77,objc"
- else
- gcc_lang="c"
- fi
- if [ -z "`use nls`" ] || [ "`use build`" ]
- then
- myconf="${myconf} --disable-nls"
- else
- myconf="${myconf} --enable-nls --without-included-gettext"
- fi
- if [ -n "`use java`" ] && [ -z "`use build`" ]
- then
- gcc_lang="${gcc_lang},java"
- fi
-
- # In general gcc does not like optimization, and add -O2 where
- # it is safe.
- export CFLAGS="${CFLAGS//-O?}"
- export CXXFLAGS="${CXXFLAGS//-O?}"
-
- # Build in a separate build tree
- mkdir -p ${WORKDIR}/build
- cd ${WORKDIR}/build
-
- einfo "Configuring GCC..."
- addwrite "/dev/zero"
- ${S}/configure --prefix=${LOC} \
- --bindir=${BINPATH} \
- --datadir=${DATAPATH} \
- --mandir=${DATAPATH}/man \
- --infodir=${DATAPATH}/info \
- --enable-shared \
- --host=${CHOST} \
- --target=${CCHOST} \
- --with-system-zlib \
- --enable-languages=${gcc_lang} \
- --enable-threads=posix \
- --enable-long-long \
- --disable-checking \
- --enable-cstdio=stdio \
- --enable-clocale=generic \
- --enable-__cxa_atexit \
- --enable-version-specific-runtime-libs \
- --with-gxx-include-dir=${STDCXX_INCDIR} \
- --with-local-prefix=${LOC}/local \
- ${myconf} || die
-
- touch ${S}/gcc/c-gperf.h
-
- einfo "Building GCC..."
- if [ -z "`use static`" ]
- then
- # Fix for our libtool-portage.patch
- S="${WORKDIR}/build" \
- emake bootstrap-lean \
- LIBPATH="${LIBPATH}" \
- BOOT_CFLAGS="${CFLAGS}" STAGE1_CFLAGS="-O" || die
- # Above FLAGS optimize and speedup build, thanks
- # to Jeff Garzik <jgarzik@mandrakesoft.com>
- else
- S="${WORKDIR}/build" \
- emake LDFLAGS=-static bootstrap \
- LIBPATH="${LIBPATH}" \
- BOOT_CFLAGS="${CFLAGS}" STAGE1_CFLAGS="-O" || die
- fi
-}
-
-src_install() {
- # Do allow symlinks in ${LOC}/lib/gcc-lib/${CHOST}/${PV}/include as
- # this can break the build.
- for x in cd ${WORKDIR}/build/gcc/include/*
- do
- if [ -L ${x} ]
- then
- rm -f ${x}
- fi
- done
-
- einfo "Installing GCC..."
- # Do the 'make install' from the build directory
- cd ${WORKDIR}/build
- S="${WORKDIR}/build" \
- make prefix=${D}${LOC} \
- bindir=${D}${BINPATH} \
- datadir=${D}${DATAPATH} \
- mandir=${D}${DATAPATH}/man \
- infodir=${D}${DATAPATH}/info \
- LIBPATH="${LIBPATH}" \
- FAKE_ROOT="${D}" \
- install || die
-
- [ -r ${D}${BINPATH}/gcc ] || die "gcc not found in ${D}"
-
- dodir /lib /usr/bin
- dodir /etc/env.d/gcc
- echo "PATH=\"${BINPATH}\"" > ${D}/etc/env.d/gcc/${CCHOST}-${MY_PV_FULL}
- echo "ROOTPATH=\"${BINPATH}\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${MY_PV_FULL}
- echo "LDPATH=\"${LIBPATH}\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${MY_PV_FULL}
- echo "MANPATH=\"${DATAPATH}/man\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${MY_PV_FULL}
- echo "INFOPATH=\"${DATAPATH}/info\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${MY_PV_FULL}
- echo "STDCXX_INCDIR=\"${STDCXX_INCDIR##*/}\"" >> ${D}/etc/env.d/gcc/${CCHOST}-${MY_PV_FULL}
- # Also set CC and CXX
- echo "CC=\"gcc\"" >> ${D}/etc/env.d/05gcc
- echo "CXX=\"g++\"" >> ${D}/etc/env.d/05gcc
-
- # Dummies to get CONTENTS right .. will handle with gcc-config
- touch ${D}/lib/cpp
- touch ${D}/usr/bin/cc
-
-# This should be invalidated by the linker scripts we have as the latest
-# fix for bug #4411
-#
-# # gcc-3.1 have a problem with the ordering of Search Directories. For
-# # instance, if you have libreadline.so in /lib, and libreadline.a in
-# # /usr/lib, then it will link with libreadline.a instead of .so. As far
-# # as I can see from the source, /lib should be searched before /usr/lib,
-# # and this also differs from gcc-2.95.3 and possibly 3.0.4, but ill have
-# # to check on 3.0.4. Thanks to Daniel Robbins for noticing this oddity,
-# # bugzilla bug #4411
-# #
-# # Azarah - 3 Jul 2002
-# #
-# cd ${D}${LIBPATH}
-# dosed -e "s:%{L\*} %(link_libgcc):%{L\*} -L/lib %(link_libgcc):" \
-# ${LIBPATH}/specs
-
- # Make sure we dont have stuff lying around that
- # can nuke multiple versions of gcc
- if [ -z "`use build`" ]
- then
- cd ${D}${LIBPATH}
-
- # Tell libtool files where real libraries are
- for LA in ${D}${LOC}/lib/*.la ${D}${LIBPATH}/../*.la
- do
- if [ -f ${LA} ]
- then
- sed -e "s:/usr/lib:${LIBPATH}:" ${LA} > ${LA}.hacked
- mv ${LA}.hacked ${LA}
- mv ${LA} ${D}${LIBPATH}
- fi
- done
-
- # Move all the libraries to version specific libdir.
- for x in ${D}${LOC}/lib/*.{so,a}* ${D}${LIBPATH}/../*.{so,a}*
- do
- [ -f ${x} ] && mv -f ${x} ${D}${LIBPATH}
- done
-
- # Move Java headers to compiler-specific dir
- for x in ${D}${LOC}/include/gc*.h ${D}${LOC}/include/j*.h
- do
- [ -f ${x} ] && mv -f ${x} ${D}${LIBPATH}/include/
- done
- for x in gcj gnu java javax org
- do
- if [ -d ${D}${LOC}/include/${x} ]
- then
- dodir /${LIBPATH}/include/${x}
- mv -f ${D}${LOC}/include/${x}/* ${D}${LIBPATH}/include/${x}/
- rm -rf ${D}${LOC}/include/${x}
- fi
- done
-
- # Move libgcj.spec to compiler-specific directories
- [ -f ${D}${LOC}/lib/libgcj.spec ] && \
- mv -f ${D}${LOC}/lib/libgcj.spec ${D}${LIBPATH}/libgcj.spec
-
- # Rename jar because it could clash with Kaffe's jar if this gcc is
- # primary compiler (aka don't have the -<version> extension)
- cd ${D}${LOC}/${CCHOST}/gcc-bin/${MY_PV}
- [ -f jar ] && mv -f jar gcj-jar
-
- # Move <cxxabi.h> to compiler-specific directories
- [ -f ${D}${STDCXX_INCDIR}/cxxabi.h ] && \
- mv -f ${D}${STDCXX_INCDIR}/cxxabi.h ${D}${LIBPATH}/include/
-
- # These should be symlinks
- cd ${D}${BINPATH}
- rm -f ${CCHOST}-{gcc,g++,c++,g77}
- [ -f gcc ] && ln -sf gcc ${CCHOST}-gcc
- [ -f g++ ] && ln -sf g++ ${CCHOST}-g++
- [ -f g++ ] && ln -sf g++ ${CCHOST}-c++
- [ -f g77 ] && ln -sf g77 ${CCHOST}-g77
- fi
-
- # This one comes with binutils
- if [ -f ${D}${LOC}/lib/libiberty.a ]
- then
- rm -f ${D}${LOC}/lib/libiberty.a
- fi
-
- cd ${S}
- if [ -z "`use build`" ]
- then
- cd ${S}
- docinto /${CCHOST}
- dodoc COPYING COPYING.LIB ChangeLog FAQ GNATS MAINTAINERS README
- docinto ${CCHOST}/html
- dohtml *.html
- cd ${S}/boehm-gc
- docinto ${CCHOST}/boehm-gc
- dodoc ChangeLog doc/{README*,barrett_diagram}
- docinto ${CCHOST}/boehm-gc/html
- dohtml doc/*.html
- cd ${S}/gcc
- docinto ${CCHOST}/gcc
- dodoc ChangeLog* FSFChangeLog* LANGUAGES NEWS ONEWS README* SERVICE
- cd ${S}/libf2c
- docinto ${CCHOST}/libf2c
- dodoc ChangeLog README TODO *.netlib
- cd ${S}/libffi
- docinto ${CCHOST}/libffi
- dodoc ChangeLog* LICENSE README
- cd ${S}/libiberty
- docinto ${CCHOST}/libiberty
- dodoc ChangeLog COPYING.LIB README
- cd ${S}/libobjc
- docinto ${CCHOST}/libobjc
- dodoc ChangeLog README* THREADS*
- cd ${S}/libstdc++-v3
- docinto ${CCHOST}/libstdc++-v3
- dodoc ChangeLog* README
- docinto ${CCHOST}/libstdc++-v3/html
- dohtml -r -a css,diff,html,txt,xml docs/html/*
- cp -f docs/html/17_intro/[A-Z]* \
- ${D}/usr/share/doc/${PF}/${DOCDESTTREE}/17_intro/
-
- if [ -n "`use java`" ]
- then
- cd ${S}/fastjar
- docinto ${CCHOST}/fastjar
- dodoc AUTHORS CHANGES COPYING ChangeLog NEWS README
- cd ${S}/libjava
- docinto ${CCHOST}/libjava
- dodoc ChangeLog* COPYING HACKING LIBGCJ_LICENSE NEWS README THANKS
- fi
- else
- rm -rf ${D}/usr/share/{man,info}
- fi
-
- # Fix ncurses b0rking
- find ${D}/ -name '*curses.h' -exec rm -f {} \;
-}
-
-pkg_postinst() {
-
- if [ "${ROOT}" = "/" -a "${COMPILER}" = "gcc3" ]
- then
- gcc-config --use-portage-chost ${CCHOST}-${MY_PV_FULL}
- fi
-
- # Fix ncurses b0rking (if r5 isn't unmerged)
- find ${ROOT}/usr/lib/gcc-lib -name '*curses.h' -exec rm -f {} \;
-}
-