summarylogtreecommitdiffstats
path: root/lto.sh.in
blob: e6478c44ac2bf70555a89ae209e66e1c6f1a1790 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#!/usr/bin/bash
#
#   lto.sh - Compile with link-time optimization
#

[[ -n "$LIBMAKEPKG_BUILDENV_LTO_SH" ]] && return
LIBMAKEPKG_BUILDENV_LTO_SH=1

LIBRARY=${LIBRARY:-'@libmakepkgdir@'}

source "$LIBRARY/util/option.sh"

build_options+=('lto')
buildenv_functionss+=('buildenv_lto')

buildenv_lto() {
	if check_buildoption "lto" "y" && [[ -f "$(gcc -print-search-dirs | grep install | awk '{print $2 "liblto_plugin.so"}')" ]]; then
		CFLAGS+=" -flto=$(getconf _NPROCESSORS_ONLN)"
		CXXFLAGS+=" -flto=$(getconf _NPROCESSORS_ONLN)"
		LDFLAGS+=" -fuse-linker-plugin"
		LTOPLUGIN="$(gcc -print-search-dirs | grep install | awk '{print $2 "liblto_plugin.so"}')"
		ARFLAGS+=" --plugin $LTOPLUGIN"
		RANLIBFLAGS+=" --plugin $LTOPLUGIN"
		NMFLAGS+=" --plugin $LTOPLUGIN"
	fi
}