about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2016-11-04 16:49:06 +0000
committerJoseph Myers <joseph@codesourcery.com>2016-11-04 16:49:06 +0000
commit799131036e53c0536d0ce796e705f8dc295eeba2 (patch)
treef662b9f3f5e2f0f55b65e13977e443e7f9f6a7e6
parent94bf0b4ac995cf0628186334083c9ddeac29a830 (diff)
downloadglibc-799131036e53c0536d0ce796e705f8dc295eeba2.tar.gz
glibc-799131036e53c0536d0ce796e705f8dc295eeba2.tar.xz
glibc-799131036e53c0536d0ce796e705f8dc295eeba2.zip
Do not hardcode platform names in manual/libm-err-tab.pl (bug 14139).
manual/libm-err-tab.pl hardcodes a list of names for particular
platforms (mapping from sysdeps directory name to friendly name for
the manual).  This goes against the principle of keeping information
about individual platforms in their corresponding sysdeps directory,
and the list is also very out-of-date regarding supported platforms
and their corresponding sysdeps directories.

This patch fixes this by adding a libm-test-ulps-name file alongside
each libm-test-ulps file.  The script then gets the friendly name from
that file, which is required to exist, so it no longer needs to allow
for the mapping being missing.

Tested for x86_64.

	[BZ #14139]
	* manual/libm-err-tab.pl (%pplatforms): Initialize to empty.
	(find_files): Obtain platform name from libm-test-ulps-name and
	store in %pplatforms.
	(canonicalize_platform): Remove.
	(print_platforms): Use $pplatforms directly.
	(by_platforms): Do not allow for platforms missing from
	%pplatforms.
	* sysdeps/aarch64/libm-test-ulps-name: New file.
	* sysdeps/alpha/fpu/libm-test-ulps-name: Likewise.
	* sysdeps/arm/libm-test-ulps-name: Likewise.
	* sysdeps/generic/libm-test-ulps-name: Likewise.
	* sysdeps/hppa/fpu/libm-test-ulps-name: Likewise.
	* sysdeps/i386/fpu/libm-test-ulps-name: Likewise.
	* sysdeps/i386/i686/fpu/multiarch/libm-test-ulps-name: Likewise.
	* sysdeps/ia64/fpu/libm-test-ulps-name: Likewise.
	* sysdeps/m68k/coldfire/fpu/libm-test-ulps-name: Likewise.
	* sysdeps/m68k/m680x0/fpu/libm-test-ulps-name: Likewise.
	* sysdeps/microblaze/libm-test-ulps-name: Likewise.
	* sysdeps/mips/mips32/libm-test-ulps-name: Likewise.
	* sysdeps/mips/mips64/libm-test-ulps-name: Likewise.
	* sysdeps/nios2/libm-test-ulps-name: Likewise.
	* sysdeps/powerpc/fpu/libm-test-ulps-name: Likewise.
	* sysdeps/powerpc/nofpu/libm-test-ulps-name: Likewise.
	* sysdeps/s390/fpu/libm-test-ulps-name: Likewise.
	* sysdeps/sh/libm-test-ulps-name: Likewise.
	* sysdeps/sparc/fpu/libm-test-ulps-name: Likewise.
	* sysdeps/tile/libm-test-ulps-name: Likewise.
	* sysdeps/x86_64/fpu/libm-test-ulps-name: Likewise.
-rw-r--r--ChangeLog30
-rwxr-xr-xmanual/libm-err-tab.pl40
-rw-r--r--sysdeps/aarch64/libm-test-ulps-name1
-rw-r--r--sysdeps/alpha/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/arm/libm-test-ulps-name1
-rw-r--r--sysdeps/generic/libm-test-ulps-name1
-rw-r--r--sysdeps/hppa/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/i386/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/i386/i686/fpu/multiarch/libm-test-ulps-name1
-rw-r--r--sysdeps/ia64/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/m68k/coldfire/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/m68k/m680x0/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/microblaze/libm-test-ulps-name1
-rw-r--r--sysdeps/mips/mips32/libm-test-ulps-name1
-rw-r--r--sysdeps/mips/mips64/libm-test-ulps-name1
-rw-r--r--sysdeps/nios2/libm-test-ulps-name1
-rw-r--r--sysdeps/powerpc/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/powerpc/nofpu/libm-test-ulps-name1
-rw-r--r--sysdeps/s390/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/sh/libm-test-ulps-name1
-rw-r--r--sysdeps/sparc/fpu/libm-test-ulps-name1
-rw-r--r--sysdeps/tile/libm-test-ulps-name1
-rw-r--r--sysdeps/x86_64/fpu/libm-test-ulps-name1
23 files changed, 61 insertions, 30 deletions
diff --git a/ChangeLog b/ChangeLog
index 80b3c1b2ab..45e7364e8b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,35 @@
 2016-11-04  Joseph Myers  <joseph@codesourcery.com>
 
+	[BZ #14139]
+	* manual/libm-err-tab.pl (%pplatforms): Initialize to empty.
+	(find_files): Obtain platform name from libm-test-ulps-name and
+	store in %pplatforms.
+	(canonicalize_platform): Remove.
+	(print_platforms): Use $pplatforms directly.
+	(by_platforms): Do not allow for platforms missing from
+	%pplatforms.
+	* sysdeps/aarch64/libm-test-ulps-name: New file.
+	* sysdeps/alpha/fpu/libm-test-ulps-name: Likewise.
+	* sysdeps/arm/libm-test-ulps-name: Likewise.
+	* sysdeps/generic/libm-test-ulps-name: Likewise.
+	* sysdeps/hppa/fpu/libm-test-ulps-name: Likewise.
+	* sysdeps/i386/fpu/libm-test-ulps-name: Likewise.
+	* sysdeps/i386/i686/fpu/multiarch/libm-test-ulps-name: Likewise.
+	* sysdeps/ia64/fpu/libm-test-ulps-name: Likewise.
+	* sysdeps/m68k/coldfire/fpu/libm-test-ulps-name: Likewise.
+	* sysdeps/m68k/m680x0/fpu/libm-test-ulps-name: Likewise.
+	* sysdeps/microblaze/libm-test-ulps-name: Likewise.
+	* sysdeps/mips/mips32/libm-test-ulps-name: Likewise.
+	* sysdeps/mips/mips64/libm-test-ulps-name: Likewise.
+	* sysdeps/nios2/libm-test-ulps-name: Likewise.
+	* sysdeps/powerpc/fpu/libm-test-ulps-name: Likewise.
+	* sysdeps/powerpc/nofpu/libm-test-ulps-name: Likewise.
+	* sysdeps/s390/fpu/libm-test-ulps-name: Likewise.
+	* sysdeps/sh/libm-test-ulps-name: Likewise.
+	* sysdeps/sparc/fpu/libm-test-ulps-name: Likewise.
+	* sysdeps/tile/libm-test-ulps-name: Likewise.
+	* sysdeps/x86_64/fpu/libm-test-ulps-name: Likewise.
+
 	* sysdeps/unix/sysv/linux/mips/sys/user.h: Include <stddef.h>.
 
 	* sysdeps/unix/sysv/linux/mips/Makefile [$(subdir) = elf]
diff --git a/manual/libm-err-tab.pl b/manual/libm-err-tab.pl
index 18b8ca988f..3ea62c549e 100755
--- a/manual/libm-err-tab.pl
+++ b/manual/libm-err-tab.pl
@@ -48,20 +48,7 @@ use vars qw (%results @all_floats %suffices @all_functions);
   );
 
 # Pretty description of platform
-%pplatforms =
-  ( "i386/fpu" => "ix86",
-    "generic" => "Generic",
-    "alpha/fpu" => "Alpha",
-    "ia64/fpu" => "IA64",
-    "m68k/fpu" => "M68k",
-    "mips/fpu" => "MIPS",
-    "powerpc/fpu" => "PowerPC",
-    "sparc/sparc32/fpu" => "Sparc 32-bit",
-    "sparc/sparc64/fpu" => "Sparc 64-bit",
-    "sh/sh4/fpu" => "SH4",
-    "s390/fpu" => "S/390",
-    "arm" => "ARM"
-  );
+%pplatforms = ();
 
 @all_functions =
   ( "acos", "acosh", "asin", "asinh", "atan", "atanh",
@@ -99,6 +86,13 @@ sub find_files {
   if ($_ eq 'libm-test-ulps') {
     # print "Parsing $File::Find::name\n";
     push @platforms, $File::Find::dir;
+    my ($file, $name);
+    $file = "${File::Find::name}-name";
+    open NAME, $file or die ("Can't open $file: $!");
+    $name = <NAME>;
+    chomp $name;
+    close NAME;
+    $pplatforms{$File::Find::dir} = $name;
     &parse_ulps ($File::Find::name, $File::Find::dir);
   }
 }
@@ -161,15 +155,6 @@ sub get_value {
 	  ? $results{$fct}{$platform}{$type}{$float} : "0");
 }
 
-sub canonicalize_platform {
-  my ($platform) = @_;
-
-  $platform =~ s|^(.*/sysdeps/)||;
-
-
-  return exists $pplatforms{$platform} ? $pplatforms{$platform} : $platform;
-}
-
 sub print_platforms {
   my (@p) = @_;
   my ($fct, $platform, $float, $first, $i, $platform_no, $platform_total);
@@ -183,7 +168,7 @@ sub print_platforms {
   print '@item Function ';
   foreach (@p) {
     print ' @tab ';
-    print &canonicalize_platform ($_);
+    print $pplatforms{$_};
   }
   print "\n";
 
@@ -226,10 +211,5 @@ sub print_all {
 }
 
 sub by_platforms {
-  my ($pa, $pb);
-
-  $pa = $pplatforms{$a} ? $pplatforms{$a} : $a;
-  $pb = $pplatforms{$b} ? $pplatforms{$b} : $b;
-
-  return $pa cmp $pb;
+  return $pplatforms{$a} cmp $pplatforms{$b};
 }
diff --git a/sysdeps/aarch64/libm-test-ulps-name b/sysdeps/aarch64/libm-test-ulps-name
new file mode 100644
index 0000000000..1f66c5cda0
--- /dev/null
+++ b/sysdeps/aarch64/libm-test-ulps-name
@@ -0,0 +1 @@
+AArch64
diff --git a/sysdeps/alpha/fpu/libm-test-ulps-name b/sysdeps/alpha/fpu/libm-test-ulps-name
new file mode 100644
index 0000000000..5219734094
--- /dev/null
+++ b/sysdeps/alpha/fpu/libm-test-ulps-name
@@ -0,0 +1 @@
+Alpha
diff --git a/sysdeps/arm/libm-test-ulps-name b/sysdeps/arm/libm-test-ulps-name
new file mode 100644
index 0000000000..74f9acfffa
--- /dev/null
+++ b/sysdeps/arm/libm-test-ulps-name
@@ -0,0 +1 @@
+ARM
diff --git a/sysdeps/generic/libm-test-ulps-name b/sysdeps/generic/libm-test-ulps-name
new file mode 100644
index 0000000000..8470d61195
--- /dev/null
+++ b/sysdeps/generic/libm-test-ulps-name
@@ -0,0 +1 @@
+Generic
diff --git a/sysdeps/hppa/fpu/libm-test-ulps-name b/sysdeps/hppa/fpu/libm-test-ulps-name
new file mode 100644
index 0000000000..808d1bc741
--- /dev/null
+++ b/sysdeps/hppa/fpu/libm-test-ulps-name
@@ -0,0 +1 @@
+HPPA
diff --git a/sysdeps/i386/fpu/libm-test-ulps-name b/sysdeps/i386/fpu/libm-test-ulps-name
new file mode 100644
index 0000000000..54ca0d8295
--- /dev/null
+++ b/sysdeps/i386/fpu/libm-test-ulps-name
@@ -0,0 +1 @@
+ix86
diff --git a/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps-name b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps-name
new file mode 100644
index 0000000000..193dd704b3
--- /dev/null
+++ b/sysdeps/i386/i686/fpu/multiarch/libm-test-ulps-name
@@ -0,0 +1 @@
+i686
diff --git a/sysdeps/ia64/fpu/libm-test-ulps-name b/sysdeps/ia64/fpu/libm-test-ulps-name
new file mode 100644
index 0000000000..54a0dfffea
--- /dev/null
+++ b/sysdeps/ia64/fpu/libm-test-ulps-name
@@ -0,0 +1 @@
+IA64
diff --git a/sysdeps/m68k/coldfire/fpu/libm-test-ulps-name b/sysdeps/m68k/coldfire/fpu/libm-test-ulps-name
new file mode 100644
index 0000000000..d0b67ea9eb
--- /dev/null
+++ b/sysdeps/m68k/coldfire/fpu/libm-test-ulps-name
@@ -0,0 +1 @@
+ColdFire
diff --git a/sysdeps/m68k/m680x0/fpu/libm-test-ulps-name b/sysdeps/m68k/m680x0/fpu/libm-test-ulps-name
new file mode 100644
index 0000000000..35c8a9e5f0
--- /dev/null
+++ b/sysdeps/m68k/m680x0/fpu/libm-test-ulps-name
@@ -0,0 +1 @@
+M68k
diff --git a/sysdeps/microblaze/libm-test-ulps-name b/sysdeps/microblaze/libm-test-ulps-name
new file mode 100644
index 0000000000..1edbaa8d98
--- /dev/null
+++ b/sysdeps/microblaze/libm-test-ulps-name
@@ -0,0 +1 @@
+MicroBlaze
diff --git a/sysdeps/mips/mips32/libm-test-ulps-name b/sysdeps/mips/mips32/libm-test-ulps-name
new file mode 100644
index 0000000000..d0622692ce
--- /dev/null
+++ b/sysdeps/mips/mips32/libm-test-ulps-name
@@ -0,0 +1 @@
+MIPS 32-bit
diff --git a/sysdeps/mips/mips64/libm-test-ulps-name b/sysdeps/mips/mips64/libm-test-ulps-name
new file mode 100644
index 0000000000..916e314f86
--- /dev/null
+++ b/sysdeps/mips/mips64/libm-test-ulps-name
@@ -0,0 +1 @@
+MIPS 64-bit
diff --git a/sysdeps/nios2/libm-test-ulps-name b/sysdeps/nios2/libm-test-ulps-name
new file mode 100644
index 0000000000..4ee7692b1b
--- /dev/null
+++ b/sysdeps/nios2/libm-test-ulps-name
@@ -0,0 +1 @@
+Nios II
diff --git a/sysdeps/powerpc/fpu/libm-test-ulps-name b/sysdeps/powerpc/fpu/libm-test-ulps-name
new file mode 100644
index 0000000000..8c5f7fa2ab
--- /dev/null
+++ b/sysdeps/powerpc/fpu/libm-test-ulps-name
@@ -0,0 +1 @@
+PowerPC
diff --git a/sysdeps/powerpc/nofpu/libm-test-ulps-name b/sysdeps/powerpc/nofpu/libm-test-ulps-name
new file mode 100644
index 0000000000..3ed2c6ec8a
--- /dev/null
+++ b/sysdeps/powerpc/nofpu/libm-test-ulps-name
@@ -0,0 +1 @@
+PowerPC soft-float
diff --git a/sysdeps/s390/fpu/libm-test-ulps-name b/sysdeps/s390/fpu/libm-test-ulps-name
new file mode 100644
index 0000000000..4a55100a0e
--- /dev/null
+++ b/sysdeps/s390/fpu/libm-test-ulps-name
@@ -0,0 +1 @@
+S/390
diff --git a/sysdeps/sh/libm-test-ulps-name b/sysdeps/sh/libm-test-ulps-name
new file mode 100644
index 0000000000..b6c67c9520
--- /dev/null
+++ b/sysdeps/sh/libm-test-ulps-name
@@ -0,0 +1 @@
+SH
diff --git a/sysdeps/sparc/fpu/libm-test-ulps-name b/sysdeps/sparc/fpu/libm-test-ulps-name
new file mode 100644
index 0000000000..71240543c4
--- /dev/null
+++ b/sysdeps/sparc/fpu/libm-test-ulps-name
@@ -0,0 +1 @@
+Sparc
diff --git a/sysdeps/tile/libm-test-ulps-name b/sysdeps/tile/libm-test-ulps-name
new file mode 100644
index 0000000000..69673dcaa2
--- /dev/null
+++ b/sysdeps/tile/libm-test-ulps-name
@@ -0,0 +1 @@
+Tile
diff --git a/sysdeps/x86_64/fpu/libm-test-ulps-name b/sysdeps/x86_64/fpu/libm-test-ulps-name
new file mode 100644
index 0000000000..1c09346681
--- /dev/null
+++ b/sysdeps/x86_64/fpu/libm-test-ulps-name
@@ -0,0 +1 @@
+x86_64