diff options
author | Mike Frysinger <vapier@gentoo.org> | 2012-12-29 06:58:20 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2012-12-29 06:58:20 +0000 |
commit | c71e6d56e9fbaad908ab4502d42ced5f4bbab71a (patch) | |
tree | 3bae07b104ab7f1a8509ff506883dfea0471e8bc /sys-devel/gcc | |
parent | enable libffi with gcc-3.0+ (i did not have a local copy at the time to check... (diff) | |
download | gentoo-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/ChangeLog | 6 | ||||
-rw-r--r-- | sys-devel/gcc/gcc-2.95.3-r10.ebuild | 9 | ||||
-rw-r--r-- | sys-devel/gcc/gcc-2.95.3-r9.ebuild | 280 |
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} -} |