dependencies new: >=dev-libs/mpc-0.8.1 (required to build) >=dev-libs/elfutils-0.143 (lto only?) updated minimum versions: >=dev-libs/cloog-ppl-0.15.8 (graphite only) >=dev-libs/gmp-4.3.2 >=dev-libs/mpfr-2.4.2 LTO works like graphite, compiler flags that give an error if built with --disable-lto. Because of the minimal dependencies we might just want to make elfutils-0.143 a requirement and always enable LTO. There are some gdb python pretty-printers that get installed into annoying places which pisses ldconfig off: /sbin/ldconfig: /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.0-pre9999/libstdc++.so.6.0.14-gdb.py is not an ELF file - it has the wrong magic bytes at the start. at the advice of upstream i've been moving them to the gdb autoload directory: gdbdir=/usr/share/gdb/auto-load for module in $(find "${D}" -iname "*-gdb.py" -print); do insinto ${gdbdir}/$(dirname "${module/${D}/}" | sed -e "s:/lib/:/$(get_libdir)/:g") doins "${module}" rm "${module}" done This release seems pretty tame compared to the last two, at least from the porting point of view. I'll probably regret saying that.
For both ARM and PPC, gcc 4.5.0 fails to bootstrap, the problematic --disable-checking option (which is used by gentoo) can be avoided as a workaround: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42347 Also for ARM this fix is pretty much critical: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43698
works like magic on ~amd64 (bc 5% faster), and ~x86 ebuild based on that for gcc-4.4.3 by halcy0n with patch for *-gdb.py is in my overlay (jasiu)
I just ran into a bit of a nasty problem. Once you've built dev-libs/ppl with gcc 4.5 you can't switch back to 4.4: dirtyepic@halo ~/tmp $ cat test.c int main() { return 0; }; dirtyepic@halo ~/tmp $ gcc test.c -o test /usr/libexec/gcc/x86_64-unknown-linux-gnu/4.5.1-pre9999/cc1: /usr/lib/gcc/x86_64-unknown-linux-gnu/4.4.3/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /usr/lib/libppl_c.so.2) /usr/libexec/gcc/x86_64-unknown-linux-gnu/4.5.1-pre9999/cc1: /usr/lib/gcc/x86_64-unknown-linux-gnu/4.4.3/libstdc++.so.6: version `GLIBCXX_3.4.14' not found (required by /usr/lib/libppl.so.7) I'm guessing you'd have to switch to 4.5 or 4.3 and rebuild 4.4 with USE="-graphite" to get around this.
Created attachment 228847 [details] gcc44-cloog-dl.patch Fedora and Debian are using this patch on 4.4 to link against -ldl rather than -lppl -lcloog. before: $ ldd /usr/libexec/gcc/x86_64-unknown-linux-gnu/4.4.3/cc1 linux-vdso.so.1 => (0x00007fff597ff000) libcloog.so.0 => /usr/lib/libcloog.so.0 (0x0000003580c00000) libppl_c.so.2 => /usr/lib/libppl_c.so.2 (0x0000003580600000) libppl.so.7 => /usr/lib/libppl.so.7 (0x000000357fe00000) libgmpxx.so.4 => /usr/lib/libgmpxx.so.4 (0x0000003580200000) libmpfr.so.1 => /usr/lib/libmpfr.so.1 (0x00007f770ecbf000) libgmp.so.3 => /usr/lib/libgmp.so.3 (0x0000003d73800000) libc.so.6 => /lib/libc.so.6 (0x00000030a3400000) libstdc++.so.6 => /usr/lib/gcc/x86_64-unknown-linux-gnu/4.4.3/libstdc++.so.6 (0x0000003581200000) libm.so.6 => /lib/libm.so.6 (0x00000030a3800000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f770eaa7000) /lib64/ld-linux-x86-64.so.2 (0x00000030a3000000) after: $ ldd /usr/libexec/gcc/x86_64-unknown-linux-gnu/4.4.3/cc1 linux-vdso.so.1 => (0x00007ffff0bda000) libmpfr.so.1 => /usr/lib/libmpfr.so.1 (0x00007faefd05c000) libgmp.so.3 => /usr/lib/libgmp.so.3 (0x0000003d73800000) libdl.so.2 => /lib/libdl.so.2 (0x00000030a3c00000) libc.so.6 => /lib/libc.so.6 (0x00000030a3400000) /lib64/ld-linux-x86-64.so.2 (0x00000030a3000000) I haven't seen a patch for 4.5 yet (graphite was completely rewritten so forward-porting is not trivial). Of course, it'd be nice to solve the root problem (libstdc++-v6.so.6 symbol versioning + gcc-config = pain), but i'm not holding my breath. :P
(In reply to comment #3) > I just ran into a bit of a nasty problem. Once you've built dev-libs/ppl with > gcc 4.5 you can't switch back to 4.4: > > dirtyepic@halo ~/tmp $ cat test.c > int main() { return 0; }; > > dirtyepic@halo ~/tmp $ gcc test.c -o test > /usr/libexec/gcc/x86_64-unknown-linux-gnu/4.5.1-pre9999/cc1: > /usr/lib/gcc/x86_64-unknown-linux-gnu/4.4.3/libstdc++.so.6: version > `GLIBCXX_3.4.14' not found (required by /usr/lib/libppl_c.so.2) > /usr/libexec/gcc/x86_64-unknown-linux-gnu/4.5.1-pre9999/cc1: > /usr/lib/gcc/x86_64-unknown-linux-gnu/4.4.3/libstdc++.so.6: version > `GLIBCXX_3.4.14' not found (required by /usr/lib/libppl.so.7) > > I'm guessing you'd have to switch to 4.5 or 4.3 and rebuild 4.4 with > USE="-graphite" to get around this. > Set LD_LIBRARY_PATH to /usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/ (change 4.5.0 to your version), or prepend it by it, if it is temporal revert (like for compiling one package). I guess it would work for global switch back but I hadn't tried it. For compiling single package you can just set CC to x86_64-pc-linux-gnu-gcc-4.4.3 and CXX to x86_64-pc-linux-gnu-g++-4.4.3.
Thanks Ryan for the help with the changes. Its now in the tree and p.masked.
Hi. I've updated the (main) portage tree and unmasked it.. but it fails trying to download some patches. (http://dev.gentoo.org/~halcy0n/patches/ does not even seem to exist, btw). >>> Downloading 'http://gentoo.osuosl.org/distfiles/gcc-4.5.0-uclibc-patches-1.0.tar.bz2' --2010-04-25 02:36:56-- http://gentoo.osuosl.org/distfiles/gcc-4.5.0-uclibc-patches-1.0.tar.bz2 Resolving gentoo.osuosl.org... 64.50.236.52 Connecting to gentoo.osuosl.org|64.50.236.52|:80... connected. HTTP request sent, awaiting response... 404 Not Found 2010-04-25 02:36:56 ERROR 404: Not Found. >>> Downloading 'http://dev.gentoo.org/~vapier/dist/gcc-4.5.0-uclibc-patches-1.0.tar.bz2' --2010-04-25 02:36:56-- http://dev.gentoo.org/~vapier/dist/gcc-4.5.0-uclibc-patches-1.0.tar.bz2 Resolving dev.gentoo.org... 140.211.166.183 Connecting to dev.gentoo.org|140.211.166.183|:80... connected. HTTP request sent, awaiting response... 404 Not Found 2010-04-25 02:36:57 ERROR 404: Not Found. >>> Downloading 'http://dev.gentoo.org/~halcy0n/patches/gcc-4.5.0-uclibc-patches-1.0.tar.bz2' --2010-04-25 02:36:57-- http://dev.gentoo.org/~halcy0n/patches/gcc-4.5.0-uclibc-patches-1.0.tar.bz2 Resolving dev.gentoo.org... 140.211.166.183 Connecting to dev.gentoo.org|140.211.166.183|:80... connected. HTTP request sent, awaiting response... 404 Not Found 2010-04-25 02:36:57 ERROR 404: Not Found. !!! Couldn't download 'gcc-4.5.0-uclibc-patches-1.0.tar.bz2'. Aborting. * Fetch failed for 'sys-devel/gcc-4.5.0', Log file: * '/var/tmp/portage/sys-devel/gcc-4.5.0/temp/build.log'
They weren't on all of the mirrors when you tried. It should be fine now.
yes, it works now, thanks!