answered my own question. I decided to take a stab at it and upgrade just GCC to 3.2 to see what that would do. and things are starting to yell out "recompile me recompile me!". For ex., check out galeon:jackp wrote:I just recently set up gentoo 1.4beta with gcc-3.2_pre. For the most part things went pretty smoothly. Now, my question is, is there a drastic change between 3.2_pre and 3.2 that requires me to recompile ALL my packages, including my kernel? AFAIU the C++ ABI changed from 3.1.1 to 3.2, so would that be pretty much stabilized now (even with that, that only affects C++ code, so I can track down the C++ packages and recompile those if necessary)? Shouldn't the two compiler versions be compatible with each other at least to generate similar enough binary code such that my old packages would run in a "gcc 3.2 environment"?
Or do you think I should play it safe and do an 'emerge -e world' anyway?
EDIT: I think my first question is better rephrased as: are there significant library incompatibilities between 3.2_pre and 3.2? Will things immediately break after I update?
Code: Select all
kungfoo portage # galeon
/usr/bin/galeon-bin: /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2/libstdc++.so.5: version `CXXABI_1' not found (required by /usr/bin/galeon-bin)
/usr/bin/galeon-bin: /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2/libstdc++.so.5: version `GLIBCPP_3.1' not found (required by /usr/bin/galeon-bin)
/usr/bin/galeon-bin: /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2/libstdc++.so.5: version `GLIBCPP_3.1' not found (required by /usr/lib/mozilla/libgtkembedmoz.so)
/usr/bin/galeon-bin: /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2/libstdc++.so.5: version `CXXABI_1' not found (required by /usr/lib/mozilla/libxpcom.so)
/usr/bin/galeon-bin: /usr/lib/gcc-lib/i686-pc-linux-gnu/3.2/libstdc++.so.5: version `GLIBCPP_3.1' not found (required by /usr/lib/mozilla/libxpcom.so)Bootstrapping (oversimplifying a bit) compiles glibc -> gcc (C only) -> glibc -> gcc.Beattie wrote:What exactly does bootstrapping do? Cant you just recompile gcc?
Where '...' is whatever you want your backup CFLAGS (and CXXFLAGS) to be. The script assumes that you want your CFLAGS and CXXFLAGS to be the same (which most people do. If this is really a problem, I can change it). I tried making a --bcflags=... command line parameter, but I was unable to do so (bash doesn't seem to let you have spaces in a parameter, even when surrounded by quotes. I don't think escaping it would work either, but if someone can tell me how to do this, I'd be glad to change it).export BCFLAGS="..."
Code: Select all
merge() {
if [ $QUIET -gt 1 ]; then
emerge --oneshot ${1}
else
emerge --oneshot ${1} 2>&1 >/dev/null
fi
}
Code: Select all
retval=$?
if [ $retval -eq 1 ] && [ -n "${BCFLAGS}" ]; then
debug 1 || echo -e "${LR}Merge failed. Using backup CFLAGS${CL}"
OLDCFLAGS="${CFLAGS}"
OLDCXXFLAGS="${CXXFLAGS}"
export CFLAGS="${BCFLAGS}"
export CXXFLAGS="${BCFLAGS}"
if [ $QUIET -gt 1 ]; then
emerge --oneshot ${1}
else
emerge --oneshot ${1} 2>&1 >/dev/null
fi
retval=$?
if [ -n "${OLDCFLAGS}" ]; then
export CFLAGS="${OLDCFLAGS}"
else
unset CFLAGS
fi
if [ -n "${OLDCXXFLAGS}" ]; then
export CXXFLAGS="${OLDCXXFLAGS}"
else
unset CXXFLAGS
fi
fi
return $retval
rac wrote:Bootstrapping (oversimplifying a bit) compiles glibc -> gcc (C only) -> glibc -> gcc.Beattie wrote:What exactly does bootstrapping do? Cant you just recompile gcc?
The safest thing to do here is run bootstrap.sh. Stop reading now.
So, this can be done without changing that make.conf or whatever pointer people keep talking about? what about emerging gcc3 in the first place? when I type emerge -p gcc I get version 2.95. What's the proper way to emerge gcc3 itself?
There are several profiles in /usr/portage/profiles. They tell portage what version of key programs should be installed. /etc/make.profile is usually a symlink pointing to one of them. In order to emerge GCC 3.1, you need to use the default-1.0-gcc3 profile. To use GCC 3.2, you would want the default-x86-2.0 profile. You would need to change the /etc/make.profile symlink to point to one of these, and then emerge portage should pick up the newer packages.Beattie wrote:So, this can be done without changing that make.conf or whatever pointer people keep talking about? what about emerging gcc3 in the first place? when I type emerge -p gcc I get version 2.95. What's the proper way to emerge gcc3 itself?

Code: Select all
compare.c:143:17: warning: pasting "->" and "resident" does not give a valid preprocessing token
compare.c:143:17: warning: pasting "->" and "resident" does not give a valid preprocessing token
compare.c:143:17: warning: pasting "->" and "resident" does not give a valid preprocessing token
compare.c:143:17: warning: pasting "->" and "resident" does not give a valid preprocessing token
compare.c:144:14: warning: pasting "->" and "share" does not give a valid preprocessing token
compare.c:144:14: warning: pasting "->" and "share" does not give a valid preprocessing token
compare.c:144:14: warning: pasting "->" and "share" does not give a valid preprocessing token
compare.c:144:14: warning: pasting "->" and "share" does not give a valid preprocessing token
version.c: In function `init_Linux_version':
version.c:35: warning: implicit declaration of function `exit'
sysinfo.c: In function `meminfo':
sysinfo.c:255: warning: unsigned int format, different type arg (arg 3)
sysctl.c: In function `ReadSetting':
sysctl.c:343: warning: suggest parentheses around assignment used as truth value
sysctl.c:347: warning: suggest parentheses around assignment used as truth value
sysctl.c: In function `DisplayAll':
sysctl.c:401: warning: suggest parentheses around assignment used as truth value
!!! ERROR: The ebuild did not complete successfully.
!!! Function src_compile, Line 1, Exitcode 2
!!! (no error message)
!!! emerge aborting on /usr/portage/sys-apps/procps/procps-2.0.7-r6.ebuild .
Code: Select all
LDPATH=/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2
tebers wrote:I was so brave emerge -e world after upgradinmg to gcc3.2
and my system stopped here.
So i think this package is broken.
Code: Select all
compare.c:143:17: warning: pasting "->" and "resident" does not give a valid preprocessing token compare.c:143:17: warning: pasting "->" and "resident" does not give a valid preprocessing token compare.c:143:17: warning: pasting "->" and "resident" does not give a valid preprocessing token compare.c:143:17: warning: pasting "->" and "resident" does not give a valid preprocessing token compare.c:144:14: warning: pasting "->" and "share" does not give a valid preprocessing token compare.c:144:14: warning: pasting "->" and "share" does not give a valid preprocessing token compare.c:144:14: warning: pasting "->" and "share" does not give a valid preprocessing token compare.c:144:14: warning: pasting "->" and "share" does not give a valid preprocessing token version.c: In function `init_Linux_version': version.c:35: warning: implicit declaration of function `exit' sysinfo.c: In function `meminfo': sysinfo.c:255: warning: unsigned int format, different type arg (arg 3) sysctl.c: In function `ReadSetting': sysctl.c:343: warning: suggest parentheses around assignment used as truth value sysctl.c:347: warning: suggest parentheses around assignment used as truth value sysctl.c: In function `DisplayAll': sysctl.c:401: warning: suggest parentheses around assignment used as truth value !!! ERROR: The ebuild did not complete successfully. !!! Function src_compile, Line 1, Exitcode 2 !!! (no error message) !!! emerge aborting on /usr/portage/sys-apps/procps/procps-2.0.7-r6.ebuild .

