From patchwork Thu Jul 23 03:14:55 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Frysinger X-Patchwork-Id: 7805 X-Patchwork-Delegate: vapier@gentoo.org Received: (qmail 56243 invoked by alias); 23 Jul 2015 03:15:01 -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 56230 invoked by uid 89); 23 Jul 2015 03:15:00 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL, BAYES_00, RP_MATCHES_RCVD, SPF_PASS autolearn=ham version=3.3.2 X-HELO: smtp.gentoo.org From: Mike Frysinger To: libc-alpha@sourceware.org Subject: [PATCH] conform/linknamespace: whitelist matherrf/matherrl Date: Wed, 22 Jul 2015 23:14:55 -0400 Message-Id: <1437621295-25240-1-git-send-email-vapier@gentoo.org> In-Reply-To: <20150722034013.GJ12267@vapier> References: <20150722034013.GJ12267@vapier> glibc supports the deprecated matherr hook for math error reporting. The conform tests take this into consideration and whitelist this symbol when running linknamespace tests. The ia64 libm code has long provided two additional hooks in this space: matherrf (for floats) matherrl (for long doubles) Which causes the conform tests to fail with chains that all look like: [initial] __atan2 -> [libm.a(e_atan2.o)] __libm_error_support -> [libm.a(libm_error.o)] matherrf We can't (losslessly) redirect existing usage of these funcs to matherr because the structure passed in is different -- matherr uses a struct with doubles while matherrf/matherrl use floats and long doubles respectively. Plus, this has been part of the exported ABI since glibc-2.2.3, so it doesn't feel right to change it so late. Until we get around to obsoleting matherr entirely, whitelist these two additional ia64 symbols. --- ChangeLog | 4 ++++ conform/linknamespace.pl | 6 ++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 652d968..df9f670 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2015-07-23 Mike Frysinger + + * conform/linknamespace.pl (@whitelist): Add matherrf and matherrl. + 2015-07-22 Mike Frysinger * sysdeps/unix/sysv/linux/ia64/bits/msq.h: Change sys/types.h include diff --git a/conform/linknamespace.pl b/conform/linknamespace.pl index 847d2dd..15fa613 100644 --- a/conform/linknamespace.pl +++ b/conform/linknamespace.pl @@ -49,9 +49,11 @@ close (STDSYMS) || die ("close $stdsyms_file: $!\n"); # * Bug 18442: re_syntax_options wrongly brought in by regcomp and # used by re_comp. # -# * False positive: matherr only used conditionally. +# * False positive: matherr only used conditionally. matherrf/matherrl are used +# by IA64 too for the same reason. # -@whitelist = qw(signgam stdin stdout stderr re_syntax_options matherr); +@whitelist = qw(signgam stdin stdout stderr re_syntax_options matherr matherrf + matherrl); foreach my $sym (@whitelist) { $stdsyms{$sym} = 1; }