From patchwork Wed Mar 24 00:11:50 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Samuel Thibault X-Patchwork-Id: 42763 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 4AD13385BF9E; Wed, 24 Mar 2021 00:12:00 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from hera.aquilenet.fr (hera.aquilenet.fr [185.233.100.1]) by sourceware.org (Postfix) with ESMTPS id A264D3857829 for ; Wed, 24 Mar 2021 00:11:55 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org A264D3857829 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=ens-lyon.org Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=samuel.thibault@ens-lyon.org Received: from localhost (localhost [127.0.0.1]) by hera.aquilenet.fr (Postfix) with ESMTP id 4196F51D; Wed, 24 Mar 2021 01:11:54 +0100 (CET) X-Virus-Scanned: Debian amavisd-new at aquilenet.fr Received: from hera.aquilenet.fr ([127.0.0.1]) by localhost (hera.aquilenet.fr [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mKQweMNoUg2N; Wed, 24 Mar 2021 01:11:53 +0100 (CET) Received: from begin (unknown [IPv6:2a01:cb19:956:1b00:de41:a9ff:fe47:ec49]) by hera.aquilenet.fr (Postfix) with ESMTPSA id 3D95B237; Wed, 24 Mar 2021 01:11:53 +0100 (CET) Received: from samy by begin with local (Exim 4.94) (envelope-from ) id 1lOr7o-001PXE-9A; Wed, 24 Mar 2021 01:11:52 +0100 From: Samuel Thibault To: libc-alpha@sourceware.org Subject: [PATCH] elf: Fix not compiling ifunc tests that need gcc ifunc support Date: Wed, 24 Mar 2021 01:11:50 +0100 Message-Id: <20210324001150.336441-1-samuel.thibault@ens-lyon.org> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 X-Spamd-Bar: ++++ X-Rspamd-Server: hera Authentication-Results: hera.aquilenet.fr X-Rspamd-Queue-Id: 4196F51D X-Spamd-Result: default: False [4.79 / 15.00]; ARC_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; FROM_HAS_DN(0.00)[]; RCPT_COUNT_THREE(0.00)[3]; TO_DN_SOME(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; MIME_GOOD(-0.10)[text/plain]; R_MISSING_CHARSET(2.50)[]; BROKEN_CONTENT_TYPE(1.50)[]; RCVD_COUNT_THREE(0.00)[3]; MID_CONTAINS_FROM(1.00)[]; RCVD_NO_TLS_LAST(0.10)[]; FROM_EQ_ENVFROM(0.00)[]; BAYES_HAM(-0.21)[71.52%] X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, GIT_PATCH_0, JMQ_SPF_NEUTRAL, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_NEUTRAL, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: commit-hurd@gnu.org Errors-To: libc-alpha-bounces@sourceware.org Sender: "Libc-alpha" --- configure.ac | 1 + elf/Makefile | 17 ++++++++++++----- elf/ifuncmain9.c | 16 ---------------- sysdeps/x86/Makefile | 2 ++ 4 files changed, 15 insertions(+), 21 deletions(-) diff --git a/configure.ac b/configure.ac index 16b15b6f90..6a3a9ab620 100644 --- a/configure.ac +++ b/configure.ac @@ -1770,6 +1770,7 @@ LIBC_CONFIG_VAR([have-ifunc], [$libc_cv_ld_gnu_indirect_function]) if test x"$libc_cv_gcc_indirect_function" = xyes; then AC_DEFINE(HAVE_GCC_IFUNC) fi +LIBC_CONFIG_VAR([have-gcc-ifunc], [$libc_cv_gcc_indirect_function]) # This is far from the AC_ARG_ENABLE that sets it so that a sysdeps # configure fragment can override the value to prevent this AC_DEFINE. diff --git a/elf/Makefile b/elf/Makefile index 3b8e13e066..0bef49e53d 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -395,8 +395,10 @@ tests-ifuncstatic := ifuncmain1static ifuncmain1picstatic \ ifuncmain2static ifuncmain2picstatic \ ifuncmain4static ifuncmain4picstatic \ ifuncmain5static ifuncmain5picstatic \ - ifuncmain7static ifuncmain7picstatic \ - ifuncmain9static ifuncmain9picstatic + ifuncmain7static ifuncmain7picstatic +ifeq (yes,$(have-gcc-ifunc)) +tests-ifuncstatic += ifuncmain9static ifuncmain9picstatic +endif tests-static += $(tests-ifuncstatic) tests-internal += $(tests-ifuncstatic) ifeq (yes,$(build-shared)) @@ -407,15 +409,20 @@ tests-internal += \ ifuncmain1staticpic \ ifuncmain2 ifuncmain2pic ifuncmain3 ifuncmain4 \ ifuncmain5 ifuncmain5pic ifuncmain5staticpic \ - ifuncmain7 ifuncmain7pic \ - ifuncmain9 ifuncmain9pic + ifuncmain7 ifuncmain7pic +ifeq (yes,$(have-gcc-ifunc)) +tests-internal += ifuncmain9 ifuncmain9pic +endif ifunc-test-modules = ifuncdep1 ifuncdep1pic ifuncdep2 ifuncdep2pic \ ifuncdep5 ifuncdep5pic extra-test-objs += $(ifunc-test-modules:=.o) test-internal-extras += $(ifunc-test-modules) ifeq (yes,$(have-fpie)) ifunc-pie-tests = ifuncmain1pie ifuncmain1vispie ifuncmain1staticpie \ - ifuncmain5pie ifuncmain6pie ifuncmain7pie ifuncmain9pie + ifuncmain5pie ifuncmain6pie ifuncmain7pie +ifeq (yes,$(have-gcc-ifunc)) +ifunc-pie-tests += ifuncmain9pie +endif ifeq (yes,$(have-textrel_ifunc)) ifunc-pie-tests += tst-ifunc-textrel endif diff --git a/elf/ifuncmain9.c b/elf/ifuncmain9.c index e775c5cfa9..15419a159a 100644 --- a/elf/ifuncmain9.c +++ b/elf/ifuncmain9.c @@ -20,8 +20,6 @@ #include -#ifdef HAVE_GCC_IFUNC - # include # include @@ -92,17 +90,3 @@ main (void) return errors; } - -#else /* !HAVE_GCC_IFUNC */ - -# include - -static int -do_test (void) -{ - FAIL_UNSUPPORTED ("GCC does not support the ifunc attribute"); - return 1; /* Not reachable. */ -} - -# include -#endif diff --git a/sysdeps/x86/Makefile b/sysdeps/x86/Makefile index 3ca7bfefe4..8186e45fec 100644 --- a/sysdeps/x86/Makefile +++ b/sysdeps/x86/Makefile @@ -16,6 +16,7 @@ tests-static += tst-get-cpu-features-static \ tst-cpu-features-cpuinfo-static \ tst-cpu-features-supports-static ifeq (yes,$(have-ifunc)) +ifeq (yes,$(have-gcc-ifunc)) tests += \ tst-ifunc-isa-1 \ tst-ifunc-isa-1-static \ @@ -25,6 +26,7 @@ tests-static += \ tst-ifunc-isa-1-static \ tst-ifunc-isa-2-static endif +endif ifeq (yes,$(enable-x86-isa-level)) tests += tst-isa-level-1 modules-names += tst-isa-level-mod-1-baseline \