I compiled openoffice-2.0.1 with gcc-4.0.1 and am happy with it. Now i am recompiling some legacy software with gcc-3.4.5 in the background and would like to create a new document with openoffice in the foreground, but OO misses libstdc++.so.6. /usr/lib/openoffice/program/soffice.bin: /usr/lib/gcc/i686-pc-linux-gnu/3.4.5/libstdc++.so.6: version `CXXABI_1.3.1' not found (required by /usr/lib/openoffice/program/soffice.bin) so i have to wait until gcc-3.4.5 has done its work ....
Eh? So - let me clarify this; you've unmerged gcc-4.0, emerged gcc-3.4.5 and are wondering why the stuff compiled with gcc-4 stopped working? Hmmmm...
(In reply to comment #1) > Eh? So - let me clarify this; you've unmerged gcc-4.0, emerged gcc-3.4.5 and > are wondering why the stuff compiled with gcc-4 stopped working? Hmmmm... > Frankly yes, i wonder, In the real world, programs generally should even work without a compiler installed at all :-) No other c++-program i tried stopped working, btw. (kde, inkscape come to mind ...). This should count as gentoo-bug
(In reply to comment #1) > Eh? So - let me clarify this; you've unmerged gcc-4.0, emerged gcc-3.4.5 and > are wondering why the stuff compiled with gcc-4 stopped working? Hmmmm... > no not *emerge*, i only switched compiler with gcc-config !!!!
(In reply to comment #1) > Eh? So - let me clarify this; you've unmerged gcc-4.0, emerged gcc-3.4.5 and > are wondering why the stuff compiled with gcc-4 stopped working? Hmmmm... > sorry i did not express myself cleary: with compiler beeing there i meant compiler activated with gcc-config
maybe one has to live with it but it is at least surprising
(In reply to comment #2) > Frankly yes, i wonder, > > In the real world, programs generally should even work without a compiler > installed at all :-) Erm, gcc provides kinda more stuff than just a compiler (like libstdc++, e.g.) (In reply to comment #5) > maybe one has to live with Indeed, gcc-3.4.5 doesn't have CXXABI 1.3.1; ABIs in different major gcc versions are not generally too much forwards-compatible... :)
Aparently the 4.x C++ abi is supposed to be backwards compatible with the 3.4.5 one. Of course it is not forward compatible. To allow this backward compatibility the soname did not change. It is however not forward compatible :-(. There is not much you can do about it except bugger the dynamic linker to try the proper library (by using 'LD_LIBRARY_PATH="/usr/lib/gcc-lib/i686-pc-linux-gnu/4.0.1/" ooffice')
Nothing we can do here, closing
I am having this problem likely in the same situation: just after moving from gcc3 to 4. I did not remove any package, and I dont have OOo working "foreground". I am "only" trying to emerge ;) I ask a REOPEN here come new peaces of info: ** bug: Checking DLL ../unxlngi6.pro/lib/check_libucbhelper3gcc3.so ...: ERROR: /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/libstdc++.so.6: version `CXXABI_1.3.1' not found (required by ../unxlngi6.pro/lib/check_libucbhelper3gcc3.so) dmake: Error code 1, while making '../unxlngi6.pro/lib/libucbhelper3gcc3.so' '---* tg_merge.mk *---' *** emerge: root@moon_gen:~# emerge -vp app-office/openoffice These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] app-office/openoffice-2.0.4 USE="binfilter branding cups dbus eds firefox gnome gstreamer gtk java kde pam -cairo -debug -ldap -odk -sound -webdav" LINGUAS="en fr -af -ar -be_BY -bg -bn -bs -ca -cs -cy -da -de -el -en_GB -en_US -en_ZA -es -et -fa -fi -gu_IN -he -hi_IN -hr -hu -it -ja -km -ko -lt -lv -mk -nb -nl -nn -nr -ns -pa_IN -pl -pt -pt_BR -ru -rw -sh_YU -sk -sl -sr_CS -st -sv -sw_TZ -th -tn -tr -ts -vi -xh -zh_CN -zh_TW -zu" 0 kB *** gcc root@moon_gen:~# gcc-config -l [1] i686-pc-linux-gnu-3.3.6 [2] i686-pc-linux-gnu-3.3.6-hardened [3] i686-pc-linux-gnu-3.3.6-hardenednopie [4] i686-pc-linux-gnu-3.3.6-hardenednopiessp [5] i686-pc-linux-gnu-3.3.6-hardenednossp [6] i686-pc-linux-gnu-3.4.6 [7] i686-pc-linux-gnu-3.4.6-hardened [8] i686-pc-linux-gnu-3.4.6-hardenednopie [9] i686-pc-linux-gnu-3.4.6-hardenednopiessp [10] i686-pc-linux-gnu-3.4.6-hardenednossp [11] i686-pc-linux-gnu-4.1.1 * *** equery root@moon_gen:~# equery b /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/libstdc++.so.6 [ Searching for file(s) /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/libstdc++.so.6 in *... ] sys-devel/gcc-3.4.6-r2 (/usr/lib/gcc/i686-pc-linux-gnu/3.4.6/libstdc++.so.6 -> libstdc++.so.6.0.3) *** *** *** I also notice in the logs: gcc to use: from system force gcc33: no Path: '/mnt/big/portage/app-office/openoffice-2.0.4/work/ooo/build/bin:/opt/blackdown-jdk-1.4.2.03/bin:/us r/qt/3/bin:/usr/local/sbin:/sbin:/usr/sbin:/usr/lib/portage/bin:/usr/local/bin:/bin:/usr/bin:/opt/bin:/usr/i686-p c-linux-gnu/gcc-bin/4.1.1:/opt/blackdown-jdk-1.4.2.03/bin:/opt/blackdown-jdk-1.4.2.03/jre/bin:/usr/kde/3.5/sbin:/ usr/kde/3.5/bin:/usr/qt/3/bin:/usr/kde/3.4/sbin:/usr/kde/3.4/bin:/mnt/big/portage/app-office/openoffice-2.0.4/wor k/ooo/bin' buildfix-gcc-4.1.2-NULL.diff: testing...( patch -l -p0 -d /mnt/big/portage/app-office/openoffice-2.0.4/work/ooo/ build/OOO_2_0_4 --dry-run ) < /mnt/big/portage/app-office/openoffice-2.0.4/work/ooo/patches/src680/./buildfix-gcc -4.1.2-NULL.diff copy gcc4-visibility-sc.diff -> /mnt/big/portage/app-office/openoffice-2.0.4/work/ooo/build/OOO_2_0_4/applied_pat ches/112-gcc4-visibility-sc.diff So it uses gcc-4.1.1, and applies some patches for 4.1.2 (should be harmless), and it does specifically 4.x detection ! so, to me, the question is: why does it tends to use bits of gcc3 ? a bit further in the logs: Making: ../../unxlngi6.pro/slo/locale.obj gcc -fmessage-length=0 -c -Os -fno-strict-aliasing [...] -DUNIX -DCPPU_ENV=gcc3 -DGXX_INCLUDE_PATH=/usr/lib/gcc/i686-pc-lin ux-gnu/4.1.1/include/g++-v4 Thats strange to me. Seems like there are several components, and they use different ./configure. But why would it force some bits to gcc3 ? I think there may be broken scripts around. Maybe removing gcc3 will help/fix ? feedback within days.
Let's come back to the bug logs: Checking DLL ../unxlngi6.pro/lib/check_libucbhelper3gcc3.so ...: ERROR: /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/libs tdc++.so.6: version `CXXABI_1.3.1' not found (required by ../unxlngi6.pro/lib/check_libucbhelper3gcc3.so) dmake: Error code 1, while making '../unxlngi6.pro/lib/libucbhelper3gcc3.so' How can it dare use /usr/lib/gcc/i686-pc-linux-gnu/3.4.6/ when the selected profile is i686-pc-linux-gnu-4.1.1 ??? This bug could be renamed: OOo compile using two compilers, both the selected profile, and a randomly choosen one. Next test: uninstall 3.4.* and see whats up ...
Solution for me: emerge -C =sys-devel/gcc-3.4.6-r2 =sys-devel/gcc-3.3.6-r1 then: 1168929408: === (1 of 1) Post-Build Cleaning (app-office/openoffice-2.0.4::/usr/portage/app-office/openoffice/openoffice-2.0.4.ebuild) 1168929408: ::: completed emerge (1 of 1) app-office/openoffice-2.0.4 to / 1168929408: *** Finished. Cleaning up... 1168929412: *** exiting successfully. hehe :) Removing all gcc3 allows successfull emerge OOo, but, as you imagine, have LOADS of side effects (see GCC upgrade tutos) So, this is not a fix, but still, it's a tip that can help people to compile OOo on their box. It is the proof that after switching GCC, there is something wrong, either about OOo scripts, or gcc-config/revdep-rebuild not doing everything. It should be a strat point for further searches.
Note that after removing compleetely GCC3, I could compile both 2.0.4 and 2.1.0 Please remember that removing GCC3 has loads of side effect, and you should not run emerge -C before reading forums and tutos on the topic. A simple revdep-rebuild is not enought at all.
Here are the steps I just used to fix the problem, and I hope side-skipping the issues of removing old versions of GCC: 1) update the compiler (and glibc, glib just in case *anything* builds static) 2) use gcc-config to select your new version as default 3) emerge -e world ... wait ... for ... days... while the complete rebuild of my system is not yet complete, somewhere in the dependacies stuff was rebuilt and fixed the problem. I would be curious if thanyone sees a problem with this solution. I actually do an "emerge -e world" about once a year to get anything sorted out that revdep-rebuild might have missed (which has happened in the past). EBo --