gawk-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gawk-diffs] [SCM] gawk branch, gawk-4.2-stable, updated. gawk-4.1.0-303


From: Arnold Robbins
Subject: [gawk-diffs] [SCM] gawk branch, gawk-4.2-stable, updated. gawk-4.1.0-3036-g48c8fc0
Date: Fri, 7 Sep 2018 03:50:07 -0400 (EDT)

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, gawk-4.2-stable has been updated
       via  48c8fc07cc35539aa171116d0b77a6a47336b6fe (commit)
       via  2da381d8f9b1638fbd31308edb17406bcf8ccee2 (commit)
       via  f0d8b816af00186c108f6cdc538ec18d8b4dddba (commit)
      from  4cf259c113a5a47a4a46a6875ac08fd09b0bca09 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=48c8fc07cc35539aa171116d0b77a6a47336b6fe

commit 48c8fc07cc35539aa171116d0b77a6a47336b6fe
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Sep 7 10:49:53 2018 +0300

    Update misc files from GNULIB.

diff --git a/missing_d/ChangeLog b/missing_d/ChangeLog
index 24f35a6..2990bd3 100644
--- a/missing_d/ChangeLog
+++ b/missing_d/ChangeLog
@@ -1,3 +1,7 @@
+2018-09-07         Arnold D. Robbins     <address@hidden>
+
+       * intprops.h, mktime.c: Updated from GNULIB.
+
 2018-08-24         Arnold D. Robbins     <address@hidden>
 
        * mktime.c.old: Removed.
diff --git a/missing_d/intprops.h b/missing_d/intprops.h
index af456ff..a4be30b 100644
--- a/missing_d/intprops.h
+++ b/missing_d/intprops.h
@@ -22,12 +22,13 @@
 
 #include <limits.h>
 
-/* Return a value with the common real type of E and V and the value of V.  */
-#define _GL_INT_CONVERT(e, v) (0 * (e) + (v))
+/* Return a value with the common real type of E and V and the value of V.
+   Do not evaluate E.  */
+#define _GL_INT_CONVERT(e, v) ((1 ? 0 : (e)) + (v))
 
 /* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see
    <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00406.html>.  */
-#define _GL_INT_NEGATE_CONVERT(e, v) (0 * (e) - (v))
+#define _GL_INT_NEGATE_CONVERT(e, v) ((1 ? 0 : (e)) - (v))
 
 /* The extra casts in the following macros work around compiler bugs,
    e.g., in Cray C 5.0.3.0.  */
@@ -40,13 +41,14 @@
 #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
 
 /* Return 1 if the real expression E, after promotion, has a
-   signed or floating type.  */
+   signed or floating type.  Do not evaluate E.  */
 #define EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0)
 
 
 /* Minimum and maximum values for integer types and expressions.  */
 
 /* The width in bits of the integer type or expression T.
+   Do not evaluate T.
    Padding bits are not supported; this is checked at compile-time below.  */
 #define TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT)
 
@@ -58,7 +60,7 @@
         : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1)))
 
 /* The maximum and minimum values for the type of the expression E,
-   after integer promotion.  E should not have side effects.  */
+   after integer promotion.  E is not evaluated.  */
 #define _GL_INT_MINIMUM(e)                                              \
   (EXPR_SIGNED (e)                                                      \
    ? ~ _GL_SIGNED_INT_MAXIMUM (e)                                       \
@@ -340,8 +342,8 @@
    Arguments should be free of side effects.  */
 #define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow)        \
   op_result_overflow (a, b,                                     \
-                      _GL_INT_MINIMUM (0 * (b) + (a)),          \
-                      _GL_INT_MAXIMUM (0 * (b) + (a)))
+                      _GL_INT_MINIMUM ((1 ? 0 : (b)) + (a)),    \
+                      _GL_INT_MAXIMUM ((1 ? 0 : (b)) + (a)))
 
 /* Store the low-order bits of A + B, A - B, A * B, respectively, into *R.
    Return 1 if the result overflows.  See above for restrictions.  */
diff --git a/missing_d/mktime.c b/missing_d/mktime.c
index 17538a3..1a332e1 100644
--- a/missing_d/mktime.c
+++ b/missing_d/mktime.c
@@ -28,6 +28,8 @@
    Macro/expression            Which gnulib module    This compilation unit
                                                       should define
 
+   _LIBC                       (glibc proper)         mktime
+
    NEED_MKTIME_WORKING         mktime                 rpl_mktime
    || NEED_MKTIME_WINDOWS
 
@@ -47,38 +49,78 @@
 # define LEAP_SECONDS_POSSIBLE 1
 #endif
 
-#ifndef VMS
-#include <sys/types.h>         /* Some systems define `time_t' here.  */
-#else
-#include <stddef.h>
-#endif
 #include <time.h>
 
-#if HAVE_LIMITS_H
 #include <limits.h>
-#endif
-#if HAVE_STDBOOL_H
 #include <stdbool.h>
-#endif
+#include <stdlib.h>
+#include <string.h>
 
 #include <intprops.h>
 #include <verify.h>
 
 #if DEBUG_MKTIME
 # include <stdio.h>
-# include <stdlib.h>
-# include <string.h>
 /* Make it work even if the system's libc has its own mktime routine.  */
 # undef mktime
 # define mktime my_mktime
+#endif /* DEBUG_MKTIME */
+
+#ifndef NEED_MKTIME_INTERNAL
+# define NEED_MKTIME_INTERNAL 0
+#endif
+#ifndef NEED_MKTIME_WINDOWS
+# define NEED_MKTIME_WINDOWS 0
+#endif
+#ifndef NEED_MKTIME_WORKING
+# define NEED_MKTIME_WORKING DEBUG_MKTIME
 #endif
 
-#if NEED_MKTIME_WINDOWS /* on native Windows */
-# include <stdlib.h>
-# include <string.h>
+#ifdef _LIBC
+typedef long int mktime_offset_t;
+#else
+# include "mktime-internal.h"
+#endif
+
+#ifndef _LIBC
+static void
+my_tzset (void)
+{
+# if NEED_MKTIME_WINDOWS
+  /* Rectify the value of the environment variable TZ.
+     There are four possible kinds of such values:
+       - Traditional US time zone names, e.g. "PST8PDT".  Syntax: see
+         <https://msdn.microsoft.com/en-us/library/90s5c885.aspx>
+       - Time zone names based on geography, that contain one or more
+         slashes, e.g. "Europe/Moscow".
+       - Time zone names based on geography, without slashes, e.g.
+         "Singapore".
+       - Time zone names that contain explicit DST rules.  Syntax: see
+         
<http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03>
+     The Microsoft CRT understands only the first kind.  It produces incorrect
+     results if the value of TZ is of the other kinds.
+     But in a Cygwin environment, /etc/profile.d/tzset.sh sets TZ to a value
+     of the second kind for most geographies, or of the first kind in a few
+     other geographies.  If it is of the second kind, neutralize it.  For the
+     Microsoft CRT, an absent or empty TZ means the time zone that the user
+     has set in the Windows Control Panel.
+     If the value of TZ is of the third or fourth kind -- Cygwin programs
+     understand these syntaxes as well --, it does not matter whether we
+     neutralize it or not, since these values occur only when a Cygwin user
+     has set TZ explicitly; this case is 1. rare and 2. under the user's
+     responsibility.  */
+  const char *tz = getenv ("TZ");
+  if (tz != NULL && strchr (tz, '/') != NULL)
+    _putenv ("TZ=");
+# elif HAVE_TZSET
+  tzset ();
+# endif
+}
+# undef __tzset
+# define __tzset() my_tzset ()
 #endif
 
-#if NEED_MKTIME_WORKING || NEED_MKTIME_INTERNAL || DEBUG_MKTIME
+#if defined _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_INTERNAL
 
 /* A signed type that can represent an integer number of years
    multiplied by three times the number of seconds in a year.  It is
@@ -159,19 +201,6 @@ const unsigned short int __mon_yday[2][13] =
   };
 
 
-#ifdef _LIBC
-typedef time_t mktime_offset_t;
-#else
-/* Portable standalone applications should supply a <time.h> that
-   declares a POSIX-compliant localtime_r, for the benefit of older
-   implementations that lack localtime_r or have a nonstandard one.
-   See the gnulib time_r module for one way to implement this.  */
-# undef __localtime_r
-# define __localtime_r localtime_r
-# define __mktime_internal mktime_internal
-# include "mktime-internal.h"
-#endif
-
 /* Do the values A and B differ according to the rules for tm_isdst?
    A and B differ if one is zero and the other positive.  */
 static bool
@@ -313,6 +342,7 @@ ranged_convert (struct tm *(*convert) (const time_t *, 
struct tm *),
   return r;
 }
 
+
 /* Convert *TP to a time_t value, inverting
    the monotonic and mostly-unit-linear conversion function CONVERT.
    Use *OFFSET to keep track of a guess at the offset of the result,
@@ -364,6 +394,7 @@ __mktime_internal (struct tm *tp,
   long_int lmday = mday;
   long_int yday = mon_yday + lmday;
 
+  mktime_offset_t off = *offset;
   int negative_offset_guess;
 
   int sec_requested = sec;
@@ -381,7 +412,7 @@ __mktime_internal (struct tm *tp,
   /* Invert CONVERT by probing.  First assume the same offset as last
      time.  */
 
-  INT_SUBTRACT_WRAPV (0, *offset, &negative_offset_guess);
+  INT_SUBTRACT_WRAPV (0, off, &negative_offset_guess);
   t0 = ydhms_diff (year, yday, hour, min, sec,
                   EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0, negative_offset_guess);
 
@@ -487,64 +518,28 @@ __mktime_internal (struct tm *tp,
   return t;
 }
 
-#endif /* NEED_MKTIME_WORKING || NEED_MKTIME_INTERNAL || DEBUG_MKTIME */
+#endif /* _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_INTERNAL */
 
-#if NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS || DEBUG_MKTIME
-
-# if NEED_MKTIME_WORKING || DEBUG_MKTIME
-static mktime_offset_t localtime_offset;
-# endif
+#if defined _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS
 
 /* Convert *TP to a time_t value.  */
 time_t
 mktime (struct tm *tp)
 {
-# if NEED_MKTIME_WINDOWS
-  /* Rectify the value of the environment variable TZ.
-     There are four possible kinds of such values:
-       - Traditional US time zone names, e.g. "PST8PDT".  Syntax: see
-         <https://msdn.microsoft.com/en-us/library/90s5c885.aspx>
-       - Time zone names based on geography, that contain one or more
-         slashes, e.g. "Europe/Moscow".
-       - Time zone names based on geography, without slashes, e.g.
-         "Singapore".
-       - Time zone names that contain explicit DST rules.  Syntax: see
-         
<http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03>
-     The Microsoft CRT understands only the first kind.  It produces incorrect
-     results if the value of TZ is of the other kinds.
-     But in a Cygwin environment, /etc/profile.d/tzset.sh sets TZ to a value
-     of the second kind for most geographies, or of the first kind in a few
-     other geographies.  If it is of the second kind, neutralize it.  For the
-     Microsoft CRT, an absent or empty TZ means the time zone that the user
-     has set in the Windows Control Panel.
-     If the value of TZ is of the third or fourth kind -- Cygwin programs
-     understand these syntaxes as well --, it does not matter whether we
-     neutralize it or not, since these values occur only when a Cygwin user
-     has set TZ explicitly; this case is 1. rare and 2. under the user's
-     responsibility.  */
-  const char *tz = getenv ("TZ");
-  if (tz != NULL && strchr (tz, '/') != NULL)
-    _putenv ("TZ=");
-# endif
-
-# if NEED_MKTIME_WORKING || DEBUG_MKTIME
-#  ifdef _LIBC
   /* POSIX.1 8.1.1 requires that whenever mktime() is called, the
      time zone names contained in the external variable 'tzname' shall
      be set as if the tzset() function had been called.  */
   __tzset ();
-#  elif HAVE_TZSET
-  tzset ();
-#  endif
 
+# if defined __LIBC || NEED_MKTIME_WORKING
+  static mktime_offset_t localtime_offset;
   return __mktime_internal (tp, __localtime_r, &localtime_offset);
 # else
 #  undef mktime
   return mktime (tp);
 # endif
 }
