mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager
synced 2024-10-06 16:21:50 +00:00
build: fix building with LTO
Building with link-time optimization requires some tricks explained in [1]. [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48200#c28
This commit is contained in:
parent
b114b00f0a
commit
e6cf4213a7
|
@ -150,9 +150,9 @@ fi
|
|||
AC_DEFUN([NM_LTO],
|
||||
[AC_ARG_ENABLE(lto, AS_HELP_STRING([--enable-lto], [Enable Link Time Optimization for smaller size (default: no)]))
|
||||
if (test "${enable_lto}" = "yes"); then
|
||||
CC_CHECK_FLAG_APPEND([lto_flags], [CFLAGS], [-flto])
|
||||
CC_CHECK_FLAG_APPEND([lto_flags], [CFLAGS], [-flto -flto-partition=none])
|
||||
if (test -n "${lto_flags}"); then
|
||||
CFLAGS="-flto $CFLAGS"
|
||||
CFLAGS="-flto -flto-partition=none $CFLAGS"
|
||||
else
|
||||
AC_MSG_ERROR([Link Time Optimization -flto is not supported.])
|
||||
fi
|
||||
|
|
11
meson.build
11
meson.build
|
@ -147,6 +147,15 @@ if enable_ld_gc
|
|||
common_ldflags += test_ldflags
|
||||
endif
|
||||
|
||||
enable_lto = get_option('b_lto')
|
||||
if enable_lto
|
||||
# meson already adds '-flto'
|
||||
lto_flag = '-flto-partition=none'
|
||||
assert(cc.has_argument(lto_flag), '-flto-partition=none not supported. Disable link-time optimization with -Db_lto=false.')
|
||||
common_flags += lto_flag
|
||||
common_ldflags += lto_flag
|
||||
endif
|
||||
|
||||
if nm_debug
|
||||
common_flags += cc.get_supported_arguments([
|
||||
'-fno-strict-aliasing',
|
||||
|
@ -986,7 +995,7 @@ if enable_valgrind
|
|||
endif
|
||||
output += '\n'
|
||||
output += ' code coverage: ' + get_option('b_coverage').to_string() + '\n'
|
||||
output += ' LTO: ' + get_option('b_lto').to_string() + '\n'
|
||||
output += ' LTO: ' + enable_lto.to_string() + '\n'
|
||||
output += ' Linker garbage collection: ' + enable_ld_gc.to_string() + '\n'
|
||||
output += ' JSON validation for libnm: ' + enable_json_validation.to_string() + '\n'
|
||||
output += ' crypto: ' + crypto + ' (have-gnutls: ' + crypto_gnutls_dep.found().to_string() + ', have-nss: ' + crypto_nss_dep.found().to_string() + ')\n'
|
||||
|
|
|
@ -1245,7 +1245,7 @@ fcn_name (lookup_type val) \
|
|||
|
||||
#define _NM_BACKPORT_SYMBOL_IMPL(version, return_type, orig_func, versioned_func, args_typed, args) \
|
||||
return_type versioned_func args_typed; \
|
||||
return_type versioned_func args_typed \
|
||||
__attribute__ ((externally_visible)) return_type versioned_func args_typed \
|
||||
{ \
|
||||
return orig_func args; \
|
||||
} \
|
||||
|
|
Loading…
Reference in a new issue