diff options
author | Boris Samorodov <bsam@FreeBSD.org> | 2008-04-20 04:51:13 +0800 |
---|---|---|
committer | Boris Samorodov <bsam@FreeBSD.org> | 2008-04-20 04:51:13 +0800 |
commit | e53decf13873ea20e55f554c6921652d6adca790 (patch) | |
tree | 292e58488e982765082888a963cad608eb699567 /emulators | |
parent | d4413455b8e7fc9b4410c64d69abe05a48ccedb9 (diff) | |
download | freebsd-ports-gnome-e53decf13873ea20e55f554c6921652d6adca790.tar.gz freebsd-ports-gnome-e53decf13873ea20e55f554c6921652d6adca790.tar.zst freebsd-ports-gnome-e53decf13873ea20e55f554c6921652d6adca790.zip |
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
the link.
Tijl Coosemans <tijl at ulyssis.org>:
-----
This is not really a bug of linux compat, but is because of the
following:
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
emulation.
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.
-----
PR: 121494
Submitted by: Jason Bacon <jwbacon at tds.net>
Convinced by: Tijl Coosemans <tijl at ulyssis.org>
Patched by: bsam (me)
Diffstat (limited to 'emulators')
-rw-r--r-- | emulators/linux_base-fc4/Makefile | 2 | ||||
-rw-r--r-- | emulators/linux_base-fc4/pkg-install | 5 | ||||
-rw-r--r-- | emulators/linux_base-fc4/pkg-plist | 1 |
3 files changed, 7 insertions, 1 deletions
diff --git a/emulators/linux_base-fc4/Makefile b/emulators/linux_base-fc4/Makefile index 2db3d660a562..e5c8619ba74a 100644 --- a/emulators/linux_base-fc4/Makefile +++ b/emulators/linux_base-fc4/Makefile @@ -8,7 +8,7 @@ PORTNAME= fc PORTVERSION= 4 -PORTREVISION= 11 +PORTREVISION= 12 CATEGORIES= emulators linux MASTER_SITES= ${MASTER_SITE_FEDORA_LINUX} MASTER_SITE_SUBDIR= ${PORTVERSION}/${LINUX_RPM_ARCH}/os/Fedora/RPMS \ diff --git a/emulators/linux_base-fc4/pkg-install b/emulators/linux_base-fc4/pkg-install index 5a429d6996b7..d98be7c05604 100644 --- a/emulators/linux_base-fc4/pkg-install +++ b/emulators/linux_base-fc4/pkg-install @@ -48,6 +48,11 @@ POST-INSTALL) echo 'Running linux ldconfig...' ${PKG_PREFIX}/sbin/ldconfig -r ${PKG_PREFIX} # +# Create a symlink to disallow using a FreeBSD native library, but find +# linux one at /lib/obsolete/linuxthreads +# + ln -s ${PKG_PREFIX}/lib/ld-2.3.6.so ${PKG_PREFIX}/usr/lib/librt.so.1 +# # Create linux mtree # mkdir -p ${PKG_PREFIX}/var/yp diff --git a/emulators/linux_base-fc4/pkg-plist b/emulators/linux_base-fc4/pkg-plist index e07ac02cc6ff..29def63f8ef6 100644 --- a/emulators/linux_base-fc4/pkg-plist +++ b/emulators/linux_base-fc4/pkg-plist @@ -657,6 +657,7 @@ usr/lib/libstdc++-2-libc6.1-1-2.9.0.so usr/lib/libstdc++-3-libc6.2-2-2.10.0.so usr/lib/libstdc++-libc6.1-1.so.2 usr/lib/libstdc++-libc6.2-2.so.3 +usr/lib/librt.so.1 usr/lib/libttf.so.2 usr/lib/libttf.so.2.3.0 usr/lib/libz.so.1 |