-
-#endif /* NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS || DEBUG_MKTIME */
+#endif /* _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS */
 
 #ifdef weak_alias
 weak_alias (mktime, timelocal)
diff --git a/support/ChangeLog b/support/ChangeLog
index 24cbcfe..9948351 100644
--- a/support/ChangeLog
+++ b/support/ChangeLog
@@ -1,3 +1,7 @@
+2018-09-07         Arnold D. Robbins     <address@hidden>
+
+       * intprops.h, verify.h: Updated from GNULIB.
+
 2018-08-26         Arnold D. Robbins     <address@hidden>
 
        * regex_internal.c: Sync with GNULIB.
diff --git a/support/intprops.h b/support/intprops.h
index af456ff..a4be30b 100644
--- a/support/intprops.h
+++ b/support/intprops.h
@@ -22,12 +22,13 @@
 
 #include <limits.h>
 
-/* Return a value with the common real type of E and V and the value of V.  */
-#define _GL_INT_CONVERT(e, v) (0 * (e) + (v))
+/* Return a value with the common real type of E and V and the value of V.
+   Do not evaluate E.  */
+#define _GL_INT_CONVERT(e, v) ((1 ? 0 : (e)) + (v))
 
 /* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see
    <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00406.html>.  */
-#define _GL_INT_NEGATE_CONVERT(e, v) (0 * (e) - (v))
+#define _GL_INT_NEGATE_CONVERT(e, v) ((1 ? 0 : (e)) - (v))
 
 /* The extra casts in the following macros work around compiler bugs,
    e.g., in Cray C 5.0.3.0.  */
@@ -40,13 +41,14 @@
 #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1))
 
 /* Return 1 if the real expression E, after promotion, has a
-   signed or floating type.  */
+   signed or floating type.  Do not evaluate E.  */
 #define EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0)
 
 
 /* Minimum and maximum values for integer types and expressions.  */
 
 /* The width in bits of the integer type or expression T.
+   Do not evaluate T.
    Padding bits are not supported; this is checked at compile-time below.  */
 #define TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT)
 
@@ -58,7 +60,7 @@
         : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1)))
 
 /* The maximum and minimum values for the type of the expression E,
-   after integer promotion.  E should not have side effects.  */
+   after integer promotion.  E is not evaluated.  */
 #define _GL_INT_MINIMUM(e)                                              \
   (EXPR_SIGNED (e)                                                      \
    ? ~ _GL_SIGNED_INT_MAXIMUM (e)                                       \
@@ -340,8 +342,8 @@
    Arguments should be free of side effects.  */
 #define _GL_BINARY_OP_OVERFLOW(a, b, op_result_overflow)        \
   op_result_overflow (a, b,                                     \
-                      _GL_INT_MINIMUM (0 * (b) + (a)),          \
-                      _GL_INT_MAXIMUM (0 * (b) + (a)))
+                      _GL_INT_MINIMUM ((1 ? 0 : (b)) + (a)),    \
+                      _GL_INT_MAXIMUM ((1 ? 0 : (b)) + (a)))
 
 /* Store the low-order bits of A + B, A - B, A * B, respectively, into *R.
    Return 1 if the result overflows.  See above for restrictions.  */
diff --git a/support/verify.h b/support/verify.h
index bc7f99d..3b57dde 100644
--- a/support/verify.h
+++ b/support/verify.h
@@ -276,7 +276,8 @@ template <int w>
      when 'assume' silences warnings even with older GCCs.  */
 # define assume(R) ((R) ? (void) 0 : __builtin_trap ())
 #else
-# define assume(R) ((void) (0 && (R)))
+  /* Some tools grok NOTREACHED, e.g., Oracle Studio 12.6.  */
+# define assume(R) ((R) ? (void) 0 : /*NOTREACHED*/ (void) 0)
 #endif
 
 /* @assert.h omit end@  */

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=2da381d8f9b1638fbd31308edb17406bcf8ccee2

commit 2da381d8f9b1638fbd31308edb17406bcf8ccee2
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Sep 7 10:44:50 2018 +0300

    Update config.* files.

diff --git a/ChangeLog b/ChangeLog
index 47c62fd..2856365 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,7 @@
        * awkgram.y, debug.c, ext.c, gawkapi.c, gawkapi.h,
        io.c: Remove unneeded \n in calls to warning(), fatal(),
        and lintwarn().
+       * config.guess, config.sub: Updated from GNULIB.
 
 2018-08-24         Arnold D. Robbins     <address@hidden>
 
diff --git a/config.guess b/config.guess
index d4fb321..b33c9e8 100755
--- a/config.guess
+++ b/config.guess
@@ -2,7 +2,7 @@
 # Attempt to guess a canonical system name.
 #   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2018-08-02'
+timestamp='2018-08-29'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -838,7 +838,7 @@ EOF
     *:BSD/OS:*:*)
        echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
        exit ;;
-    arm*:FreeBSD:*:*)
+    arm:FreeBSD:*:*)
        UNAME_PROCESSOR=`uname -p`
        set_cc_for_build
        if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
diff --git a/config.sub b/config.sub
index 562f38f..b51fb8c 100755
--- a/config.sub
+++ b/config.sub
@@ -2,7 +2,7 @@
 # Configuration validation subroutine script.
 #   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2018-08-13'
+timestamp='2018-08-29'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -639,224 +639,162 @@ case $1 in
                ;;
 esac
 
-# Decode aliases for certain CPU-COMPANY combinations.
+# Decode 1-component or ad-hoc basic machines
 case $basic_machine in
        # Here we handle the default manufacturer of certain CPU types.  It is 
in
        # some cases the only manufacturer, in others, it is the most popular.
-       craynv)
-               basic_machine=craynv-cray
-               os=${os:-unicosmp}
-               ;;
-       fx80)
-               basic_machine=fx80-alliant
-               ;;
        w89k)
-               basic_machine=hppa1.1-winbond
+               cpu=hppa1.1
+               vendor=winbond
                ;;
        op50n)
-               basic_machine=hppa1.1-oki
+               cpu=hppa1.1
+               vendor=oki
                ;;
        op60c)
-               basic_machine=hppa1.1-oki
-               ;;
-       romp)
-               basic_machine=romp-ibm
-               ;;
-       mmix)
-               basic_machine=mmix-knuth
-               ;;
-       rs6000)
-               basic_machine=rs6000-ibm
-               ;;
-       vax)
-               basic_machine=vax-dec
+               cpu=hppa1.1
+               vendor=oki
                ;;
-       pdp11)
-               basic_machine=pdp11-dec
-               ;;
-       we32k)
-               basic_machine=we32k-att
-               ;;
-       cydra)
-               basic_machine=cydra-cydrome
-               ;;
-       i370-ibm* | ibm*)
-               basic_machine=i370-ibm
-               ;;
-       orion)
-               basic_machine=orion-highlevel
+       ibm*)
+               cpu=i370
+               vendor=ibm
                ;;
        orion105)
-               basic_machine=clipper-highlevel
+               cpu=clipper
+               vendor=highlevel
                ;;
        mac | mpw | mac-mpw)
-               basic_machine=m68k-apple
-               ;;
-       microblaze | microblazeel)
-               basic_machine=$basic_machine-xilinx
+               cpu=m68k
+               vendor=apple
                ;;
        pmac | pmac-mpw)
-               basic_machine=powerpc-apple
-               ;;
-       xps | xps100)
-               basic_machine=xps100-honeywell
+               cpu=powerpc
+               vendor=apple
                ;;
 
-       # We use `pc' rather than `unknown'
-       # because (1) that's what they normally are, and
-       # (2) the word "unknown" tends to confuse beginning users.
-       i*86 | x86_64)
-         basic_machine=$basic_machine-pc
-         ;;
-
        # Recognize the various machine names and aliases which stand
        # for a CPU type and a company and sometimes even an OS.
        3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-               basic_machine=m68000-att
+               cpu=m68000
+               vendor=att
                ;;
        3b*)
-               basic_machine=we32k-att
-               ;;
-       amd64)
-               basic_machine=x86_64-pc
-               ;;
-       amd64-*)
-               basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       blackfin-*)
-               basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               os=linux
+               cpu=we32k
+               vendor=att
                ;;
        bluegene*)
-               basic_machine=powerpc-ibm
+               cpu=powerpc
+               vendor=ibm
                os=cnk
                ;;
-       c54x-*)
-               basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       c55x-*)
-               basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       c6x-*)
-               basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       c90)
-               basic_machine=c90-cray
-               os=${os:-unicos}
-               ;;
-       cr16 | cr16-*)
-               basic_machine=cr16-unknown
-               os=${os:-elf}
-               ;;
-       crisv32 | crisv32-* | etraxfs*)
-               basic_machine=crisv32-axis
-               ;;
-       cris | cris-* | etrax*)
-               basic_machine=cris-axis
-               ;;
-       crx-*)
-               os=${os:-elf}
-               ;;
-       crx)
-               basic_machine=crx-unknown
-               os=${os:-elf}
-               ;;
        decsystem10* | dec10*)
-               basic_machine=pdp10-dec
+               cpu=pdp10
+               vendor=dec
                os=tops10
                ;;
        decsystem20* | dec20*)
-               basic_machine=pdp10-dec
+               cpu=pdp10
+               vendor=dec
                os=tops20
                ;;
        delta | 3300 | motorola-3300 | motorola-delta \
              | 3300-motorola | delta-motorola)
-               basic_machine=m68k-motorola
-               ;;
-       dpx20 | dpx20-*)
-               basic_machine=rs6000-bull
-               os=${os:-bosx}
+               cpu=m68k
+               vendor=motorola
                ;;
        dpx2*)
-               basic_machine=m68k-bull
+               cpu=m68k
+               vendor=bull
                os=sysv3
                ;;
-       e500v[12])
-               basic_machine=powerpc-unknown
-               os=$os"spe"
-               ;;
-       e500v[12]-*)
-               basic_machine=powerpc-`echo "$basic_machine" | sed 
's/^[^-]*-//'`
-               os=$os"spe"
-               ;;
        encore | umax | mmax)
-               basic_machine=ns32k-encore
+               cpu=ns32k
+               vendor=encore
                ;;
        elxsi)
-               basic_machine=elxsi-elxsi
+               cpu=elxsi
+               vendor=elxsi
                os=${os:-bsd}
                ;;
        fx2800)
-               basic_machine=i860-alliant
+               cpu=i860
+               vendor=alliant
                ;;
        genix)
-               basic_machine=ns32k-ns
+               cpu=ns32k
+               vendor=ns
                ;;
        h3050r* | hiux*)
-               basic_machine=hppa1.1-hitachi
+               cpu=hppa1.1
+               vendor=hitachi
                os=hiuxwe2
                ;;
        hp3k9[0-9][0-9] | hp9[0-9][0-9])
-               basic_machine=hppa1.0-hp
+               cpu=hppa1.0
+               vendor=hp
                ;;
        hp9k2[0-9][0-9] | hp9k31[0-9])
-               basic_machine=m68000-hp
+               cpu=m68000
+               vendor=hp
                ;;
        hp9k3[2-9][0-9])
-               basic_machine=m68k-hp
+               cpu=m68k
+               vendor=hp
                ;;
        hp9k6[0-9][0-9] | hp6[0-9][0-9])
-               basic_machine=hppa1.0-hp
+               cpu=hppa1.0
+               vendor=hp
                ;;
        hp9k7[0-79][0-9] | hp7[0-79][0-9])
-               basic_machine=hppa1.1-hp
+               cpu=hppa1.1
+               vendor=hp
                ;;
        hp9k78[0-9] | hp78[0-9])
                # FIXME: really hppa2.0-hp
-               basic_machine=hppa1.1-hp
+               cpu=hppa1.1
+               vendor=hp
                ;;
        hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | 
