summaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorimp <imp@FreeBSD.org>2005-08-10 21:44:26 +0000
committerimp <imp@FreeBSD.org>2005-08-10 21:44:26 +0000
commit1807c01bb11002d0bf16d99fa51a684d7a61d0f3 (patch)
treefb8cd2ddb9c51c7f47f2eca808f0bd3df34a40b7 /share
parent5ef68f901604a543eb23e684348f41f46724d1df (diff)
downloadFreeBSD-src-1807c01bb11002d0bf16d99fa51a684d7a61d0f3.zip
FreeBSD-src-1807c01bb11002d0bf16d99fa51a684d7a61d0f3.tar.gz
Document methods people use to load linux shared libraries in FreeBSD
binaries. A very neat trick.
Diffstat (limited to 'share')
-rw-r--r--share/man/man5/libmap.conf.521
1 files changed, 21 insertions, 0 deletions
diff --git a/share/man/man5/libmap.conf.5 b/share/man/man5/libmap.conf.5
index f6da1ea..b347f61 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 use 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
@@ -125,6 +141,11 @@ libpthread.so libpthread.so
# programs with the full pathname
libpthread.so.1 libthr.so.1
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 ,
OpenPOWER on IntegriCloud