aboutsummaryrefslogtreecommitdiff
path: root/manual
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 /manual
parent94bf0b4ac995cf0628186334083c9ddeac29a830 (diff)
downloadglibc-799131036e53c0536d0ce796e705f8dc295eeba2.zip
glibc-799131036e53c0536d0ce796e705f8dc295eeba2.tar.gz
glibc-799131036e53c0536d0ce796e705f8dc295eeba2.tar.bz2
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.
Diffstat (limited to 'manual')
-rwxr-xr-xmanual/libm-err-tab.pl40
1 files changed, 10 insertions, 30 deletions
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 = <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};
}