From 944788cf8e200dd0a51e14be1ad37753b17bdb4c Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Fri, 24 Sep 2021 17:21:05 -0400 Subject: backport -fsanitize & -fuse-ld for 2.4.6 Signed-off-by: Mike Frysinger --- eltpatch.in | 5 ++++- patches/fsanitize/2.4.6 | 37 +++++++++++++++++++++++++++++++++++++ patches/fuse-ld/2.4.6 | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 patches/fsanitize/2.4.6 create mode 100644 patches/fuse-ld/2.4.6 diff --git a/eltpatch.in b/eltpatch.in index 0765d49..7fa21bc 100644 --- a/eltpatch.in +++ b/eltpatch.in @@ -125,7 +125,10 @@ elibtoolize() { local deptoremove= local do_shallow="no" local force="false" - local elt_patches="install-sh ltmain portage relink max_cmd_len sed test tmp cross as-needed target-nm ppc64le" + local elt_patches=" + install-sh ltmain portage relink max_cmd_len sed test tmp cross as-needed target-nm ppc64le + fsanitize fuse-ld + " for x in "$@" ; do case ${x} in diff --git a/patches/fsanitize/2.4.6 b/patches/fsanitize/2.4.6 new file mode 100644 index 0000000..f5113f5 --- /dev/null +++ b/patches/fsanitize/2.4.6 @@ -0,0 +1,37 @@ +From a5c6466528c060cc4660ad0319c00740db0e42ba Mon Sep 17 00:00:00 2001 +From: Jeremy Huddleston Sequoia +Date: Sun, 18 Oct 2015 21:55:39 -0700 +Subject: [PATCH] libtool: fix GCC/clang linking with -fsanitize=* + +References: +https://lists.gnu.org/archive/html/libtool/2014-04/msg00026.html + +* build-aux/ltmain.in (func_mode_link): Pass -fsanitize=* to the +linker to allow trivial use of the clang address sanitizer. + +Signed-off-by: Jeremy Huddleston Sequoia +Copyright-paperwork-exempt: Yes +--- + build-aux/ltmain.in | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in +index 1cbe875dfd86..2a5aaadd68c0 100644 +--- ltmain.sh ++++ ltmain.sh +@@ -5382,10 +5382,11 @@ func_mode_link () + # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -specs=* GCC specs files + # -stdlib=* select c++ std lib with clang ++ # -fsanitize=* Clang/GCC memory and address sanitizer + -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=*| \ +- -specs=*) ++ -specs=*|-fsanitize=*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + func_append compile_command " $arg" +-- +2.33.0 + diff --git a/patches/fuse-ld/2.4.6 b/patches/fuse-ld/2.4.6 new file mode 100644 index 0000000..c8f107c --- /dev/null +++ b/patches/fuse-ld/2.4.6 @@ -0,0 +1,36 @@ +From f9970d99293faf908fdc153a653fa5781095fb7a Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Sat, 13 Feb 2016 02:14:29 -0500 +Subject: [PATCH] libtool: pass through -fuse-ld flags + +Starting with gcc-4.8, there's a -fuse-ld flag that can be used to +select between bfd & gold. Make sure we pass it through to the +linking stage. + +* build-aux/ltmain.in (func_mode_link): Pass -fuse-ld=* flags +through. +Copyright-paperwork-exempt: Yes +--- + build-aux/ltmain.in | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/build-aux/ltmain.in b/build-aux/ltmain.in +index 40eb0297f37d..26015641925e 100644 +--- ltmain.sh ++++ ltmain.sh +@@ -5383,10 +5383,11 @@ func_mode_link () + # -specs=* GCC specs files + # -stdlib=* select c++ std lib with clang + # -fsanitize=* Clang/GCC memory and address sanitizer ++ # -fuse-ld=* Linker select flags for GCC + -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=*| \ +- -specs=*|-fsanitize=*) ++ -specs=*|-fsanitize=*|-fuse-ld=*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + func_append compile_command " $arg" +-- +2.33.0 + -- cgit v1.2.3-65-gdbad