summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2012-12-29 06:58:20 +0000
committerMike Frysinger <vapier@gentoo.org>2012-12-29 06:58:20 +0000
commitc71e6d56e9fbaad908ab4502d42ced5f4bbab71a (patch)
tree3bae07b104ab7f1a8509ff506883dfea0471e8bc /sys-devel/gcc
parentenable libffi with gcc-3.0+ (i did not have a local copy at the time to check... (diff)
downloadgentoo-2-c71e6d56e9fbaad908ab4502d42ced5f4bbab71a.tar.gz
gentoo-2-c71e6d56e9fbaad908ab4502d42ced5f4bbab71a.tar.bz2
gentoo-2-c71e6d56e9fbaad908ab4502d42ced5f4bbab71a.zip
Get gcc-2 building again on modern systems.
(Portage version: 2.2.0_alpha144/cvs/Linux x86_64, signed Manifest commit with key FB7C4156)
Diffstat (limited to 'sys-devel/gcc')
-rw-r--r--sys-devel/gcc/ChangeLog6
-rw-r--r--sys-devel/gcc/gcc-2.95.3-r10.ebuild9
-rw-r--r--sys-devel/gcc/gcc-2.95.3-r9.ebuild280
3 files changed, 12 insertions, 283 deletions
diff --git a/sys-devel/gcc/ChangeLog b/sys-devel/gcc/ChangeLog
index 3ccf4831475e..8a9663777a88 100644
--- a/sys-devel/gcc/ChangeLog
+++ b/sys-devel/gcc/ChangeLog
@@ -1,6 +1,10 @@
# ChangeLog for sys-devel/gcc
# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.918 2012/12/21 05:20:46 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/ChangeLog,v 1.919 2012/12/29 06:58:20 vapier Exp $
+
+ 29 Dec 2012; Mike Frysinger <vapier@gentoo.org> -gcc-2.95.3-r9.ebuild,
+ gcc-2.95.3-r10.ebuild:
+ Get gcc-2 building again on modern systems.
21 Dec 2012; Mike Frysinger <vapier@gentoo.org> gcc-4.5.4.ebuild,
gcc-4.6.3.ebuild:
diff --git a/sys-devel/gcc/gcc-2.95.3-r10.ebuild b/sys-devel/gcc/gcc-2.95.3-r10.ebuild
index addb05774adb..c818977c644e 100644
--- a/sys-devel/gcc/gcc-2.95.3-r10.ebuild
+++ b/sys-devel/gcc/gcc-2.95.3-r10.ebuild
@@ -1,8 +1,8 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-2.95.3-r10.ebuild,v 1.9 2012/09/28 03:13:09 zmedico Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-2.95.3-r10.ebuild,v 1.10 2012/12/29 06:58:20 vapier Exp $
-PATCH_VER="1.3"
+PATCH_VER="1.4"
inherit toolchain eutils flag-o-matic
@@ -27,6 +27,11 @@ gcc2-flags() {
replace-cpu-flags ev6{7,8} ev6
}
+src_unpack() {
+ toolchain_src_unpack
+ rm -rf texinfo
+}
+
src_compile() {
strip-linguas -u */po
gcc2-flags
diff --git a/sys-devel/gcc/gcc-2.95.3-r9.ebuild b/sys-devel/gcc/gcc-2.95.3-r9.ebuild
deleted file mode 100644
index 3e22244f0846..000000000000
--- a/sys-devel/gcc/gcc-2.95.3-r9.ebuild
+++ /dev/null
@@ -1,280 +0,0 @@
-# Copyright 1999-2012 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-devel/gcc/gcc-2.95.3-r9.ebuild,v 1.9 2012/11/24 21:22:29 vapier Exp $
-
-inherit eutils flag-o-matic toolchain-funcs versionator fixheadtails gnuconfig
-
-# The next command strips most flags from CFLAGS/CXXFLAGS. If you do
-# not like it, comment it out, but do not file bugreports if you run into
-# problems.
-do_filter_flags() {
- strip-flags
-
- # In general gcc does not like optimization ... we'll add -O2 where safe
- filter-flags -O?
-
- # Compile problems with these (bug #6641 among others)...
- filter-flags -fno-exceptions -fomit-frame-pointer -ggdb
-
- # Are we trying to compile with gcc3 ? CFLAGS and CXXFLAGS needs to be
- # valid for gcc-2.95.3 ...
- if [[ $(tc-arch) == "x86" || $(tc-arch) == "amd64" ]] ; then
- CFLAGS=${CFLAGS//-mtune=/-mcpu=}
- CXXFLAGS=${CXXFLAGS//-mtune=/-mcpu=}
- fi
-
- replace-cpu-flags k6-{2,3} k6
- replace-cpu-flags athlon{,-{tbird,4,xp,mp}} i686
-
- replace-cpu-flags pentium-mmx i586
- replace-cpu-flags pentium{2,3,4} i686
-
- replace-cpu-flags ev6{7,8} ev6
-
- export CFLAGS CXXFLAGS
-}
-
-export CTARGET=${CTARGET:-${CHOST}}
-if [[ ${CTARGET} = ${CHOST} ]] ; then
- if [[ ${CATEGORY/cross-} != ${CATEGORY} ]] ; then
- export CTARGET=${CATEGORY/cross-}
- fi
-fi
-
-LOC="/usr"
-GCC_BRANCH_VER="$(get_version_component_range 1-2)"
-GCC_RELEASE_VER="$(get_version_component_range 1-3)"
-
-LIBPATH="${LOC}/lib/gcc-lib/${CTARGET}/${GCC_RELEASE_VER}"
-BINPATH="${LOC}/${CTARGET}/gcc-bin/${GCC_BRANCH_VER}"
-DATAPATH="${LOC}/share/gcc-data/${CTARGET}/${GCC_BRANCH_VER}"
-# 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++"
-
-PATCH_VER=1.2
-DESCRIPTION="The GNU Compiler Collection"
-HOMEPAGE="http://gcc.gnu.org/"
-SRC_URI="ftp://gcc.gnu.org/pub/gcc/releases/${P}/${P}.tar.gz
- mirror://gentoo/${P}-patches-${PATCH_VER}.tar.bz2"
-
-LICENSE="GPL-2 LGPL-2.1"
-KEYWORDS="x86 ppc sparc alpha"
-IUSE="static nls build multislot nocxx fortran"
-
-if use multislot ; then
- SLOT="${CTARGET}-${GCC_CONFIG_VER}"
-elif [[ ${CTARGET} != ${CHOST} ]] ; then
- SLOT="${CTARGET}-${GCC_BRANCH_VER}"
-else
- SLOT="${GCC_BRANCH_VER}"
-fi
-
-RDEPEND=">=sys-devel/gcc-config-1.4
- >=sys-libs/zlib-1.1.4
- >=sys-apps/texinfo-4.2-r4
- !build? ( >=sys-libs/ncurses-5.2-r2 )"
-DEPEND="${RDEPEND}
- !build? ( nls? ( sys-devel/gettext ) )"
-
-# Hack used to patch Makefiles to install into the build dir
-FAKE_ROOT=""
-
-src_unpack() {
- unpack ${P}.tar.gz
- unpack ${P}-patches-${PATCH_VER}.tar.bz2
- [[ $(tc-arch ${TARGET}) == "alpha" ]] \
- && rm -f "${EPATCH_SOURCE}"/10_all_new-atexit.patch
-
- cd "${S}"
- epatch
-
- # Fixup libtool to correctly generate .la files with portage
- libtoolize --copy --force
-
- # Fix outdated head/tails format #65668
- ht_fix_file configure gcc/Makefile.in
-
- # 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.
- for x in $(find . -name Makefile.in) ; do
- sed -i \
- -e 's:datadir = @datadir@:datadir = $(FAKE_ROOT)@datadir@:' \
- -e 's:bindir = @bindir@:bindir = $(FAKE_ROOT)@bindir@:' \
- -e 's:gxx_include_dir=${includedir}:gxx_include_dir=$(FAKE_ROOT)${includedir}:' \
- ${x} || die "could not sed $x"
- done
-
- gnuconfig_update
-}
-
-src_compile() {
- export LINGUAS=""
-
- # Make sure we have sane CFLAGS
- do_filter_flags
-
- # Build in a separate build tree
- mkdir -p "${WORKDIR}"/build
- cd "${WORKDIR}"/build
-
- local gcclangs="c"
- local myconf=""
- if use build ; then
- myconf="--disable-nls"
- else
- myconf=""
- use !nocxx && gcclangs="${gcclangs},c++"
- use fortran && gcclangs="${gcclangs},f77"
- use nls && myconf="${myconf} --enable-nls --without-included-gettext"
- fi
- [[ -n ${CBUILD} ]] && myconf="${myconf} --build=${CBUILD}"
- [[ ${CHOST} == ${CTARGET} ]] \
- && myconf="${myconf} --enable-shared --enable-threads=posix" \
- || myconf="${myconf} --disable-shared --disable-threads"
- myconf="--prefix=${LOC}
- --bindir=${BINPATH}
- --datadir=${DATAPATH}
- --mandir=${DATAPATH}/man
- --infodir=${DATAPATH}/info
- --host=${CHOST}
- --target=${CTARGET}
- --with-system-zlib
- --enable-long-long
- --enable-version-specific-runtime-libs
- --with-local-prefix=${LOC}/local
- --enable-languages=${gcclangs}
- ${myconf}
- ${EXTRA_ECONF}"
- echo ./configure "${myconf}"
- addwrite "/dev/zero"
- "${S}"/configure ${myconf} || die "configure failed"
-
- touch "${S}"/gcc/c-gperf.h
-
- if ! use static ; then
- # Fix for our libtool-portage.patch
- S="${WORKDIR}/build" \
- emake bootstrap-lean \
- LIBPATH="${LIBPATH}" STAGE1_CFLAGS="-O" || die "make failed"
- # 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 "make static failed"
- fi
-}
-
-src_install() {
- # 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
- [[ -L ${x} ]] && rm -f "${x}"
- done
-
- # 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
- cat << EOF > "${D}"/etc/env.d/gcc/${CTARGET}-${GCC_RELEASE_VER}
-PATH="${BINPATH}"
-ROOTPATH="${BINPATH}"
-LDPATH="${LIBPATH}"
-MANPATH="${DATAPATH}/man"
-INFOPATH="${DATAPATH}/info"
-STDCXX_INCDIR="${STDCXX_INCDIR##*/}"
-EOF
-
- # 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 LA in "${D}"${LOC}/lib/*.la "${D}"${LIBPATH}/../*.la ; do
- if [[ -f ${LA} ]] ; then
- sed -i -e "s:/usr/lib:${LIBPATH}:" "${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}
- for x in gcc g++ c++ g77 gcj ; do
- # For some reason, g77 gets made instead of ${CTARGET}-g77... this makes it safe
- [[ -f ${x} ]] && mv ${x} ${CTARGET}-${x}
-
- if [[ ${CHOST} == ${CTARGET} ]] && [[ -f ${CTARGET}-${x} ]] ; then
- [[ ! -f ${x} ]] && mv ${CTARGET}-${x} ${x}
- ln -sf ${x} ${CTARGET}-${x}
- fi
- done
- fi
-
- # This one comes with binutils
- rm -f "${D}"${LOC}/lib/libiberty.a
-
- cd "${S}"
- if use build ; then
- rm -r "${D}"/usr/share/{man,info}
- rm -r "${D}"/${DATAPATH}/{man,info}
- elif ! has nodoc ${FEATURES} ; then
- cd "${S}"
- docinto /
- dodoc README* FAQ MAINTAINERS
- docinto html
- dodoc faq.html
- docinto gcc
- cd "${S}"/gcc
- dodoc BUGS ChangeLog* 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
- fi
- has noman ${FEATURES} && rm -r "${D}"/${DATAPATH}/man
- has noinfo ${FEATURES} && rm -r "${D}"/${DATAPATH}/info
-}
-
-pkg_postinst() {
- [[ ${ROOT} != "/" ]] && return 0
- gcc-config --use-portage-chost ${CTARGET}-${GCC_RELEASE_VER}
-}