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

Assigned To
None
Authored By
• gniibe
Aug 14 2020, 5:49 AM

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.

Event Timeline

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.

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.