Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 97977 - [gcc4.1] libstdc++-v3-3.3.6 does not compile on ppc64
Summary: [gcc4.1] libstdc++-v3-3.3.6 does not compile on ppc64
Status: RESOLVED WONTFIX
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] GCC Porting (show other bugs)
Hardware: PPC64 Linux
: High enhancement (vote)
Assignee: ppc64 architecture team
URL:
Whiteboard:
Keywords:
: 132842 162736 173416 213286 (view as bug list)
Depends on:
Blocks: 117482
  Show dependency tree
 
Reported: 2005-07-05 01:54 UTC by Markus Rothe (RETIRED)
Modified: 2008-03-13 16:05 UTC (History)
7 users (show)

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


Attachments
libstdc++-v3-output.txt (libstdc++-v3-output.txt,4.11 KB, text/plain)
2005-07-05 01:55 UTC, Markus Rothe (RETIRED)
Details
emerge --info (emerge-info.txt,2.54 KB, text/plain)
2005-07-05 01:56 UTC, Markus Rothe (RETIRED)
Details
ebuild file (libstdc++-v3-3.3.6.ebuild,8.31 KB, text/plain)
2006-10-28 21:09 UTC, Yang Dehua
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Rothe (RETIRED) gentoo-dev 2005-07-05 01:54:41 UTC
Hi,

libstdc++-v3-3.3.4 does not compile using gcc4. Output follows.

Markus
Comment 1 Markus Rothe (RETIRED) gentoo-dev 2005-07-05 01:55:04 UTC
Created attachment 62644 [details]
libstdc++-v3-output.txt
Comment 2 Markus Rothe (RETIRED) gentoo-dev 2005-07-05 01:56:33 UTC
Created attachment 62645 [details]
emerge --info
Comment 3 Mark Loeser (RETIRED) gentoo-dev 2006-01-06 17:42:37 UTC
Most likely caused by the glibc-2.3.5 snapshot you are using.  This looks fine to me with glibc-2.3.6.  Can someone confirm this?
Comment 4 Markus Rothe (RETIRED) gentoo-dev 2006-01-07 00:57:34 UTC
no, it is still an issue, when using glibc-2.3.6-r2.

And yes, on x86 and ppc this compiles fine on my machines, too.
Comment 5 Mark Loeser (RETIRED) gentoo-dev 2006-01-27 21:13:32 UTC
Alright, now that other error seems to be resolved with linux-headers-2.6.15, but we run into another problem, which probably won't be fixed (unless we hack the gcc sources that it's compiling):