hp9k893 | hp893)
                # FIXME: really hppa2.0-hp
-               basic_machine=hppa1.1-hp
+               cpu=hppa1.1
+               vendor=hp
                ;;
        hp9k8[0-9][13679] | hp8[0-9][13679])
-               basic_machine=hppa1.1-hp
+               cpu=hppa1.1
+               vendor=hp
                ;;
        hp9k8[0-9][0-9] | hp8[0-9][0-9])
-               basic_machine=hppa1.0-hp
+               cpu=hppa1.0
+               vendor=hp
                ;;
        i*86v32)
-               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               vendor=pc
                os=sysv32
                ;;
        i*86v4*)
-               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               vendor=pc
                os=sysv4
                ;;
        i*86v)
-               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               vendor=pc
                os=sysv
                ;;
        i*86sol2)
-               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               vendor=pc
                os=solaris2
                ;;
        j90 | j90-cray)
-               basic_machine=j90-cray
+               cpu=j90
+               vendor=cray
                os=${os:-unicos}
                ;;
        iris | iris4d)
-               basic_machine=mips-sgi
+               cpu=mips
+               vendor=sgi
                case $os in
                    irix*)
                        ;;
@@ -865,35 +803,23 @@ case $basic_machine in
                        ;;
                esac
                ;;
-       leon-*|leon[3-9]-*)
-               basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
-               ;;
-       m68knommu-*)
-               basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               os=linux
-               ;;
        miniframe)
-               basic_machine=m68000-convergent
+               cpu=m68000
+               vendor=convergent
                ;;
        *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
-               basic_machine=m68k-atari
+               cpu=m68k
+               vendor=atari
                os=mint
                ;;
-       mips3*-*)
-               basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
-               ;;
-       mips3*)
-               basic_machine=`echo "$basic_machine" | sed -e 
's/mips3/mips64/'`-unknown
-               ;;
-       ms1-*)
-               basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
-               ;;
        news-3600 | risc-news)
-               basic_machine=mips-sony
+               cpu=mips
+               vendor=sony
                os=newsos
                ;;
        next | m*-next)
-               basic_machine=m68k-next
+               cpu=m68k
+               vendor=next
                case $os in
                    nextstep* )
                        ;;
@@ -906,403 +832,437 @@ case $basic_machine in
                esac
                ;;
        np1)
-               basic_machine=np1-gould
+               cpu=np1
+               vendor=gould
                ;;
-       neo-tandem)
-               basic_machine=neo-tandem
+       op50n-* | op60c-*)
+               cpu=hppa1.1
+               vendor=oki
+               os=proelf
                ;;
-       nse-tandem)
-               basic_machine=nse-tandem
+       pa-hitachi)
+               cpu=hppa1.1
+               vendor=hitachi
+               os=hiuxwe2
                ;;
-       nsr-tandem)
-               basic_machine=nsr-tandem
+       pbd)
+               cpu=sparc
+               vendor=tti
                ;;
-       nsv-tandem)
-               basic_machine=nsv-tandem
+       pbb)
+               cpu=m68k
+               vendor=tti
                ;;
-       nsx-tandem)
-               basic_machine=nsx-tandem
+       pc532)
+               cpu=ns32k
+               vendor=pc532
                ;;
-       op50n-* | op60c-*)
-               basic_machine=hppa1.1-oki
-               os=proelf
+       pn)
+               cpu=pn
+               vendor=gould
                ;;
-       openrisc | openrisc-*)
-               basic_machine=or32-unknown
+       power)
+               cpu=power
+               vendor=ibm
                ;;
-       pa-hitachi)
-               basic_machine=hppa1.1-hitachi
-               os=hiuxwe2
+       ps2)
+               cpu=i386
+               vendor=ibm
                ;;
-       parisc-*)
-               basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               os=linux
+       rm[46]00)
+               cpu=mips
+               vendor=siemens
                ;;
-       pbd)
-               basic_machine=sparc-tti
+       rtpc | rtpc-*)
+               cpu=romp
+               vendor=ibm
                ;;
-       pbb)
-               basic_machine=m68k-tti
+       sde)
+               cpu=mipsisa32
+               vendor=sde
+               os=${os:-elf}
+               ;;
+       simso-wrs)
+               cpu=sparclite
+               vendor=wrs
+               os=vxworks
+               ;;
+       tower | tower-32)
+               cpu=m68k
+               vendor=ncr
                ;;
-       pc532 | pc532-*)
-               basic_machine=ns32k-pc532
+       vpp*|vx|vx-*)
+               cpu=f301
+               vendor=fujitsu
+               ;;
+       w65)
+               cpu=w65
+               vendor=wdc
+               ;;
+       w89k-*)
+               cpu=hppa1.1
+               vendor=winbond
+               os=proelf
+               ;;
+       none)
+               cpu=none
+               vendor=none
+               ;;
+       leon|leon[3-9])
+               cpu=sparc
+               vendor=$basic_machine
+               ;;
+       leon-*|leon[3-9]-*)
+               cpu=sparc
+               vendor=`echo "$basic_machine" | sed 's/-.*//'`
                ;;
+
+       *-*)
+               IFS="-" read -r cpu vendor <<EOF
+$basic_machine
+EOF
+               ;;
+       # We use `pc' rather than `unknown'
+       # because (1) that's what they normally are, and
+       # (2) the word "unknown" tends to confuse beginning users.
+       i*86 | x86_64)
+               cpu=$basic_machine
+               vendor=pc
+               ;;
+       # These rules are duplicated from below for sake of the special case 
above;
+       # i.e. things that normalized to x86 arches should also default to "pc"
        pc98)
-               basic_machine=i386-pc
+               cpu=i386
+               vendor=pc
                ;;
-       pc98-*)
-               basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       x64 | amd64)
+               cpu=x86_64
+               vendor=pc
                ;;
-       pentium | p5 | k5 | k6 | nexgen | viac3)
-               basic_machine=i586-pc
+       # Recognize the basic CPU types without company name.
+       *)
+               cpu=$basic_machine
+               vendor=unknown
                ;;
-       pentiumpro | p6 | 6x86 | athlon | athlon_*)
-               basic_machine=i686-pc
+esac
+
+unset -v basic_machine
+
+# Decode basic machines in the full and proper CPU-Company form.
+case $cpu-$vendor in
+       # Here we handle the default manufacturer of certain CPU types in 
cannonical form. It is in
+       # some cases the only manufacturer, in others, it is the most popular.
+       craynv-unknown)
+               vendor=cray
+               os=${os:-unicosmp}
                ;;
-       pentiumii | pentium2 | pentiumiii | pentium3)
-               basic_machine=i686-pc
+       c90-unknown | c90-cray)
+               vendor=cray
+               os=${os:-unicos}
                ;;
-       pentium4)
-               basic_machine=i786-pc
+       fx80-unknown)
+               vendor=alliant
                ;;
-       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-               basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       romp-unknown)
+               vendor=ibm
                ;;
-       pentiumpro-* | p6-* | 6x86-* | athlon-*)
-               basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       mmix-unknown)
+               vendor=knuth
                ;;
-       pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-               basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       microblaze-unknown | microblazeel-unknown)
+               vendor=xilinx
                ;;
-       pentium4-*)
-               basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       rs6000-unknown)
+               vendor=ibm
                ;;
-       pn)
-               basic_machine=pn-gould
+       vax-unknown)
+               vendor=dec
                ;;
-       power)  basic_machine=power-ibm
+       pdp11-unknown)
+               vendor=dec
                ;;
-       ppc | ppcbe)    basic_machine=powerpc-unknown
+       we32k-unknown)
+               vendor=att
                ;;
-       ppc-* | ppcbe-*)
-               basic_machine=powerpc-`echo "$basic_machine" | sed 
's/^[^-]*-//'`
+       cydra-unknown)
+               vendor=cydrome
                ;;
-       ppcle | powerpclittle)
-               basic_machine=powerpcle-unknown
+       i370-ibm*)
+               vendor=ibm
                ;;
-       ppcle-* | powerpclittle-*)
-               basic_machine=powerpcle-`echo "$basic_machine" | sed 
's/^[^-]*-//'`
+       orion-unknown)
+               vendor=highlevel
                ;;
-       ppc64)  basic_machine=powerpc64-unknown
+       xps-unknown | xps100-unknown)
+               cpu=xps100
+               vendor=honeywell
                ;;
