mirror of
https://github.com/systemd/systemd.git
synced 2024-12-23 21:35:11 +03:00
build-sys: Use slim LTO objects if possible
While 235c6e6
gets LTO builds running again, it goes back to using fat
LTO objects instead of using gcc-{ar,nm,ranlib}. Building these fat
objects takes significantly more time.
Use the suggested solution and look for gcc-{ar,nm,ranlib}, which launch
the binutils tools with the appropriate --plugin parameter. GCC versions
that do not ship these should either default to -ffat-lto-objects or do
not support LTO at all.
On another note, nm from binutils 2.25 seems to be smart enough to load
the LTO plugin when needed without having to specify --plugin.
This commit is contained in:
parent
2ec7c4279e
commit
4fecbe59da
@ -38,6 +38,11 @@ AM_INIT_AUTOMAKE([foreign 1.11 -Wall -Wno-portability silent-rules tar-pax no-di
|
||||
AM_SILENT_RULES([yes])
|
||||
AC_CANONICAL_HOST
|
||||
AC_DEFINE_UNQUOTED([CANONICAL_HOST], "$host", [Canonical host string.])
|
||||
|
||||
AC_CHECK_TOOLS([AR], [gcc-ar ar], [:])
|
||||
AC_CHECK_TOOLS([NM], [gcc-nm nm], [:])
|
||||
AC_CHECK_TOOLS([RANLIB], [gcc-ranlib ranlib], [:])
|
||||
|
||||
LT_PREREQ(2.2)
|
||||
LT_INIT([disable-static])
|
||||
|
||||
@ -196,7 +201,7 @@ AS_CASE([$CC], [*clang*],
|
||||
|
||||
AS_CASE([$CFLAGS], [*-O[[12345sz\ ]]*],
|
||||
[CC_CHECK_FLAGS_APPEND([with_cflags], [CFLAGS], [\
|
||||
-flto -ffat-lto-objects])],
|
||||
-flto])],
|
||||
[AC_MSG_RESULT([skipping -flto, optimization not enabled])])
|
||||
AC_SUBST([OUR_CFLAGS], "$with_cflags $sanitizer_cflags")
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user