R Hill skrev:
Simon Strandman wrote:
It seems like toolchain.eclass does something wrong when configuring gcc 4.1 snapshots. I decided to try gcc 4.1 on my server so I created a gcc-4.1.1.20060324 ebuild and defined the SNAPSHOT variable in it (current cvs has a lot of bugfixes since the release). This is the way I've done it with gcc 4.0 and I never had any problems then. The ebuild emerges without problems but it installs files in both /usr/lib/gcc/i686-pc-linux-gnu/4.1.1-20060324 and /usr/lib/gcc/i686-pc-linux-gnu/4.1.1. So when I try to emerge anything it always fails with errors like this:

configure:2239: i686-pc-linux-gnu-gcc -O2 -march=pentium3 -pipe -fomit-frame-pointer -D_FORTIFY_SOURCE=1 conftest.c >&5 /usr/lib/gcc/i686-pc-linux-gnu/4.1.1/../../../../i686-pc-linux-gnu/bin/ld: cannot find -lgcc_s
collect2: ld returned 1 exit status

Just copying over the files from one dir to the other and then symlinking it works around the problems. Any ideas?

This is caused by changes to the build system in 4.1 and GCC's BASE-VER not matching portage's ${PV} in snapshot builds. Most of the system directories are set up by portage during configure using ${PV} as part of the dirname. (eg. includedir=/usr/<lib>/gcc/<chost>/${PV}/include). However, libdir and libexecdir aren't set by portage (because they generate really strange paths w/ --enable-version-specific-runtime-libs in GCC 3.3/3.4) and default to /usr/<lib>/gcc/<chost>/BASE-VER/blah. When ${PV} != BASE-VER, wackiness ensues.

Try this in your ebuild:

src_unpack() {
    toolchain_src_unpack

    echo ${PV/_/-} > "${S}"/gcc/BASE-VER
    echo "" > "${S}"/gcc/DATESTAMP
}

--de.

Thanks for the help! But now it fails with this error:

<built-in>:1: internal compiler error: in define__GNUC__, at c-cppbuiltin.c:296
Please submit a full bug report,


This has been reported in gcc bug #19372 and apperantly it has something to do with the version string. :(
--
gentoo-dev@gentoo.org mailing list

Reply via email to