-       ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 
's/^[^-]*-//'`
+
+       # Here we normalize CPU types with a missing or matching vendor
+       dpx20-unknown | dpx20-bull)
+               cpu=rs6000
+               vendor=bull
+               os=${os:-bosx}
                ;;
-       ppc64le | powerpc64little)
-               basic_machine=powerpc64le-unknown
+
+       # Here we normalize CPU types irrespective of the vendor
+       amd64-*)
+               cpu=x86_64
                ;;
-       ppc64le-* | powerpc64little-*)
-               basic_machine=powerpc64le-`echo "$basic_machine" | sed 
's/^[^-]*-//'`
+       blackfin-*)
+               cpu=bfin
+               os=linux
                ;;
-       ps2)
-               basic_machine=i386-ibm
+       c54x-*)
+               cpu=tic54x
                ;;
-       rm[46]00)
-               basic_machine=mips-siemens
+       c55x-*)
+               cpu=tic55x
                ;;
-       rtpc | rtpc-*)
-               basic_machine=romp-ibm
+       c6x-*)
+               cpu=tic6x
                ;;
-       s390 | s390-*)
-               basic_machine=s390-ibm
+       e500v[12]-*)
+               cpu=powerpc
+               os=$os"spe"
                ;;
-       s390x | s390x-*)
-               basic_machine=s390x-ibm
+       mips3*-*)
+               cpu=mips64
                ;;
-       sb1)
-               basic_machine=mipsisa64sb1-unknown
+       ms1-*)
+               cpu=mt
                ;;
-       sb1el)
-               basic_machine=mipsisa64sb1el-unknown
+       m68knommu-*)
+               cpu=m68k
+               os=linux
                ;;
-       sde)
-               basic_machine=mipsisa32-sde
-               os=${os:-elf}
+       m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
+               cpu=s12z
                ;;
-       sh5el)
-               basic_machine=sh5le-unknown
+       openrisc-*)
+               cpu=or32
                ;;
-       sh5el-*)
-               basic_machine=sh5le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       parisc-*)
+               cpu=hppa
+               os=linux
                ;;
-       simso-wrs)
-               basic_machine=sparclite-wrs
-               os=vxworks
+       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+               cpu=i586
                ;;
-       spur)
-               basic_machine=spur-unknown
+       pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
+               cpu=i686
                ;;
-       strongarm-* | thumb-*)
-               basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+               cpu=i686
                ;;
-       tile*-*)
+       pentium4-*)
+               cpu=i786
                ;;
-       tile*)
-               basic_machine=$basic_machine-unknown
-               os=${os:-linux-gnu}
+       pc98-*)
+               cpu=i386
                ;;
-       tx39)
-               basic_machine=mipstx39-unknown
+       ppc-* | ppcbe-*)
+               cpu=powerpc
                ;;
-       tx39el)
-               basic_machine=mipstx39el-unknown
+       ppcle-* | powerpclittle-*)
+               cpu=powerpcle
                ;;
-       tower | tower-32)
-               basic_machine=m68k-ncr
+       ppc64-*)
+               cpu=powerpc64
                ;;
-       vpp*|vx|vx-*)
-               basic_machine=f301-fujitsu
+       ppc64le-* | powerpc64little-*)
+               cpu=powerpc64le
                ;;
-       w65)
-               basic_machine=w65-wdc
+       sb1-*)
+               cpu=mipsisa64sb1
                ;;
-       w89k-*)
-               basic_machine=hppa1.1-winbond
-               os=proelf
+       sb1el-*)
+               cpu=mipsisa64sb1el
                ;;
-       x64)
-               basic_machine=x86_64-pc
+       sh5e[lb]-*)
+               cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
                ;;
-       xscale-* | xscalee[bl]-*)
-               basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
+       spur-*)
+               cpu=spur
                ;;
-       none)
-               basic_machine=none-none
+       strongarm-* | thumb-*)
+               cpu=arm
                ;;
-
-       # Recognize the basic CPU types with company name.
-       1750a-* | 580-* \
-       | a29k-* \
-       | aarch64-* | aarch64_be-* \
-       | abacus-* \
-       | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
-       | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-       | alphapca5[67]-* | alpha64pca5[67]-* \
-       | am33_2.0-* \
-       | arc-* | arceb-* \
-       | arm-*  | arm[lb]e-* | arme[lb]-* | armv*-* \
-       | avr-* | avr32-* \
-       | asmjs-* \
-       | ba-* \
-       | be32-* | be64-* \
-       | bfin-* | bs2000-* \
-       | c[123]* | c30-* | [cjt]90-* | c4x-* \
-       | c8051-* | clipper-* | craynv-* | csky-* | cydra-* \
-       | d10v-* | d30v-* | dlx-* | dsp16xx-* \
-       | e2k-* | elxsi-* | epiphany-* \
-       | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | ft32-* | fx80-* \
-       | h8300-* | h8500-* \
-       | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-       | hexagon-* \
-       | i370-* | i*86-* | i860-* | i960-* | ia16-* | ia64-* \
-       | ip2k-* | iq2000-* \
-       | k1om-* \
-       | le32-* | le64-* \
-       | lm32-* \
-       | m32c-* | m32r-* | m32rle-* \
-       | m5200-* | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* | 
v70-* | w65-* \
-       | m6811-* | m68hc11-* | m6812-* | m68hc12-* | m68hcs12x-* | nvptx-* | 
picochip-* \
-       | m88110-* | m88k-* | maxq-* | mb-* | mcore-* | mep-* | metag-* \
-       | microblaze-* | microblazeel-* \
-       | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-       | mips16-* \
-       | mips64-* | mips64el-* \
-       | mips64octeon-* | mips64octeonel-* \
-       | mips64orion-* | mips64orionel-* \
-       | mips64r5900-* | mips64r5900el-* \
-       | mips64vr-* | mips64vrel-* \
-       | mips64vr4100-* | mips64vr4100el-* \
-       | mips64vr4300-* | mips64vr4300el-* \
-       | mips64vr5000-* | mips64vr5000el-* \
-       | mips64vr5900-* | mips64vr5900el-* \
-       | mipsisa32-* | mipsisa32el-* \
-       | mipsisa32r2-* | mipsisa32r2el-* \
-       | mipsisa32r6-* | mipsisa32r6el-* \
-       | mipsisa64-* | mipsisa64el-* \
-       | mipsisa64r2-* | mipsisa64r2el-* \
-       | mipsisa64r6-* | mipsisa64r6el-* \
-       | mipsisa64sb1-* | mipsisa64sb1el-* \
-       | mipsisa64sr71k-* | mipsisa64sr71kel-* \
-       | mipsr5900-* | mipsr5900el-* \
-       | mipstx39-* | mipstx39el-* \
-       | mmix-* \
-       | mn10200-* | mn10300-* \
-       | moxie-* \
-       | mt-* \
-       | msp430-* \
-       | nds32-* | nds32le-* | nds32be-* \
-       | nfp-* \
-       | nios-* | nios2-* | nios2eb-* | nios2el-* \
-       | none-* | np1-* | ns16k-* | ns32k-* \
-       | open8-* \
-       | or1k*-* \
-       | or32-* \
-       | orion-* \
-       | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
-       | pru-* \
-       | pyramid-* \
-       | riscv-* | riscv32-* | riscv64-* \
-       | rl78-* | romp-* | rs6000-* | rx-* \
-       | score-* \
-       | sh-* | sh[1234]-* | sh[24]a-* | sh[24]ae[lb]-* | sh[23]e-* | 
she[lb]-* | sh[lb]e-* \
-       | sh[1234]e[lb]-* |  sh[12345][lb]e-* | sh[23]ele-* | sh64-* | sh64le-* 
\
-       | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | 
sparclet-* \
-       | sparclite-* \
-       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
-       | spu-* \
-       | tahoe-* \
-       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-       | tron-* \
-       | ubicom32-* \
-       | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
-       | vax-* \
-       | visium-* \
-       | wasm32-* \
-       | we32k-* \
-       | x86-* | x86_64-* | xc16x-* | xgate-* | xps100-* \
-       | xstormy16-* | xtensa*-* \
-       | ymp-* \
-       | z8k-* | z80-*)
+       tx39-*)
+               cpu=mipstx39
+               ;;
+       tx39el-*)
+               cpu=mipstx39el
+               ;;
+       x64-*)
+               cpu=x86_64
+               ;;
+       xscale-* | xscalee[bl]-*)
+               cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
                ;;
 
-       # Recognize the basic CPU types without company name.
-       # Some are omitted here because they have special meanings below.
-       1750a | 580 \
-       | a29k \
-       | aarch64 | aarch64_be \
-       | abacus \
-       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
-       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | 
alpha64pca5[67] \
-       | am33_2.0 \
-       | arc | arceb \
-       | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv6m | 
armv[78][arm] \
-       | avr | avr32 \
-       | asmjs \
-       | ba \
-       | be32 | be64 \
-       | bfin \
-       | c4x | c8051 | clipper | csky \
-       | d10v | d30v | dlx | dsp16xx \
-       | e2k | epiphany \
-       | fido | fr30 | frv | ft32 \
-       | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-       | hexagon \
-       | i370 | i860 | i960 | ia16 | ia64 \
-       | ip2k | iq2000 \
-       | k1om \
-       | le32 | le64 \
-       | lm32 \
-       | m32c | m32r | m32rle | m68000 | m68k | m88k \
-       | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \
-       | maxq | mb | mcore | mep | metag \
-       | mips | mipsbe | mipseb | mipsel | mipsle \
-       | mips16 \
-       | mips64 | mips64el \
-       | mips64octeon | mips64octeonel \
-       | mips64orion | mips64orionel \
-       | mips64r5900 | mips64r5900el \
-       | mips64vr | mips64vrel \
-       | mips64vr4100 | mips64vr4100el \
-       | mips64vr4300 | mips64vr4300el \
-       | mips64vr5000 | mips64vr5000el \
-       | mips64vr5900 | mips64vr5900el \
-       | mipsisa32 | mipsisa32el \
-       | mipsisa32r2 | mipsisa32r2el \
-       | mipsisa32r6 | mipsisa32r6el \
-       | mipsisa64 | mipsisa64el \
-       | mipsisa64r2 | mipsisa64r2el \
-       | mipsisa64r6 | mipsisa64r6el \
-       | mipsisa64sb1 | mipsisa64sb1el \
-       | mipsisa64sr71k | mipsisa64sr71kel \
-       | mipsr5900 | mipsr5900el \
-       | mipstx39 | mipstx39el \
-       | mn10200 | mn10300 \
-       | moxie \
-       | mt \
-       | msp430 \
-       | nds32 | nds32le | nds32be \
-       | nfp \
-       | nios | nios2 | nios2eb | nios2el \
-       | ns16k | ns32k \
-       | open8 | or1k | or1knd | or32 \
-       | pdp10 | pj | pjl \
-       | powerpc | powerpc64 | powerpc64le | powerpcle \
-       | pru \
-       | pyramid \
-       | riscv | riscv32 | riscv64 \
-       | rl78 | rx \
-       | score \
-       | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | 
shbe | shle | sh[1234]le | sh[23]ele \
-       | sh64 | sh64le \
-       | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | 
sparclite \
-       | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-       | spu \
-       | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
-       | ubicom32 \
-       | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
-       | visium \
-       | wasm32 \
-       | x86 | xc16x | xstormy16 | xgate | xtensa* \
-       | z8k | z80)
-               basic_machine=$basic_machine-unknown
-               ;;
-       c54x)
-               basic_machine=tic54x-unknown
-               ;;
-       c55x)
-               basic_machine=tic55x-unknown
-               ;;
-       c6x)
-               basic_machine=tic6x-unknown
+       # Recognize the cannonical CPU Types that limit and/or modify the
+       # company names they are paired with.
+       cr16-*)
+               os=${os:-elf}
                ;;
-       leon|leon[3-9])
-               basic_machine=sparc-$basic_machine
+       crisv32-* | etraxfs*-*)
+               cpu=crisv32
+               vendor=axis
+               ;;
+       cris-* | etrax*-*)
+               cpu=cris
+               vendor=axis
                ;;
-       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70)
+       crx-*)
+               os=${os:-elf}
                ;;
-       m9s12z | m68hcs12z | hcs12z | s12z)
-               basic_machine=s12z-unknown
+       neo-tandem)
+               cpu=neo
+               vendor=tandem
                ;;
-       m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
-               basic_machine=s12z-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       nse-tandem)
+               cpu=nse
+               vendor=tandem
+               ;;
+       nsr-tandem)
+               cpu=nsr
+               vendor=tandem
                ;;
-       ms1)
-               basic_machine=mt-unknown
+       nsv-tandem)
+               cpu=nsv
+               vendor=tandem
                ;;
-       strongarm | thumb | xscale)
-               basic_machine=arm-unknown
+       nsx-tandem)
+               cpu=nsx
+               vendor=tandem
                ;;
-       xscaleeb)
-               basic_machine=armeb-unknown
+       s390-*)
+               cpu=s390
+               vendor=ibm
                ;;
-
-       xscaleel)
-               basic_machine=armel-unknown
+       s390x-*)
+               cpu=s390x
+               vendor=ibm
+               ;;
+       tile*-*)
+               os=${os:-linux-gnu}
                ;;
 
        *)
-               echo Invalid configuration \`"$1"\': machine 
\`"$basic_machine"\' not recognized 1>&2
-               exit 1
+               # Recognize the cannonical CPU types that are allowed with any
+               # company name.
+               case $cpu in
+                       1750a | 580 \
+                       | a29k \
+                       | aarch64 | aarch64_be \
+                       | abacus \
+                       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
+                       | alpha64 | alpha64ev[4-8] | alpha64ev56 | 
alpha64ev6[78] \
+                       | alphapca5[67] | alpha64pca5[67] \
+                       | am33_2.0 \
+                       | arc | arceb \
+                       | arm  | arm[lb]e | arme[lb] | armv* \
+                       | avr | avr32 \
+                       | asmjs \
+                       | ba \
+                       | be32 | be64 \
+                       | bfin | bs2000 \
+                       | c[123]* | c30 | [cjt]90 | c4x \
+                       | c8051 | clipper | craynv | csky | cydra \
+                       | d10v | d30v | dlx | dsp16xx \
+                       | e2k | elxsi | epiphany \
+                       | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
+                       | h8300 | h8500 \
+                       | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+                       | hexagon \
+                       | i370 | i*86 | i860 | i960 | ia16 | ia64 \
+                       | ip2k | iq2000 \
+                       | k1om \
+                       | le32 | le64 \
+                       | lm32 \
+                       | m32c | m32r | m32rle \
+                       | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | 
m68k | v70 | w65 \
+                       | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx 
| picochip \
+                       | m88110 | m88k | maxq | mb | mcore | mep | metag \
+                       | microblaze | microblazeel \
+                       | mips | mipsbe | mipseb | mipsel | mipsle \
+                       | mips16 \
+                       | mips64 | mips64el \
+                       | mips64octeon | mips64octeonel \
+                       | mips64orion | mips64orionel \
+                       | mips64r5900 | mips64r5900el \
+                       | mips64vr | mips64vrel \
+                       | mips64vr4100 | mips64vr4100el \
+                       | mips64vr4300 | mips64vr4300el \
+                       | mips64vr5000 | mips64vr5000el \
+                       | mips64vr5900 | mips64vr5900el \
+                       | mipsisa32 | mipsisa32el \
+                       | mipsisa32r2 | mipsisa32r2el \
+                       | mipsisa32r6 | mipsisa32r6el \
+                       | mipsisa64 | mipsisa64el \
+                       | mipsisa64r2 | mipsisa64r2el \
+                       | mipsisa64r6 | mipsisa64r6el \
+                       | mipsisa64sb1 | mipsisa64sb1el \
+                       | mipsisa64sr71k | mipsisa64sr71kel \
+                       | mipsr5900 | mipsr5900el \
+                       | mipstx39 | mipstx39el \
+                       | mmix \
+                       | mn10200 | mn10300 \
+                       | moxie \
+                       | mt \
+                       | msp430 \
+                       | nds32 | nds32le | nds32be \
+                       | nfp \
+                       | nios | nios2 | nios2eb | nios2el \
+                       | none | np1 | ns16k | ns32k \
+                       | open8 \
+                       | or1k* \
+                       | or32 \
+                       | orion \
+                       | pdp10 | pdp11 | pj | pjl | pn | power \
+                       | powerpc | powerpc64 | powerpc64le | powerpcle | 
powerpcspe \
+                       | pru \
+                       | pyramid \
+                       | riscv | riscv32 | riscv64 \
+                       | rl78 | romp | rs6000 | rx \
+                       | score \
+                       | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | 
she[lb] | sh[lb]e \
+                       | sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | 
sh64le \
+                       | sparc | sparc64 | sparc64b | sparc64v | sparc86x | 
sparclet \
+                       | sparclite \
+                       | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
+                       | spu \
+                       | tahoe \
+                       | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
+                       | tron \
+                       | ubicom32 \
+                       | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+                       | vax \
+                       | visium \
+                       | wasm32 \
+                       | we32k \
+                       | x86 | x86_64 | xc16x | xgate | xps100 \
+                       | xstormy16 | xtensa* \
+                       | ymp \
+                       | z8k | z80)
+                               ;;
+
+                       *)
+                               echo Invalid configuration \`"$1"\': machine 
\`"$cpu-$vendor"\' not recognized 1>&2
+                               exit 1
+                               ;;
+               esac
                ;;
 esac
 
 # Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-       *-digital*)
-               basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
+case $vendor in
+       digital*)
+               vendor=dec
                ;;
-       *-commodore*)
-               basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
+       commodore*)
+               vendor=cbm
                ;;
        *)
                ;;
@@ -1404,8 +1364,8 @@ case $os in
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        qnx*)
-               case $basic_machine in
-                   x86-* | i*86-*)
+               case $cpu in
+                   x86 | i*86)
                        ;;
                    *)
                        os=nto-$os
@@ -1531,7 +1491,7 @@ case $os in
                # Until real need of OS specific support for
                # particular features comes up, bare metal
                # configurations are quite functional.
-               case $basic_machine in
+               case $cpu in
                    arm*)
                        os=eabi
                        ;;
@@ -1565,7 +1525,7 @@ else
 # will signal an error saying that MANUFACTURER isn't an operating
 # system, and we'll never get to this point.
 
-case $basic_machine in
+case $cpu-$vendor in
        score-*)
                os=elf
                ;;
@@ -1746,9 +1706,8 @@ fi
 
 # Here we handle the case where we know the os, and the CPU type, but not the
 # manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-       *-unknown)
+case $vendor in
+       unknown)
                case $os in
                        riscix*)
                                vendor=acorn
@@ -1817,11 +1776,10 @@ case $basic_machine in
                                vendor=stratus
                                ;;
                esac
-               basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
                ;;
 esac
 
-echo "$basic_machine-$os"
+echo "$cpu-$vendor-$os"
 exit
 
 # Local variables:
diff --git a/extension/build-aux/ChangeLog b/extension/build-aux/ChangeLog
index 8f36368..153c3e2 100644
--- a/extension/build-aux/ChangeLog
+++ b/extension/build-aux/ChangeLog
@@ -1,3 +1,7 @@
+2018-09-07         Arnold D. Robbins     <address@hidden>
+
+       * config.guess, config.sub: Updated from GNULIB.
+
 2018-08-24         Arnold D. Robbins     <address@hidden>
 
        * config.sub: Updated from GNULIB.
diff --git a/extension/build-aux/config.guess b/extension/build-aux/config.guess
index d4fb321..b33c9e8 100755
--- a/extension/build-aux/config.guess
+++ b/extension/build-aux/config.guess
@@ -2,7 +2,7 @@
 # Attempt to guess a canonical system name.
 #   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2018-08-02'
+timestamp='2018-08-29'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -838,7 +838,7 @@ EOF
     *:BSD/OS:*:*)
        echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
        exit ;;
-    arm*:FreeBSD:*:*)
+    arm:FreeBSD:*:*)
        UNAME_PROCESSOR=`uname -p`
        set_cc_for_build
        if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
diff --git a/extension/build-aux/config.sub b/extension/build-aux/config.sub
index 562f38f..b51fb8c 100755
--- a/extension/build-aux/config.sub
+++ b/extension/build-aux/config.sub
@@ -2,7 +2,7 @@
 # Configuration validation subroutine script.
 #   Copyright 1992-2018 Free Software Foundation, Inc.
 
-timestamp='2018-08-13'
+timestamp='2018-08-29'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -639,224 +639,162 @@ case $1 in
                ;;
 esac
 
-# Decode aliases for certain CPU-COMPANY combinations.
+# Decode 1-component or ad-hoc basic machines
 case $basic_machine in
        # Here we handle the default manufacturer of certain CPU types.  It is 
in
        # some cases the only manufacturer, in others, it is the most popular.
-       craynv)
-               basic_machine=craynv-cray
-               os=${os:-unicosmp}
-               ;;
-       fx80)
-               basic_machine=fx80-alliant
-               ;;
        w89k)
-               basic_machine=hppa1.1-winbond
+               cpu=hppa1.1
+               vendor=winbond
                ;;
        op50n)
-               basic_machine=hppa1.1-oki
+               cpu=hppa1.1
+               vendor=oki
                ;;
        op60c)
-               basic_machine=hppa1.1-oki
-               ;;
-       romp)
-               basic_machine=romp-ibm
-               ;;
-       mmix)
-               basic_machine=mmix-knuth
-               ;;
-       rs6000)
-               basic_machine=rs6000-ibm
-               ;;
-       vax)
-               basic_machine=vax-dec
+               cpu=hppa1.1
+               vendor=oki
                ;;
-       pdp11)
-               basic_machine=pdp11-dec
-               ;;
-       we32k)
-               basic_machine=we32k-att
-               ;;
-       cydra)
-               basic_machine=cydra-cydrome
-               ;;
-       i370-ibm* | ibm*)
-               basic_machine=i370-ibm
-               ;;
-       orion)
-               basic_machine=orion-highlevel
+       ibm*)
+               cpu=i370
+               vendor=ibm
                ;;
        orion105)
-               basic_machine=clipper-highlevel
+               cpu=clipper
+               vendor=highlevel
                ;;
        mac | mpw | mac-mpw)
-               basic_machine=m68k-apple
-               ;;
-       microblaze | microblazeel)
-               basic_machine=$basic_machine-xilinx
+               cpu=m68k
+               vendor=apple
                ;;
        pmac | pmac-mpw)
-               basic_machine=powerpc-apple
-               ;;
-       xps | xps100)
-               basic_machine=xps100-honeywell
+               cpu=powerpc
+               vendor=apple
                ;;
 
-       # We use `pc' rather than `unknown'
-       # because (1) that's what they normally are, and
-       # (2) the word "unknown" tends to confuse beginning users.
-       i*86 | x86_64)
-         basic_machine=$basic_machine-pc
-         ;;
-
        # Recognize the various machine names and aliases which stand
        # for a CPU type and a company and sometimes even an OS.
        3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-               basic_machine=m68000-att
