libtool: Fix lto option passing for reproducible builds

If lto is enabled, we need the prefix-map variables to be passed to the linker.
Add these to the list of options libtool passes through.

(From OE-Core rev: 2c26d2c00b47df856fb2d9c35486b135094d46ac)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2021-08-05 11:18:20 +01:00
parent 9262d89763
commit 2f743b4739
2 changed files with 23 additions and 0 deletions

View File

@ -23,6 +23,7 @@ SRC_URI = "${GNU_MIRROR}/libtool/libtool-${PV}.tar.gz \
file://0001-libtool-Check-for-static-libs-for-internal-compiler-.patch \
file://0001-Makefile.am-make-sure-autoheader-run-before-autoconf.patch \
file://0001-Makefile.am-make-sure-autoheader-run-before-automake.patch \
file://lto-prefix.patch \
"
SRC_URI[md5sum] = "addf44b646ddb4e3919805aa88fa7c5e"

View File

@ -0,0 +1,22 @@
If lto is enabled, we need the prefix-map variables to be passed to the linker.
Add these to the list of options libtool passes through.
Upstream-Status: Pending
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Index: libtool-2.4.6/build-aux/ltmain.in
===================================================================
--- libtool-2.4.6.orig/build-aux/ltmain.in
+++ libtool-2.4.6/build-aux/ltmain.in
@@ -5424,9 +5424,10 @@ func_mode_link ()
# --sysroot=* for sysroot support
# -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
# -stdlib=* select c++ std lib with clang
+ # -f*-prefix-map* needed for lto linking
-64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
- -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*)
+ -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*|-f*-prefix-map*)
func_quote_for_eval "$arg"
arg=$func_quote_for_eval_result
func_append compile_command " $arg"