tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

python libraries vs. RPATH (vs. RUNPATH)



I see this on a NetBSD/macppc 8-STABLE (not *very* recent).  I've
installed devel/py-readline but it doesn't seem to work.  python
doesn't get input line editing and:

  >>> import readline
  Traceback (most recent call last):
    File "<stdin>", line 1, in <module>
  ImportError: Shared object "libreadline.so.8" not found

Poking around I see:

$ ldd /usr/pkg/lib/python3.9/lib-dynload/readline.so
/usr/pkg/lib/python3.9/lib-dynload/readline.so:
        -lreadline.8 => not found
        -lterminfo.1 => /usr/lib/libterminfo.so.1
        -lc.12 => /usr/lib/libc.so.12
$ readelf -d /usr/pkg/bin/python3.9 | grep PATH
 0x0000000f (RPATH)                      Library rpath: [/usr/pkg/lib:/usr/X11R7/lib]
$ readelf -d /usr/pkg/lib/python3.9/lib-dynload/readline.so | grep PATH
 0x0000001d (RUNPATH)                    Library runpath: [/usr/pkg/lib]


The link step for the package was:

gcc -shared -L. -Wl,-zrelro -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib -Wl,-zrelro -L/usr/lib -Wl,-R/usr/lib -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/X11R7/lib -Wl,-R/usr/X11R7/lib -Wl,-zrelro -L/usr/pkg/lib -Wl,-R/usr/pkg/lib -L/usr/lib -Wl,-R/usr/lib -pipe -O2 -D_FORTIFY_SOURCE=2 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/python3.9 -I/usr/pkg/include -I/usr/include -I/usr/pkg/include/python3.9 build/temp.netbsd-8.1_STABLE-macppc-cpython-39/Modules/readline.o -L/usr/pkg/lib -L/usr/pkg/lib -Wl,--enable-new-dtags,-R/usr/pkg/lib -lreadline -ltermcap -o build/lib.netbsd-8.1_STABLE-macppc-cpython-39/readline.so

This works on a recentish current where lib-dynload/readline.so has
RPATH instead of RUNPATH.

I vaguely remember we had a bit of a discussion abour RPATH
vs. RUNPATH a few years ago.  Does anyone remember off-hand if the
relevant fixes made it to -8?

TIA.

-uwe


Home | Main Index | Thread Index | Old Index