wok-next annotate gcc/stuff/patches/gcc-as-needed-push-pop.patch @ rev 21688

updated glu (9.0.0 -> 9.0.1)
author Hans-G?nter Theisgen
date Mon Jun 29 17:17:08 2020 +0100 (2020-06-29)
parents
children
rev   line source
al@21060 1 From: Jakub Jelinek <jakub@redhat.com>
al@21060 2 Subject: [PATCH] Use --push-state --as-needed and --pop-state instead of --as-needed and --no-as-needed for libgcc
al@21060 3
al@21060 4 As discussed, using --as-needed and --no-as-needed is dangerous, because
al@21060 5 it results in --no-as-needed even for libraries after -lgcc_s, even when the
al@21060 6 default is --as-needed or --as-needed has been specified earlier on the
al@21060 7 command line.
al@21060 8
al@21060 9 If the linker supports --push-state/--pop-state, we should IMHO use it.
al@21060 10
al@21060 11 2018-04-11 Jakub Jelinek <jakub@redhat.com>
al@21060 12
al@21060 13 * configure.ac (LD_AS_NEEDED_OPTION, LD_NO_AS_NEEDED_OPTION): Use
al@21060 14 --push-state --as-needed and --pop-state instead of --as-needed and
al@21060 15 --no-as-needed if ld supports it.
al@21060 16 * configure: Regenerated.
al@21060 17
al@21060 18 Index: b/gcc/configure.ac
al@21060 19 ===================================================================
al@21060 20 --- a/gcc/configure.ac
al@21060 21 +++ b/gcc/configure.ac
al@21060 22 @@ -5518,11 +5518,21 @@ if test $in_tree_ld = yes ; then
al@21060 23 if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 16 -o "$gcc_cv_gld_major_version" -gt 2 \
al@21060 24 && test $in_tree_ld_is_elf = yes; then
al@21060 25 gcc_cv_ld_as_needed=yes
al@21060 26 + if test "$gcc_cv_gld_major_version" -eq 2 -a "$gcc_cv_gld_minor_version" -ge 28; then
al@21060 27 + gcc_cv_ld_as_needed_option='--push-state --as-needed'
al@21060 28 + gcc_cv_ld_no_as_needed_option='--pop-state'
al@21060 29 + fi
al@21060 30 fi
al@21060 31 elif test x$gcc_cv_ld != x; then
al@21060 32 # Check if linker supports --as-needed and --no-as-needed options
al@21060 33 if $gcc_cv_ld --help 2>&1 | grep as-needed > /dev/null; then
al@21060 34 gcc_cv_ld_as_needed=yes
al@21060 35 + if $gcc_cv_ld --help 2>&1 | grep push-state > /dev/null; then
al@21060 36 + if $gcc_cv_ld --help 2>&1 | grep pop-state > /dev/null; then
al@21060 37 + gcc_cv_ld_as_needed_option='--push-state --as-needed'
al@21060 38 + gcc_cv_ld_no_as_needed_option='--pop-state'
al@21060 39 + fi
al@21060 40 + fi
al@21060 41 fi
al@21060 42 case "$target:$gnu_ld" in
al@21060 43 *-*-solaris2*:no)