summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTravis Tilley <lv@gentoo.org>2004-10-26 02:27:04 +0000
committerTravis Tilley <lv@gentoo.org>2004-10-26 02:27:04 +0000
commitf67c21462c211bd478d55b5c8fc7937a61640cbb (patch)
tree93385873506476b86cd7b4c7404a64a55cb9ca4d /sys-devel/gcc
parentFix net-scripts problems related to module loading and alias management. Fix ... (diff)
downloadhistorical-f67c21462c211bd478d55b5c8fc7937a61640cbb.tar.gz
historical-f67c21462c211bd478d55b5c8fc7937a61640cbb.tar.bz2
historical-f67c21462c211bd478d55b5c8fc7937a61640cbb.zip
any patches borrowed from fedora that are no longer in the latest fedora gcc 3.4 src rpm have been removed, except for the symbol visibility patches. added 20041025 branch update. a few GCC_SPECS and gcc-config related bugs in toolchain.eclass have also been fixed.
Diffstat (limited to 'sys-devel/gcc')
-rw-r--r--sys-devel/gcc/ChangeLog10
-rw-r--r--sys-devel/gcc/Manifest24
-rw-r--r--sys-devel/gcc/files/digest-gcc-3.4.2-r37
-rw-r--r--sys-devel/gcc/gcc-3.4.2-r3.ebuild463
4 files changed, 492 insertions, 12 deletions
diff --git a/sys-devel/gcc/ChangeLog b/sys-devel/gcc/ChangeLog
index 0792ae8b074a..528ba0aefc74 100644
--- a/sys-devel/gcc/ChangeLog
+++ b/sys-devel/gcc/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for sys-devel/gcc
# Copyright 1999-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.337 2004/10/19 02:31:37 tgall Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.338 2004/10/26 02:27:04 lv Exp $
+
+*gcc-3.4.2-r3 (25 Oct 2004)
+
+ 25 Oct 2004; Travis Tilley <lv@gentoo.org> +gcc-3.4.2-r3.ebuild:
+ any patches borrowed from fedora that are no longer in the latest fedora gcc
+ 3.4 src rpm have been removed, except for the symbol visibility patches. added
+ 20041025 branch update. a few GCC_SPECS and gcc-config related bugs in
+ toolchain.eclass have also been fixed.
18 Oct 2004; Tom Gall <tgall@gentoo.org> gcc-3.4.1-r3.ebuild:
stable on ppc64
diff --git a/sys-devel/gcc/Manifest b/sys-devel/gcc/Manifest
index f091ff03bd28..b927dd7f49a4 100644
--- a/sys-devel/gcc/Manifest
+++ b/sys-devel/gcc/Manifest
@@ -13,7 +13,8 @@ MD5 567094e03359ffc1c95af7356395228d metadata.xml 162
MD5 9f2b75a5738fb492bdd6a50db9b1c8a0 gcc-3.2.3-r4.ebuild 19754
MD5 9d2f881e949534e2585b5b1e32b8edf9 gcc-3.1.1-r2.ebuild 9274
MD5 2d4b8001b43ed6786a727202097c7e56 gcc-3.4.2-r2.ebuild 13894
-MD5 1af8c021f29fddab4091a7a3d2dcddc2 ChangeLog 70058
+MD5 f3846b9b726c1d9a8e76c8ae70e0954d gcc-3.4.2-r3.ebuild 13934
+MD5 7e790f4933f97d08a86fbaae5108dca3 ChangeLog 70426
MD5 5623afcd2c31310c80dd322463bfb97a gcc-3.4.1-r3.ebuild 31284
MD5 d4f3df28c96e1c47c5a3f37ad2c534f6 gcc-3.4.1-r2.ebuild 31247
MD5 5a6b0cd70583cfd053422c5387d98931 gcc-3.3.4-r2.ebuild 24899
@@ -26,29 +27,20 @@ MD5 86de4539e7759ec983a62d25f4a5fde2 gcc-3.3.2-r1.ebuild 17884
MD5 559569b1a6d8139511c6a01203c26c6c gcc-3.3.3_pre20040408-r1.ebuild 22613
MD5 f7e7042c2ddf66e344b30cbc66ebaf73 files/cc 24
MD5 80d122265d3062847a4a1b161abe1d26 files/cpp 24
+MD5 8dd363ef6c3a83115114f9f8d215c750 files/digest-gcc-3.4.2-r3 529
MD5 3213bd50acdbbd71ce7dd3e40710e30e files/digest-gcc-2.95.3-r8 64
MD5 0d683280daf95e6bb9712549352a200c files/digest-gcc-3.1.1-r2 140
MD5 40e6872c09149a81973f01a78c80bbb7 files/digest-gcc-3.2.3-r4 279
MD5 f57a9900e4d0edcae7b1e327e263d2f7 files/digest-gcc-3.3 294
-MD5 d192284727acd002cf658d4c559c2d39 files/digest-gcc-3.3.1-r5 361
MD5 cf81ae4b2da79c34a005da1182c40134 files/digest-gcc-3.3.2 130
MD5 0d86971219ddd6dcb86f032bc2b93691 files/digest-gcc-3.3.2-r1 361
-MD5 f48105f24e5c714530e66a94aa56d615 files/digest-gcc-3.3.2-r2 361
-MD5 f48105f24e5c714530e66a94aa56d615 files/digest-gcc-3.3.2-r3 361
MD5 29b68fb9b347114baf405bf67ebca0cd files/digest-gcc-3.3.2-r4 361
MD5 01c41c9e6857eb40d402f2acb2bd96f9 files/digest-gcc-3.3.2-r5 361
-MD5 e58b6c1f3122b79a5d0d273acc3c008c files/digest-gcc-3.3.2-r7 361
-MD5 35f63854b7b4d5ab1ed1489e517f8e24 files/digest-gcc-3.3.3 361
MD5 5a9db19cd5ad6ad16b0f838d525d842a files/digest-gcc-3.3.3-r3 522
MD5 3a68d40d170427ffbfcf181b5099d693 files/digest-gcc-3.3.3-r5 528
-MD5 3fd5a29d44b89f4fb220fccaa968fc05 files/digest-gcc-3.3.3-r6 442
-MD5 e962c23dd4396850f0e36424ec5596d7 files/digest-gcc-3.3.3_pre20040408-r1 138
MD5 8f56750ce25ca30ffebcbdb65de95a1f files/digest-gcc-3.3.3_pre20040426 138
MD5 6df16eb92245a931ecfc4cbcc73c84cf files/digest-gcc-3.3.4-r1 442
MD5 6df16eb92245a931ecfc4cbcc73c84cf files/digest-gcc-3.3.4-r2 442
-MD5 fc48a7567c14adcfeed10b5e03b4ebf6 files/digest-gcc-3.4.1 355
-MD5 c6ea8a92bac6d2638c54c011f98bc5b8 files/digest-gcc-3.4.1-r2 442
-MD5 c6ea8a92bac6d2638c54c011f98bc5b8 files/digest-gcc-3.4.1-r3 442
MD5 69687aac826654ad375b7eae45a01e0b files/digest-gcc-3.4.2-r2 443
MD5 9bb4a999eb75c9e3eadab9aa71e91879 files/fix_libtool_files.sh 1731
MD5 edced3dd7f4035b638bbee500bc89e7b files/gcc-spec-env.patch 791
@@ -56,6 +48,16 @@ MD5 8baffb486c75efe253bd2daa88daa7d6 files/gcc331_use_multilib.amd64.patch 352
MD5 e3193bdffb435b77a21bfb504ff6f591 files/mkinfodir 7324
MD5 ea2cf3df0d89a26d5fdc1a531176e395 files/pro-police-docs.patch 3287
MD5 07b57d62aa1a8cd4d1cd37984ebe2053 files/scan_libgcc_linked_ssp.sh 861
+MD5 d192284727acd002cf658d4c559c2d39 files/digest-gcc-3.3.1-r5 361
+MD5 f48105f24e5c714530e66a94aa56d615 files/digest-gcc-3.3.2-r2 361
+MD5 f48105f24e5c714530e66a94aa56d615 files/digest-gcc-3.3.2-r3 361
+MD5 e58b6c1f3122b79a5d0d273acc3c008c files/digest-gcc-3.3.2-r7 361
+MD5 35f63854b7b4d5ab1ed1489e517f8e24 files/digest-gcc-3.3.3 361
+MD5 3fd5a29d44b89f4fb220fccaa968fc05 files/digest-gcc-3.3.3-r6 442
+MD5 e962c23dd4396850f0e36424ec5596d7 files/digest-gcc-3.3.3_pre20040408-r1 138
+MD5 fc48a7567c14adcfeed10b5e03b4ebf6 files/digest-gcc-3.4.1 355
+MD5 c6ea8a92bac6d2638c54c011f98bc5b8 files/digest-gcc-3.4.1-r2 442
+MD5 c6ea8a92bac6d2638c54c011f98bc5b8 files/digest-gcc-3.4.1-r3 442
MD5 b1a242694f56184cbcdd40ba25800d50 files/2.95.3/gcc-2.95.3-alpha.diff 14345
MD5 523970c128b929fe7c7cf36508ebd1d5 files/2.95.3/gcc-2.95.3-new-atexit.diff 13604
MD5 8ec9b0352d226e4693cabffe0fa5bba6 files/3.2.1/gcc31-loop-load-final-value.patch 3324
diff --git a/sys-devel/gcc/files/digest-gcc-3.4.2-r3 b/sys-devel/gcc/files/digest-gcc-3.4.2-r3
new file mode 100644
index 000000000000..5a8ae8a5a7b6
--- /dev/null
+++ b/sys-devel/gcc/files/digest-gcc-3.4.2-r3
@@ -0,0 +1,7 @@
+MD5 2fada3a3effd2fd791df09df1f1534b3 gcc-3.4.2.tar.bz2 27246826
+MD5 bae3b2b187d5d0d529f77fd768bd7782 gcc-3.4.2-branch-update-20041025.patch.bz2 623098
+MD5 ccb950ac035c057bbc766426756072d2 protector-3.4.1-1.tar.gz 33860
+MD5 bdec16a59f044190fa51e28cae30da34 gcc-3.4.2-manpages.tar.bz2 202762
+MD5 72fe154f6fcac567969de5f43db85444 gcc-3.4.2-patches-1.2.tar.bz2 46227
+MD5 c6d950e8f61cbac4590061a116669b56 gcc-3.4.0-piepatches-v8.7.6.5.tar.bz2 16392
+MD5 b1040fff7d8cd069347080b8ec3e87b7 bounds-checking-gcc-3.4.2-1.00.patch.bz2 815369
diff --git a/sys-devel/gcc/gcc-3.4.2-r3.ebuild b/sys-devel/gcc/gcc-3.4.2-r3.ebuild
new file mode 100644
index 000000000000..11a7f0c3b6f7
--- /dev/null
+++ b/sys-devel/gcc/gcc-3.4.2-r3.ebuild
@@ -0,0 +1,463 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.4.2-r3.ebuild,v 1.1 2004/10/26 02:27:04 lv Exp $
+
+IUSE="static nls bootstrap build multilib gcj gtk f77 objc hardened uclibc n32 n64 boundschecking"
+
+inherit eutils flag-o-matic libtool gnuconfig toolchain
+
+DESCRIPTION="The GNU Compiler Collection. Includes C/C++, java compilers, pie+ssp extensions, Haj Ten Brugge runtime bounds checking"
+HOMEPAGE="http://www.gnu.org/software/gcc/gcc.html"
+LICENSE="GPL-2 LGPL-2.1"
+
+#KEYWORDS="-* ~amd64 ~mips ~ppc64 ~x86 -hppa -ppc"
+KEYWORDS="-*"
+
+# we need a proper glibc version for the Scrt1.o provided to the pie-ssp specs
+# we also need at least glibc 2.3.3 20040420-r1 in order for gcc 3.4 not to nuke
+# SSP in glibc.
+
+# NOTE: we SHOULD be using at least binutils 2.15.90.0.1 everywhere for proper
+# .eh_frame ld optimisation and symbol visibility support, but it hasnt been
+# well tested in gentoo on any arch other than amd64!!
+DEPEND="virtual/libc
+ !uclibc? ( >=sys-libs/glibc-2.3.3_pre20040420-r1 )
+ !uclibc? ( hardened? ( >=sys-libs/glibc-2.3.3_pre20040529 ) )
+ ( !sys-devel/hardened-gcc )
+ >=sys-devel/binutils-2.14.90.0.8-r1
+ amd64? ( >=sys-devel/binutils-2.15.90.0.1.1-r1 )
+ >=sys-devel/bison-1.875
+ >=sys-devel/gcc-config-1.3.1
+ amd64? ( multilib? ( >=app-emulation/emul-linux-x86-glibc-1.1 ) )
+ !build? ( gcj? ( gtk? ( >=x11-libs/gtk+-2.2 ) ) )
+ !build? ( gcj? ( >=media-libs/libart_lgpl-2.1 ) )
+ !build? ( >=sys-libs/ncurses-5.2-r2
+ nls? ( sys-devel/gettext ) )"
+
+RDEPEND="virtual/libc
+ !uclibc? ( >=sys-libs/glibc-2.3.3_pre20040420-r1 )
+ !uclibc? ( hardened? ( >=sys-libs/glibc-2.3.3_pre20040529 ) )
+ >=sys-devel/gcc-config-1.3.6-r3
+ amd64? ( multilib? ( >=app-emulation/emul-linux-x86-glibc-1.1 ) )
+ >=sys-libs/zlib-1.1.4
+ >=sys-apps/texinfo-4.2-r4
+ !build? ( >=sys-libs/ncurses-5.2-r2 )"
+
+PDEPEND="sys-devel/gcc-config
+ !n32? ( !n64? ( !uclibc? ( !build ( sys-libs/libstdc++-v3 ) ) ) )"
+
+GENTOO_TOOLCHAIN_BASE_URI="http://dev.gentoo.org/~lv/GCC/"
+BRANCH_UPDATE="20041025"
+PATCH_VER="1.2"
+PIE_VER="8.7.6.5"
+PIE_CORE="gcc-3.4.0-piepatches-v${PIE_VER}.tar.bz2"
+PP_VER="3_4_1"
+PP_FVER="${PP_VER//_/.}-1"
+HTB_VER="1.00"
+SRC_URI="$(get_gcc_src_uri)"
+S="$(gcc_get_s_dir)"
+
+ETYPE="gcc-compiler"
+
+#PIEPATCH_EXCLUDE="upstream/04_all_gcc-3.4.0-v8.7.6.1-pie-arm-uclibc.patch.bz2"
+HARDENED_GCC_WORKS="x86 sparc amd64"
+SPLIT_SPECS="${SPLIT_SPECS:="true"}"
+
+
+# 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)
+gcc_do_filter_flags() {
+ strip-flags
+
+ # In general gcc does not like optimization, and add -O2 where
+ # it is safe. This is especially true for gcc 3.3 + 3.4
+ replace-flags -O? -O2
+
+ # -mcpu is deprecated on these archs, and possibly others
+ if use amd64 || use x86 ; then
+ setting="`get-flag mcpu`"
+ [ ! -z "${setting}" ] && \
+ replace-flags -mcpu="${setting}" -mtune="${setting}" && \
+ ewarn "-mcpu is deprecated on your arch\a\a\a" && \
+ epause 5
+ fi
+
+ strip-unsupported-flags
+
+ # If we use multilib on mips, we shouldn't pass -mabi flag - it breaks
+ # build of non-default-abi libraries.
+ use mips && use multilib && filter-flags "-mabi*"
+
+ # Compile problems with these (bug #6641 among others)...
+ #filter-flags "-fno-exceptions -fomit-frame-pointer -fforce-addr"
+
+ export GCJFLAGS="${CFLAGS}"
+}
+
+
+chk_gcc_version() {
+ # This next bit is for updating libtool linker scripts ...
+ local OLD_GCC_VERSION="`gcc -dumpversion`"
+ local OLD_GCC_CHOST="$(gcc -v 2>&1 | egrep '^Reading specs' |\
+ sed -e 's:^.*/gcc[^/]*/\([^/]*\)/[0-9]\+.*$:\1:')"
+
+ if [ "${OLD_GCC_VERSION}" != "${MY_PV_FULL}" ]
+ then
+ echo "${OLD_GCC_VERSION}" > "${WORKDIR}/.oldgccversion"
+ fi
+
+ if [ -n "${OLD_GCC_CHOST}" ]
+ then
+ if [ "${CHOST}" = "${CTARGET}" -a "${OLD_GCC_CHOST}" != "${CHOST}" ]
+ then
+ echo "${OLD_GCC_CHOST}" > "${WORKDIR}/.oldgccchost"
+ fi
+ fi
+
+ # Did we check the version ?
+ touch "${WORKDIR}/.chkgccversion"
+}
+
+src_unpack() {
+ # if sandbox is enabled, and multilib is enabled, but we dont have a 32bit
+ # sandbox... installing gcc will fail as soon as it starts configuring the
+ # 32bit libstdc++. not fun.
+ if use amd64 && use multilib && hasq sandbox $FEATURES && [ ! -e /lib32/libsandbox.so ] ; then
+ eerror "You need a 32bit sandbox to install 32bit code with sandbox"
+ eerror "enabled. Either add FEATURES=-sandbox or disable multilib."
+ eerror "After installing a multilib gcc, you can re-emerge portage"
+ eerror "to get a 32bit sandbox, and this problem will go away."
+ ebeep
+ die "no 32bit sandbox"
+ fi
+
+ gcc_src_unpack
+
+ # misc patches that havent made it into a patch tarball yet
+ epatch ${FILESDIR}/3.4.0/gcc34-reiser4-fix.patch
+ epatch ${FILESDIR}/gcc-spec-env.patch
+
+ # If mips, and we DON'T want multilib, then rig gcc to only use n32 OR n64
+ if use mips && use !multilib; then
+ use n32 && epatch ${FILESDIR}/3.4.1/gcc-3.4.1-mips-n32only.patch
+ use n64 && epatch ${FILESDIR}/3.4.1/gcc-3.4.1-mips-n64only.patch
+ fi
+
+ # Patch forward-ported from a gcc-3.0.x patch that adds -march=r10000 and
+ # -mtune=r10000 support to gcc (Allows the compiler to generate code to
+ # take advantage of R10k's second ALU, perform shifts, etc..
+ # Needs re-porting for DFA in gcc-4.0
+ if use mips; then
+ epatch ${FILESDIR}/3.4.2/gcc-3.4.x-mips-add-march-r10k.patch
+ fi
+
+ # hack around some ugly 32bit sse2 wrong-code bugs
+ epatch ${FILESDIR}/3.4.2/gcc34-m32-no-sse2.patch
+ epatch ${FILESDIR}/3.4.2/gcc34-fix-sse2_pinsrw.patch
+
+ if use amd64 && use multilib ; then
+ # this should hack around the GCC_NO_EXECUTABLES bug
+ epatch ${FILESDIR}/3.4.1/gcc-3.4.1-glibc-is-native.patch
+ cd ${S}/libstdc++-v3
+ einfo "running autoreconf..."
+ autoreconf 2> /dev/null
+ cd ${S}
+ fi
+}
+
+
+src_install() {
+ local x=
+
+ # Do allow symlinks in ${LOC}/lib/gcc-lib/${CHOST}/${PV}/include as
+ # this can break the build.
+ for x in ${WORKDIR}/build/gcc/include/*
+ do
+ if [ -L ${x} ]
+ then
+ rm -f ${x}
+ continue
+ fi
+ done
+ # Remove generated headers, as they can cause things to break
+ # (ncurses, openssl, etc).
+ for x in `find ${WORKDIR}/build/gcc/include/ -name '*.h'`
+ do
+ if grep -q 'It has been auto-edited by fixincludes from' ${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 DESTDIR="${D}" install || die
+
+ [ -r ${D}${BINPATH}/gcc ] || die "gcc not found in ${D}"
+
+ create_gcc_multilib_scripts
+
+ if [ "${SPLIT_SPECS}" == "true" ] ; then
+ cp ${WORKDIR}/build/*.specs ${D}/${LIBPATH}
+ fi
+
+ # Because GCC 3.4 installs into the gcc directory and not the gcc-lib
+ # directory, we will have to rename it in order to keep compatibility
+ # with our current libtool check and gcc-config (which would be a pain
+ # to fix compared to this simple mv and symlink).
+ mv ${D}/${PREFIX}/lib/gcc ${D}/${PREFIX}/lib/gcc-lib
+ ln -s gcc-lib ${D}/${PREFIX}/lib/gcc
+ LIBPATH=${LIBPATH/lib\/gcc/lib\/gcc-lib}
+
+ dodir /lib /usr/bin
+ dodir /etc/env.d/gcc
+ create_gcc_env_entry
+
+ if [ "${SPLIT_SPECS}" == "true" ] ; then
+ if use hardened ; then
+ create_gcc_env_entry vanilla
+ else
+ create_gcc_env_entry hardened
+ fi
+ create_gcc_env_entry hardenednossp
+ fi
+
+ # Make sure we dont have stuff lying around that
+ # can nuke multiple versions of gcc
+ if ! use build
+ then
+ cd ${D}${LIBPATH}
+
+ # Tell libtool files where real libraries are
+ for x in ${D}${LOC}/lib/*.la ${D}${LIBPATH}/../*.la
+ do
+ if [ -f "${x}" ]
+ then
+ sed -i -e "s:/usr/lib:${LIBPATH}:" ${x}
+ mv ${x} ${D}${LIBPATH}
+ fi
+ done
+
+ # Move all the libraries to version specific libdir.
+ for x in ${D}${PREFIX}/lib/*.{so,a}* ${D}${LIBPATH}/../*.{so,a}*
+ do
+ [ -f "${x}" -o -L "${x}" ] && mv -f ${x} ${D}${LIBPATH}
+ done
+
+ # Move Java headers to compiler-specific dir
+ for x in ${D}${PREFIX}/include/gc*.h ${D}${PREFIX}/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}${PREFIX}/include/${x}" ]
+ then
+ dodir /${LIBPATH}/include/${x}
+ mv -f ${D}${PREFIX}/include/${x}/* ${D}${LIBPATH}/include/${x}/
+ rm -rf ${D}${PREFIX}/include/${x}
+ fi
+ done
+
+ if [ -d "${D}${PREFIX}/lib/security" ]
+ then
+ dodir /${LIBPATH}/security
+ mv -f ${D}${PREFIX}/lib/security/* ${D}${LIBPATH}/security
+ rm -rf ${D}${PREFIX}/lib/security
+ fi
+
+ # Move libgcj.spec to compiler-specific directories
+ [ -f "${D}${PREFIX}/lib/libgcj.spec" ] && \
+ mv -f ${D}${PREFIX}/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}${PREFIX}/${CTARGET}/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}
+ for x in gcc g++ c++ g77 gcj
+ do
+ rm -f ${CTARGET}-${x}
+ [ -f "${x}" ] && ln -sf ${x} ${CTARGET}-${x}
+
+ if [ -f "${CTARGET}-${x}-${PV}" ]
+ then
+ rm -f ${CTARGET}-${x}-${PV}
+ ln -sf ${x} ${CTARGET}-${x}-${PV}
+ fi
+ done
+ fi
+
+ # This one comes with binutils
+ if [ -f "${D}${PREFIX}/lib/libiberty.a" ]
+ then
+ rm -f ${D}${PREFIX}/lib/libiberty.a
+ fi
+ if [ -f "${D}${LIBPATH}/libiberty.a" ]
+ then
+ rm -f ${D}${LIBPATH}/libiberty.a
+ fi
+
+ [ -e ${D}/${PREFIX}/lib/32 ] && rm -rf ${D}/${PREFIX}/lib/32
+
+ cd ${S}
+ if ! use build
+ then
+ cd ${S}
+ docinto /${CTARGET}
+ dodoc COPYING COPYING.LIB ChangeLog* FAQ MAINTAINERS README
+ docinto ${CTARGET}/html
+ dohtml *.html
+ cd ${S}/boehm-gc
+ docinto ${CTARGET}/boehm-gc
+ dodoc ChangeLog doc/{README*,barrett_diagram}
+ docinto ${CTARGET}/boehm-gc/html
+ dohtml doc/*.html
+ cd ${S}/gcc
+ docinto ${CTARGET}/gcc
+ dodoc ChangeLog* FSFChangeLog* LANGUAGES NEWS ONEWS README* SERVICE
+ if use f77
+ then
+ cd ${S}/libf2c
+ docinto ${CTARGET}/libf2c
+ dodoc ChangeLog* README TODO *.netlib
+ fi
+ cd ${S}/libffi
+ docinto ${CTARGET}/libffi
+ dodoc ChangeLog* LICENSE README
+ cd ${S}/libiberty
+ docinto ${CTARGET}/libiberty
+ dodoc ChangeLog* COPYING.LIB README
+ if use objc
+ then
+ cd ${S}/libobjc
+ docinto ${CTARGET}/libobjc
+ dodoc ChangeLog* README* THREADS*
+ fi
+ cd ${S}/libstdc++-v3
+ docinto ${CTARGET}/libstdc++-v3
+ dodoc ChangeLog* README
+ docinto ${CTARGET}/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 use gcj
+ then
+ cd ${S}/fastjar
+ docinto ${CTARGET}/fastjar
+ dodoc AUTHORS CHANGES COPYING ChangeLog* NEWS README
+ cd ${S}/libjava
+ docinto ${CTARGET}/libjava
+ dodoc ChangeLog* COPYING HACKING LIBGCJ_LICENSE NEWS README THANKS
+ fi
+
+ prepman ${DATAPATH}
+ prepinfo ${DATAPATH}
+ else
+ rm -rf ${D}/usr/share/{man,info}
+ rm -rf ${D}${DATAPATH}/{man,info}
+ fi
+
+ # Rather install the script, else portage with changing $FILESDIR
+ # between binary and source package borks things ....
+ insinto /lib/rcscripts/awk
+ doins ${FILESDIR}/awk/fixlafiles.awk
+ exeinto /sbin
+ doexe ${FILESDIR}/fix_libtool_files.sh
+
+ # we dont want these in freaky non-versioned paths that dont ever get used
+ if [ -d ${D}/${LIBPATH}/../$(get_libdir) ] ; then
+ mv ${D}/${LIBPATH}/../$(get_libdir)/* ${D}/${LIBPATH}/
+ rm -rf ${D}/${LIBPATH}/../$(get_libdir)/
+ fi
+ if [ -d ${D}/${LIBPATH}/../$(get_multilibdir) ] ; then
+ local multilibdir=$(get_multilibdir)
+ mv ${D}/${LIBPATH}/../$(get_multilibdir)/* \
+ ${D}/${LIBPATH}/${multilibdir/lib}/
+ rm -rf ${D}/${LIBPATH}/../$(get_multilibdir)/
+ fi
+}
+
+pkg_preinst() {
+
+ if [ ! -f "${WORKDIR}/.chkgccversion" ]
+ then
+ chk_gcc_version
+ fi
+
+ # Make again sure that the linker "should" be able to locate
+ # libstdc++.so ...
+ if use multilib && [ "${ARCH}" = "amd64" ]
+ then
+ # Can't always find libgcc_s.so.1, make it find it
+ export LD_LIBRARY_PATH="${LIBPATH}:${LIBPATH}/../lib64:${LIBPATH}/../lib32:${LD_LIBRARY_PATH}"
+ else
+ export LD_LIBRARY_PATH="${LIBPATH}:${LD_LIBRARY_PATH}"
+ fi
+ ${ROOT}/sbin/ldconfig
+}
+
+pkg_postinst() {
+
+ if use multilib && [ "${ARCH}" = "amd64" ]
+ then
+ # Can't always find libgcc_s.so.1, make it find it
+ export LD_LIBRARY_PATH="${LIBPATH}:${LIBPATH}/../lib64:${LIBPATH}/../lib32:${LD_LIBRARY_PATH}"
+ else
+ export LD_LIBRARY_PATH="${LIBPATH}:${LD_LIBRARY_PATH}"
+ fi
+
+ do_gcc_config
+
+ # Update libtool linker scripts to reference new gcc version ...
+ if [ "${ROOT}" = "/" ] && \
+ [ -f "${WORKDIR}/.oldgccversion" -o -f "${WORKDIR}/.oldgccchost" ]
+ then
+ local OLD_GCC_VERSION=
+ local OLD_GCC_CHOST=
+
+ if [ -f "${WORKDIR}/.oldgccversion" ] && \
+ [ -n "$(cat "${WORKDIR}/.oldgccversion")" ]
+ then
+ OLD_GCC_VERSION="$(cat "${WORKDIR}/.oldgccversion")"
+ else
+ OLD_GCC_VERSION="${MY_PV_FULL}"
+ fi
+
+ if [ -f "${WORKDIR}/.oldgccchost" ] && \
+ [ -n "$(cat "${WORKDIR}/.oldgccchost")" ]
+ then
+ OLD_GCC_CHOST="--oldarch $(cat "${WORKDIR}/.oldgccchost")"
+ fi
+
+ /sbin/fix_libtool_files.sh ${OLD_GCC_VERSION} ${OLD_GCC_CHOST}
+ fi
+}
+