David Shen <davidshe...@googlemail.com> posted 53e35fd50906190041j35d95488lbcf3c7eb1efa8...@mail.gmail.com, excerpted below, on Fri, 19 Jun 2009 15:41:30 +0800:
> I am trying to install Xen VM on my gentoo 2008 x64. According to what > http://en.gentoo-wiki.com/wiki/Xen said, I should run "mv /usr/lib/tls > /usr/lib/tls.disabled" and re-compile glibc and gcc to disable the 'tls' > feature. But I found that my system *DOES NOT* have the /usr/lib/tls > file/directory. Does this changed its place, or this prerequisite does > not apply to x64 system? First, note for future reference that "x64" is a rather ambiguous term, as it's (AFAIK) unofficial and could be equally argued to apply to Intel's ia64 aka "itanium" aka "itanic" architecture or to AMD's amd64 aka x86_64 architecture. Of course, this list is for the amd64 arch and it can be assumed you are referring to that here, but as I said, for future reference. =:^O Meanwhile, to your question: I don't do xen but based on my knowledge of Gentoo and Linux history from the 2004 time frame, that doesn't apply to a modern Gentoo Linux system. "tls" refers to "thread local storage". I'm somewhat confused on the exact relationships (whether tls was the nptl on or off version, a google produced some hints that it was the nptl on version, but nothing definitive), but tls was related to nptl, "native posix thread library", which was introduced by Red Hat back in 2002 and was just becoming a big thing on Gentoo about the time I switched to Gentoo around May, 2004. Prior to that, Linux had normally used Linux threads for threading. However, Linux-threads was Linux-only and wasn't entirely POSIX compatible, among other issues. NPTL was higher performing, and gradually took over and became the standard, both due to the better performance and because it WAS POSIX compliant and therefore made easier porting between Linux and the BSDs and various UNIX variants. NPTL did/does require either a 2.6 kernel or a patched 2.4 kernel, and was supported by glibc. Just checking the older glibc versions still in the tree, thru glibc 2.5*, the Gentoo glibc ebuilds have the nptl and nptlonly USE flags. With glibc 2.6, Gentoo was apparently dropping mainline kernel 2.4 support and nptl (and nptlonly) apparently became the un-USE-flagged default. Anyway, back when glibc was built for both nptl and linux-threads, /usr/lib/tls contained one version, while the other was in the standard /lib and /usr/lib locations (where lib means lib64 on amd64, with an equivalent 32-bit version for multilib users). BTW, x86(32) and amd64 no-multilib users now build glibc only once, while amd64 multilib users (the default) build it twice, once for 32-bit and once for 64-bit. During the linux-threads/nptl both era, that was doubled, so amd64 multilib users were actually building glibc four times, one each for nptl and linux-threads, for each of 32-bit and 64-bit! No WONDER emerging glibc seemed to take so long back then! So assuming you're using a 2.6 kernel and glibc >= 2.6 as well, /usr/lib(64)/tls should not exist, unless for some reason it wasn't removed properly during whatever glibc emerge would have gotten rid of it (the first 2.6 version if users hadn't been running USE=nptl nptlonly, the first glibc emerge after they switched to those USE flags if they did run them). The same should apply to the corresponding 32-bit libdir, for those still running multilib (I'm running no-multilib and don't remember where the 32-bit dir was, anymore). Thus, apparently that step of the the xen guide is either still around for the legacy installs still using old glibc versions, or it's there to ensure people remove the dir if it's unused cruft that didn't get cleaned up properly for whatever reason. Since you don't have that dir, you shouldn't have to worry about it. Here's some wikipedia links that should serve as beginning points for further research, if you're curious: http://en.wikipedia.org/wiki/Thread-local_storage http://en.wikipedia.org/wiki/Nptl http://en.wikipedia.org/wiki/LinuxThreads (stub article) -- Duncan - List replies preferred. No HTML msgs. "Every nonfree program has a lord, a master -- and if you use the program, he is your master." Richard Stallman