2005-02-10 Roland McGrath <roland@redhat.com>
authorroland <roland>
Thu, 10 Feb 2005 10:29:46 +0000 (10:29 +0000)
committerroland <roland>
Thu, 10 Feb 2005 10:29:46 +0000 (10:29 +0000)
* scripts/lib-names.awk: Always print WORDSIZE32 section first when
doing two.

scripts/lib-names.awk

index 31f248f..45f043a 100644 (file)
@@ -43,24 +43,22 @@ END {
       lines[x[1]] = line;
   }
 
-  default_lines = lines["DEFAULT"];
-  delete lines["DEFAULT"];
   if (multi) {
+    # Print these in a fixed order so the result is identical
+    # on both sides of the coin.
+    if (!("WORDSIZE32" in lines))
+      lines["WORDSIZE32"] = lines["DEFAULT"];
+    if (!("WORDSIZE64" in lines))
+      lines["WORDSIZE64"] = lines["DEFAULT"];
     print "#include <bits/wordsize.h>\n";
-    pfx = "#if";
-    for (kind in lines) {
-      l = lines[kind];
-      sub(/WORDSIZE/, "", kind);
-      print pfx, "__WORDSIZE", "==", kind;
-      cmd = "LC_ALL=C sort"; print l | cmd; close(cmd);
-      pfx = "#elif";
-    }
-    print "#else";
-    cmd = "LC_ALL=C sort"; print default_lines | cmd; close(cmd);
+    print "#if __WORDSIZE == 32";
+    cmd = "LC_ALL=C sort"; print lines["WORDSIZE32"] | cmd; close(cmd);
+    print "#else"
+    cmd = "LC_ALL=C sort"; print lines["WORDSIZE64"] | cmd; close(cmd);
     print "#endif";
   }
   else {
-    cmd = "LC_ALL=C sort"; print default_lines | cmd; close(cmd);
+    cmd = "LC_ALL=C sort"; print lines["DEFAULT"] | cmd; close(cmd);
   }
 
   print "";