Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 May 2005 23:48:09 -0500
From:      Dan Nelson <dnelson@allantgroup.com>
To:        Darren Pilgrim <dmp@bitfreak.org>
Cc:        hackers@freebsd.org
Subject:   Re: Forcing static-linking on a port?
Message-ID:  <20050524044808.GD16069@dan.emsphone.com>
In-Reply-To: <000401c56012$b34a3570$0a2a15ac@SMILEY>
References:  <000401c56012$b34a3570$0a2a15ac@SMILEY>

next in thread | previous in thread | raw e-mail | index | archive | help
In the last episode (May 23), Darren Pilgrim said:
> I need to make use of a port during start up, but it has library
> dependencies that aren't available, before the complete library path is
> established.  I've tried the following:
> 
> NO_SHARED=true (added to /etc/make.conf)
> make -DNO_SHARED
> make LDFLAGS+=-static
> 
> Every time, running file on the compiled program tells me that the binary is
> dynamically-linked.  I couldn't find anything else in any man pages, Mk
> files, mailing lists, Google, etc.  Sorry for the semi-inappropriate list
> choice, but this one would get swallowed up on -questions.

NO_SHARED only works on programs that use the bsd.prog.mk makefile
template; I'd guess under a dozen ports do this.

Some pieces of software have dynamic-link options hardcoded in their
Makefiles, probably as a workaround for bugs in other OSes.  Those
options override -static.  I can't think of a valid reason for them to
be used in FreeBSD.  Search for (and remove) any occurances of
-Wl,-Bdynamic and -Wl,-Bstatic , and you should be set.

-- 
	Dan Nelson
	dnelson@allantgroup.com



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