How to get a static binary from ports

Jeremy Chadwick koitsu at FreeBSD.org
Wed Sep 5 13:06:00 PDT 2007


On Wed, Sep 05, 2007 at 08:45:15PM +0200, Karol Kwiatkowski wrote:
> Hi all,
> 
> to keep it short:
> 
> is there any ports knob to statically link binaries?
> If not, what steps should I take to modify a port?
> 
> # ldd (...)/work/rrdtool-1.2.23/src/rrdtool
> (...)/work/rrdtool-1.2.23/src/rrdtool:
>     libfreetype.so.9 => /usr/local/lib/libfreetype.so.9 (0x280cb000)
>     libpng.so.5 => /usr/local/lib/libpng.so.5 (0x28135000)
>     libz.so.4 => /lib/libz.so.4 (0x2815b000)
>     libart_lgpl_2.so.5 => /usr/local/lib/libart_lgpl_2.so.5 (0x2816d000)
>     libm.so.5 => /lib/libm.so.5 (0x28182000)
>     libc.so.7 => /lib/libc.so.7 (0x28197000)
> 
> librrd.so.2 is now included statically, but the rest is not. I tried
> various configure options like --enable-static, --disable-shared, also
> added '-static' to CFLAGS and/or LDFLAGS in Makefile plus various
> combinations of the above but that doesn't make a difference.
> 
> How can I include the rest of the libraries in the binary?

Why do you need this suite of applications statically-linked?  There
are many downsides to using statically-linked binaries, and many
positives to using shared libraries.  If you want to know the pros and
cons to static (the cons outweigh the pros), I will be more than happy
to provide you a detailed explanation.

To directly answer your question: you need to build all the rest of
those libraries as static as well; that is to say, you need
libfreetype.a, libpng.a, libart_lgpl_2.a and so on.

AFAIK, there is no "easy" way to do this.  Each port has to be built
with static capabilities.  I believe an example port which does this
is net/cvsup, using either the STATIC or WITH_STATIC knob.

-- 
| Jeremy Chadwick                                    jdc at parodius.com |
| Parodius Networking                           http://www.parodius.com/ |
| UNIX Systems Administrator                      Mountain View, CA, USA |
| Making life hard for others since 1977.                  PGP: 4BD6C0CB |



More information about the freebsd-ports mailing list