+               cpu=m68000
+               vendor=att
                ;;
        3b*)
-               basic_machine=we32k-att
-               ;;
-       amd64)
-               basic_machine=x86_64-pc
-               ;;
-       amd64-*)
-               basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       blackfin-*)
-               basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               os=linux
+               cpu=we32k
+               vendor=att
                ;;
        bluegene*)
-               basic_machine=powerpc-ibm
+               cpu=powerpc
+               vendor=ibm
                os=cnk
                ;;
-       c54x-*)
-               basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       c55x-*)
-               basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       c6x-*)
-               basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               ;;
-       c90)
-               basic_machine=c90-cray
-               os=${os:-unicos}
-               ;;
-       cr16 | cr16-*)
-               basic_machine=cr16-unknown
-               os=${os:-elf}
-               ;;
-       crisv32 | crisv32-* | etraxfs*)
-               basic_machine=crisv32-axis
-               ;;
-       cris | cris-* | etrax*)
-               basic_machine=cris-axis
-               ;;
-       crx-*)
-               os=${os:-elf}
-               ;;
-       crx)
-               basic_machine=crx-unknown
-               os=${os:-elf}
-               ;;
        decsystem10* | dec10*)
-               basic_machine=pdp10-dec
+               cpu=pdp10
+               vendor=dec
                os=tops10
                ;;
        decsystem20* | dec20*)
-               basic_machine=pdp10-dec
+               cpu=pdp10
+               vendor=dec
                os=tops20
                ;;
        delta | 3300 | motorola-3300 | motorola-delta \
              | 3300-motorola | delta-motorola)
-               basic_machine=m68k-motorola
-               ;;
-       dpx20 | dpx20-*)
-               basic_machine=rs6000-bull
-               os=${os:-bosx}
+               cpu=m68k
+               vendor=motorola
                ;;
        dpx2*)
-               basic_machine=m68k-bull
+               cpu=m68k
+               vendor=bull
                os=sysv3
                ;;
-       e500v[12])
-               basic_machine=powerpc-unknown
-               os=$os"spe"
-               ;;
-       e500v[12]-*)
-               basic_machine=powerpc-`echo "$basic_machine" | sed 
's/^[^-]*-//'`
-               os=$os"spe"
-               ;;
        encore | umax | mmax)
-               basic_machine=ns32k-encore
+               cpu=ns32k
+               vendor=encore
                ;;
        elxsi)
-               basic_machine=elxsi-elxsi
+               cpu=elxsi
+               vendor=elxsi
                os=${os:-bsd}
                ;;
        fx2800)
-               basic_machine=i860-alliant
+               cpu=i860
+               vendor=alliant
                ;;
        genix)
-               basic_machine=ns32k-ns
+               cpu=ns32k
+               vendor=ns
                ;;
        h3050r* | hiux*)
-               basic_machine=hppa1.1-hitachi
+               cpu=hppa1.1
+               vendor=hitachi
                os=hiuxwe2
                ;;
        hp3k9[0-9][0-9] | hp9[0-9][0-9])
-               basic_machine=hppa1.0-hp
+               cpu=hppa1.0
+               vendor=hp
                ;;
        hp9k2[0-9][0-9] | hp9k31[0-9])
-               basic_machine=m68000-hp
+               cpu=m68000
+               vendor=hp
                ;;
        hp9k3[2-9][0-9])
-               basic_machine=m68k-hp
+               cpu=m68k
+               vendor=hp
                ;;
        hp9k6[0-9][0-9] | hp6[0-9][0-9])
-               basic_machine=hppa1.0-hp
+               cpu=hppa1.0
+               vendor=hp
                ;;
        hp9k7[0-79][0-9] | hp7[0-79][0-9])
-               basic_machine=hppa1.1-hp
+               cpu=hppa1.1
+               vendor=hp
                ;;
        hp9k78[0-9] | hp78[0-9])
                # FIXME: really hppa2.0-hp
-               basic_machine=hppa1.1-hp
+               cpu=hppa1.1
+               vendor=hp
                ;;
        hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | 
hp9k893 | hp893)
                # FIXME: really hppa2.0-hp
-               basic_machine=hppa1.1-hp
+               cpu=hppa1.1
+               vendor=hp
                ;;
        hp9k8[0-9][13679] | hp8[0-9][13679])
-               basic_machine=hppa1.1-hp
+               cpu=hppa1.1
+               vendor=hp
                ;;
        hp9k8[0-9][0-9] | hp8[0-9][0-9])
