From patchwork Tue Nov 1 17:38:46 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Joseph Myers X-Patchwork-Id: 17087 Received: (qmail 48363 invoked by alias); 1 Nov 2016 17:39:06 -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 48344 invoked by uid 89); 1 Nov 2016 17:39:05 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.9 required=5.0 tests=AWL, BAYES_00, RCVD_IN_DNSWL_NONE, SPF_PASS, URIBL_RED autolearn=ham version=3.3.2 spammy=pa, pb, Obtain, nios X-HELO: relay1.mentorg.com Date: Tue, 1 Nov 2016 17:38:46 +0000 From: Joseph Myers To: Subject: Do not hardcode platform names in manual/libm-err-tab.pl (bug 14139) Message-ID: User-Agent: Alpine 2.20 (DEB 67 2015-01-07) MIME-Version: 1.0 X-ClientProxiedBy: svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) To svr-ies-mbx-01.mgc.mentorg.com (139.181.222.1) 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. Any comments? 2016-11-01 Joseph Myers [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. diff --git a/manual/libm-err-tab.pl b/manual/libm-err-tab.pl index 18b8ca9..3ea62c5 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 = ; + 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 0000000..1f66c5c --- /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 0000000..5219734 --- /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 0000000..74f9acf --- /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 0000000..8470d61 --- /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 0000000..808d1bc --- /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 0000000..54ca0d8 --- /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 0000000..193dd70 --- /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 0000000..54a0dff --- /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 0000000..d0b67ea --- /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 0000000..35c8a9e --- /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 0000000..1edbaa8 --- /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 0000000..d062269 --- /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 0000000..916e314 --- /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 0000000..4ee7692 --- /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 0000000..8c5f7fa --- /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 0000000..3ed2c6e --- /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 0000000..4a55100 --- /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 0000000..b6c67c9 --- /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 0000000..7124054 --- /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 0000000..69673dc --- /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 0000000..1c09346 --- /dev/null +++ b/sysdeps/x86_64/fpu/libm-test-ulps-name @@ -0,0 +1 @@ +x86_64