Build shared libraries only as the default

Now that we have more options in terms of static/shared libraries,
switch from the existing default of building both shared and static
libraries to building shared libraries only (of course only on
platforms that support shared libraries).

Building both shared and static takes time (since the shared objects
must be built with -fPIC, while static objects are generally built
without, as -fPIC has some performance impact) and consumes a little
bit more disk space.

For example, a static+shared build of libglib2 takes 1 minutes and 59
seconds, with a final build directory of 96 MB. A shared-only build of
libglib2 takes only 1 minutes and 31 seconds (almost a 25% reduction
of the build time), and the final build directory weights 89 MB (a
reduction of almost 8%).

So, switching to a shared library only build brings some useful build
time and build size benefits.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
This commit is contained in:
Thomas Petazzoni 2014-12-11 23:50:11 +01:00
parent 41a1872402
commit f1d3e09895

View File

@ -527,7 +527,7 @@ comment "enabling Stack Smashing Protection requires support in the toolchain"
choice choice
bool "libraries" bool "libraries"
default BR2_SHARED_STATIC_LIBS if BR2_BINFMT_SUPPORTS_SHARED default BR2_SHARED_LIBS if BR2_BINFMT_SUPPORTS_SHARED
default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED default BR2_STATIC_LIBS if !BR2_BINFMT_SUPPORTS_SHARED
help help
Select the type of libraries you want to use on the target. Select the type of libraries you want to use on the target.