Uplifiting to glibc 2.3.2
"Wichmann, Mats D" <[email protected]> Fri, 9 Jan 2004 19:20:18 -0800
| Newsgroups | gmane.linux.lsb.implementation |
|---|---|
| Message-ID | <[email protected]> |
Those of you who have watched the checking messages know the lead-up to this, but I'll mention it anyway. I'm taking a pass at uplifting a bunch of the lsbsi packages for LSB 2.0, and while I'm there enabling some additional architectures too. The "simple" ones (one where we don't have an important patch in place), and even a non-simple one (changing to use coreutils, which is not quite done - I haven't taken care of the "don't install non-LSB binaries" part for it yet) are done. gcc 3.2.x -> 3.3.2 didn't seem too big a deal, except that there was a problem doing glibc 2.2.5 with it. So it seemed the next step was to do glibc 2.2.5 -> glibc 2.3.2. This is proving a royal pain, because the configure script (and the subsidiary config.guess) do so much more. It's pretty much breaking the scheme we use. The current lsbsi scheme is to build a bootstrap, consisting of a bunch of statically linked binaries. The bootstrap is then copied to a chroot, and inside the chroot, a glibc and other libraries are built, then everything is rebuilt dynamic (plus a bunch of additional stuff, since the bootstrap is really minimal). The bootstrap does not include glibc, since everything is statically linked it's theoretically not needed. The first thing built in the chroot is glibc, and glibc 2.3.2 does a bunch of additonal configure checks that 2.2.x didn't do, and these additional checks depend on the presence of a bunch of headers files that would normally be provided by glibc, but are not present in the minimal copy-of-bootstrap chroot, which never had glibc's headers installed into it. I've faked a couple of these, but it looks like one of those "fix one, that lets you get to turn over the next rock with nasty things under it" deals. I'm not sure I'm going to be able to solve this reasonably. The current Linux From Scratch does something different. It still builds a first phase, but it includes a full glibc, and it's not chrooted to, it's simply in an alternate location, and doesn't have the oddity we have of having to overwrite everything that was built in the bootstrap phase, as instead of chrooting to that tree, it uses the binaries in the alternate location to build the new tree. To put this into lsbsi context, we build bootstrap, chroot to it, and use that to build the intermediate phase. Then we use the intermediate to build the final, reduced, phase. LFS builds a bootstrap-like thing, changes paths to use the bootstrap, and uses that to build the intermediate phase. Because LFS doesn't have our requirement to produce a final limited phase, that step is just skipped. Okay, enough blather. I'm interested in thoughts about what I should do. Continue to try to fake it by adding empty or nearly-empty headers to the intermediate-before-glibc phase until I get glibc-2.3.2 to configure correctly? or think about revamping the first phase to align more closely with the current LFS scheme? -- mats