Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 May 2005 01:08:30 -0700
From:      "Darren Pilgrim" <dmp@bitfreak.org>
To:        "'Dan Nelson'" <dnelson@allantgroup.com>
Cc:        hackers@freebsd.org
Subject:   RE: Forcing static-linking on a port?
Message-ID:  <002001c56037$c90171b0$0a2a15ac@SMILEY>
In-Reply-To: <20050524044808.GD16069@dan.emsphone.com>

next in thread | previous in thread | raw e-mail | index | archive | help
From: Dan Nelson [mailto:dnelson@allantgroup.com]=20
>=20
> 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:
> >=20
> > NO_SHARED=3Dtrue (added to /etc/make.conf)
> > make -DNO_SHARED
> > make LDFLAGS+=3D-static
> >=20
> > 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.
>=20
> NO_SHARED only works on programs that use the bsd.prog.mk makefile
> template; I'd guess under a dozen ports do this.
>=20
> 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.

No luck on either string.  I ended up getting what I wanted by going =
through
the source Makefile and adding "-static" to the appropriate line in the
target for the program I needed static-linked.  Now devd can bring up my
wireless NIC at boot.  Works great!





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?002001c56037$c90171b0$0a2a15ac>