[Bug 221032] Absolute pathnames not working with libmap.conf

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed Jul 26 18:28:51 UTC 2017


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=221032

            Bug ID: 221032
           Summary: Absolute pathnames not working with libmap.conf
           Product: Base System
           Version: 11.0-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Keywords: feature, patch
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: tatu.kilappa at iki.fi

Created attachment 184747
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=184747&action=edit
Patch to enable absolute pathname as target in libmap.conf

It seems it's not possible to replace entries in libmap configuration with
absolute pathnames and have them work.

For example, consider installing Nvidia driver from package or ports, it will
create the following libmap directive:

libGL.so        libGL-NVIDIA.so
libGL.so.1      libGL-NVIDIA.so.1

While investigating other things, I found out that replacing the target shared
object with the following:

libGL.so        /usr/local/lib/libGL-NVIDIA.so.1

Creates an error:

Shared object "/usr/local/lib/libGL-NVIDIA.so.1" not found, required by
"<binary>"

The problem lies in rtld.c line 1519 and onward, that checks for absolute path
before going to lm_find. This means, that if libmap.conf contains a mapping
with an absolute pathname, it will try to search that name from the library
search paths, which will obviously not work.

I've attached a patch that fixes the issue at least for me.

If current behavior is intended, or if this should be handled elsewhere, please
disregard this bug report.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list