Notice that ../mcopidl/mcopidl its /var/tmp/portage/arts-1.0.2-r1/work/arts-1.0.2/mcopidl/mcopidli686-pc-linux-gnu-g++ -DGSL_WANT_GLIB_WRAPPER -DGSL_WANT_ARTS_THREADS -DNDEBUG -DNO_DEBUG -O2 -march=athlon -O3 -pipe -fno-exceptions -fno-check-new -ftemplate-depth-99 -o .libs/gslffttest gslffttest.o dummy.o ./.libs/libgsl.a /var/tmp/portage/arts-1.0.2-r1/work/arts-1.0.2/mcop/.libs/libmcop.so -L/lib -L/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2 -L/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2/../../../../i686-pc-linux-gnu/lib -L/usr/lib/gcc-lib/i686-pc-linux-gnu/3.2/../../.. -L/usr/i686-pc-linux-gnu/bin -L/usr/i686-pc-linux-gnu/lib -L/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1/gcc-lib/i686-pc-linux-gnu/3.1 -L/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1/../../../../i686-pc-linux-gnu/lib -lresolv -ldl /usr/lib/gcc-lib/i686-pc-linux-gnu/3.1/libstdc++.so -lm -lc -lgcc_s -Wl,--rpath -Wl,/usr/kde/3/lib -Wl,--rpath -Wl,/usr/lib/gcc-lib/i686-pc-linux-gnu/3.1
creating gslffttest
make[3]: Leaving directory `/var/tmp/portage/arts-1.0.2-r1/work/arts-1.0.2/flow/gsl'
make[3]: Entering directory `/var/tmp/portage/arts-1.0.2-r1/work/arts-1.0.2/flow'
../mcopidl/mcopidl -t ../flow/artsflow.idl
lt-mcopidl: error while loading shared libraries: libstdc++.so.4: cannot open shared object file: No such file or directory
make[3]: *** [artsflow.h] Error 127
make[3]: Leaving directory `/var/tmp/portage/arts-1.0.2-r1/work/arts-1.0.2/flow'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/var/tmp/portage/arts-1.`/var/tmp/portage/arts-1.0.2-r1/work/arts-1.0.2/flow'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/arts-1.0.2-r1/work/arts-1.0.2'
make: *** [all] Error 2
!!! ERROR: The ebuild did not complete successfully.
!!! Function kde_src_compile, Line -7414, Exitcode 2
!!! died running emake, kde_src_compile:make
Agreed. Why put yourself through the pain if you can't solve half of the error that comes up? Wait for the final release and be happy.Daganoth wrote:*Looks over the death and destruction and sighs* Its sad when you have to use Window$ XP as a backup.I believe I'll wait for 1.4
tebers wrote:Solved it by changing my makeoptions.
I had "-j8 -s", I comment them and remerged procps.
I think the -s flag was the cause for that.
tebers wrote:I was so brave emerge -e world after upgradinmg to gcc3.2
and my system stopped here.
So i think this package is broken.
Code: Select all
compare.c:143:17: warning: pasting "->" and "resident" does not give a valid preprocessing token compare.c:143:17: warning: pasting "->" and "resident" does not give a valid preprocessing token compare.c:143:17: warning: pasting "->" and "resident" does not give a valid preprocessing token compare.c:143:17: warning: pasting "->" and "resident" does not give a valid preprocessing token compare.c:144:14: warning: pasting "->" and "share" does not give a valid preprocessing token compare.c:144:14: warning: pasting "->" and "share" does not give a valid preprocessing token compare.c:144:14: warning: pasting "->" and "share" does not give a valid preprocessing token compare.c:144:14: warning: pasting "->" and "share" does not give a valid preprocessing token version.c: In function `init_Linux_version': version.c:35: warning: implicit declaration of function `exit' sysinfo.c: In function `meminfo': sysinfo.c:255: warning: unsigned int format, different type arg (arg 3) sysctl.c: In function `ReadSetting': sysctl.c:343: warning: suggest parentheses around assignment used as truth value sysctl.c:347: warning: suggest parentheses around assignment used as truth value sysctl.c: In function `DisplayAll': sysctl.c:401: warning: suggest parentheses around assignment used as truth value !!! ERROR: The ebuild did not complete successfully. !!! Function src_compile, Line 1, Exitcode 2 !!! (no error message) !!! emerge aborting on /usr/portage/sys-apps/procps/procps-2.0.7-r6.ebuild .