-               basic_machine=hppa1.0-hp
+               cpu=hppa1.0
+               vendor=hp
                ;;
        i*86v32)
-               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               vendor=pc
                os=sysv32
                ;;
        i*86v4*)
-               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               vendor=pc
                os=sysv4
                ;;
        i*86v)
-               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               vendor=pc
                os=sysv
                ;;
        i*86sol2)
-               basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'`
+               cpu=`echo "$1" | sed -e 's/86.*/86/'`
+               vendor=pc
                os=solaris2
                ;;
        j90 | j90-cray)
-               basic_machine=j90-cray
+               cpu=j90
+               vendor=cray
                os=${os:-unicos}
                ;;
        iris | iris4d)
-               basic_machine=mips-sgi
+               cpu=mips
+               vendor=sgi
                case $os in
                    irix*)
                        ;;
@@ -865,35 +803,23 @@ case $basic_machine in
                        ;;
                esac
                ;;
-       leon-*|leon[3-9]-*)
-               basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'`
-               ;;
-       m68knommu-*)
-               basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               os=linux
-               ;;
        miniframe)
-               basic_machine=m68000-convergent
+               cpu=m68000
+               vendor=convergent
                ;;
        *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
-               basic_machine=m68k-atari
+               cpu=m68k
+               vendor=atari
                os=mint
                ;;
-       mips3*-*)
-               basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`
-               ;;
-       mips3*)
-               basic_machine=`echo "$basic_machine" | sed -e 
's/mips3/mips64/'`-unknown
-               ;;
-       ms1-*)
-               basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'`
-               ;;
        news-3600 | risc-news)
-               basic_machine=mips-sony
+               cpu=mips
+               vendor=sony
                os=newsos
                ;;
        next | m*-next)
-               basic_machine=m68k-next
+               cpu=m68k
+               vendor=next
                case $os in
                    nextstep* )
                        ;;
@@ -906,403 +832,437 @@ case $basic_machine in
                esac
                ;;
        np1)
-               basic_machine=np1-gould
+               cpu=np1
+               vendor=gould
                ;;
-       neo-tandem)
-               basic_machine=neo-tandem
+       op50n-* | op60c-*)
+               cpu=hppa1.1
+               vendor=oki
+               os=proelf
                ;;
-       nse-tandem)
-               basic_machine=nse-tandem
+       pa-hitachi)
+               cpu=hppa1.1
+               vendor=hitachi
+               os=hiuxwe2
                ;;
-       nsr-tandem)
-               basic_machine=nsr-tandem
+       pbd)
+               cpu=sparc
+               vendor=tti
                ;;
-       nsv-tandem)
-               basic_machine=nsv-tandem
+       pbb)
+               cpu=m68k
+               vendor=tti
                ;;
-       nsx-tandem)
-               basic_machine=nsx-tandem
+       pc532)
+               cpu=ns32k
+               vendor=pc532
                ;;
-       op50n-* | op60c-*)
-               basic_machine=hppa1.1-oki
-               os=proelf
+       pn)
+               cpu=pn
+               vendor=gould
                ;;
-       openrisc | openrisc-*)
-               basic_machine=or32-unknown
+       power)
+               cpu=power
+               vendor=ibm
                ;;
-       pa-hitachi)
-               basic_machine=hppa1.1-hitachi
-               os=hiuxwe2
+       ps2)
+               cpu=i386
+               vendor=ibm
                ;;
-       parisc-*)
-               basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'`
-               os=linux
+       rm[46]00)
+               cpu=mips
+               vendor=siemens
                ;;
-       pbd)
-               basic_machine=sparc-tti
+       rtpc | rtpc-*)
+               cpu=romp
+               vendor=ibm
                ;;
-       pbb)
-               basic_machine=m68k-tti
+       sde)
+               cpu=mipsisa32
+               vendor=sde
+               os=${os:-elf}
+               ;;
+       simso-wrs)
+               cpu=sparclite
+               vendor=wrs
+               os=vxworks
+               ;;
+       tower | tower-32)
+               cpu=m68k
+               vendor=ncr
                ;;
-       pc532 | pc532-*)
-               basic_machine=ns32k-pc532
+       vpp*|vx|vx-*)
+               cpu=f301
+               vendor=fujitsu
+               ;;
+       w65)
+               cpu=w65
+               vendor=wdc
+               ;;
+       w89k-*)
+               cpu=hppa1.1
+               vendor=winbond
+               os=proelf
+               ;;
+       none)
+               cpu=none
+               vendor=none
+               ;;
+       leon|leon[3-9])
+               cpu=sparc
+               vendor=$basic_machine
+               ;;
+       leon-*|leon[3-9]-*)
+               cpu=sparc
+               vendor=`echo "$basic_machine" | sed 's/-.*//'`
                ;;
+
+       *-*)
+               IFS="-" read -r cpu vendor <<EOF
+$basic_machine
+EOF
+               ;;
+       # We use `pc' rather than `unknown'
+       # because (1) that's what they normally are, and
+       # (2) the word "unknown" tends to confuse beginning users.
+       i*86 | x86_64)
+               cpu=$basic_machine
+               vendor=pc
+               ;;
+       # These rules are duplicated from below for sake of the special case 
above;
+       # i.e. things that normalized to x86 arches should also default to "pc"
        pc98)
-               basic_machine=i386-pc
+               cpu=i386
+               vendor=pc
                ;;
-       pc98-*)
-               basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       x64 | amd64)
+               cpu=x86_64
+               vendor=pc
                ;;
-       pentium | p5 | k5 | k6 | nexgen | viac3)
-               basic_machine=i586-pc
+       # Recognize the basic CPU types without company name.
+       *)
+               cpu=$basic_machine
+               vendor=unknown
                ;;
-       pentiumpro | p6 | 6x86 | athlon | athlon_*)
-               basic_machine=i686-pc
+esac
+
+unset -v basic_machine
+
+# Decode basic machines in the full and proper CPU-Company form.
+case $cpu-$vendor in
+       # Here we handle the default manufacturer of certain CPU types in 
cannonical form. It is in
+       # some cases the only manufacturer, in others, it is the most popular.
+       craynv-unknown)
+               vendor=cray
+               os=${os:-unicosmp}
                ;;
-       pentiumii | pentium2 | pentiumiii | pentium3)
-               basic_machine=i686-pc
+       c90-unknown | c90-cray)
+               vendor=cray
+               os=${os:-unicos}
                ;;
-       pentium4)
-               basic_machine=i786-pc
+       fx80-unknown)
+               vendor=alliant
                ;;
-       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-               basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       romp-unknown)
+               vendor=ibm
                ;;
-       pentiumpro-* | p6-* | 6x86-* | athlon-*)
-               basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       mmix-unknown)
+               vendor=knuth
                ;;
-       pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-               basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       microblaze-unknown | microblazeel-unknown)
+               vendor=xilinx
                ;;
-       pentium4-*)
-               basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       rs6000-unknown)
+               vendor=ibm
                ;;
-       pn)
-               basic_machine=pn-gould
+       vax-unknown)
+               vendor=dec
                ;;
-       power)  basic_machine=power-ibm
+       pdp11-unknown)
+               vendor=dec
                ;;
-       ppc | ppcbe)    basic_machine=powerpc-unknown
+       we32k-unknown)
+               vendor=att
                ;;
-       ppc-* | ppcbe-*)
-               basic_machine=powerpc-`echo "$basic_machine" | sed 
's/^[^-]*-//'`
+       cydra-unknown)
+               vendor=cydrome
                ;;
-       ppcle | powerpclittle)
-               basic_machine=powerpcle-unknown
+       i370-ibm*)
+               vendor=ibm
                ;;
-       ppcle-* | powerpclittle-*)
-               basic_machine=powerpcle-`echo "$basic_machine" | sed 
's/^[^-]*-//'`
+       orion-unknown)
+               vendor=highlevel
                ;;
-       ppc64)  basic_machine=powerpc64-unknown
+       xps-unknown | xps100-unknown)
+               cpu=xps100
+               vendor=honeywell
                ;;
-       ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 
's/^[^-]*-//'`
+
+       # Here we normalize CPU types with a missing or matching vendor
+       dpx20-unknown | dpx20-bull)
+               cpu=rs6000
+               vendor=bull
+               os=${os:-bosx}
                ;;
-       ppc64le | powerpc64little)
-               basic_machine=powerpc64le-unknown
+
+       # Here we normalize CPU types irrespective of the vendor
+       amd64-*)
+               cpu=x86_64
                ;;
-       ppc64le-* | powerpc64little-*)
-               basic_machine=powerpc64le-`echo "$basic_machine" | sed 
's/^[^-]*-//'`
+       blackfin-*)
+               cpu=bfin
+               os=linux
                ;;
-       ps2)
-               basic_machine=i386-ibm
+       c54x-*)
+               cpu=tic54x
                ;;
-       rm[46]00)
-               basic_machine=mips-siemens
+       c55x-*)
+               cpu=tic55x
                ;;
-       rtpc | rtpc-*)
-               basic_machine=romp-ibm
+       c6x-*)
+               cpu=tic6x
                ;;
-       s390 | s390-*)
-               basic_machine=s390-ibm
+       e500v[12]-*)
+               cpu=powerpc
+               os=$os"spe"
                ;;
-       s390x | s390x-*)
-               basic_machine=s390x-ibm
+       mips3*-*)
+               cpu=mips64
                ;;
-       sb1)
-               basic_machine=mipsisa64sb1-unknown
+       ms1-*)
+               cpu=mt
                ;;
-       sb1el)
-               basic_machine=mipsisa64sb1el-unknown
+       m68knommu-*)
+               cpu=m68k
+               os=linux
                ;;
-       sde)
-               basic_machine=mipsisa32-sde
-               os=${os:-elf}
+       m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
+               cpu=s12z
                ;;
-       sh5el)
-               basic_machine=sh5le-unknown
+       openrisc-*)
+               cpu=or32
                ;;
-       sh5el-*)
-               basic_machine=sh5le-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       parisc-*)
+               cpu=hppa
+               os=linux
                ;;
-       simso-wrs)
-               basic_machine=sparclite-wrs
-               os=vxworks
+       pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+               cpu=i586
                ;;
-       spur)
-               basic_machine=spur-unknown
+       pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
+               cpu=i686
                ;;
-       strongarm-* | thumb-*)
-               basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+               cpu=i686
                ;;
-       tile*-*)
+       pentium4-*)
+               cpu=i786
                ;;
-       tile*)
-               basic_machine=$basic_machine-unknown
-               os=${os:-linux-gnu}
+       pc98-*)
+               cpu=i386
                ;;
-       tx39)
-               basic_machine=mipstx39-unknown
+       ppc-* | ppcbe-*)
+               cpu=powerpc
                ;;
-       tx39el)
-               basic_machine=mipstx39el-unknown
+       ppcle-* | powerpclittle-*)
+               cpu=powerpcle
                ;;
-       tower | tower-32)
-               basic_machine=m68k-ncr
+       ppc64-*)
+               cpu=powerpc64
                ;;
-       vpp*|vx|vx-*)
-               basic_machine=f301-fujitsu
+       ppc64le-* | powerpc64little-*)
+               cpu=powerpc64le
                ;;
-       w65)
-               basic_machine=w65-wdc
+       sb1-*)
+               cpu=mipsisa64sb1
                ;;
-       w89k-*)
-               basic_machine=hppa1.1-winbond
-               os=proelf
+       sb1el-*)
+               cpu=mipsisa64sb1el
                ;;
-       x64)
-               basic_machine=x86_64-pc
+       sh5e[lb]-*)
+               cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'`
                ;;
-       xscale-* | xscalee[bl]-*)
-               basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'`
+       spur-*)
+               cpu=spur
                ;;
-       none)
-               basic_machine=none-none
+       strongarm-* | thumb-*)
+               cpu=arm
                ;;
