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};
 }
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