/var/tmp/portage/libstdc++-v3-3.3.6/work/gcc-3.3.6/gcc/dwarf2out.c: In function 'get_AT':
/var/tmp/portage/libstdc++-v3-3.3.6/work/gcc-3.3.6/gcc/dwarf2out.c:4869: sorry, unimplemented: inlining failed in call to 'get_AT': recursive inlining
/var/tmp/portage/libstdc++-v3-3.3.6/work/gcc-3.3.6/gcc/dwarf2out.c:4883: sorry, unimplemented: called from here
make[1]: *** [dwarf2out.o] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: Leaving directory `/var/tmp/portage/libstdc++-v3-3.3.6/work/build/gcc'
Comment 6 Mark Loeser (RETIRED) gentoo-dev 2006-03-09 23:08:58 UTC
corsair: could you please try gcc-4.1.0 and let me know how that works out?  (I'm not expecting good results :/ )
Comment 7 Mark Loeser (RETIRED) gentoo-dev 2006-03-15 21:52:21 UTC
It looks like this still fails, but I'd like someone else to verify as well :)
Comment 8 Markus Rothe (RETIRED) gentoo-dev 2006-03-22 06:05:56 UTC
yes. compiling still failes using gcc-4.1.
Comment 9 Markus Rothe (RETIRED) gentoo-dev 2006-05-10 00:00:38 UTC
*** Bug 132842 has been marked as a duplicate of this bug. ***
Comment 10 Yang Dehua 2006-05-10 05:40:37 UTC
I tried manually to compile libstdc++-v3 with gcc-4.1.0 against glibc-2.4-r2, and got the result:
It compiled when I changed "STAGE1_CFLAGS=-g" to "STAGE1_CFLAGS= " in Makefile under directory of "/var/tmp/portage/libstdc++-v3-3.3.6/work/build/gcc". I did that by breaking(CTRL+C) the compiling during emerge, and went to above dir then
executed "make" after the change. 
Comment 11 Joshua (RETIRED) gentoo-dev 2006-05-27 06:53:18 UTC
(In reply to comment #8)
> yes. compiling still failes using gcc-4.1.
> 

And gcc-4.1.1 (which is not much surprise).
Comment 12 Chris Gianelloni (RETIRED) gentoo-dev 2006-08-23 15:13:24 UTC
Strange... this compiled fine for us for 2006.1 on amd64/x86/ppc... of course, we're using glibc 2.4 on all of those.  Could that be the solution?  We are intending on marking both stable (gcc 4.1.1 and glibc 2.4) at the same time.
Comment 13 Markus Rothe (RETIRED) gentoo-dev 2006-08-24 02:57:55 UTC
yes, I can confirm that this only happens on ppc64. but upstream did not pay attention to this: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=23158

trying with glibc-2.4 and gcc-4.1.1 it still fails exactly the same way.
Comment 14 Yang Dehua 2006-08-30 18:57:49 UTC
I wonder that do we really need this package when come to gcc-4.1.1 and glibc-2.4?
Comment 15 Markus Rothe (RETIRED) gentoo-dev 2006-08-31 00:28:32 UTC
yes, unfortunatly we do. we do need this stupid package for ibm-jdk/jre-bin, because it is the only binary package in portage tree (which is marked for ppc64) that is built using gcc-3.3.x and so links to libstdc++-v3.

I have send two emails to IBM, but never got any response.. not even "no, we don't!"
Comment 16 bunkacid 2006-09-02 14:54:55 UTC
(In reply to comment #15)
> yes, unfortunatly we do. we do need this stupid package for ibm-jdk/jre-bin,
> because it is the only binary package in portage tree (which is marked for
> ppc64) that is built using gcc-3.3.x and so links to libstdc++-v3.
> 

also media-libs/win32codecs USE=real
and media-video/realplayer
depend on libstdc++-v3

I just upgraded to gcc 4.1.1, and now libstdc++ won't compile.  Easy enough solution was to remove the couple packages which were depending on libstdc++ as I do not use them frequently enough.


Portage 2.1-r2 (default-linux/x86/2006.0, gcc-3.4.6, glibc-2.4-r3, 2.6.17-gentoo-r7 i686)
=================================================================
System uname: 2.6.17-gentoo-r7 i686 Intel(R) Pentium(R) 4 CPU 2.53GHz
Gentoo Base System version 1.12.4
distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled]
ccache version 2.3 [enabled]
app-admin/eselect-compiler: [Not Present]
dev-lang/python:     2.4.3-r3
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.3
dev-util/confcache:  [Not Present]
sys-apps/sandbox:    1.2.17
sys-devel/autoconf:  2.13, 2.59-r7
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2
sys-devel/binutils:  2.15.92.0.2-r10, 2.16.1-r3
sys-devel/gcc-config: 1.3.13-r3
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.17
ACCEPT_KEYWORDS="x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=16 -falign-jumps=16 -falign-loops=16 -falign-labels=1 -fprefetch-loop-arrays -maccumulate-outgoing-args -funroll-all-loops -freorder-blocks -fcaller-saves -fno-loop-optimize -fno-signaling-nans"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf"
CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer -fforce-addr -falign-functions=16 -falign-jumps=16 -falign-loops=16 -falign-labels=1 -fprefetch-loop-arrays -maccumulate-outgoing-args -funroll-all-loops -freorder-blocks -fcaller-saves -fno-loop-optimize -fno-signaling-nans"
DISTDIR="/usr/portage/.distfiles"
EMERGE_DEFAULT_OPTS="--alphabetical"
FEATURES="autoconfig buildpkg candy ccache digest distlocks metadata-transfer parallel-fetch sandbox sfperms strict userpriv usersandbox"
GENTOO_MIRRORS="http://gentoo.llarian.net/ http://gentoo.chem.wisc.edu/gentoo/ http://gentoo.mirrors.pair.com/ http://gentoo.ccccom.com http://gentoo.netnitco.net http://mirrors.acm.cs.rpi.edu/gentoo/  http://mirror.datapipe.net/gentoo http://www.gigaload.org/gentoo.org/ ftp://ftp.ucsb.edu/pub/mirrors/linux/gentoo/"
MAKEOPTS="-j1"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_EXTRA_OPTS="--timeout=180 --exclude-from=/etc/portage/rsync_excludes"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude='/distfiles' --exclude='/local' --exclude='/packages'"
PORTAGE_TMPDIR="/var/tmp/portage"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage/overlays/ns1-main.alternative /usr/portage/overlays/initng-portage.alternative"
SYNC="rsync://portageproxy/gentoo-portage"
USE="x86 X alsa apache2 apm arts avi berkdb bitmap-fonts cli crypt cups dlloader dri dts eds emboss encode esd foomaticdb fortran gdbm gif gnome gpm gstreamer gtk gtk2 imlib ipv6 isdnlog jikes jpeg kde kdeenablefinal libg++ libwww mad mikmod mmx motif mp3 mpeg ncurses nls nptl ogg opengl oss pam pcre pdflib perl png pppd python qt3 qt4 quicktime readline reflection sdl session spell spl sse sse2 ssl tcpd truetype truetype-fonts type1-fonts udev unicode vorbis xinerama xml xmms xorg xv zlib elibc_glibc initng_plugins_also initng_plugins_bash_launcher initng_plugins_chdir initng_plugins_chroot initng_plugins_conflict initng_plugins_cpout initng_plugins_critical initng_plugins_ctrlaltdel initng_plugins_daemon_clean initng_plugins_dbus_event initng_plugins_-debug_commands initng_plugins_envparser initng_plugins_find initng_plugins_-fmon initng_plugins_fstat initng_plugins_history initng_plugins_idleprobe initng_plugins_initctl initng_plugins_interactive initng_plugins_iparser initng_plugins_last initng_plugins_limit initng_plugins_-lockfile initng_plugins_logfile initng_plugins_netdev initng_plugins_netprobe initng_plugins_ngc4 initng_plugins_-ngcs initng_plugins_-nge initng_plugins_pause initng_plugins_provide initng_plugins_reload initng_plugins_renice initng_plugins_rlparser initng_plugins_-selinux initng_plugins_simple_launcher initng_plugins_stcmd initng_plugins_stdout initng_plugins_suid initng_plugins_syncron initng_plugins_syslog initng_plugins_sysreq initng_plugins_unneeded input_devices_keyboard input_devices_mouse input_devices_evdev input_devices_synaptics kernel_linux lirc_devices_-act200l lirc_devices_-act220l lirc_devices_-adaptec lirc_devices_all lirc_devices_-alsa_usb lirc_devices_-animax lirc_devices_-atilibusb lirc_devices_-atiusb lirc_devices_-audio lirc_devices_-audio_alsa lirc_devices_-avermedia lirc_devices_-avermedia98 lirc_devices_-avermedia_vdomate lirc_devices_-bestbuy lirc_devices_-bestbuy2 lirc_devices_-breakoutbox lirc_devices_-bte lirc_devices_-bw6130 lirc_devices_-caraca lirc_devices_-chronos lirc_devices_-cmdir lirc_devices_-com1 lirc_devices_-com2 lirc_devices_-com3 lirc_devices_-com4 lirc_devices_-cph06x lirc_devices_-creative lirc_devices_-creative_infracd lirc_devices_-devinput lirc_devices_-digimatrix lirc_devices_-dsp lirc_devices_-dvico lirc_devices_-ea65 lirc_devices_-exaudio lirc_devices_-flyvideo lirc_devices_-gvbctv5pci lirc_devices_-hauppauge lirc_devices_-hauppauge_dvb lirc_devices_-hercules_smarttv_stereo lirc_devices_-igorplugusb lirc_devices_-imon lirc_devices_-imon_pad lirc_devices_-imon_pad2keys lirc_devices_-imon_rsc lirc_devices_-irdeo lirc_devices_-irdeo_remote lirc_devices_-irman lirc_devices_-irreal lirc_devices_-it87 lirc_devices_-knc_one lirc_devices_-kworld lirc_devices_-leadtek_0007 lirc_devices_-leadtek_0010 lirc_devices_-leadtek_pvr2000 lirc_devices_-livedrive_midi lirc_devices_-livedrive_seq lirc_devices_-logitech lirc_devices_-lpt1 lirc_devices_-lpt2 lirc_devices_-mceusb lirc_devices_-mceusb2 lirc_devices_-mediafocusI lirc_devices_-mouseremote lirc_devices_-mouseremote_ps2 lirc_devices_-mp3anywhere lirc_devices_-nslu2 lirc_devices_-packard_bell lirc_devices_-parallel lirc_devices_-pcmak lirc_devices_-pcmak_usb lirc_devices_-pctv lirc_devices_-pixelview_bt878 lirc_devices_-pixelview_pak lirc_devices_-pixelview_pro lirc_devices_-provideo lirc_devices_-realmagic lirc_devices_-remotemaster lirc_devices_-sa1100 lirc_devices_-sasem lirc_devices_-serial lirc_devices_-serial_igor_cesko lirc_devices_-silitek lirc_devices_-sir lirc_devices_-slinke lirc_devices_-streamzap lirc_devices_-tekram lirc_devices_-tekram_bt829 lirc_devices_-tira lirc_devices_-tvbox lirc_devices_-udp lirc_devices_-uirt2 lirc_devices_-uirt2_raw lirc_devices_-userspace lirc_devices_-xboxusb userland_GNU video_cards_nvidia video_cards_vesa video_cards_fbdev"
Unset:  CTARGET, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS


Comment 17 Jakub Moc (RETIRED) gentoo-dev 2006-10-15 17:59:07 UTC
(In reply to comment #16)
> I just upgraded to gcc 4.1.1, and now libstdc++ won't compile.  Easy enough
> solution was to remove the couple packages which were depending on libstdc++ as
> I do not use them frequently enough.

This bug is about ppc64, plus with your completely whacky C[XX]FLAGS, do us a favor and please don't report any compile issues whatsover, they'll be immediately marked as INVALID.

<snip>
> CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer -fforce-addr
> -falign-functions=16 -falign-jumps=16 -falign-loops=16 -falign-labels=1
> -fprefetch-loop-arrays -maccumulate-outgoing-args -funroll-all-loops
> -freorder-blocks -fcaller-saves -fno-loop-optimize -fno-signaling-nans"
> CXXFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer -fforce-addr
> -falign-functions=16 -falign-jumps=16 -falign-loops=16 -falign-labels=1
> -fprefetch-loop-arrays -maccumulate-outgoing-args -funroll-all-loops
> -freorder-blocks -fcaller-saves -fno-loop-optimize -fno-signaling-nans"
</snip>
Comment 18 Yang Dehua 2006-10-28 21:09:48 UTC
Created attachment 100685 [details]
ebuild file
Comment 19 Yang Dehua 2006-10-28 21:16:58 UTC
I changed the libstdc++-v3-3.3.6.ebuild file(see the attachment above), and now it can be emerged successfully under my gentoo ppc64(gcc-4.1.1, glibc-2.5). I tried also ibm-jdk-bin-1.5/1.4 packages and java applications, all of them worked, not breaking anything.
Comment 20 Tom Gall (RETIRED) gentoo-dev 2006-11-13 13:20:28 UTC
hmmm glibc-2.5 did not solve this at all
Comment 21 Tom Gall (RETIRED) gentoo-dev 2006-11-13 21:23:13 UTC
ok ... what seems to fix / break this is what your -O setting might be in your make.conf.

-O2 on power4 breaks it ... removing -O2 entirely successfully built. Of note here is the actual problem with __restrict is the processor is core dumping!!!

/var/tmp/portage/libstdc++-v3-3.3.6/work/build/gcc/xgcc -B/var/tmp/portage/libstdc++-v3-3.3.6/work/build/gcc/ -B/usr/powerpc64-unknown-linux-gnu/bin/ -B/usr/powerpc64-unknown-linux-gnu/lib/ -isystem /usr/powerpc64-unknown-linux-gnu/include -O2 -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include  -I. -I. -I/var/tmp/portage/libstdc++-v3-3.3.6/work/gcc-3.3.6/gcc -I/var/tmp/portage/libstdc++-v3-3.3.6/work/gcc-3.3.6/gcc/. -I/var/tmp/portage/libstdc++-v3-3.3.6/work/gcc-3.3.6/gcc/config -I/var/tmp/portage/libstdc++-v3-3.3.6/work/gcc-3.3.6/gcc/../include  -g0 -finhibit-size-directive -fno-inline-functions -fno-exceptions -fno-zero-initialized-in-bss  -E /var/tmp/portage/libstdc++-v3-3.3.6/work/gcc-3.3.6/gcc/crtstuff.c -DCRT_BEGIN -DCRTSTUFFS_O

and that

/var/tmp/portage/libstdc++-v3-3.3.6/work/build/gcc/xgcc -B/var/tmp/portage/libstdc++-v3-3.3.6/work/build/gcc/ -B/usr/powerpc64-unknown-linux-gnu/bin/ -B/usr/powerpc64-unknown-linux-gnu/lib/ -isystem /usr/powerpc64-unknown-linux-gnu/include  -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -isystem ./include  -I. -I. -I/var/tmp/portage/libstdc++-v3-3.3.6/work/gcc-3.3.6/gcc -I/var/tmp/portage/libstdc++-v3-3.3.6/work/gcc-3.3.6/gcc/. -I/var/tmp/portage/libstdc++-v3-3.3.6/work/gcc-3.3.6/gcc/config -I/var/tmp/portage/libstdc++-v3-3.3.6/work/gcc-3.3.6/gcc/../include  -g0 -finhibit-size-directive -fno-inline-functions -fno-exceptions -fno-zero-initialized-in-bss  -E /var/tmp/portage/libstdc++-v3-3.3.6/work/gcc-3.3.6/gcc/crtstuff.c -DCRT_BEGIN -DCRTSTUFFS_O

yield the answer there.

so at a minimum we have a work around at least but I don't like it.
Comment 22 Tom Gall (RETIRED) gentoo-dev 2006-11-14 19:36:52 UTC
awaiting comment from bergner.
Comment 23 Tom Gall (RETIRED) gentoo-dev 2007-01-02 10:40:43 UTC
I'm afraid we're going to have to accept keeping an gcc 3.x around if one wants to build libstdc++v3. This is probably ok as the key reason to do so is for binary app compat. 

A way around this would be to create a pre-built version of it around that's easily installable. Anoying yes... but then so are binary apps that you can't rebuild.

The only case that I know of right now that I somewhat care about is for java 1.4.2. 
Comment 24 Jakub Moc (RETIRED) gentoo-dev 2007-01-19 07:52:18 UTC
*** Bug 162736 has been marked as a duplicate of this bug. ***
Comment 25 Markus Rothe (RETIRED) gentoo-dev 2007-01-25 08:53:42 UTC
I've a binary package, which served all my 64bit/gcc4 installs for quite some time now. to use it do the following:

$ mkdir -p /usr/portage/packages/All/
$ wget http://dev.gentoo.org/~corsair/libstdc++-v3-bin-ppc64-3.3.6.tbz2 -O /usr/portage/packages/All/libstdc++-v3-3.3.6.tbz2
$ emerge libstdc++-v3 --usepkgonly -a 
Comment 26 Jakub Moc (RETIRED) gentoo-dev 2007-04-05 05:45:33 UTC
*** Bug 173416 has been marked as a duplicate of this bug. ***
Comment 27 Niel Drummond 2007-09-07 09:38:01 UTC
does it not make sense to add some sort of warning to an ebuild ? this bug is still affecting people 2 years after it was first reported (I wouldn't have known how to work around it unless a duplicate had been reported). 
Comment 28 Jakub Moc (RETIRED) gentoo-dev 2008-03-13 16:05:47 UTC
*** Bug 213286 has been marked as a duplicate of this bug. ***