-
-       # Recognize the basic CPU types with company name.
-       1750a-* | 580-* \
-       | a29k-* \
-       | aarch64-* | aarch64_be-* \
-       | abacus-* \
-       | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
-       | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-       | alphapca5[67]-* | alpha64pca5[67]-* \
-       | am33_2.0-* \
-       | arc-* | arceb-* \
-       | arm-*  | arm[lb]e-* | arme[lb]-* | armv*-* \
-       | avr-* | avr32-* \
-       | asmjs-* \
-       | ba-* \
-       | be32-* | be64-* \
-       | bfin-* | bs2000-* \
-       | c[123]* | c30-* | [cjt]90-* | c4x-* \
-       | c8051-* | clipper-* | craynv-* | csky-* | cydra-* \
-       | d10v-* | d30v-* | dlx-* | dsp16xx-* \
-       | e2k-* | elxsi-* | epiphany-* \
-       | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | ft32-* | fx80-* \
-       | h8300-* | h8500-* \
-       | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-       | hexagon-* \
-       | i370-* | i*86-* | i860-* | i960-* | ia16-* | ia64-* \
-       | ip2k-* | iq2000-* \
-       | k1om-* \
-       | le32-* | le64-* \
-       | lm32-* \
-       | m32c-* | m32r-* | m32rle-* \
-       | m5200-* | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* | 
v70-* | w65-* \
-       | m6811-* | m68hc11-* | m6812-* | m68hc12-* | m68hcs12x-* | nvptx-* | 
picochip-* \
-       | m88110-* | m88k-* | maxq-* | mb-* | mcore-* | mep-* | metag-* \
-       | microblaze-* | microblazeel-* \
-       | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-       | mips16-* \
-       | mips64-* | mips64el-* \
-       | mips64octeon-* | mips64octeonel-* \
-       | mips64orion-* | mips64orionel-* \
-       | mips64r5900-* | mips64r5900el-* \
-       | mips64vr-* | mips64vrel-* \
-       | mips64vr4100-* | mips64vr4100el-* \
-       | mips64vr4300-* | mips64vr4300el-* \
-       | mips64vr5000-* | mips64vr5000el-* \
-       | mips64vr5900-* | mips64vr5900el-* \
-       | mipsisa32-* | mipsisa32el-* \
-       | mipsisa32r2-* | mipsisa32r2el-* \
-       | mipsisa32r6-* | mipsisa32r6el-* \
-       | mipsisa64-* | mipsisa64el-* \
-       | mipsisa64r2-* | mipsisa64r2el-* \
-       | mipsisa64r6-* | mipsisa64r6el-* \
-       | mipsisa64sb1-* | mipsisa64sb1el-* \
-       | mipsisa64sr71k-* | mipsisa64sr71kel-* \
-       | mipsr5900-* | mipsr5900el-* \
-       | mipstx39-* | mipstx39el-* \
-       | mmix-* \
-       | mn10200-* | mn10300-* \
-       | moxie-* \
-       | mt-* \
-       | msp430-* \
-       | nds32-* | nds32le-* | nds32be-* \
-       | nfp-* \
-       | nios-* | nios2-* | nios2eb-* | nios2el-* \
-       | none-* | np1-* | ns16k-* | ns32k-* \
-       | open8-* \
-       | or1k*-* \
-       | or32-* \
-       | orion-* \
-       | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-       | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
-       | pru-* \
-       | pyramid-* \
-       | riscv-* | riscv32-* | riscv64-* \
-       | rl78-* | romp-* | rs6000-* | rx-* \
-       | score-* \
-       | sh-* | sh[1234]-* | sh[24]a-* | sh[24]ae[lb]-* | sh[23]e-* | 
she[lb]-* | sh[lb]e-* \
-       | sh[1234]e[lb]-* |  sh[12345][lb]e-* | sh[23]ele-* | sh64-* | sh64le-* 
\
-       | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | 
sparclet-* \
-       | sparclite-* \
-       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
-       | spu-* \
-       | tahoe-* \
-       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-       | tron-* \
-       | ubicom32-* \
-       | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
-       | vax-* \
-       | visium-* \
-       | wasm32-* \
-       | we32k-* \
-       | x86-* | x86_64-* | xc16x-* | xgate-* | xps100-* \
-       | xstormy16-* | xtensa*-* \
-       | ymp-* \
-       | z8k-* | z80-*)
+       tx39-*)
+               cpu=mipstx39
+               ;;
+       tx39el-*)
+               cpu=mipstx39el
+               ;;
+       x64-*)
+               cpu=x86_64
+               ;;
+       xscale-* | xscalee[bl]-*)
+               cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
                ;;
 
-       # Recognize the basic CPU types without company name.
-       # Some are omitted here because they have special meanings below.
-       1750a | 580 \
-       | a29k \
-       | aarch64 | aarch64_be \
-       | abacus \
-       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
-       | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | 
alpha64pca5[67] \
-       | am33_2.0 \
-       | arc | arceb \
-       | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv6m | 
armv[78][arm] \
-       | avr | avr32 \
-       | asmjs \
-       | ba \
-       | be32 | be64 \
-       | bfin \
-       | c4x | c8051 | clipper | csky \
-       | d10v | d30v | dlx | dsp16xx \
-       | e2k | epiphany \
-       | fido | fr30 | frv | ft32 \
-       | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-       | hexagon \
-       | i370 | i860 | i960 | ia16 | ia64 \
-       | ip2k | iq2000 \
-       | k1om \
-       | le32 | le64 \
-       | lm32 \
-       | m32c | m32r | m32rle | m68000 | m68k | m88k \
-       | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \
-       | maxq | mb | mcore | mep | metag \
-       | mips | mipsbe | mipseb | mipsel | mipsle \
-       | mips16 \
-       | mips64 | mips64el \
-       | mips64octeon | mips64octeonel \
-       | mips64orion | mips64orionel \
-       | mips64r5900 | mips64r5900el \
-       | mips64vr | mips64vrel \
-       | mips64vr4100 | mips64vr4100el \
-       | mips64vr4300 | mips64vr4300el \
-       | mips64vr5000 | mips64vr5000el \
-       | mips64vr5900 | mips64vr5900el \
-       | mipsisa32 | mipsisa32el \
-       | mipsisa32r2 | mipsisa32r2el \
-       | mipsisa32r6 | mipsisa32r6el \
-       | mipsisa64 | mipsisa64el \
-       | mipsisa64r2 | mipsisa64r2el \
-       | mipsisa64r6 | mipsisa64r6el \
-       | mipsisa64sb1 | mipsisa64sb1el \
-       | mipsisa64sr71k | mipsisa64sr71kel \
-       | mipsr5900 | mipsr5900el \
-       | mipstx39 | mipstx39el \
-       | mn10200 | mn10300 \
-       | moxie \
-       | mt \
-       | msp430 \
-       | nds32 | nds32le | nds32be \
-       | nfp \
-       | nios | nios2 | nios2eb | nios2el \
-       | ns16k | ns32k \
-       | open8 | or1k | or1knd | or32 \
-       | pdp10 | pj | pjl \
-       | powerpc | powerpc64 | powerpc64le | powerpcle \
-       | pru \
-       | pyramid \
-       | riscv | riscv32 | riscv64 \
-       | rl78 | rx \
-       | score \
-       | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | 
shbe | shle | sh[1234]le | sh[23]ele \
-       | sh64 | sh64le \
-       | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | 
sparclite \
-       | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-       | spu \
-       | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
-       | ubicom32 \
-       | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
-       | visium \
-       | wasm32 \
-       | x86 | xc16x | xstormy16 | xgate | xtensa* \
-       | z8k | z80)
-               basic_machine=$basic_machine-unknown
-               ;;
-       c54x)
-               basic_machine=tic54x-unknown
-               ;;
-       c55x)
-               basic_machine=tic55x-unknown
-               ;;
-       c6x)
-               basic_machine=tic6x-unknown
+       # Recognize the cannonical CPU Types that limit and/or modify the
+       # company names they are paired with.
+       cr16-*)
+               os=${os:-elf}
                ;;
-       leon|leon[3-9])
-               basic_machine=sparc-$basic_machine
+       crisv32-* | etraxfs*-*)
+               cpu=crisv32
+               vendor=axis
+               ;;
+       cris-* | etrax*-*)
+               cpu=cris
+               vendor=axis
                ;;
-       m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70)
+       crx-*)
+               os=${os:-elf}
                ;;
-       m9s12z | m68hcs12z | hcs12z | s12z)
-               basic_machine=s12z-unknown
+       neo-tandem)
+               cpu=neo
+               vendor=tandem
                ;;
-       m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
-               basic_machine=s12z-`echo "$basic_machine" | sed 's/^[^-]*-//'`
+       nse-tandem)
+               cpu=nse
+               vendor=tandem
+               ;;
+       nsr-tandem)
+               cpu=nsr
+               vendor=tandem
                ;;
-       ms1)
-               basic_machine=mt-unknown
+       nsv-tandem)
+               cpu=nsv
+               vendor=tandem
                ;;
-       strongarm | thumb | xscale)
-               basic_machine=arm-unknown
+       nsx-tandem)
+               cpu=nsx
+               vendor=tandem
                ;;
-       xscaleeb)
-               basic_machine=armeb-unknown
+       s390-*)
+               cpu=s390
+               vendor=ibm
                ;;
-
-       xscaleel)
-               basic_machine=armel-unknown
+       s390x-*)
+               cpu=s390x
+               vendor=ibm
+               ;;
+       tile*-*)
+               os=${os:-linux-gnu}
                ;;
 
        *)
-               echo Invalid configuration \`"$1"\': machine 
\`"$basic_machine"\' not recognized 1>&2
-               exit 1
+               # Recognize the cannonical CPU types that are allowed with any
+               # company name.
+               case $cpu in
+                       1750a | 580 \
+                       | a29k \
+                       | aarch64 | aarch64_be \
+                       | abacus \
+                       | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
+                       | alpha64 | alpha64ev[4-8] | alpha64ev56 | 
alpha64ev6[78] \
+                       | alphapca5[67] | alpha64pca5[67] \
+                       | am33_2.0 \
+                       | arc | arceb \
+                       | arm  | arm[lb]e | arme[lb] | armv* \
+                       | avr | avr32 \
+                       | asmjs \
+                       | ba \
+                       | be32 | be64 \
+                       | bfin | bs2000 \
+                       | c[123]* | c30 | [cjt]90 | c4x \
+                       | c8051 | clipper | craynv | csky | cydra \
+                       | d10v | d30v | dlx | dsp16xx \
+                       | e2k | elxsi | epiphany \
+                       | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
+                       | h8300 | h8500 \
+                       | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+                       | hexagon \
+                       | i370 | i*86 | i860 | i960 | ia16 | ia64 \
+                       | ip2k | iq2000 \
+                       | k1om \
+                       | le32 | le64 \
+                       | lm32 \
+                       | m32c | m32r | m32rle \
+                       | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | 
m68k | v70 | w65 \
+                       | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx 
| picochip \
+                       | m88110 | m88k | maxq | mb | mcore | mep | metag \
+                       | microblaze | microblazeel \
+                       | mips | mipsbe | mipseb | mipsel | mipsle \
+                       | mips16 \
+                       | mips64 | mips64el \
+                       | mips64octeon | mips64octeonel \
+                       | mips64orion | mips64orionel \
+                       | mips64r5900 | mips64r5900el \
+                       | mips64vr | mips64vrel \
+                       | mips64vr4100 | mips64vr4100el \
+                       | mips64vr4300 | mips64vr4300el \
+                       | mips64vr5000 | mips64vr5000el \
+                       | mips64vr5900 | mips64vr5900el \
+                       | mipsisa32 | mipsisa32el \
+                       | mipsisa32r2 | mipsisa32r2el \
+                       | mipsisa32r6 | mipsisa32r6el \
+                       | mipsisa64 | mipsisa64el \
+                       | mipsisa64r2 | mipsisa64r2el \
+                       | mipsisa64r6 | mipsisa64r6el \
+                       | mipsisa64sb1 | mipsisa64sb1el \
+                       | mipsisa64sr71k | mipsisa64sr71kel \
+                       | mipsr5900 | mipsr5900el \
+                       | mipstx39 | mipstx39el \
+                       | mmix \
+                       | mn10200 | mn10300 \
+                       | moxie \
+                       | mt \
+                       | msp430 \
+                       | nds32 | nds32le | nds32be \
+                       | nfp \
+                       | nios | nios2 | nios2eb | nios2el \
+                       | none | np1 | ns16k | ns32k \
+                       | open8 \
+                       | or1k* \
+                       | or32 \
+                       | orion \
+                       | pdp10 | pdp11 | pj | pjl | pn | power \
+                       | powerpc | powerpc64 | powerpc64le | powerpcle | 
powerpcspe \
+                       | pru \
+                       | pyramid \
+                       | riscv | riscv32 | riscv64 \
+                       | rl78 | romp | rs6000 | rx \
+                       | score \
+                       | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | 
she[lb] | sh[lb]e \
+                       | sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | 
sh64le \
+                       | sparc | sparc64 | sparc64b | sparc64v | sparc86x | 
sparclet \
+                       | sparclite \
+                       | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
+                       | spu \
+                       | tahoe \
+                       | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
+                       | tron \
+                       | ubicom32 \
+                       | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+                       | vax \
+                       | visium \
+                       | wasm32 \
+                       | we32k \
+                       | x86 | x86_64 | xc16x | xgate | xps100 \
+                       | xstormy16 | xtensa* \
+                       | ymp \
+                       | z8k | z80)
+                               ;;
+
+                       *)
+                               echo Invalid configuration \`"$1"\': machine 
\`"$cpu-$vendor"\' not recognized 1>&2
+                               exit 1
+                               ;;
+               esac
                ;;
 esac
 
 # Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-       *-digital*)
-               basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'`
+case $vendor in
+       digital*)
+               vendor=dec
                ;;
