Hello, we do have a serious problem with the upgrade process of gcc and glibc on PPC64. Currently we have glibc-2.3.4.20041102-r2 and gcc-3.4.6-r1 stable. If we ever want to stabilize gcc-4.1.x we will run into this problem: gcc-4.1 requires >=sys-libs/glibc-2.3.6. If we would mark glibc-2.4 stable at the same time (skipping glibc-2.3.6 as a stable version) portage would try to merge glibc-2.4 as a dependency of gcc-4.1. Unfortunatly the compile of glibc-2.4 *will* fail as it requires gcc-4.x. As this point we have a 'circular dependency' as glibc-2.4 requires gcc-4.x and gcc-4.1 requires >=sys-libs/glibc-2.3.6. SOLUTION? We would need to stablize glibc-2.3.6 and make sure that specific version is installed before the upgrade. Steps for reproduce this: # ekeyword ppc64 /usr/portage/sys-devel/gcc/gcc-4.1.1.ebuild # emerge gcc -p These are the packages that I would merge, in order: Calculating dependencies - !!! All ebuilds that could satisfy ">=sys-libs/glibc-2.3.6" have been masked. !!! One of the following masked packages is required to complete your request: - sys-libs/glibc-2.4-r1 (masked by: -* keyword) - sys-libs/glibc-2.4-r3 (masked by: -* keyword) - sys-libs/glibc-2.4-r2 (masked by: -* keyword) - sys-libs/glibc-2.3.6-r2 (masked by: ~ppc64 keyword) - sys-libs/glibc-2.3.6-r3 (masked by: ~ppc64 keyword) - sys-libs/glibc-2.3.6-r1 (masked by: -* keyword) - sys-libs/glibc-2.3.6 (masked by: -* keyword) - sys-libs/glibc-2.3.6-r4 (masked by: ~ppc64 keyword) For more information, see MASKED PACKAGES section in the emerge man page or refer to the Gentoo Handbook. !!! (dependency required by "sys-devel/gcc-4.1.1" [ebuild]) # ekeyword ppc64 /usr/portage/sys-libs/glibc/glibc-2.4-r3.ebuild # emerge gcc -p These are the packages that I would merge, in order: Calculating dependencies ...done! [ebuild U ] sys-libs/glibc-2.4-r3 [2.3.4.20041102-r2] [ebuild NS ] sys-devel/gcc-4.1.1 --------- At this point glibc *will* fail. ---------
so.. this is how I think it *could* work: (almost the same as what ppc did) ______________ Step 1 ______________ mark glibc 2.3.6-r4 stable on ppc64: - busybox does build now (thanks tgall!) - it is stable ______________ Step 2 ______________ add this to 'packages' file in current profiles: <sys-devel/gcc-4 <sys-libs/glibc-2.4 ______________ Step 3 ______________ glibc 2.3.6 cannot be compiled using binutils 2.17 so add this to 'packages' file, too: (this will be good for the future, when we mark binutils 2.17 stable some day) <sys-devel/binutils-2.17 (glibc 2.4 can be compiled using binutils 2.16 and 2.17 by the way) ______________ Step 4 ______________ solve bug #126960 so gcc 4.1 compiles on power3 hardware ______________ Step 5 ______________ mark glibc 2.4 and gcc 4.1 stable ______________ Step 6 ______________ create profiles for 2006.1 having this in 'packages' file: >=sys-devel/gcc-4.1.1 >=sys-libs/glibc-2.4 THE DOWNSIDES OF THIS: we would still have a minimum of one broken package: libstdc++-v3 (bug #97977)
I think we will stick with glibc 2.3.6 and gcc 3.4.6 for the next release. as glibc 2.3.6 is stable I'll close this bug, as we are now able to upgrade to gcc 4.1 and glibc 2.4 in the future.