12345678910111213141516171819202122232425262728293031323334353637 |
- Don't build object files twice
- When passed --enable-static and --enable-shared, icu will generate
- both a shared and a static version of its libraries.
- However, in order to do so, it builds each and every object file
- twice: once with -fPIC (for the shared library), and once without
- -fPIC (for the static library). While admittedly building -fPIC for a
- static library generates a slightly suboptimal code, this is what all
- the autotools-based project are doing. They build each object file
- once, and they use it for both the static and shared libraries.
- icu builds the object files for the shared library as .o files, and
- the object files for static library as .ao files. By simply changing
- the suffix of object files used for static libraries to ".o", we tell
- icu to use the ones built for the shared library (i.e, with -fPIC),
- and avoid the double build of icu.
- On a fast build server, this brings the target icu build from
- 3m41.302s down to 1m43.926s (approximate numbers: some other builds
- are running on the system at the same time).
- Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
- Index: b/source/config/mh-linux
- ===================================================================
- --- a/source/config/mh-linux
- +++ b/source/config/mh-linux
- @@ -35,7 +35,7 @@
- ## Shared object suffix
- SO = so
- ## Non-shared intermediate object suffix
- -STATIC_O = ao
- +STATIC_O = o
-
- ## Compilation rules
- %.$(STATIC_O): $(srcdir)/%.c
|