Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Jan 2010 03:36:39 -0500
From:      "b. f." <bf1783@googlemail.com>
To:        freebsd-ports@FreeBSD.org
Cc:        rihad <rihad@mail.ru>
Subject:   Re: Setting LD_PRELOAD for a port
Message-ID:  <d873d5be1001250036y28712736tabf987f9aa953ce8@mail.gmail.com>

next in thread | raw e-mail | index | archive | help
rihad wrote:
>Hi,
>
>How does one cleanly set a LD_PRELOAD environment variable for a port?
>I tried it in /etc/rc.conf:
>radiusd_program="/usr/bin/env
>LD_PRELOAD=/usr/local/lib/perl5/5.8.8/mach/CORE/libperl.so
>/usr/local/sbin/radiusd"
>
>(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
libperl.so 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.

b.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?d873d5be1001250036y28712736tabf987f9aa953ce8>