Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 315377 - sys-devel/gcc-4.5.0 released
Summary: sys-devel/gcc-4.5.0 released
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: High enhancement (vote)
Assignee: Gentoo Toolchain Maintainers
URL:
Whiteboard:
Keywords:
Depends on: gcc-4.5
Blocks:
  Show dependency tree
 
Reported: 2010-04-15 04:13 UTC by Ryan Hill (RETIRED)
Modified: 2010-04-25 11:25 UTC (History)
27 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
gcc44-cloog-dl.patch (gcc44-cloog-dl.patch,5.99 KB, text/plain)
2010-04-23 06:37 UTC, Ryan Hill (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Ryan Hill (RETIRED) gentoo-dev 2010-04-15 04:13:58 UTC
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.
Comment 1 Siarhei Siamashka 2010-04-15 06:23:25 UTC
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
Comment 2 Jan Psota 2010-04-22 11:34:35 UTC
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)
Comment 3 Ryan Hill (RETIRED) gentoo-dev 2010-04-23 04:12:26 UTC
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.
Comment 4 Ryan Hill (RETIRED) gentoo-dev 2010-04-23 06:37:35 UTC
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
Comment 5 Maciej Piechotka 2010-04-23 10:29:16 UTC
(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.
Comment 6 Mark Loeser (RETIRED) gentoo-dev 2010-04-24 23:54:59 UTC
Thanks Ryan for the help with the changes.  Its now in the tree and p.masked.
Comment 7 Thomas Capricelli 2010-04-25 00:44:03 UTC
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'
Comment 8 Mark Loeser (RETIRED) gentoo-dev 2010-04-25 03:33:43 UTC
They weren't on all of the mirrors when you tried.  It should be fine now.
Comment 9 Thomas Capricelli 2010-04-25 11:25:29 UTC
yes, it works now, thanks!