1. Add a symlink from /compat/linux/lib/librt.so.1 to
/compat/linux/usr/lib/librt.so.1. This bug exists only
at linux_base-fc4 _and_ osrelease=2.4.2.
2. Bump PORTREVISION.
Note: The symlink is created at pkg-install script since the first
run of '/compat/linux/sbin/ldconfig -r /compat/linux' seems to remove
Tijl Coosemans <tijl at ulyssis.org>:
This is not really a bug of linux compat, but is because of the
1. opening /path/to/somefile under linux compat first tries
/compat/linux/path/to/somefile then /path/to/somefile.
2. linux binaries have two search paths for librt.so.1:
/lib and /usr/lib.
3. fc4 has a librt.so.1 in /lib but it is rejected under 2.4.2
4. fc4 does not have a librt.so.1 under /usr/lib so when the runtime
linker tries this search path it ends up opening FreeBSD
/usr/lib/librt.so.1 (because of point 1) and fails.
By adding a softlink in /compat/linux/usr/lib to the librt.so.1 in
/compat/linux/lib, the linker doesn't open the FreeBSD librt.so.1
anymore. Instead, under 2.4.2, it rejects this lib and then tries an
internal search path /lib/obsolete/linuxthreads where it finds the
correct version. Under 2.6.16 the softlink doesn't change anything,
so imho this is something the fc4 port/package should deal with.
Submitted by: Jason Bacon <jwbacon at tds.net>
Convinced by: Tijl Coosemans <tijl at ulyssis.org>
Patched by: bsam (me)