about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2015-07-22 23:11:10 -0400
committerMike Frysinger <vapier@gentoo.org>2015-07-23 03:28:53 -0400
commit3840aabcd5b482b5e6cf5b204d1019ea0ddc9827 (patch)
tree3ad8cdecf3b9fd7098ad3fdc4419bac467ef247d
parent992f71ddd34b0caf8fb04bc99e4bab8cb7badf83 (diff)
downloadglibc-3840aabcd5b482b5e6cf5b204d1019ea0ddc9827.tar.gz
glibc-3840aabcd5b482b5e6cf5b204d1019ea0ddc9827.tar.xz
glibc-3840aabcd5b482b5e6cf5b204d1019ea0ddc9827.zip
conform/linknamespace: whitelist matherrf/matherrl
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.
-rw-r--r--ChangeLog4
-rw-r--r--conform/linknamespace.pl6
2 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 47afb89d6a..488768ffce 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2015-07-23  Mike Frysinger  <vapier@gentoo.org>
 
+	* conform/linknamespace.pl (@whitelist): Add matherrf and matherrl.
+
+2015-07-23  Mike Frysinger  <vapier@gentoo.org>
+
 	* sysdeps/unix/sysv/linux/ia64/bits/sigaction.h (struct sigaction):
 	Swap __glibc_reserved0 and sa_flags order.
 
diff --git a/conform/linknamespace.pl b/conform/linknamespace.pl
index 847d2dd33a..15fa6134ab 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;
 }