-       *-commodore*)
-               basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'`
+       commodore*)
+               vendor=cbm
                ;;
        *)
                ;;
@@ -1404,8 +1364,8 @@ case $os in
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        qnx*)
-               case $basic_machine in
-                   x86-* | i*86-*)
+               case $cpu in
+                   x86 | i*86)
                        ;;
                    *)
                        os=nto-$os
@@ -1531,7 +1491,7 @@ case $os in
                # Until real need of OS specific support for
                # particular features comes up, bare metal
                # configurations are quite functional.
-               case $basic_machine in
+               case $cpu in
                    arm*)
                        os=eabi
                        ;;
@@ -1565,7 +1525,7 @@ else
 # will signal an error saying that MANUFACTURER isn't an operating
 # system, and we'll never get to this point.
 
-case $basic_machine in
+case $cpu-$vendor in
        score-*)
                os=elf
                ;;
@@ -1746,9 +1706,8 @@ fi
 
 # Here we handle the case where we know the os, and the CPU type, but not the
 # manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-       *-unknown)
+case $vendor in
+       unknown)
                case $os in
                        riscix*)
                                vendor=acorn
@@ -1817,11 +1776,10 @@ case $basic_machine in
                                vendor=stratus
                                ;;
                esac
-               basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"`
                ;;
 esac
 
-echo "$basic_machine-$os"
+echo "$cpu-$vendor-$os"
 exit
 
 # Local variables:

http://git.sv.gnu.org/cgit/gawk.git/commit/?id=f0d8b816af00186c108f6cdc538ec18d8b4dddba

commit f0d8b816af00186c108f6cdc538ec18d8b4dddba
Author: Arnold D. Robbins <address@hidden>
Date:   Fri Sep 7 10:43:21 2018 +0300

    Remove \n from calls to lintwarn, warning, and fatal.

diff --git a/ChangeLog b/ChangeLog
index 630b5b6..47c62fd 100755
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2018-09-07         Arnold D. Robbins     <address@hidden>
+
+       * awkgram.y, debug.c, ext.c, gawkapi.c, gawkapi.h,
+       io.c: Remove unneeded \n in calls to warning(), fatal(),
+       and lintwarn().
+
 2018-08-24         Arnold D. Robbins     <address@hidden>
 
        * NEWS: Updated w.r.t. GNULIB regex routines.
diff --git a/awkgram.y b/awkgram.y
index 995b8bd..13b2bb9 100644
--- a/awkgram.y
+++ b/awkgram.y
@@ -4263,7 +4263,7 @@ out:
                if (SMART_ALECK && do_lint
                    && ! goto_warned && strcasecmp(tokkey, "goto") == 0) {
                        goto_warned = true;
-                       lintwarn(_("`goto' considered harmful!\n"));
+                       lintwarn(_("`goto' considered harmful!"));
                }
                return lasttok = NAME;
        }
diff --git a/debug.c b/debug.c
index 2e68cde..1ca93cc 100644
--- a/debug.c
+++ b/debug.c
@@ -4782,7 +4782,7 @@ unserialize_list(int type)
                        field_cnt++;
                        if (field_cnt == MAX_FIELD)
 #ifdef GAWKDEBUG
-                               fatal("Increase MAX_FIELD and recompile.\n");
+                               fatal("Increase MAX_FIELD and recompile.");
 #else
                                return;
 #endif
diff --git a/ext.c b/ext.c
index 027df69..7ed045c 100644
--- a/ext.c
+++ b/ext.c
@@ -57,23 +57,23 @@ load_ext(const char *lib_name)
                fatal(_("load_ext: received NULL lib_name"));
 
        if ((dl = dlopen(lib_name, flags)) == NULL)
-               fatal(_("load_ext: cannot open library `%s' (%s)\n"), lib_name,
+               fatal(_("load_ext: cannot open library `%s' (%s)"), lib_name,
                      dlerror());
 
        /* Per the GNU Coding standards */
        gpl_compat = (int *) dlsym(dl, "plugin_is_GPL_compatible");
        if (gpl_compat == NULL)
-               fatal(_("load_ext: library `%s': does not define 
`plugin_is_GPL_compatible' (%s)\n"),
+               fatal(_("load_ext: library `%s': does not define 
`plugin_is_GPL_compatible' (%s)"),
                                lib_name, dlerror());
 
        install_func = (int (*)(const gawk_api_t *const, awk_ext_id_t))
                                dlsym(dl, INIT_FUNC);
        if (install_func == NULL)
-               fatal(_("load_ext: library `%s': cannot call function `%s' 
(%s)\n"),
+               fatal(_("load_ext: library `%s': cannot call function `%s' 
(%s)"),
                                lib_name, INIT_FUNC, dlerror());
 
        if (install_func(& api_impl, NULL /* ext_id */) == 0)
-               warning(_("load_ext: library `%s' initialization routine `%s' 
failed\n"),
+               warning(_("load_ext: library `%s' initialization routine `%s' 
failed"),
                                lib_name, INIT_FUNC);
 }
 
diff --git a/gawkapi.c b/gawkapi.c
index 80d3ebc..7b1445c 100644
--- a/gawkapi.c
+++ b/gawkapi.c
@@ -1204,12 +1204,12 @@ api_flatten_array_typed(awk_ext_id_t id,
                /* Convert index and value to API types. */
                if (! node_to_awk_value(index,
                                & (*data)->elements[j].index, index_type)) {
-                       fatal(_("api_flatten_array_typed: could not convert 
index %d to %s\n"),
+                       fatal(_("api_flatten_array_typed: could not convert 
index %d to %s"),
                                                (int) i, 
valtype2str(index_type));
                }
                if (! node_to_awk_value(value,
                                & (*data)->elements[j].value, value_type)) {
-                       fatal(_("api_flatten_array_typed: could not convert 
value %d to %s\n"),
+                       fatal(_("api_flatten_array_typed: could not convert 
value %d to %s"),
                                                (int) i, 
valtype2str(value_type));
                }
        }
diff --git a/gawkapi.h b/gawkapi.h
index bee9e9d..478c43d 100644
--- a/gawkapi.h
+++ b/gawkapi.h
@@ -926,19 +926,19 @@ typedef struct gawk_api {
 #define emalloc(pointer, type, size, message) \
        do { \
                if ((pointer = (type) gawk_malloc(size)) == 0) \
-                       fatal(ext_id, "%s: malloc of %d bytes failed\n", 
message, size); \
+                       fatal(ext_id, "%s: malloc of %d bytes failed", message, 
size); \
        } while(0)
 
 #define ezalloc(pointer, type, size, message) \
        do { \
                if ((pointer = (type) gawk_calloc(1, size)) == 0) \
-                       fatal(ext_id, "%s: calloc of %d bytes failed\n", 
message, size); \
+                       fatal(ext_id, "%s: calloc of %d bytes failed", message, 
size); \
        } while(0)
 
 #define erealloc(pointer, type, size, message) \
        do { \
                if ((pointer = (type) gawk_realloc(pointer, size)) == 0) \
-                       fatal(ext_id, "%s: realloc of %d bytes failed\n", 
message, size); \
+                       fatal(ext_id, "%s: realloc of %d bytes failed", 
message, size); \
        } while(0)
 
 /* Constructor functions */
@@ -1124,7 +1124,7 @@ int dl_load(const gawk_api_t *const api_p, awk_ext_id_t 
id)  \
                if (func_table[i].name == NULL) \
                        break; \
                if (! add_ext_func(name_space, & func_table[i])) { \
-                       warning(ext_id, #extension ": could not add %s\n", \
+                       warning(ext_id, #extension ": could not add %s", \
                                        func_table[i].name); \
                        errors++; \
                } \
@@ -1132,7 +1132,7 @@ int dl_load(const gawk_api_t *const api_p, awk_ext_id_t 
id)  \
 \
        if (init_func != NULL) { \
                if (! init_func()) { \
-                       warning(ext_id, #extension ": initialization function 
failed\n"); \
+                       warning(ext_id, #extension ": initialization function 
failed"); \
                        errors++; \
                } \
        } \
diff --git a/io.c b/io.c
index a3d68ce..18c2adb 100644
--- a/io.c
+++ b/io.c
@@ -2383,7 +2383,7 @@ use_pipes:
        if (dup(save_stdout) != 1) {
                close(save_stdin); close(save_stdout);
                close(ptoc[1]); close(ctop[0]);
-               fatal(_("restoring stdout in parent process failed\n"));
+               fatal(_("restoring stdout in parent process failed"));
        }
        close(save_stdout);
 
@@ -2391,7 +2391,7 @@ use_pipes:
        if (dup(save_stdin) != 0) {
                close(save_stdin);
                close(ptoc[1]); close(ctop[0]);
-               fatal(_("restoring stdin in parent process failed\n"));
+               fatal(_("restoring stdin in parent process failed"));
        }
        close(save_stdin);
 
@@ -2652,7 +2652,7 @@ gawk_popen(const char *cmd, struct redirect *rp)
        close(1);
        if (dup(save_stdout) != 1) {
                close(p[0]);
-               fatal(_("restoring stdout in parent process failed\n"));
+               fatal(_("restoring stdout in parent process failed"));
        }
        close(save_stdout);
 

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                        |   7 +
 awkgram.y                        |   2 +-
 config.guess                     |   4 +-
 config.sub                       | 924 +++++++++++++++++++--------------------
 debug.c                          |   2 +-
 ext.c                            |   8 +-
 extension/build-aux/ChangeLog    |   4 +
 extension/build-aux/config.guess |   4 +-
 extension/build-aux/config.sub   | 924 +++++++++++++++++++--------------------
 gawkapi.c                        |   4 +-
 gawkapi.h                        |  10 +-
 io.c                             |   6 +-
 missing_d/ChangeLog              |   4 +
 missing_d/intprops.h             |  16 +-
 missing_d/mktime.c               | 135 +++---
 support/ChangeLog                |   4 +
 support/intprops.h               |  16 +-
 support/verify.h                 |   3 +-
 18 files changed, 1006 insertions(+), 1071 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

[Prev in Thread] Current Thread [Next in Thread]