summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Baldwin <jhb@FreeBSD.org>2005-10-28 19:24:41 +0000
committerJohn Baldwin <jhb@FreeBSD.org>2005-10-28 19:24:41 +0000
commitabf809c118725d9a543e264ae31c0019f28ae27a (patch)
treea37ebd9daee6ee0e7a5b70d0090ebede47741222
parent96fb3ac3fc074f5c381bca63dee8a818dd47842e (diff)
Notes
-rw-r--r--share/man/man5/libmap.conf.534
1 files changed, 24 insertions, 10 deletions
diff --git a/share/man/man5/libmap.conf.5 b/share/man/man5/libmap.conf.5
index f6da1eaa4c02..4885df7b6712 100644
--- a/share/man/man5/libmap.conf.5
+++ b/share/man/man5/libmap.conf.5
@@ -95,6 +95,22 @@ The most common use at the date of writing is for allowing multiple
.Tn POSIX
threading libraries to be used on a system without relinking or
changing symlinks.
+.Pp
+This mechanism has also been used to create shims to allow Linux
+shared libraries to be dynamically loaded into
+.Fx
+binaries.
+In this case, an Exact constraint is used for the Linux shared library,
+mapping libraries it depends on to a wrapper.
+The wrapper then defines any needed symbols for the Linux shared library
+and relies on its libraries not being mapped to provide actual
+implementations.
+It appears that only libraries loaded via
+.Xr dlopen 3
+will work correctly.
+The symbol version information in shared libraries is checked at
+link time, but at run time the version information is currently
+ignored.
.Sh FILES
.Bl -tag -width ".Pa /etc/libmap.conf" -compact
.It Pa /etc/libmap.conf
@@ -106,25 +122,23 @@ The libmap configuration file.
#
# candidate mapping
#
-libpthread.so.1 libpthread.so.1 # Everything uses 'libpthread'
-libpthread.so libpthread.so
-
-libc_r.so.5 libpthread.so.1 # Everything that uses 'libc_r'
+libc_r.so.6 libpthread.so.2 # Everything that uses 'libc_r'
libc_r.so libpthread.so # now uses 'libpthread'
[/tmp/mplayer] # Test version of mplayer uses libc_r
-libpthread.so.1 libc_r.so.5
+libpthread.so.2 libc_r.so.6
libpthread.so libc_r.so
-[mplayer] # All other mplayers use libpthread
-libpthread.so.1 libpthread.so.1
-libpthread.so libpthread.so
-
[/usr/local/jdk1.4.1/] # All Java 1.4.1 programs use libthr
# This works because "javavms" executes
# programs with the full pathname
-libpthread.so.1 libthr.so.1
+libpthread.so.2 libthr.so.2
libpthread.so libthr.so
+
+# Glue for Linux-only EPSON printer .so to be loaded into cups, etc.
+[/usr/local/lib/pips/libsc80c.so]
+libc.so.6 pluginwrapper/pips.so
+libdl.so.2 pluginwrapper/pips.so
.Ed
.Sh SEE ALSO
.Xr ldd 1 ,