From patchwork Mon Jun 26 19:54:39 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Lu, Hongjiu" X-Patchwork-Id: 21269 Received: (qmail 97805 invoked by alias); 26 Jun 2017 19:54:46 -0000 Mailing-List: contact libc-alpha-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Unsubscribe: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: libc-alpha-owner@sourceware.org Delivered-To: mailing list libc-alpha@sourceware.org Received: (qmail 97794 invoked by uid 89); 26 Jun 2017 19:54:45 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.2 required=5.0 tests=AWL, BAYES_00, GIT_PATCH_0, GIT_PATCH_1, GIT_PATCH_2, GIT_PATCH_3, KAM_LAZY_DOMAIN_SECURITY, NO_DNS_FOR_FROM, RP_MATCHES_RCVD autolearn=ham version=3.3.2 spammy= X-HELO: mga04.intel.com X-ExtLoop1: 1 Date: Mon, 26 Jun 2017 12:54:39 -0700 From: "H.J. Lu" To: GNU C Library Subject: [PATCH] Check linker support for INSERT in linker script Message-ID: <20170626195439.GB7943@gmail.com> Reply-To: "H.J. Lu" MIME-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.8.0 (2017-02-23) Since gold doesn't support INSERT in linker script: https://sourceware.org/bugzilla/show_bug.cgi?id=21676 tst-split-dynreloc fails to link with gold. Check if linker supports INSERT in linker script before using it. Any comments? H.J. --- * config.make.in (have-insert): New. * configure.ac (libc_cv_insert): New. Set to yes if linker supports INSERT in linker script. (AC_SUBST(libc_cv_insert): New. * configure: Regenerated. * sysdeps/x86_64/Makefile (tests): Add tst-split-dynreloc only if $(have-insert) == yes. --- config.make.in | 1 + configure | 33 +++++++++++++++++++++++++++++++++ configure.ac | 21 +++++++++++++++++++++ sysdeps/x86_64/Makefile | 2 ++ 4 files changed, 57 insertions(+) diff --git a/config.make.in b/config.make.in index dadabf9..c7edfc1 100644 --- a/config.make.in +++ b/config.make.in @@ -54,6 +54,7 @@ enable-werror = @enable_werror@ have-z-combreloc = @libc_cv_z_combreloc@ have-z-execstack = @libc_cv_z_execstack@ have-protected-data = @libc_cv_protected_data@ +have-insert = @libc_cv_insert@ have-glob-dat-reloc = @libc_cv_has_glob_dat@ with-fp = @with_fp@ enable-timezone-tools = @enable_timezone_tools@ diff --git a/configure b/configure index b55fc92..a9ed3b3 100755 --- a/configure +++ b/configure @@ -629,6 +629,7 @@ libc_cv_z_execstack libc_cv_z_combreloc ASFLAGS_config libc_cv_cc_with_libunwind +libc_cv_insert libc_cv_protected_data BISON INSTALL_INFO @@ -5703,6 +5704,38 @@ fi $as_echo "$libc_cv_protected_data" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking linker support for INSERT in linker script" >&5 +$as_echo_n "checking linker support for INSERT in linker script... " >&6; } +if ${libc_cv_insert+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat > conftest.c < conftest.t <&5 + (eval $ac_try) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + libc_cv_insert=yes + fi + rm -f conftest.* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_insert" >&5 +$as_echo "$libc_cv_insert" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for broken __attribute__((alias()))" >&5 $as_echo_n "checking for broken __attribute__((alias()))... " >&6; } if ${libc_cv_broken_alias_attribute+:} false; then : diff --git a/configure.ac b/configure.ac index 5f62ecb..807961f 100644 --- a/configure.ac +++ b/configure.ac @@ -1291,6 +1291,27 @@ EOF ]) AC_SUBST(libc_cv_protected_data) +AC_CACHE_CHECK(linker support for INSERT in linker script, + libc_cv_insert, + [cat > conftest.c < conftest.t < conftest.c <