I've been working on getting pike packages set up using pkgsrc, and I've run into some strange behavior on (at least) Linux:
The configure scripts for modules seem to be using the smartlink binary and the generated Makefiles use the smartlink script at bin/smartlink. Is that intentional?
Also, I think the configure test that controls how the smartlink binary works is broken (or at least different than the script), and causes configure and compilation to work incorrectly when using the pkgsrc cwrappers:
The smartlink script converts -R options to -Wl,-rpath,..., and that the smartlink binary at least on the current system I'm using, seems to just drop them in favor of environment variables. For example (I modified the script to print the command it would run):
[root@pkgsrc-pbulk Pike-v8.0.462]# SMARTLINK_DEBUG=true ./smartlink gcc -R/tmp -L/tmp SMARTLINK: gcc -L/tmp -L/tmp ...
[root@pkgsrc-pbulk Pike-v8.0.462]# SMARTLINK_DEBUG=true bin/smartlink gcc -R/tmp -L/tmp SMARTLINK: gcc -L/tmp -Wl,-rpath,/tmp ...
It seems to be because of the results of this test:
checking for ld.so run path method... use LD_LIBRARY_PATH/LD_RUN_PATH
It would seem like using the environment variables would be a use case of last resort. Perhaps -Wl should be used for more than just Linux 2.x?
bill