On Wed, May 19, 2004 at 08:24:35AM -0400, Jakub Jelinek wrote:
1) statically linked programs, no matter whether threaded or not,
will now require a NPTL capable kernel (one from RHL 9, RHEL3,
FC1, FC2 or any 2.6.x kernel should be enough), dynamically linked
programs using -lpthread in some cases as well (e.g. if they are using
the functions present in NPTL but not in LinuxThreads)
When compiling static programs, one can always specify the location for
the LT version. A section about the change in the release notes for the
next FC version could have that information.
2) while previously blindly setting LD_ASSUME_KERNEL environment
variable at the beginning of large shell scripts around some
programs and sometimes even in /etc/profile.d/* often worked,
now the chances are lower (any time such shell script
runs a program which requires NPTL the program would fail
to run). LD_ASSUME_KERNEL should now be really only used
on the command line of the broken program which needs
LinuxThreads. E.g.
LD_ASSUME_KERNEL=2.4.19 /opt/FOOW/bin/barx --args xyz
I'd rather be able to set flags on program files with that information:
# setth lt_fs $(find /opt/java -type f -perm -u+x)
So there would be no need for individual users to know when a
LD_ASSUME_KERNEL is needed, no need for sysadmins to create wrapper
scripts, and no need to go through an obscure shell script finding the
place where the final binary is called.
3) NPTL has not been ported to i386, only i486+, x86_64,
...
This means though that almost no FC3 programs can run
on vanilla i386{SX,DX} CPUs. Is this a problem to anyone?
I don't see myself in need to run FC3 programs on i386. However, as long
as it's possible to do a CC="gcc -I/usr/include/linuxthreads
-L/usr/lib{,64}/linuxthreads" rpmbuild --rebuild package.src.rpm, I'll be
able to.
Now, the question is, as at least all statically linked programs
built on Fedora Core 3 and many dynamically linked ones will require
i486+ atomic instructions (xaddl, cmpxchgl), if we should change
rpm architecture of FC3 rpms or not.
Well, if those .i386.rpms can't run in a i386, then they shouldn't be
named as such. :)
I'd go with the second alternative.
Regards,
Luciano Rocha