]> git.tuebingen.mpg.de Git - osl.git/commit
Allow to build a static version of libosl.
authorAndre Noll <maan@systemlinux.org>
Tue, 22 May 2012 15:55:10 +0000 (17:55 +0200)
committerAndre Noll <maan@systemlinux.org>
Wed, 13 Jun 2012 08:33:39 +0000 (10:33 +0200)
commit7517d207f55baf6955184ea0f24ae38b068861a6
treebe28c7b9055d2edecaba402562c39c27bede338b
parent83466429374f5036d9872f9905837f547967b0d5
Allow to build a static version of libosl.

This adds the new target libosl.a which creates an archive that can
be statically linked into applications. Currently this works only on
ELF-based systems including Linux, FreeBSD and NetBSD, but fails on
MacOS. So it is not built automatically.

Unfortunately, creating libosl.a turned out to be trickier than
expected, because -fvisibility=hidden works only for dynamic libraries.
So we need a different method to hide non-static internal symbols
like make_message() which must not be global (external) because they
might clash with symbols used in the application.

objcopy(1) does the trick but we must provide a list of exceptional
symbols that should not be made local. This list is generated from
the osl.h header file.
Makefile