Is you NPTL or is you ain't?
Can anyone tell me definitively what's up?
When I try to update glibc with the 2006.1 profile (I'm using Gentoo, btw) I get errors about how glibc needs NPTL. If I use the no-nptl profile glibc seems to compile all right, but I'm pretty sure I'm limited in what I can install, and what flags I am able to use.
7 Replies
What kernel are you running?
-Chris
Linux localhost 2.6.19-linode26 #1 Thu Dec 7 17:38:04 EST 2006 i686 UML User Mode Linux GNU/Linux
When I use the 2006.1 profile I get the following:
glibc-2.4 is nptl-only!
NPTL requires a CHOST of i486 or better
Which, once I actually took the time to read explains the problem a little better.
You have as a default
CHOST="i386-pc-linux-gnu"
This is a BIG no-no, but I changed the CHOST line to i686 and tried to compile glibc. It seems to be going ok. I'll let you know.
However, it's looking for i686 libraries and not finding them, so it's falling back to i386, which means the code will be unnecessarily "dumbed down", so to speak.
At a guess it looks like you took the lowest common denominator instead of compiling (or otherwise setting up) for the hardware you are using.
I'm not faulting or criticizing you. I really appreciate you even providing Gentoo as an option. I also am guessing that Gentoo is not your usual platform.
I'm also unfamiliar with the details of a UML driven setup so I have no idea if you can even use a 686 setup. I hope this gives you some more info you can use to continue improving the Gentoo image.
Where is that setting? /etc/make.conf, I presume? I'll see what I can do about getting that fixed.
Thanks for letting me know!
-Chris
The CHOST setting is in /etc/make.conf, but that's not the only thing that needs to be changed. As a matter of fact, if I'm right then it really should be left as is, at least until the stage used is the correct one.
If you installed the stage3-x86-2006.1 tarball then CHOST was set correctly and shouldn't be modified (like I did).
Assuming from the fact that the mtune option in CFLAGS is set to i686 that you can use a 686 architecture then the stage that should be installed is stage3-i686-2006.1.
Err … that's assuming you installed from a stage3 (if not, the equivalent exists for stage2 and I'm guessing if you did things from stage1 things would be slightly different).
If you did install the stage?-i686 then the CHOST value just needs to be changed. Otherwise, until you can take the time to redo the Gentoo image you'll need to point the /etc/make.profile to /usr/portage/profiles/default-linux/x86/no-nptl
I've just rebooted after changing the CHOST to i686 and compiling glibc to the latest, it seems to be ok.
So, unless I hear otherwise, it appears that just changing the CHOST line in /etc/make.conf should fix the problem.
Changing the CHOST isn't as simple as changing /etc/make.conf. If you do that, part of your system has been built for i386 and then part will be for i686. I'm not an expert so I don't know how bad this is, but it's bad, so don't do it
I've just purchased my first Linode (which rocks!) and am currently upgrading it to the i686 CHOST. It's not hard, but takes a few steps and some compilation time.
You can read the full blown instructions at:
From a fresh 2006.1 Gentoo/Linode image…
Don't
emerge --sync
yet!Mask off newer versions of glibc and gcc using /etc/portage/package.mask to ensure that no upgrades to the system are available
Follow the Gentoo guide above (upgrade binutils/gcc/glibc, clean out the system, remerge libtool & fix that, remerge world)
Then emerge --sync, wipe out the entries in /etc/portage/package.mask, and then you can go ahead and drop in the new glibc 2.4, and whatever else you like
:)
Since Gentoo 2007.0 is out now, I bet the Linode folks will work up a new image soon and it'll require CHOST to be i686 anyway. If you Linode folks are looking for someone to test/help with a 2007.0 image, find me
If you haven't already seen my GentooSetup
And I'd like to offer my linode as a test bed for the 2007.0 profile as well, Caker.