summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys-devel/gcc/ChangeLog23
-rw-r--r--sys-devel/gcc/files/digest-gcc-2.95.3-r81
-rw-r--r--sys-devel/gcc/files/digest-gcc-3.21
-rw-r--r--sys-devel/gcc/files/digest-gcc-3.2-r22
-rw-r--r--sys-devel/gcc/files/digest-gcc-3.2-r31
-rw-r--r--sys-devel/gcc/files/digest-gcc-3.2-r42
-rw-r--r--sys-devel/gcc/files/digest-gcc-3.2-r52
-rw-r--r--sys-devel/gcc/gcc-2.95.3-r8.ebuild325
-rw-r--r--sys-devel/gcc/gcc-3.2-r4.ebuild (renamed from sys-devel/gcc/gcc-3.2-r2.ebuild)50
-rw-r--r--sys-devel/gcc/gcc-3.2-r5.ebuild (renamed from sys-devel/gcc/gcc-3.2-r3.ebuild)75
-rw-r--r--sys-devel/gcc/gcc-3.2.ebuild373
11 files changed, 454 insertions, 401 deletions
diff --git a/sys-devel/gcc/ChangeLog b/sys-devel/gcc/ChangeLog
index 19ca8ec0d093..cf8a0e4ff644 100644
--- a/sys-devel/gcc/ChangeLog
+++ b/sys-devel/gcc/ChangeLog
@@ -1,8 +1,27 @@
# ChangeLog for sys-devel/gcc
# Copyright 2002 Gentoo Technologies, Inc.; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.37 2002/10/27 22:55:40 azarah Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.38 2002/11/10 15:19:55 azarah Exp $
-*gcc-3.2-r8 (28 Oct 2002)
+*gcc-3.2-r5 (10 Oct 2002)
+
+ 10 Nov 2002; Martin Schlemmer <azarah@gentoo.org> :
+
+ New multi version/arch version. Updated with patches
+ from Mandrake/Redhat/Suse. Have SLOT=$PV if CCHOST=CHOST.
+
+*gcc-3.2-r4 (10 Oct 2002)
+
+ 10 Nov 2002; Martin Schlemmer <azarah@gentoo.org> :
+
+ Updated with patches from Mandrake/Redhat/Suse.
+
+*gcc-2.95.3-r8 (10 Oct 2002)
+
+ 10 Nov 2002; Martin Schlemmer <azarah@gentoo.org> :
+
+ New multi version/arch version.
+
+*gcc-3.2-r3 (28 Oct 2002)
28 Oct 2002; Martin Schlemmer <azarah@gentoo.org> gcc-3.2-r3.ebuild :
diff --git a/sys-devel/gcc/files/digest-gcc-2.95.3-r8 b/sys-devel/gcc/files/digest-gcc-2.95.3-r8
new file mode 100644
index 000000000000..c6940932e4ef
--- /dev/null
+++ b/sys-devel/gcc/files/digest-gcc-2.95.3-r8
@@ -0,0 +1 @@
+MD5 f3ad4f32c2296fad758ed051b5ac8e28 gcc-2.95.3.tar.gz 12911721
diff --git a/sys-devel/gcc/files/digest-gcc-3.2 b/sys-devel/gcc/files/digest-gcc-3.2
deleted file mode 100644
index 193f110de654..000000000000
--- a/sys-devel/gcc/files/digest-gcc-3.2
+++ /dev/null
@@ -1 +0,0 @@
-MD5 13f289fff789927b9b798bf37552019c gcc-3.2.tar.bz2 20523950
diff --git a/sys-devel/gcc/files/digest-gcc-3.2-r2 b/sys-devel/gcc/files/digest-gcc-3.2-r2
deleted file mode 100644
index 6fba20169199..000000000000
--- a/sys-devel/gcc/files/digest-gcc-3.2-r2
+++ /dev/null
@@ -1,2 +0,0 @@
-MD5 13f289fff789927b9b798bf37552019c gcc-3.2.tar.bz2 20523950
-MD5 1173ec48529d2d49d0243027b399129d gcc-3.2-patches-1.0.tbz2 81614
diff --git a/sys-devel/gcc/files/digest-gcc-3.2-r3 b/sys-devel/gcc/files/digest-gcc-3.2-r3
deleted file mode 100644
index 193f110de654..000000000000
--- a/sys-devel/gcc/files/digest-gcc-3.2-r3
+++ /dev/null
@@ -1 +0,0 @@
-MD5 13f289fff789927b9b798bf37552019c gcc-3.2.tar.bz2 20523950
diff --git a/sys-devel/gcc/files/digest-gcc-3.2-r4 b/sys-devel/gcc/files/digest-gcc-3.2-r4
new file mode 100644
index 000000000000..cae83304b185
--- /dev/null
+++ b/sys-devel/gcc/files/digest-gcc-3.2-r4
@@ -0,0 +1,2 @@
+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/files/digest-gcc-3.2-r5 b/sys-devel/gcc/files/digest-gcc-3.2-r5
new file mode 100644
index 000000000000..cae83304b185
--- /dev/null
+++ b/sys-devel/gcc/files/digest-gcc-3.2-r5
@@ -0,0 +1,2 @@
+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-2.95.3-r8.ebuild b/sys-devel/gcc/gcc-2.95.3-r8.ebuild
new file mode 100644
index 000000000000..2dfc47ee58c2
--- /dev/null
+++ b/sys-devel/gcc/gcc-2.95.3-r8.ebuild
@@ -0,0 +1,325 @@
+# Copyright 1999-2002 Gentoo Technologies, Inc.
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-2.95.3-r8.ebuild,v 1.1 2002/11/10 15:19:55 azarah Exp $
+
+IUSE="static nls bootstrap java build"
+
+inherit 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
+
+# Are we trying to compile with gcc3 ? CFLAGS and CXXFLAGS needs to be
+# valid for gcc-2.95.3 ...
+gcc2_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++/, but in gcc internal directory.
+# We will handle /usr/include/g++/ with gcc-config ...
+STDCXX_INCDIR="${LIBPATH}/include/g++"
+
+S="${WORKDIR}/${P}"
+DESCRIPTION="Modern C/C++ compiler written by the GNU people"
+SRC_URI="ftp://gcc.gnu.org/pub/gcc/releases/${P}/${P}.tar.gz"
+HOMEPAGE="http://www.gnu.org/software/gcc/gcc.html"
+
+LICENSE="GPL-2 LGPL-2.1"
+KEYWORDS="~x86 ~ppc ~sparc ~sparc64 ~alpha"
+
+# 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=""
+
+pkg_setup() {
+ echo
+ eerror "This is a very alpha ebuild and changes in here"
+ eerror "are not yet set in stone! Please do NOT merge"
+ eerror "this if you are not a developer!"
+ die
+}
+
+src_unpack() {
+ unpack ${P}.tar.gz
+
+ cd ${S}
+ # Fixup libtool to correctly generate .la files with portage
+ libtoolize --copy --force &> /dev/null
+
+ # This new patch for the atexit problem occured with glibc-2.2.3 should
+ # work with glibc-2.2.4. This closes bug #3987 and #4004.
+ #
+ # Azarah - 29 Jun 2002
+ #
+ # http://archive.linuxfromscratch.org/mail-archives/lfs-dev/2001/08/0476.html
+ # http://archive.linuxfromscratch.org/mail-archives/lfs-dev/2001/08/0589.html
+ #
+ #
+ # Something to note, is that this patch makes gcc crash if its given
+ # the "-mno-ieee-fp" flag ... libvorbis is an good example of this.
+ # This however is on of those which one we want fixed most cases :/
+ #
+ # Azarah - 30 Jun 2002
+ #
+ einfo "Applying new-atexit patch..."
+ patch -l -p1 < ${FILESDIR}/${P}-new-atexit.diff > /dev/null || die
+
+ # 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=${includedir}:gxx_include_dir=$(FAKE_ROOT)${includedir}:' \
+ ${x}.orig > ${x}
+
+ rm -f ${x}.orig
+ done
+}
+
+src_compile() {
+ local myconf=""
+ 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
+
+ # 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-threads=posix \
+ --enable-long-long \
+ --enable-version-specific-runtime-libs \
+ --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}" 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}" 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}
+
+ # Dummies to get CONTENTS right .. will handle with gcc-config
+ touch ${D}/lib/cpp
+ touch ${D}/usr/bin/cc
+
+ # 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
+
+ # 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 /
+ dodoc COPYING COPYING.LIB README* FAQ MAINTAINERS
+ docinto html
+ dodoc faq.html
+ docinto gcc
+ cd ${S}/gcc
+ dodoc BUGS ChangeLog* COPYING* FSFChangeLog* LANGUAGES NEWS PROBLEMS README* SERVICE TESTS.FLUNK
+ cd ${S}/libchill
+ docinto libchill
+ dodoc ChangeLog
+ cd ${S}/libf2c
+ docinto libf2c
+ dodoc ChangeLog changes.netlib README TODO
+ cd ${S}/libio
+ docinto libio
+ dodoc ChangeLog NEWS README
+ cd dbz
+ docinto libio/dbz
+ dodoc README
+ cd ../stdio
+ docinto libio/stdio
+ dodoc ChangeLog*
+ cd ${S}/libobjc
+ docinto libobjc
+ dodoc ChangeLog README* THREADS*
+ cd ${S}/libstdc++
+ docinto libstdc++
+ dodoc ChangeLog NEWS
+ else
+ rm -rf ${D}/usr/share/{man,info}
+ fi
+}
+
+pkg_postinst() {
+
+ if [ "${ROOT}" = "/" -a "${COMPILER}" != "gcc3" ]
+ then
+ gcc-config --use-portage-chost ${CCHOST}-${MY_PV_FULL}
+ fi
+}
+
diff --git a/sys-devel/gcc/gcc-3.2-r2.ebuild b/sys-devel/gcc/gcc-3.2-r4.ebuild
index 0c7606ec864c..e4f1fda7c905 100644
--- a/sys-devel/gcc/gcc-3.2-r2.ebuild
+++ b/sys-devel/gcc/gcc-3.2-r4.ebuild
@@ -1,6 +1,6 @@
# Copyright 1999-2002 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-r2.ebuild,v 1.1 2002/10/20 05:41:57 azarah Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.2-r4.ebuild,v 1.1 2002/11/10 15:19:55 azarah Exp $
IUSE="static nls bootstrap java build"
@@ -46,7 +46,8 @@ SNAPSHOT=""
if [ -z "${SNAPSHOT}" ]
then
S="${WORKDIR}/${P}"
- SRC_URI="ftp://gcc.gnu.org/pub/gcc/releases/${P}/${P}.tar.bz2"
+ SRC_URI="ftp://gcc.gnu.org/pub/gcc/releases/${P}/${P}.tar.bz2
+ mirror://gentoo/distfiles/${P}-patches-1.0.tar.bz2"
else
S="${WORKDIR}/gcc-${SNAPSHOT//-}"
SRC_URI="ftp://sources.redhat.com/pub/gcc/snapshots/${SNAPSHOT}/gcc-${SNAPSHOT//-}.tar.bz2"
@@ -95,7 +96,7 @@ FAKE_ROOT=""
src_unpack() {
if [ -z "${SNAPSHOT}" ]
then
- unpack ${P}.tar.bz2
+ unpack ${P}.tar.bz2 ${P}-patches-1.0.tar.bz2
else
unpack gcc-${SNAPSHOT//-}.tar.bz2
fi
@@ -104,6 +105,38 @@ src_unpack() {
# Fixup libtool to correctly generate .la files with portage
elibtoolize --portage --shallow
+ # Various patches from all over
+ cd ${S}; einfo "Applying various patches (bugfixes/updates)..."
+ for x in ${WORKDIR}/patch/*.patch.bz2
+ do
+ # New ARCH dependant patch naming scheme...
+ #
+ # ???_arch_foo.patch
+ #
+ if [ -f ${x} ] && \
+ [ "${x/_all_}" != "${x}" -o "`eval echo \$\{x/_${ARCH}_\}`" != "${x}" ]
+ then
+ local count=0
+ local popts="-l"
+
+ einfo " ${x##*/}..."
+
+ # Most -p differ for these patches ... im lazy, so shoot me :/
+ while [ "${count}" -lt 5 ]
+ do
+ if bzip2 -dc ${x} | patch ${popts} --dry-run -f -p${count} > /dev/null
+ then
+ bzip2 -dc ${x} | patch ${popts} -p${count} > /dev/null
+ break
+ fi
+
+ count=$((count + 1))
+ done
+
+ [ "${count}" -eq 5 ] && die "Failed Patch: ${x##*/}!"
+ fi
+ done
+
# 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
@@ -119,13 +152,16 @@ src_unpack() {
#
# http://archive.linuxfromscratch.org/mail-archives/lfs-dev/2002/08/0588.html
#
- patch -p1 < ${FILESDIR}/${PV}/${P}.fix-copy.patch || die
- patch -p1 < ${FILESDIR}/${PV}/${P}.fix-var.patch || die
+ einfo "Applying fix-copy and fix-var patches..."
+ patch -p1 < ${FILESDIR}/${PV}/${P}.fix-copy.patch > /dev/null || die
+ patch -p1 < ${FILESDIR}/${PV}/${P}.fix-var.patch > /dev/null || die
# Fixes to get gcc to compile under glibc-2.3*
- patch -p1 < ${FILESDIR}/${PV}/${P}-glibc-2.3-compat.diff || die
+ einfo "Applying glibc-2.3-compat patch..."
+ patch -p1 < ${FILESDIR}/${PV}/${P}-glibc-2.3-compat.diff > /dev/null || die
# This one is thanks to cretin@gentoo.org
- patch -p1 < ${FILESDIR}/${PV}/${P}.ctype.patch || die
+ einfo "Applying gcc-3.2-ctype patch..."
+ patch -p1 < ${FILESDIR}/${PV}/${P}.ctype.patch > /dev/null || die
# Currently if any path is changed via the configure script, it breaks
# installing into ${D}. We should not patch it in src_install() with
diff --git a/sys-devel/gcc/gcc-3.2-r3.ebuild b/sys-devel/gcc/gcc-3.2-r5.ebuild
index d954f62fa394..ef57d4b4b788 100644
--- a/sys-devel/gcc/gcc-3.2-r3.ebuild
+++ b/sys-devel/gcc/gcc-3.2-r5.ebuild
@@ -1,12 +1,9 @@
# Copyright 1999-2002 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-r3.ebuild,v 1.1 2002/10/27 22:55:40 azarah Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-3.2-r5.ebuild,v 1.1 2002/11/10 15:19:55 azarah Exp $
IUSE="static nls bootstrap java build"
-# NOTE TO MAINTAINER: Info pages get nuked for multiple version installs.
-# Ill fix it later if i get a chance.
-
inherit flag-o-matic libtool
# Compile problems with these (bug #6641 among others)...
@@ -55,7 +52,8 @@ SNAPSHOT=""
if [ -z "${SNAPSHOT}" ]
then
S="${WORKDIR}/${P}"
- SRC_URI="ftp://gcc.gnu.org/pub/gcc/releases/${P}/${P}.tar.bz2"
+ SRC_URI="ftp://gcc.gnu.org/pub/gcc/releases/${P}/${P}.tar.bz2
+ mirror://gentoo/distfiles/${P}-patches-1.0.tar.bz2"
else
S="${WORKDIR}/gcc-${SNAPSHOT//-}"
SRC_URI="ftp://sources.redhat.com/pub/gcc/snapshots/${SNAPSHOT}/gcc-${SNAPSHOT//-}.tar.bz2"
@@ -65,16 +63,26 @@ 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"
-SLOT="${CCHOST}-${MY_PV}"
KEYWORDS="~x86 ~ppc ~sparc ~sparc64 ~alpha"
+# 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
+ >=sys-devel/gcc-config-1.2
!build? ( >=sys-libs/ncurses-5.2-r2
nls? ( sys-devel/gettext ) )"
RDEPEND="virtual/glibc
- sys-devel/gcc-config
+ >=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 )"
@@ -94,7 +102,7 @@ pkg_setup() {
src_unpack() {
if [ -z "${SNAPSHOT}" ]
then
- unpack ${P}.tar.bz2
+ unpack ${P}.tar.bz2 ${P}-patches-1.0.tar.bz2
else
unpack gcc-${SNAPSHOT//-}.tar.bz2
fi
@@ -103,6 +111,37 @@ src_unpack() {
# Fixup libtool to correctly generate .la files with portage
elibtoolize --portage --shallow
+ cd ${S}; einfo "Applying various patches (bugfixes/updates)..."
+ for x in ${WORKDIR}/patch/*.patch.bz2
+ do
+ # New ARCH dependant patch naming scheme...
+ #
+ # ???_arch_foo.patch
+ #
+ if [ -f ${x} ] && \
+ [ "${x/_all_}" != "${x}" -o "`eval echo \$\{x/_${ARCH}_\}`" != "${x}" ]
+ then
+ local count=0
+ local popts="-l"
+
+ einfo " ${x##*/}..."
+
+ # Most -p differ for these patches ... im lazy, so shoot me :/
+ while [ "${count}" -lt 5 ]
+ do
+ if bzip2 -dc ${x} | patch ${popts} --dry-run -f -p${count} > /dev/null
+ then
+ bzip2 -dc ${x} | patch ${popts} -p${count} > /dev/null
+ break
+ fi
+
+ count=$((count + 1))
+ done
+
+ [ "${count}" -eq 5 ] && die "Failed Patch: ${x##*/}!"
+ fi
+ done
+
# 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
@@ -118,13 +157,16 @@ src_unpack() {
#
# http://archive.linuxfromscratch.org/mail-archives/lfs-dev/2002/08/0588.html
#
- patch -p1 < ${FILESDIR}/${PV}/${P}.fix-copy.patch || die
- patch -p1 < ${FILESDIR}/${PV}/${P}.fix-var.patch || die
+ einfo "Applying fix-copy and fix-var patches..."
+ patch -p1 < ${FILESDIR}/${PV}/${P}.fix-copy.patch > /dev/null || die
+ patch -p1 < ${FILESDIR}/${PV}/${P}.fix-var.patch > /dev/null || die
# Fixes to get gcc to compile under glibc-2.3*
- patch -p1 < ${FILESDIR}/${PV}/${P}-glibc-2.3-compat.diff || die
+ einfo "Applying glibc-2.3-compat patch..."
+ patch -p1 < ${FILESDIR}/${PV}/${P}-glibc-2.3-compat.diff > /dev/null || die
# This one is thanks to cretin@gentoo.org
- patch -p1 < ${FILESDIR}/${PV}/${P}.ctype.patch || die
+ einfo "Applying gcc-3.2-ctype patch..."
+ patch -p1 < ${FILESDIR}/${PV}/${P}.ctype.patch > /dev/null || die
# Currently if any path is changed via the configure script, it breaks
# installing into ${D}. We should not patch it in src_install() with
@@ -188,6 +230,7 @@ src_compile() {
mkdir -p ${WORKDIR}/build
cd ${WORKDIR}/build
+ einfo "Configuring GCC..."
addwrite "/dev/zero"
${S}/configure --prefix=${LOC} \
--bindir=${BINPATH} \
@@ -212,6 +255,7 @@ src_compile() {
touch ${S}/gcc/c-gperf.h
+ einfo "Building GCC..."
if [ -z "`use static`" ]
then
# Fix for our libtool-portage.patch
@@ -240,6 +284,7 @@ src_install() {
fi
done
+ einfo "Installing GCC..."
# Do the 'make install' from the build directory
cd ${WORKDIR}/build
S="${WORKDIR}/build" \
@@ -405,9 +450,9 @@ src_install() {
pkg_postinst() {
- if [ "${ROOT}" = "/" ]
+ if [ "${ROOT}" = "/" -a "${COMPILER}" = "gcc3" ]
then
- gcc-config ${CCHOST}-${MY_PV_FULL}
+ gcc-config --use-portage-chost ${CCHOST}-${MY_PV_FULL}
fi
# Fix ncurses b0rking (if r5 isn't unmerged)
diff --git a/sys-devel/gcc/gcc-3.2.ebuild b/sys-devel/gcc/gcc-3.2.ebuild
deleted file mode 100644
index 6206e415e495..000000000000
--- a/sys-devel/gcc/gcc-3.2.ebuild
+++ /dev/null
@@ -1,373 +0,0 @@
-# Copyright 1999-2002 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.ebuild,v 1.8 2002/10/05 05:39:26 drobbins Exp $
-
-IUSE="static nls bootstrap java build"
-
-# NOTE TO MAINTAINER: Info pages get nuked for multiple version installs.
-# Ill fix it later if i get a chance.
-
-inherit flag-o-matic libtool
-
-# Compile problems with these ...
-filter-flags "-fno-exceptions"
-
-# cf bug #6641
-filter-flags "-fomit-frame-pointer"
-
-LOC="/usr"
-MY_PV="`echo ${PV/_pre} | cut -d. -f1,2`"
-GCC_SUFFIX="-${MY_PV}"
-# Dont install in /usr/include/g++-v3/, as it will nuke gcc-3.0.x installs
-STDCXX_INCDIR="${LOC}/include/g++-v${MY_PV/\./}"
-
-# 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"
-else
- S="${WORKDIR}/gcc-${SNAPSHOT//-}"
- SRC_URI="ftp://ftp.mirror.ac.uk/sites/sources.redhat.com/pub/gcc/snapshots/${SNAPSHOT}/gcc-${SNAPSHOT//-}.tar.bz2"
-fi
-
-DESCRIPTION="Modern GCC C/C++ compiler"
-HOMEPAGE="http://www.gnu.org/software/gcc/gcc.html"
-
-LICENSE="GPL-2 LGPL-2.1"
-SLOT="${MY_PV}"
-KEYWORDS="x86 ppc sparc sparc64 alpha"
-
-DEPEND="virtual/glibc
- !build? ( >=sys-libs/ncurses-5.2-r2
- nls? ( sys-devel/gettext ) )"
-
-RDEPEND="virtual/glibc
- >=sys-libs/zlib-1.1.4
- >=sys-apps/texinfo-4.2-r4
- !build? ( >=sys-libs/ncurses-5.2-r2 )"
-
-
-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`" != "${MY_PV}" ] && \
- [ "${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() {
- if [ -z "${SNAPSHOT}" ]
- then
- unpack ${P}.tar.bz2
- else
- unpack gcc-${SNAPSHOT//-}.tar.bz2
- fi
-
- cd ${S}
- # Fixup libtool to correctly generate .la files with portage
- elibtoolize --portage --shallow
-
- # 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
- #
- cd ${S}; patch -p0 < ${FILESDIR}/gcc-3-deopt.patch || die
-
- # 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
-# 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=""
- local gcc_lang=""
- if [ -z "`use build`" ]
- then
- myconf="${myconf} --enable-shared"
- gcc_lang="c,c++,ada,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
-
- # 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
-
- # In general gcc does not like optimization
- export CFLAGS="${CFLAGS//-O?}"
- export CXXFLAGS="${CXXFLAGS//-O?}"
-
- # Build in a separate build tree
- mkdir -p ${WORKDIR}/build
- cd ${WORKDIR}/build
-
- addwrite "/dev/zero"
- ${S}/configure --prefix=${LOC} \
- --mandir=${LOC}/share/man \
- --infodir=${LOC}/share/info \
- --enable-shared \
- --host=${CHOST} \
- --build=${CHOST} \
- --target=${CHOST} \
- --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
-
- if [ -z "`use static`" ]
- then
- # Fix for our libtool-portage.patch
- S="${WORKDIR}/build" \
- emake bootstrap-lean || die
- else
- S="${WORKDIR}/build" \
- emake LDFLAGS=-static bootstrap || die
- fi
-
- # Fixes the manpage for the "-maccumulate-outgoing-args bug"
- cd ${S}; patch -p0 < ${FILESDIR}/gcc-3-deopt-doc.patch || die
-}
-
-src_install() {
- # Do the 'make install' from the build directory
- cd ${WORKDIR}/build
- S="${WORKDIR}/build" \
- 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/_pre}
- FULLPATH_D=${D}${LOC}/lib/gcc-lib/${CHOST}/${PV/_pre}
- 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,
- # bugzilla bug #4411
- #
- # 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
- if [ -f ${LA} ]
- then
- sed -e "s:/usr/lib:${FULLPATH}:" ${LA} > ${LA}.hacked
- mv ${LA}.hacked ${LA}
- mv ${LA} ${FULLPATH_D}
- fi
- done
-
- # Move all the libraries to version specific libdir.
- for x in ${D}${LOC}/lib/*.{so,a}* ${FULLPATH_D}/../*.{so,a}*
- do
- [ -f ${x} ] && mv -f ${x} ${FULLPATH_D}
- 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} ${FULLPATH_D}/include/
- done
- for x in gcj gnu java javax org
- do
- if [ -d ${D}${LOC}/include/${x} ]
- then
- mkdir -p ${FULLPATH_D}/include/${x}
- mv -f ${D}${LOC}/include/${x}/* ${FULLPATH_D}/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 ${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
- [ -f jar${GCC_SUFFIX} ] && mv -f jar${GCC_SUFFIX} gcj-jar${GCC_SUFFIX}
-
- # Move <cxxabi.h> to compiler-specific directories
- [ -f ${D}${STDCXX_INCDIR}/cxxabi.h ] && \
- mv -f ${D}${STDCXX_INCDIR}/cxxabi.h ${FULLPATH_D}/include/
-
- if build_multiple
- then
- # 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
- 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 /
- dodoc COPYING COPYING.LIB ChangeLog FAQ GNATS MAINTAINERS README
- docinto html
- dohtml *.html
- cd ${S}/boehm-gc
- docinto boehm-gc
- dodoc ChangeLog doc/{README*,barrett_diagram}
- docinto boehm-gc/html
- dohtml doc/*.html
- cd ${S}/gcc
- docinto gcc
- dodoc ChangeLog* FSFChangeLog* LANGUAGES NEWS ONEWS README* SERVICE
- cd ${S}/libf2c
- docinto libf2c
- dodoc ChangeLog README TODO *.netlib
- cd ${S}/libffi
- docinto libffi
- dodoc ChangeLog* LICENSE README
- cd ${S}/libiberty
- docinto libiberty
- dodoc ChangeLog COPYING.LIB README
- cd ${S}/libobjc
- docinto libobjc
- dodoc ChangeLog README* THREADS*
- cd ${S}/libstdc++-v3
- docinto libstdc++-v3
- dodoc ChangeLog* README
- docinto 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 fastjar
- dodoc AUTHORS CHANGES COPYING ChangeLog NEWS README
- cd ${S}/libjava
- docinto 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_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 ${ROOT}/usr/lib/gcc-lib -name '*curses.h' -exec rm -f {} \;
-}
-