Setting LD_PRELOAD for a port

b. f. bf1783 at
Mon Jan 25 08:36:43 UTC 2010

rihad wrote:
>How does one cleanly set a LD_PRELOAD environment variable for a port?
>I tried it in /etc/rc.conf:
>(FreeRADIUS 2.1.6 with rlm_perl otherwise fails to start under perl
>5.8.8 due to some unresolved dependency. (And I can't use Perl 5.8.9
>because rlm_perl then just segfaults.) Older FreeRADIUS 2.1.3 w/ Perl
>5.8.8 works fine without requiring any LD_* workarounds though.)
>but then
># /usr/local/etc/rc.d/radiusd start
>/usr/local/etc/rc.d/radiusd: WARNING: no shebang line in /usr/bin/env
>[: /usr/bin/env: unexpected operator
>Starting radiusd
>The daemon does start, but I can't "stop" it later, and "status" shows
>that it isn't running.
>So I only have to hardcode it in /usr/local/etc/rc.d/radiusd?

This is ugly, ugly, ugly.  You should talk to the port maintainer and
try to determine the problem with the PERL option in the port.  It
simply says USE_PERL=yes in the port Makefile, which suggests that
5.8.9 should work.  If you want to take a chance on this ugly hack,
you can use libmap.conf(5) with a constraint to substitute the older only for the binaries that are broken.  But will these
binaries still attempt to use other perl libraries or binary
executables that are associated with another perl version?  Look out.


More information about the freebsd-ports mailing list