iyzs...@member.fsf.org (宋文武) writes: > The `dynamic-link` will search and dlopen the shared library. The guile > from guix doesn’t search common places like ‘/usr/lib’, so you need to > set the environment variable `LD_LIBRARY_PATH` or `LTDL_LIBRARY_PATH` > explicitly to the directory contains `libm.so`. > > by the way, since guile is linked with libm.so, we can just use > `(dynamic-link)` here. > > well, I also find `(dynamic-link "libm-2.22")` work too, but it doesn’t > seem to be what we want to use.
I think it is weird. It seems only dynamic linking with "libc" or "libm" fails, dynamic linking with external library like "libpcre2-8" or anyhome-made shared library would work. And yes, "libc-2.22" and "libm-2.22" also works for me. As you have mentioned, since guile is already linked with "libc" and "libm", so it is pratically not a problem. I am just wondering if it is a bug or the intended behavior. Below are the selected output from running `LD_DEBUG=all LD_LIBRARY_PATH="$HOME/.guix-profile/lib" guile`: scheme@(guile-user)> (dynamic-link "libm") 29677: 29677: file=/home/alexvong1995/.guix-profile/lib/libm.so [0]; dynamically loaded by /home/alexvong1995/.guix-profile/lib/libltdl.so.7 [0] 29677: 29677: file=/gnu/store/5i87jzm90nw8j692y7z1j2qfx16h6ni3-guile-2.0.11/lib/libm.so [0]; dynamically loaded by /home/alexvong1995/.guix-profile/lib/libltdl.so.7 [0] 29677: 29677: file=/gnu/store/5i87jzm90nw8j692y7z1j2qfx16h6ni3-guile-2.0.11/lib/guile/2.0/extensions/libm.so [0]; dynamically loaded by /home/alexvong1995/.guix-profile/lib/libltdl.so.7 [0] ERROR: In procedure dynamic-link: ERROR: In procedure dynamic-link: file: "libm", message: "file not found" Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue. scheme@(guile-user)> (dynamic-link "libc") 29677: 29677: file=/home/alexvong1995/.guix-profile/lib/libc.so [0]; dynamically loaded by /home/alexvong1995/.guix-profile/lib/libltdl.so.7 [0] 29677: 29677: file=/gnu/store/5i87jzm90nw8j692y7z1j2qfx16h6ni3-guile-2.0.11/lib/libc.so [0]; dynamically loaded by /home/alexvong1995/.guix-profile/lib/libltdl.so.7 [0] 29677: 29677: file=/gnu/store/5i87jzm90nw8j692y7z1j2qfx16h6ni3-guile-2.0.11/lib/guile/2.0/extensions/libc.so [0]; dynamically loaded by /home/alexvong1995/.guix-profile/lib/libltdl.so.7 [0] ERROR: In procedure dynamic-link: ERROR: In procedure dynamic-link: file: "libc", message: "file not found" Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue.