Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 136519 - [PPC64] impossible to upgrade stable gcc-3.4/glibc-2.3.4 to gcc-4.1/glibc-2.4
Summary: [PPC64] impossible to upgrade stable gcc-3.4/glibc-2.3.4 to gcc-4.1/glibc-2.4
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: PPC64 Linux
: High critical (vote)
Assignee: ppc64 architecture team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 134972
  Show dependency tree
 
Reported: 2006-06-11 23:57 UTC by Markus Rothe (RETIRED)
Modified: 2006-06-30 00:27 UTC (History)
1 user (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Markus Rothe (RETIRED) gentoo-dev 2006-06-11 23:57:23 UTC
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. ---------
Comment 1 Markus Rothe (RETIRED) gentoo-dev 2006-06-28 02:59:05 UTC
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)
Comment 2 Markus Rothe (RETIRED) gentoo-dev 2006-06-30 00:27:33 UTC
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.