Hi Jeff,

On Tue, Mar 31, 2020 at 06:51:37AM -0400, Jeffrey Walton wrote:

> > I believe the reason the patch works is, the environment is scrubbed
> > before run-tests.sh is run. run-tests.sh then sets DYLD_LIBRARY_PATH
> > (and friends). Since the test runner is calling programs outside the
> > SIP boundary, the variables persist.
I verified as much by copying /bin/bash to ~/bash and running it from
there. Indeed, exported DYLD-variables propagate to ~/bash.

> > > 1. Disable SIP as @theronic suggests.
> > > 2. Set DYLD_LIBRARY_PATH in main via setenv()
> > > 3. Link statically
> > > 4. Use otool to fix up the paths
> > > 5. Link with runtime path.
> > > 6. Link with @origin or @executable relative paths.
> > (2) may work, but it is not needed (based on my experience). Just set
> > LD_LIBRARY_PATH and DYLD_LIBRARY_PATH in the test runner.
> I forgot to mention... DYLD_FALLBACK_LIBRARY_PATH may work. Apple used
> to have a man page on it, but I can't find it anymore.

It's in dyld(1).

> The man page used to say, don't use DYLD_LIBRARY_PATH . Instead, use
> DYLD_FALLBACK_LIBRARY_PATH . The problem is, the fallback path is
> checked after other paths (iirc). That means an old Nettle in
> /usr/local might be loaded instead of the new Nettle in .lib/

Indeed, DYLD_FALLBACK_LIBRARY_PATH is not stripped but will also not
prevent an already installed libnettle from being used for the tests.
-- 
Thanks,
Michael
_______________________________________________
nettle-bugs mailing list
[email protected]
http://lists.lysator.liu.se/mailman/listinfo/nettle-bugs

Reply via email to