libtool problem for some platforms for 'make check' (program built with -no-install won't work without installation)
Open, NormalPublic

Description

Program built with -no-install won't work without installation.

On those platforms, make check is required to be invoked after installation.
It is basically an issue of libtool.

libtool works like this:

  • For program without -no-install, it uses wrapper script specifying the runtime path to the library by LD_LIBRARY_PATH (or equivalent), so that the program can work without installation
  • For program with no-install, it uses a feature (e.g., -rpath in ELF environment) to specify the runtime path to the library *in* the executable. The executable cannot be installed because the path of build directly is embedded in the executable.

When latter doesn't work well, make check may fail.

werner triaged this task as Normal priority.Aug 17 2020, 9:41 AM
werner added a project: toolchain.
gniibe added a comment.Dec 1 2020, 3:09 AM

For macOS, with SIP, some program like libgcrypt/tests/random fails, because the hack for DYLD_LIBRARY_PATH by libtool doesn't work for child process:
https://developer.apple.com/library/archive/documentation/Security/Conceptual/System_Integrity_Protection_Guide/RuntimeProtections/RuntimeProtections.html

Any dynamic linker (dyld) environment variables, such as DYLD_LIBRARY_PATH, are purged when launching protected processes.