See ChangeLog: Sat May 8 19:28:33 CEST 1999 Werner Koch
authorWerner Koch <wk@gnupg.org>
Sat, 8 May 1999 17:35:16 +0000 (17:35 +0000)
committerWerner Koch <wk@gnupg.org>
Sat, 8 May 1999 17:35:16 +0000 (17:35 +0000)
18 files changed:
ChangeLog
NEWS
TODO
VERSION
doc/gpg.1pod
g10/ChangeLog
g10/build-packet.c
g10/encode.c
g10/free-packet.c
g10/mainproc.c
g10/packet.h
g10/parse-packet.c
g10/sig-check.c
scripts/ChangeLog
scripts/config.guess
scripts/config.sub
scripts/install-sh
scripts/mkinstalldirs

index 5651415..d1de33b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Sat May  8 19:28:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+       * NEWS: Add a marker line which I forgot to do for 0.9.6.
+
 Thu May  6 14:18:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
        * README: Minor updates
diff --git a/NEWS b/NEWS
index 5c696b7..c5cf2fa 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,12 @@
 
+
+
+
+
+
+Noteworthy changes in version 0.9.6
+-----------------------------------
+
     * Twofish is now statically linked by default. The experimental 128 bit
       version is now disabled. Full support will be available as soon as
       the OpenPGP WG has decided on an interpretation of rfc2440.
diff --git a/TODO b/TODO
index 250c10d..c835bae 100644 (file)
--- a/TODO
+++ b/TODO
 
 Nice to have
 ------------
+  * Let take --help an option to select some topics.
   * Offcial test vectors for 3DES-EDE3
   * use DEL and ^H for erasing the previous character (util/ttyio.c).
+    or better readline.
   * Print a warning if the directory mode is wrong.
   * replace the keyserver stuff either by a call to a specialized
     utility or SOCKSify the stuff.
@@ -43,8 +45,8 @@ Nice to have
   * add test cases for invalid data (scrambled armor or other random data)
   * add checking of armor trailers
   * Burn the buffers used by fopen(), or use read(2). Does this
-    really make sense?
-  * change the fake_data stuff to mpi_set_opaque
+    really make sense? And while we are at it:  implement a secure deletion
+    stuff?
   * Stats about used random numbers.
   * the pubkey encrypt functions should do some sanity checks.
   * dynload: implement the hint stuff.
diff --git a/VERSION b/VERSION
index 85b7c69..83d5275 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.9.6
+0.9.6a
index 9e8abc4..26d96f9 100644 (file)
@@ -72,7 +72,7 @@ B<-k> [I<username>] [I<keyring>]
 
     B<This command may be removed in the future!>
 
-B<--list-keys>  [I<names>]
+B<--list-keys> [I<names>]
 B<--list-public-keys>  [I<names>]
     List all keys from the public keyrings, or just the
     ones given on the command line.
@@ -81,7 +81,7 @@ B<--list-secret-keys> [I<names>]
     List all keys from the secret keyrings, or just the
     ones given on the command line.
 
-B<--list-sigs>  [I<names>]
+B<--list-sigs> [I<names>]
     Same as B<--list-keys>, but the signatures are listed
     too.
 
@@ -141,7 +141,7 @@ B<--edit-key> I<name>
     B<revkey>
        Revoke a subkey.
     B<expire>
-       Change the key expiration time.  If a key is
+       Change the key expiration time. If a key is
        selected, the time of this key will be changed.
        With no selection the key expiration of the
        primary key is changed.
@@ -212,7 +212,7 @@ B<--export-secret-keys> [I<names>]
     This is normally not very useful.
 
 B<--import>, B<--fast-import>
-    Import/merge keys.  The fast version does not build
+    Import/merge keys. The fast version does not build
     the trustdb; this can be done at any time with the
     command B<--update-trustdb>.
 
@@ -234,7 +234,7 @@ B<--import-ownertrust> [I<filename>]
 
 Long options can be put in an options file (default F<~/.gnupg/options>).
 Do not write the 2 dashes, but simply the name of the option and any
-required arguments.     Lines with a hash as the first non-white-space
+required arguments.    Lines with a hash as the first non-white-space
 character are ignored. Commands may be put in this file too, but that
 does not make sense.
 
@@ -257,7 +257,7 @@ B<--default-key>  I<name>
     is not used the default user-id is the first user-id
     from the secret keyring.
 
-B<-r>  I<name>, B<--recipient>  I<name>
+B<-r>  I<name>, B<--recipient> I<name>
     Encrypt for user id I<name>.  If this option is not
     specified, GnuPG asks for the user id.
 
@@ -332,9 +332,11 @@ B<--keyring> I<file>
     The filename may be prefixed with a scheme:
       "gnupg-ring:" is the default one.
       "gnupg-gdbm:" may be used for a GDBM ring.
+    It might make sense to use it together with
+    B<--no-default-keyring>.
 
 B<--secret-keyring> I<file>
-    Same as B<--keyring> but for secret keyrings.
+    Same as B<--keyring> but for the secret keyrings.
 
 B<--homedir> I<dir>
     Set the name of the home directory to I<dir>. If this
@@ -532,11 +534,11 @@ a signature was bad, and other error codes for fatal errors.
 
 =head1 EXAMPLES
 
-  -se -r Bob [file]          sign and encrypt for user Bob
-  -sat [file]                make a clear text signature
-  -sb  [file]                make a detached signature
-  -k   [userid]              show keys
-  -kc  [userid]              show fingerprint
+  -se -r Bob [file]         sign and encrypt for user Bob
+  -sat [file]               make a clear text signature
+  -sb  [file]               make a detached signature
+  -k   [userid]             show keys
+  -kc  [userid]             show fingerprint
 
 =head1 ENVIRONMENT
 
@@ -554,7 +556,7 @@ F<~/.gnupg/pubring.gpg.lock> and the lock file
 F<~/.gnupg/trustdb.gpg>      The trust database
 F<~/.gnupg/trustdb.gpg.lock> and the lock file
 
-F<~/.gnupg/options>         May contain options
+F<~/.gnupg/options>        May contain options
 F</usr[/local]/share/gnupg/options.skel> Skeleton file
 
 F</usr[/local]/lib/gnupg/>  Default location for extensions
index a29764a..4585c9a 100644 (file)
@@ -1,3 +1,24 @@
+Sat May  8 19:28:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+       * build-packet.c (do_signature): Removed MDC hack.
+       * encode.c (encode_crypt_mdc): Removed.
+       * mainproc.c (do_check_sig): Removed MDC hack.
+       (check_sig_and_print): Ditto.
+       * parse-packet.c (parse_signature): Ditto.
+       * sig-check.c (mdc_kludge_check): Ditto.
+       * free-packte.c (copy_signature, free_seckey_enc): Ditto.
+
+       * parse-packet.c (parse_signature,parse_key): Store data of
+       unknown algorithms with mpi_set_opaque inseatd of the old
+       faked data stuff.
+       (read_rest): Removed.
+       (read_rest2): Renamed to read_rest
+       * build-packet.c (write_fake_data): Use mpi_get_opaque.
+       * free-packet.c (cp_fake_data): Removed and cahnged all callers
+       to use mpi_copy.
+       (free_pubkey_enc,free_seckey_enc,release_public_key_parts,
+        release_secret_key_parts): Use mpi_free for opaque data.
+
 Thu May  6 14:18:17 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
        * trustdb.c (check_trust): Check for revoked subkeys.
index 7a2c106..577c109 100644 (file)
@@ -166,13 +166,12 @@ calc_packet_length( PACKET *pkt )
 static void
 write_fake_data( IOBUF out, MPI a )
 {
-    byte *s;
-    u16 len;
-
     if( a ) {
-       s = (byte*)a;
-       len = (s[0] << 8) | s[1];
-       iobuf_write( out, s+2, len );
+       int i;
+       void *p;
+
+       p = mpi_get_opaque( a, &i );
+       iobuf_write( a, p, i );
     }
 }
 
@@ -732,15 +731,9 @@ do_signature( IOBUF out, int ctb, PKT_signature *sig )
     }
     iobuf_put(a, sig->digest_start[0] );
     iobuf_put(a, sig->digest_start[1] );
-    n = sig->pubkey_algo? pubkey_get_nsig( sig->pubkey_algo ) : 0;
-    if( !n ) { /* the MDC data */
-       fputs("The MDC: ", stderr);
-       mpi_print(stderr, sig->data[0], 0 );
-       fputs("  ", stderr);
-       mpi_print(stderr, sig->data[0], 1 );
-       putc('\n', stderr);
-       mpi_write( a, sig->data[0] );
-    }
+    n = pubkey_get_nsig( sig->pubkey_algo );
+    if( !n )
+       write_fake_data( a, sig->data[0] );
     for(i=0; i < n; i++ )
        mpi_write(a, sig->data[i] );
 
index ba97299..775d64f 100644 (file)
@@ -39,7 +39,6 @@
 
 
 static int encode_simple( const char *filename, int mode );
-static int encode_crypt_mdc( const char* fname, STRLIST remusr );
 static int write_pubkey_enc_from_list( PK_LIST pk_list, DEK *dek, IOBUF out );
 
 
@@ -216,9 +215,6 @@ encode_crypt( const char *filename, STRLIST remusr )
     PK_LIST pk_list;
     int do_compress = opt.compress && !opt.rfc1991;
 
-    if( opt.force_mdc )
-       return encode_crypt_mdc( filename, remusr );
-
 
     memset( &cfx, 0, sizeof cfx);
     memset( &afx, 0, sizeof afx);
@@ -335,191 +331,6 @@ encode_crypt( const char *filename, STRLIST remusr )
 
 
 
-static int
-encode_crypt_mdc( const char* fname, STRLIST remusr )
-{
-    armor_filter_context_t afx;
-    compress_filter_context_t zfx;
-    md_filter_context_t mfx;
-    text_filter_context_t tfx;
-    encrypt_filter_context_t efx;
-    IOBUF inp = NULL, out = NULL;
-    PACKET pkt;
-    PKT_plaintext *pt = NULL;
-    u32 filesize;
-    int rc = 0;
-    PK_LIST pk_list = NULL;
-    int compr_algo = -1; /* unknown */
-
-
-    memset( &afx, 0, sizeof afx);
-    memset( &zfx, 0, sizeof zfx);
-    memset( &mfx, 0, sizeof mfx);
-    memset( &tfx, 0, sizeof tfx);
-    memset( &efx, 0, sizeof efx);
-    init_packet( &pkt );
-
-    if( (rc=build_pk_list( remusr, &pk_list, PUBKEY_USAGE_ENC )) )
-       goto leave;
-    compr_algo = select_algo_from_prefs( pk_list, PREFTYPE_COMPR );
-
-    /* prepare iobufs */
-    if( !(inp = iobuf_open(fname)) ) {
-       log_error("can't open %s: %s\n", fname? fname: "[stdin]",
-                                       strerror(errno) );
-       rc = G10ERR_OPEN_FILE;
-       goto leave;
-    }
-
-    if( (rc = open_outfile( fname, opt.armor? 1: 0, &out )))
-       goto leave;
-
-    /* prepare to calculate the MD over the input */
-    mfx.md = md_open( DIGEST_ALGO_SHA1, 0 );
-    iobuf_push_filter( inp, md_filter, &mfx );
-
-    if( opt.armor )
-       iobuf_push_filter( out, armor_filter, &afx );
-    efx.pk_list = pk_list;
-    /* fixme: set efx.cfx.datalen if known */
-    iobuf_push_filter( out, encrypt_filter, &efx );
-
-    if( opt.compress ) {
-       if( !compr_algo )
-           ; /* don't use compression */
-       else {
-           if( compr_algo == 1 )
-               zfx.algo = 1;
-           iobuf_push_filter( out, compress_filter, &zfx );
-       }
-    }
-
-    /* build a one pass packet */
-    {
-       PKT_onepass_sig *ops;
-
-       ops = m_alloc_clear( sizeof *ops );
-       ops->sig_class = 0x00;
-       ops->digest_algo = DIGEST_ALGO_SHA1;
-       ops->pubkey_algo = 0;
-       ops->keyid[0] = 0;
-       ops->keyid[1] = 0;
-       ops->last = 1;
-
-       init_packet(&pkt);
-       pkt.pkttype = PKT_ONEPASS_SIG;
-       pkt.pkt.onepass_sig = ops;
-       rc = build_packet( out, &pkt );
-       free_packet( &pkt );
-       if( rc ) {
-           log_error("build onepass_sig packet failed: %s\n",
-                                                       g10_errstr(rc));
-           goto leave;
-       }
-    }
-
-    /* setup the inner packet */
-    if( fname || opt.set_filename ) {
-       char *s = make_basename( opt.set_filename ? opt.set_filename : fname );
-       pt = m_alloc( sizeof *pt + strlen(s) - 1 );
-       pt->namelen = strlen(s);
-       memcpy(pt->name, s, pt->namelen );
-       m_free(s);
-    }
-    else { /* no filename */
-       pt = m_alloc( sizeof *pt - 1 );
-       pt->namelen = 0;
-    }
-    if( fname ) {
-       if( !(filesize = iobuf_get_filelength(inp)) )
-           log_info(_("WARNING: `%s' is an empty file\n"), fname );
-
-       /* because the text_filter modifies the length of the
-        * data, it is not possible to know the used length
-        * without a double read of the file - to avoid that
-        * we simple use partial length packets.
-        */
-       if( opt.textmode )
-           filesize = 0;
-    }
-    else
-       filesize = 0; /* stdin */
-    pt->timestamp = make_timestamp();
-    pt->mode = opt.textmode ? 't':'b';
-    pt->len = filesize;
-    pt->new_ctb = !pt->len;
-    pt->buf = inp;
-    pkt.pkttype = PKT_PLAINTEXT;
-    pkt.pkt.plaintext = pt;
-    /*cfx.datalen = filesize? calc_packet_length( &pkt ) : 0;*/
-    if( (rc = build_packet( out, &pkt )) )
-       log_error("build_packet(PLAINTEXT) failed: %s\n", g10_errstr(rc) );
-    pt->buf = NULL;
-
-    /* build the MDC faked signature packet */
-    {
-       PKT_signature *sig;
-       MD_HANDLE md;
-       byte buf[6];
-       size_t n;
-
-       sig = m_alloc_clear( sizeof *sig );
-       sig->version = 4;
-       sig->digest_algo = DIGEST_ALGO_SHA1;
-       md = md_copy( mfx.md );
-
-       md_putc( md, sig->version );
-       md_putc( md, sig->sig_class );
-       md_putc( md, sig->pubkey_algo );
-       md_putc( md, sig->digest_algo );
-       n = 6;
-       /* add some magic */
-       buf[0] = sig->version;
-       buf[1] = 0xff; buf[2] = 0; buf[3] = 0; buf[4] = 0; buf[5] = 6;
-       md_write( md, buf, 6 );
-       md_final( md );
-
-       /* pack the hash into data[0] */
-       memcpy( sig->digest_start, md_read( md, DIGEST_ALGO_SHA1), 2 );
-       sig->data[0] = mpi_alloc( (20+BYTES_PER_MPI_LIMB-1)
-                                 /BYTES_PER_MPI_LIMB );
-       mpi_set_buffer( sig->data[0], md_read(md, DIGEST_ALGO_SHA1),
-                                md_digest_length(DIGEST_ALGO_SHA1), 0 );
-
-       md_close( md );
-
-       if( !rc ) { /* and write it */
-           init_packet(&pkt);
-           pkt.pkttype = PKT_SIGNATURE;
-           pkt.pkt.signature = sig;
-           rc = build_packet( out, &pkt );
-           free_packet( &pkt );
-           if( rc )
-               log_error("build MDC packet failed: %s\n", g10_errstr(rc) );
-       }
-       if( rc )
-           goto leave;
-    }
-
-
-  leave:
-    if( rc )
-       iobuf_cancel(out);
-    else
-       iobuf_close(out);
-    iobuf_close(inp);
-    md_close( mfx.md );
-    release_pk_list( pk_list );
-    return rc;
-}
-
-
-
-
-
-
-
-
 
 /****************
  * Filter to do a complete public key encryption.
index e8a3a8a..aef8e2f 100644 (file)
@@ -43,10 +43,8 @@ free_pubkey_enc( PKT_pubkey_enc *enc )
 {
     int n, i;
     n = pubkey_get_nenc( enc->pubkey_algo );
-    if( !n ) {
-       m_free(enc->data[0]);
-       enc->data[0] = NULL;
-    }
+    if( !n )
+       mpi_free(enc->data[0]);
     for(i=0; i < n; i++ )
        mpi_free( enc->data[i] );
     m_free(enc);
@@ -56,7 +54,7 @@ void
 free_seckey_enc( PKT_signature *sig )
 {
     int n, i;
-    n = sig->pubkey_algo? pubkey_get_nsig( sig->pubkey_algo ) : 0;
+    n = pubkey_get_nsig( sig->pubkey_algo );
     if( !n )
        mpi_free(sig->data[0]);
     for(i=0; i < n; i++ )
@@ -73,10 +71,8 @@ release_public_key_parts( PKT_public_key *pk )
 {
     int n, i;
     n = pubkey_get_npkey( pk->pubkey_algo );
-    if( !n ) {
-       m_free(pk->pkey[0]);
-       pk->pkey[0] = NULL;
-    }
+    if( !n )
+       mpi_free(pk->pkey[0]);
     for(i=0; i < n; i++ ) {
        mpi_free( pk->pkey[i] );
        pk->pkey[i] = NULL;
@@ -95,20 +91,6 @@ free_public_key( PKT_public_key *pk )
     m_free(pk);
 }
 
-static void *
-cp_fake_data( MPI a )
-{
-    byte *d, *s;
-    u16 len;
-
-    if( !a )
-       return NULL;
-    s = (byte*)a;
-    len = (s[0] << 8) | s[1];
-    d = m_alloc( len+2 );
-    memcpy(d, s, len+2);
-    return d;
-}
 
 static void *
 cp_data_block( byte *s )
@@ -144,7 +126,7 @@ copy_public_key_new_namehash( PKT_public_key *d, PKT_public_key *s,
     }
     n = pubkey_get_npkey( s->pubkey_algo );
     if( !n )
-       d->pkey[0] = cp_fake_data(s->pkey[0]);
+       d->pkey[0] = mpi_copy(s->pkey[0]);
     else {
        for(i=0; i < n; i++ )
            d->pkey[i] = mpi_copy( s->pkey[i] );
@@ -166,11 +148,13 @@ copy_signature( PKT_signature *d, PKT_signature *s )
     if( !d )
        d = m_alloc(sizeof *d);
     memcpy( d, s, sizeof *d );
-    n = s->pubkey_algo? pubkey_get_nsig( s->pubkey_algo ) : 0;
+    n = pubkey_get_nsig( s->pubkey_algo );
     if( !n )
        d->data[0] = mpi_copy(s->data[0]);
-    for(i=0; i < n; i++ )
-       d->data[i] = mpi_copy( s->data[i] );
+    else {
+       for(i=0; i < n; i++ )
+           d->data[i] = mpi_copy( s->data[i] );
+    }
     d->hashed_data = cp_data_block(s->hashed_data);
     d->unhashed_data = cp_data_block(s->unhashed_data);
     return d;
@@ -194,10 +178,8 @@ release_secret_key_parts( PKT_secret_key *sk )
     int n, i;
 
     n = pubkey_get_nskey( sk->pubkey_algo );
-    if( !n ) {
-       m_free(sk->skey[0]);
-       sk->skey[0] = NULL;
-    }
+    if( !n )
+       mpi_free(sk->skey[0]);
     for(i=0; i < n; i++ ) {
        mpi_free( sk->skey[i] );
        sk->skey[i] = NULL;
@@ -221,7 +203,7 @@ copy_secret_key( PKT_secret_key *d, PKT_secret_key *s )
     memcpy( d, s, sizeof *d );
     n = pubkey_get_nskey( s->pubkey_algo );
     if( !n )
-       d->skey[0] = cp_fake_data(s->skey[0]);
+       d->skey[0] = mpi_copy(s->skey[0]);
     else {
        for(i=0; i < n; i++ )
            d->skey[i] = mpi_copy( s->skey[i] );
@@ -430,7 +412,7 @@ cmp_signatures( PKT_signature *a, PKT_signature *b )
     if( a->pubkey_algo != b->pubkey_algo )
        return -1;
 
-    n = a->pubkey_algo? pubkey_get_nsig( a->pubkey_algo ) : 0;
+    n = pubkey_get_nsig( a->pubkey_algo );
     if( !n )
        return -1; /* can't compare due to unknown algorithm */
     for(i=0; i < n; i++ ) {
index 9bfdaaf..17c958f 100644 (file)
@@ -292,9 +292,6 @@ proc_plaintext( CTX c, PACKET *pkt )
             * to do it. (We could use a special packet type to indicate
             * this, but this may also be faked - it simply can't be verified
             * and is _no_ security issue)
-            * Hmmm: There is one problem: The MDC also uses a keyid of 0
-            * and a pubkey algo of 0 - the only difference is that the
-            * sig_class will be 0.
             */
            if( n->pkt->pkt.onepass_sig->sig_class == 0x01
                && !n->pkt->pkt.onepass_sig->keyid[0]
@@ -416,12 +413,7 @@ do_check_sig( CTX c, KBNODE node, int *is_selfsig )
     }
     else
        return G10ERR_SIG_CLASS;
-    if( sig->pubkey_algo )
-       rc = signature_check( sig, md );
-    else if( !is_encrypted( c ) )
-       rc = G10ERR_NOT_ENCRYPTED;
-    else
-       rc = mdc_kludge_check( sig, md );
+    rc = signature_check( sig, md );
     md_close(md);
 
     return rc;
@@ -863,6 +855,21 @@ do_proc_packets( CTX c, IOBUF a )
 }
 
 
+#if 0 /* old MDC hack code preserved to reuse the messages later */
+       if( !rc ) {
+           if( opt.verbose )
+               log_info(_("encrypted message is valid\n"));
+           write_status( STATUS_GOODMDC );
+       }
+       else if( rc == G10ERR_BAD_SIGN ) {
+           log_error(_("WARNING: encrypted message has been manipulated!\n"));
+           write_status( STATUS_BADMDC );
+       }
+       else {
+           write_status( STATUS_ERRMDC );
+           log_error(_("Can't check MDC: %s\n"), g10_errstr(rc) );
+       }
+#endif
 
 static int
 check_sig_and_print( CTX c, KBNODE node )
@@ -870,41 +877,23 @@ check_sig_and_print( CTX c, KBNODE node )
     PKT_signature *sig = node->pkt->pkt.signature;
     const char *astr, *tstr;
     int rc;
-    int mdc_hack = !sig->pubkey_algo;
 
-    if( opt.skip_verify && !mdc_hack ) {
+    if( opt.skip_verify ) {
        log_info(_("signature verification suppressed\n"));
        return 0;
     }
 
-    if( !mdc_hack ) {
-       tstr = asctimestamp(sig->timestamp);
-       astr = pubkey_algo_to_string( sig->pubkey_algo );
-       log_info(_("Signature made %.*s using %s key ID %08lX\n"),
+    tstr = asctimestamp(sig->timestamp);
+    astr = pubkey_algo_to_string( sig->pubkey_algo );
+    log_info(_("Signature made %.*s using %s key ID %08lX\n"),
            (int)strlen(tstr), tstr, astr? astr: "?", (ulong)sig->keyid[1] );
-    }
 
     rc = do_check_sig(c, node, NULL );
     if( rc == G10ERR_NO_PUBKEY && opt.keyserver_name ) {
        if( !hkp_ask_import( sig->keyid ) )
            rc = do_check_sig(c, node, NULL );
     }
-    if( mdc_hack ) {
-       if( !rc ) {
-           if( opt.verbose )
-               log_info(_("encrypted message is valid\n"));
-           write_status( STATUS_GOODMDC );
-       }
-       else if( rc == G10ERR_BAD_SIGN ) {
-           log_error(_("WARNING: encrypted message has been manipulated!\n"));
-           write_status( STATUS_BADMDC );
-       }
-       else {
-           write_status( STATUS_ERRMDC );
-           log_error(_("Can't check MDC: %s\n"), g10_errstr(rc) );
-       }
-    }
-    else if( !rc || rc == G10ERR_BAD_SIGN ) {
+    if( !rc || rc == G10ERR_BAD_SIGN ) {
        KBNODE un, keyblock;
        char *us;
        int count=0;
index 3126683..741e100 100644 (file)
@@ -302,7 +302,6 @@ int cmp_user_ids( PKT_user_id *a, PKT_user_id *b );
 
 /*-- sig-check.c --*/
 int signature_check( PKT_signature *sig, MD_HANDLE digest );
-int mdc_kludge_check( PKT_signature *sig, MD_HANDLE digest );
 
 /*-- seckey-cert.c --*/
 int is_secret_key_protected( PKT_secret_key *sk );
index 94bf0f3..291128b 100644 (file)
@@ -48,7 +48,7 @@ static int  copy_packet( IOBUF inp, IOBUF out, int pkttype,
                                               unsigned long pktlen );
 static void skip_packet( IOBUF inp, int pkttype, unsigned long pktlen );
 static void skip_rest( IOBUF inp, unsigned long pktlen );
-static void *read_rest( IOBUF inp, ulong *r_pktlen );
+static void *read_rest( IOBUF inp, size_t pktlen );
 static int  parse_symkeyenc( IOBUF inp, int pkttype, unsigned long pktlen,
                                                             PACKET *packet );
 static int  parse_pubkeyenc( IOBUF inp, int pkttype, unsigned long pktlen,
@@ -535,30 +535,9 @@ skip_rest( IOBUF inp, unsigned long pktlen )
     }
 }
 
-static void *
-read_rest( IOBUF inp, ulong *r_pktlen )
-{
-    byte *p;
-    int i;
-    size_t pktlen = *r_pktlen;
-
-    if( iobuf_in_block_mode(inp) ) {
-       log_error("read_rest: can't store stream data\n");
-       p = NULL;
-    }
-    else {
-       p = m_alloc( pktlen + 2 );
-       p[0] = pktlen >> 8;
-       p[1] = pktlen & 0xff;
-       for(i=2; pktlen; pktlen--, i++ )
-           p[i] = iobuf_get(inp);
-    }
-    *r_pktlen = 0;
-    return p;
-}
 
 static void *
-read_rest2( IOBUF inp, size_t pktlen )
+read_rest( IOBUF inp, size_t pktlen )
 {
     byte *p;
     int i;
@@ -1065,41 +1044,29 @@ parse_signature( IOBUF inp, int pkttype, unsigned long pktlen,
        }
     }
 
-    if( !sig->pubkey_algo ) {
-       n = pktlen;
-       sig->data[0] = mpi_read(inp, &n, 0 );
-       pktlen -=n;
-       if( list_mode ) {
-           printf("\tMDC data: ");
-           mpi_print(stdout, sig->data[0], mpi_print_mode );
-           putchar('\n');
-       }
+    ndata = pubkey_get_nsig(sig->pubkey_algo);
+    if( !ndata ) {
+       if( list_mode )
+           printf("\tunknown algorithm %d\n", sig->pubkey_algo );
+       unknown_pubkey_warning( sig->pubkey_algo );
+       /* we store the plain material in data[0], so that we are able
+        * to write it back with build_packet() */
+       sig->data[0] = mpi_set_opaque(NULL, read_rest(inp, pktlen), pktlen );
+       pktlen = 0;
     }
     else {
-       ndata = pubkey_get_nsig(sig->pubkey_algo);
-       if( !ndata ) {
-           if( list_mode )
-               printf("\tunknown algorithm %d\n", sig->pubkey_algo );
-           unknown_pubkey_warning( sig->pubkey_algo );
-           /* we store the plain material in data[0], so that we are able
-            * to write it back with build_packet() */
-           sig->data[0] = read_rest(inp, &pktlen );
-       }
-       else {
-           for( i=0; i < ndata; i++ ) {
-               n = pktlen;
-               sig->data[i] = mpi_read(inp, &n, 0 );
-               pktlen -=n;
-               if( list_mode ) {
-                   printf("\tdata: ");
-                   mpi_print(stdout, sig->data[i], mpi_print_mode );
-                   putchar('\n');
-               }
+       for( i=0; i < ndata; i++ ) {
+           n = pktlen;
+           sig->data[i] = mpi_read(inp, &n, 0 );
+           pktlen -=n;
+           if( list_mode ) {
+               printf("\tdata: ");
+               mpi_print(stdout, sig->data[i], mpi_print_mode );
+               putchar('\n');
            }
        }
     }
 
-
   leave:
     skip_rest(inp, pktlen);
     return rc;
@@ -1243,7 +1210,9 @@ parse_key( IOBUF inp, int pkttype, unsigned long pktlen,
        byte temp[8];
 
        if( !npkey ) {
-           sk->skey[0] = read_rest( inp, &pktlen );
+           sk->skey[0] = mpi_set_opaque( NULL,
+                                         read_rest(inp, pktlen), pktlen );
+           pktlen = 0;
            goto leave;
        }
 
@@ -1361,7 +1330,7 @@ parse_key( IOBUF inp, int pkttype, unsigned long pktlen,
             * stuff up to the end of the packet into the first
             * skey element */
            sk->skey[npkey] = mpi_set_opaque(NULL,
-                                            read_rest2(inp, pktlen), pktlen );
+                                            read_rest(inp, pktlen), pktlen );
            pktlen = 0;
            if( list_mode ) {
                printf("\tencrypted stuff follows\n");
@@ -1393,7 +1362,9 @@ parse_key( IOBUF inp, int pkttype, unsigned long pktlen,
        PKT_public_key *pk = pkt->pkt.public_key;
 
        if( !npkey ) {
-           pk->pkey[0] = read_rest( inp, &pktlen );
+           pk->pkey[0] = mpi_set_opaque( NULL,
+                                         read_rest(inp, pktlen), pktlen );
+           pktlen = 0;
            goto leave;
        }
 
index 8b1f51c..068035c 100644 (file)
@@ -107,7 +107,7 @@ signature_check( PKT_signature *sig, MD_HANDLE digest )
 }
 
 
-
+#if 0 /* not anymore used */
 /****************
  * Check the MDC which is contained in SIG.
  * The MD_HANDLE should be currently open, so that this function
@@ -193,7 +193,7 @@ mdc_kludge_check( PKT_signature *sig, MD_HANDLE digest )
 
     return rc;
 }
-
+#endif
 
 /****************
  * This function gets called by pubkey_verify() if the algorithm needs it.
index bc352d7..1ccecc8 100644 (file)
@@ -1,3 +1,8 @@
+Sat May  8 19:28:08 CEST 1999  Werner Koch  <wk@isil.d.shuttle.de>
+
+       * mkinstalldirs, install-sh: New from GNU repository
+       * config.sub, config.guess: Merged with rep version.
+
 Sun Mar 14 19:34:36 CET 1999  Werner Koch  <wk@isil.d.shuttle.de>
 
        * autogen.sh: Add a check for libtool because some autoconf macros
index 3aa18a5..902daa0 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-# Copyright (C) 1992, 93, 94, 95, 96, 97, 1999 Free Software Foundation, Inc.
+#   Copyright (C) 1992, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
 #
 # 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
@@ -9,7 +9,7 @@
 #
 # This program is distributed in the hope that it will be useful, but
 # WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 # General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
@@ -23,6 +23,7 @@
 
 # Written by Per Bothner <bothner@cygnus.com>.
 # The master version of this file is at the FSF in /home/gd/gnu/lib.
+# Please send patches to the Autoconf mailing list <autoconf@gnu.org>.
 #
 # This script attempts to guess a canonical system name similar to
 # config.sub.  If it succeeds, it prints the system name on stdout, and
 # (but try to keep the structure clean).
 #
 
+# Use $HOST_CC if defined. $CC may point to a cross-compiler
+if test x"$CC_FOR_BUILD" = x; then
+  if test x"$HOST_CC" != x; then
+    CC_FOR_BUILD="$HOST_CC"
+  else
+    if test x"$CC" != x; then
+      CC_FOR_BUILD="$CC"
+    else
+      CC_FOR_BUILD=cc
+    fi
+  fi
+fi
+
+
 # This is needed to find uname on a Pyramid OSx when run in the BSD universe.
 # (ghazi@noc.rutgers.edu 8/24/94.)
 if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
@@ -46,17 +61,60 @@ UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
 UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
 UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
 
-trap 'rm -f dummy.c dummy.o dummy; exit 1' 1 2 15
+dummy=dummy-$$
+trap 'rm -f $dummy.c $dummy.o $dummy; exit 1' 1 2 15
 
 # Note: order is significant - the case branches are not exclusive.
 
 case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     alpha:OSF1:*:*)
+       if test $UNAME_RELEASE = "V4.0"; then
+               UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+       fi
        # A Vn.n version is a released version.
        # A Tn.n version is a released field test version.
        # A Xn.n version is an unreleased experimental baselevel.
        # 1.2 uses "1.2" for uname -r.
-       echo alpha-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//'`
+       cat <<EOF >$dummy.s
+       .globl main
+       .ent main
+main:
+       .frame \$30,0,\$26,0
+       .prologue 0
+       .long 0x47e03d80 # implver $0
+       lda \$2,259
+       .long 0x47e20c21 # amask $2,$1
+       srl \$1,8,\$2
+       sll \$2,2,\$2
+       sll \$0,3,\$0
+       addl \$1,\$0,\$0
+       addl \$2,\$0,\$0
+       ret \$31,(\$26),1
+       .end main
+EOF
+       $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
+       if test "$?" = 0 ; then
+               ./$dummy
+               case "$?" in
+                       7)
+                               UNAME_MACHINE="alpha"
+                               ;;
+                       15)
+                               UNAME_MACHINE="alphaev5"
+                               ;;
+                       14)
+                               UNAME_MACHINE="alphaev56"
+                               ;;
+                       10)
+                               UNAME_MACHINE="alphapca56"
+                               ;;
+                       16)
+                               UNAME_MACHINE="alphaev6"
+                               ;;
+               esac
+       fi
+       rm -f $dummy.s $dummy
+       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[VTX]//' | tr [[A-Z]] [[a-z]]`
        exit 0 ;;
     21064:Windows_NT:50:3)
        echo alpha-dec-winnt3.5
@@ -70,6 +128,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     amiga:OpenBSD:*:*)
        echo m68k-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
+    *:[Aa]miga[Oo][Ss]:*:*)
+       echo ${UNAME_MACHINE}-unknown-amigaos
+       exit 0 ;;
     arc64:OpenBSD:*:*)
        echo mips64el-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
@@ -91,10 +152,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
        echo arm-acorn-riscix${UNAME_RELEASE}
        exit 0;;
+    arm32:NetBSD:*:*)
+       echo arm-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+       exit 0 ;;
     SR2?01:HI-UX/MPP:*:*)
        echo hppa1.1-hitachi-hiuxmpp
        exit 0;;
-    Pyramid*:OSx*:*:*|MIS*:OSx*:*:*)
+    Pyramid*:OSx*:*:*|MIS*:OSx*:*:*|MIS*:SMP_DC-OSx*:*:*)
        # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
        if test "`(/bin/universe) 2>/dev/null`" = att ; then
                echo pyramid-pyramid-sysv3
@@ -102,9 +166,12 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
                echo pyramid-pyramid-bsd
        fi
        exit 0 ;;
-    NILE:*:*:dcosx)
+    NILE*:*:*:dcosx)
        echo pyramid-pyramid-svr4
        exit 0 ;;
+    sun4H:SunOS:5.*:*)
+       echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+       exit 0 ;;
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
        echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
        exit 0 ;;
@@ -129,6 +196,18 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     sun3*:SunOS:*:*)
        echo m68k-sun-sunos${UNAME_RELEASE}
        exit 0 ;;
+    sun*:*:4.2BSD:*)
+       UNAME_RELEASE=`(head -1 /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+       test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+       case "`/bin/arch`" in
+           sun3)
+               echo m68k-sun-sunos${UNAME_RELEASE}
+               ;;
+           sun4)
+               echo sparc-sun-sunos${UNAME_RELEASE}
+               ;;
+       esac
+       exit 0 ;;
     aushp:SunOS:*:*)
        echo sparc-auspex-sunos${UNAME_RELEASE}
        exit 0 ;;
@@ -138,9 +217,32 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     atari*:OpenBSD:*:*)
        echo m68k-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
-    atari*:MiNT:*:*)
-       echo m68k-atari-mint
-       exit 0 ;;
+    # The situation for MiNT is a little confusing.  The machine name
+    # can be virtually everything (everything which is not
+    # "atarist" or "atariste" at least should have a processor 
+    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
+    # to the lowercase version "mint" (or "freemint").  Finally
+    # the system name "TOS" denotes a system which is actually not
+    # MiNT.  But MiNT is downward compatible to TOS, so this should
+    # be no problem.
+    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+       exit 0 ;;
+    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+       echo m68k-atari-mint${UNAME_RELEASE}
+        exit 0 ;;
+    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+        echo m68k-atari-mint${UNAME_RELEASE}
+       exit 0 ;;
+    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+        echo m68k-milan-mint${UNAME_RELEASE}
+        exit 0 ;;
+    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+        echo m68k-hades-mint${UNAME_RELEASE}
+        exit 0 ;;
+    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+        echo m68k-unknown-mint${UNAME_RELEASE}
+        exit 0 ;;
     sun3*:NetBSD:*:*)
        echo m68k-sun-netbsd${UNAME_RELEASE}
        exit 0 ;;
@@ -162,6 +264,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     powerpc:machten:*:*)
        echo powerpc-apple-machten${UNAME_RELEASE}
        exit 0 ;;
+    macppc:NetBSD:*:*)
+        echo powerpc-apple-netbsd${UNAME_RELEASE}
+        exit 0 ;;
     RISC*:Mach:*:*)
        echo mips-dec-mach_bsd4.3
        exit 0 ;;
@@ -171,9 +276,16 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     VAX*:ULTRIX*:*:*)
        echo vax-dec-ultrix${UNAME_RELEASE}
        exit 0 ;;
+    2020:CLIX:*:* | 2430:CLIX:*:*)
+       echo clipper-intergraph-clix${UNAME_RELEASE}
+       exit 0 ;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
-       sed 's/^        //' << EOF >dummy.c
-       int main (argc, argv) int argc; char **argv; {
+       sed 's/^        //' << EOF >$dummy.c
+#ifdef __cplusplus
+       int main (int argc, char *argv[]) {
+#else
+       int main (argc, argv) int argc; char *argv[]; {
+#endif
        #if defined (host_mips) && defined (MIPSEB)
        #if defined (SYSTYPE_SYSV)
          printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
@@ -188,10 +300,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
          exit (-1);
        }
 EOF
-       ${CC-cc} dummy.c -o dummy \
-         && ./dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
-         && rm dummy.c dummy && exit 0
-       rm -f dummy.c dummy
+       $CC_FOR_BUILD $dummy.c -o $dummy \
+         && ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+         && rm $dummy.c $dummy && exit 0
+       rm -f $dummy.c $dummy
        echo mips-mips-riscos${UNAME_RELEASE}
        exit 0 ;;
     Night_Hawk:Power_UNIX:*:*)
@@ -207,19 +319,19 @@ EOF
        echo m88k-motorola-sysv3
        exit 0 ;;
     AViiON:dgux:*:*)
-       # DG/UX returns AViiON for all architectures
-       UNAME_PROCESSOR=`/usr/bin/uname -p`
-       if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
+        # DG/UX returns AViiON for all architectures
+        UNAME_PROCESSOR=`/usr/bin/uname -p`
+        if [ $UNAME_PROCESSOR = mc88100 -o $UNAME_PROCESSOR = mc88110 ] ; then
        if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx \
             -o ${TARGET_BINARY_INTERFACE}x = x ] ; then
                echo m88k-dg-dgux${UNAME_RELEASE}
        else
                echo m88k-dg-dguxbcs${UNAME_RELEASE}
        fi
-       else echo i586-dg-dgux${UNAME_RELEASE}
-       fi
-       exit 0 ;;
-    M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+        else echo i586-dg-dgux${UNAME_RELEASE}
+        fi
+       exit 0 ;;
+    M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
        echo m88k-dolphin-sysv3
        exit 0 ;;
     M88*:*:R3*:*)
@@ -237,13 +349,13 @@ EOF
        exit 0 ;;
     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
        echo romp-ibm-aix      # uname -m gives an 8 hex-code CPU id
-       exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
+       exit 0 ;;              # Note that: echo "'`uname -s`'" gives 'AIX '
     i?86:AIX:*:*)
        echo i386-ibm-aix
        exit 0 ;;
     *:AIX:2:3)
        if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-               sed 's/^                //' << EOF >dummy.c
+               sed 's/^                //' << EOF >$dummy.c
                #include <sys/systemcfg.h>
 
                main()
@@ -254,8 +366,8 @@ EOF
                        exit(0);
                        }
 EOF
-               ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
-               rm -f dummy.c dummy
+               $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
+               rm -f $dummy.c $dummy
                echo rs6000-ibm-aix3.2.5
        elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
                echo rs6000-ibm-aix3.2.4
@@ -264,7 +376,8 @@ EOF
        fi
        exit 0 ;;
     *:AIX:*:4)
-       if /usr/sbin/lsattr -EHl proc0 | grep POWER >/dev/null 2>&1; then
+       IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
+       if /usr/sbin/lsattr -EHl ${IBM_CPU_ID} | grep POWER >/dev/null 2>&1; then
                IBM_ARCH=rs6000
        else
                IBM_ARCH=powerpc
@@ -282,9 +395,9 @@ EOF
     ibmrt:4.4BSD:*|romp-ibm:BSD:*)
        echo romp-ibm-bsd4.4
        exit 0 ;;
-    ibmrt:*BSD:*|romp-ibm:BSD:*)           # covers RT/PC NetBSD and
+    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC NetBSD and
        echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-       exit 0 ;;                           # report: romp-ibm BSD 4.3
+       exit 0 ;;                           # report: romp-ibm BSD 4.3
     *:BOSX:*:*)
        echo rs6000-bull-bosx
        exit 0 ;;
@@ -297,18 +410,50 @@ EOF
     hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
        echo m68k-hp-bsd4.4
        exit 0 ;;
-    9000/[3478]??:HP-UX:*:*)
+    9000/[34678]??:HP-UX:*:*)
        case "${UNAME_MACHINE}" in
-           9000/31? )            HP_ARCH=m68000 ;;
-           9000/[34]?? )         HP_ARCH=m68k ;;
-           9000/7?? | 9000/8?[1679] ) HP_ARCH=hppa1.1 ;;
-           9000/8?? )            HP_ARCH=hppa1.0 ;;
+           9000/31? )            HP_ARCH=m68000 ;;
+           9000/[34]?? )         HP_ARCH=m68k ;;
+           9000/6?? | 9000/7?? | 9000/80[024] | 9000/8?[136790] | 9000/892 )
+              sed 's/^              //' << EOF >$dummy.c
+              #include <stdlib.h>
+              #include <unistd.h>
+
+              int main ()
+              {
+              #if defined(_SC_KERNEL_BITS)
+                  long bits = sysconf(_SC_KERNEL_BITS);
+              #endif
+                  long cpu  = sysconf (_SC_CPU_VERSION);
+
+                  switch (cpu)
+               {
+               case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+               case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+               case CPU_PA_RISC2_0:
+              #if defined(_SC_KERNEL_BITS)
+                   switch (bits)
+                       {
+                       case 64: puts ("hppa2.0w"); break;
+                       case 32: puts ("hppa2.0n"); break;
+                       default: puts ("hppa2.0"); break;
+                       } break;
+              #else  /* !defined(_SC_KERNEL_BITS) */
+                   puts ("hppa2.0"); break;
+              #endif
+               default: puts ("hppa1.0"); break;
+               }
+                  exit (0);
+              }
+EOF
+       ($CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
+       rm -f $dummy.c $dummy
        esac
        HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
        echo ${HP_ARCH}-hp-hpux${HPUX_REV}
        exit 0 ;;
     3050*:HI-UX:*:*)
-       sed 's/^        //' << EOF >dummy.c
+       sed 's/^        //' << EOF >$dummy.c
        #include <unistd.h>
        int
        main ()
@@ -316,7 +461,7 @@ EOF
          long cpu = sysconf (_SC_CPU_VERSION);
          /* The order matters, because CPU_IS_HP_MC68K erroneously returns
             true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
-            results, however.  */
+            results, however.  */
          if (CPU_IS_PA_RISC (cpu))
            {
              switch (cpu)
@@ -333,8 +478,8 @@ EOF
          exit (0);
        }
 EOF
-       ${CC-cc} dummy.c -o dummy && ./dummy && rm dummy.c dummy && exit 0
-       rm -f dummy.c dummy
+       $CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
+       rm -f $dummy.c $dummy
        echo unknown-hitachi-hiuxwe2
        exit 0 ;;
     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
@@ -343,6 +488,9 @@ EOF
     9000/8??:4.3bsd:*:*)
        echo hppa1.0-hp-bsd
        exit 0 ;;
+    *9??*:MPE*:*:*)
+       echo hppa1.0-hp-mpeix
+       exit 0 ;;
     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
        echo hppa1.1-hp-osf
        exit 0 ;;
@@ -361,25 +509,25 @@ EOF
        exit 0 ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
        echo c1-convex-bsd
-       exit 0 ;;
+        exit 0 ;;
     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
        if getsysinfo -f scalar_acc
        then echo c32-convex-bsd
        else echo c2-convex-bsd
        fi
-       exit 0 ;;
+        exit 0 ;;
     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
        echo c34-convex-bsd
-       exit 0 ;;
+        exit 0 ;;
     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
        echo c38-convex-bsd
-       exit 0 ;;
+        exit 0 ;;
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
        echo c4-convex-bsd
-       exit 0 ;;
+        exit 0 ;;
     CRAY*X-MP:*:*:*)
        echo xmp-cray-unicos
-       exit 0 ;;
+        exit 0 ;;
     CRAY*Y-MP:*:*:*)
        echo ymp-cray-unicos${UNAME_RELEASE}
        exit 0 ;;
@@ -391,14 +539,17 @@ EOF
     CRAY*TS:*:*:*)
        echo t90-cray-unicos${UNAME_RELEASE}
        exit 0 ;;
+    CRAY*T3E:*:*:*)
+       echo t3e-cray-unicosmk${UNAME_RELEASE}
+       exit 0 ;;
     CRAY-2:*:*:*)
        echo cray2-cray-unicos
-       exit 0 ;;
+        exit 0 ;;
     F300:UNIX_System_V:*:*)
-       FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'`
-       FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-       echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-       exit 0 ;;
+        FUJITSU_SYS=`uname -p | tr [A-Z] [a-z] | sed -e 's/\///'`
+        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+        echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+        exit 0 ;;
     F301:UNIX_System_V:*:*)
        echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
        exit 0 ;;
@@ -408,21 +559,23 @@ EOF
     hp300:OpenBSD:*:*)
        echo m68k-unknown-openbsd${UNAME_RELEASE}
        exit 0 ;;
-    i?86:BSD/386:*:* | *:BSD/OS:*:*)
+    sparc*:BSD/OS:*:*)
+       echo sparc-unknown-bsdi${UNAME_RELEASE}
+       exit 0 ;;
+    i?86:BSD/386:*:* | i?86:BSD/OS:*:*)
        echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
        exit 0 ;;
+    *:BSD/OS:*:*)
+       echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+       exit 0 ;;
     *:FreeBSD:*:*)
-       rel_number=`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//' 2>/dev/null`
-       if test "$rel_number" = "3.0"; then
-           ld_help_string=`ld --help 2>&1`
-           if echo "$ld_help_string"|grep >/dev/null 2>&1 "supported emulations: elf_i.86"; then
-               echo ${UNAME_MACHINE}-unknown-freebsd${rel_number}-elf
-           else
-               echo ${UNAME_MACHINE}-unknown-freebsd${rel_number}-aout
+       if test -x /usr/bin/objformat; then
+           if test "elf" = "`/usr/bin/objformat`"; then
+               echo ${UNAME_MACHINE}-unknown-freebsdelf`echo ${UNAME_RELEASE}|sed -e 's/[-_].*//'`
+               exit 0
            fi
-       else
-           echo ${UNAME_MACHINE}-unknown-freebsd${rel_number}
        fi
+       echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
        exit 0 ;;
     *:NetBSD:*:*)
        echo ${UNAME_MACHINE}-unknown-netbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
@@ -431,43 +584,102 @@ EOF
        echo ${UNAME_MACHINE}-unknown-openbsd`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
        exit 0 ;;
     i*:CYGWIN*:*)
-       echo i386-pc-cygwin32
+       echo ${UNAME_MACHINE}-pc-cygwin
+       exit 0 ;;
+    i*:MINGW*:*)
+       echo ${UNAME_MACHINE}-pc-mingw32
        exit 0 ;;
     p*:CYGWIN*:*)
-       echo powerpcle-unknown-cygwin32
+       echo powerpcle-unknown-cygwin
        exit 0 ;;
     prep*:SunOS:5.*:*)
        echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
        exit 0 ;;
     *:GNU:*:*)
-       echo `echo ${UNAME_MACHINE}|sed -e 's,-.*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+       echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
        exit 0 ;;
     *:Linux:*:*)
+       # uname on the ARM produces all sorts of strangeness, and we need to
+       # filter it out.
+       case "$UNAME_MACHINE" in
+         armv*)                      UNAME_MACHINE=$UNAME_MACHINE ;;
+         arm* | sa110*)              UNAME_MACHINE="arm" ;;
+       esac
+
        # The BFD linker knows what the default object file format is, so
-       # first see if it will tell us.
-       ld_help_string=`ld --help 2>&1`
-       if echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf_i.86"; then
-         echo "${UNAME_MACHINE}-pc-linux-gnu" ; exit 0
-       elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86linux"; then
-         echo "${UNAME_MACHINE}-pc-linux-gnuaout" ; exit 0
-       elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: i.86coff"; then
-         echo "${UNAME_MACHINE}-pc-linux-gnucoff" ; exit 0
-       elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68kelf"; then
-         echo "${UNAME_MACHINE}-unknown-linux-gnu" ; exit 0
-       elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: m68klinux"; then
-         echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0
-       elif echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations: elf32ppc"; then
-         echo "powerpc-unknown-linux-gnu" ; exit 0
-       elif test "${UNAME_MACHINE}" = "alpha" ; then
-         echo alpha-unknown-linux-gnu ; exit 0
-       elif test "${UNAME_MACHINE}" = "sparc" ; then
-         echo sparc-unknown-linux-gnu ; exit 0
+       # first see if it will tell us. cd to the root directory to prevent
+       # problems with other programs or directories called `ld' in the path.
+       ld_help_string=`cd /; ld --help 2>&1`
+       ld_supported_emulations=`echo $ld_help_string \
+                        | sed -ne '/supported emulations:/!d
+                                   s/[         ][      ]*/ /g
+                                   s/.*supported emulations: *//
+                                   s/ .*//
+                                   p'`
+        case "$ld_supported_emulations" in
+         i?86linux)  echo "${UNAME_MACHINE}-pc-linux-gnuaout"      ; exit 0 ;;
+         i?86coff)   echo "${UNAME_MACHINE}-pc-linux-gnucoff"      ; exit 0 ;;
+         sparclinux) echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
+         armlinux)   echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
+         m68klinux)  echo "${UNAME_MACHINE}-unknown-linux-gnuaout" ; exit 0 ;;
+         elf32ppc)   echo "powerpc-unknown-linux-gnu"              ; exit 0 ;;
+       esac
+
+       if test "${UNAME_MACHINE}" = "alpha" ; then
+               sed 's/^        //'  <<EOF >$dummy.s
+               .globl main
+               .ent main
+       main:
+               .frame \$30,0,\$26,0
+               .prologue 0
+               .long 0x47e03d80 # implver $0
+               lda \$2,259
+               .long 0x47e20c21 # amask $2,$1
+               srl \$1,8,\$2
+               sll \$2,2,\$2
+               sll \$0,3,\$0
+               addl \$1,\$0,\$0
+               addl \$2,\$0,\$0
+               ret \$31,(\$26),1
+               .end main
+EOF
+               LIBC=""
+               $CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
+               if test "$?" = 0 ; then
+                       ./$dummy
+                       case "$?" in
+                       7)
+                               UNAME_MACHINE="alpha"
+                               ;;
+                       15)
+                               UNAME_MACHINE="alphaev5"
+                               ;;
+                       14)
+                               UNAME_MACHINE="alphaev56"
+                               ;;
+                       10)
+                               UNAME_MACHINE="alphapca56"
+                               ;;
+                       16)
+                               UNAME_MACHINE="alphaev6"
+                               ;;
+                       esac
+
+                       objdump --private-headers $dummy | \
+                         grep ld.so.1 > /dev/null
+                       if test "$?" = 0 ; then
+                               LIBC="libc1"
+                       fi
+               fi
+               rm -f $dummy.s $dummy
+               echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} ; exit 0
        elif test "${UNAME_MACHINE}" = "mips" ; then
-         cat >dummy.c <<EOF
-main(argc, argv)
-int argc;
-char *argv[];
-{
+         cat >$dummy.c <<EOF
+#ifdef __cplusplus
+       int main (int argc, char *argv[]) {
+#else
+       int main (argc, argv) int argc; char *argv[]; {
+#endif
 #ifdef __MIPSEB__
   printf ("%s-unknown-linux-gnu\n", argv[1]);
 #endif
@@ -477,35 +689,65 @@ char *argv[];
   return 0;
 }
 EOF
-         ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
-         rm -f dummy.c dummy
+         $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
+         rm -f $dummy.c $dummy
        else
-         # Either a pre-BFD a.out linker (linux-gnuoldld) or one that does not give us
-         # useful --help.  Gcc wants to distinguish between linux-gnuoldld and linux-gnuaout.
-         test ! -d /usr/lib/ldscripts/. \
-           && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
+         # Either a pre-BFD a.out linker (linux-gnuoldld)
+         # or one that does not give us useful --help.
+         # GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
+         # If ld does not provide *any* "supported emulations:"
+         # that means it is gnuoldld.
+         echo "$ld_help_string" | grep >/dev/null 2>&1 "supported emulations:"
+         test $? != 0 && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
+
+         case "${UNAME_MACHINE}" in
+         i?86)
+           VENDOR=pc;
+           ;;
+         *)
+           VENDOR=unknown;
+           ;;
+         esac
          # Determine whether the default compiler is a.out or elf
-         cat >dummy.c <<EOF
-main(argc, argv)
-int argc;
-char *argv[];
-{
+         cat >$dummy.c <<EOF
+#include <features.h>
+#ifdef __cplusplus
+       int main (int argc, char *argv[]) {
+#else
+       int main (argc, argv) int argc; char *argv[]; {
+#endif
 #ifdef __ELF__
-  printf ("%s-pc-linux-gnu\n", argv[1]);
+# ifdef __GLIBC__
+#  if __GLIBC__ >= 2
+    printf ("%s-${VENDOR}-linux-gnu\n", argv[1]);
+#  else
+    printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
+#  endif
+# else
+   printf ("%s-${VENDOR}-linux-gnulibc1\n", argv[1]);
+# endif
 #else
-  printf ("%s-pc-linux-gnuaout\n", argv[1]);
+  printf ("%s-${VENDOR}-linux-gnuaout\n", argv[1]);
 #endif
   return 0;
 }
 EOF
-         ${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy "${UNAME_MACHINE}" && rm dummy.c dummy && exit 0
-         rm -f dummy.c dummy
+         $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
+         rm -f $dummy.c $dummy
        fi ;;
 # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.  earlier versions
 # are messed up and put the nodename in both sysname and nodename.
     i?86:DYNIX/ptx:4*:*)
        echo i386-sequent-sysv4
        exit 0 ;;
+    i?86:UNIX_SV:4.2MP:2.*)
+        # Unixware is an offshoot of SVR4, but it has its own version
+        # number series starting with 2...
+        # I am not positive that other SVR4 systems won't match this,
+       # I just have to hope.  -- rms.
+        # Use sysv4.2uw... so that sysv4* matches it.
+       echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+       exit 0 ;;
     i?86:*:4.*:* | i?86:SYSTEM_V:4.*:*)
        if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
                echo ${UNAME_MACHINE}-univel-sysv${UNAME_RELEASE}
@@ -527,6 +769,18 @@ EOF
                echo ${UNAME_MACHINE}-pc-sysv32
        fi
        exit 0 ;;
+    i?86:UnixWare:*:*)
+       if /bin/uname -X 2>/dev/null >/dev/null ; then
+         (/bin/uname -X|egrep '^Machine.*Pentium' >/dev/null) \
+           && UNAME_MACHINE=i586
+       fi
+       echo ${UNAME_MACHINE}-unixware-${UNAME_RELEASE}-${UNAME_VERSION}
+       exit 0 ;;
+    pc:*:*:*)
+        # uname -m prints for DJGPP always 'pc', but it prints nothing about
+        # the processor, so we play safe by assuming i386.
+       echo i386-pc-msdosdjgpp
+        exit 0 ;;
     Intel:Mach:3*:*)
        echo i386-pc-mach3
        exit 0 ;;
@@ -555,15 +809,15 @@ EOF
        /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
          && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
     3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-       /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-         && echo i486-ncr-sysv4 && exit 0 ;;
+        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+          && echo i486-ncr-sysv4 && exit 0 ;;
     m68*:LynxOS:2.*:*)
        echo m68k-unknown-lynxos${UNAME_RELEASE}
        exit 0 ;;
     mc68030:UNIX_System_V:4.*:*)
        echo m68k-atari-sysv4
        exit 0 ;;
-    i?86:LynxOS:2.*:*)
+    i?86:LynxOS:2.*:* | i?86:LynxOS:3.[01]*:*)
        echo i386-unknown-lynxos${UNAME_RELEASE}
        exit 0 ;;
     TSUNAMI:LynxOS:2.*:*)
@@ -575,6 +829,9 @@ EOF
     SM[BE]S:UNIX_SV:*:*)
        echo mips-dde-sysv${UNAME_RELEASE}
        exit 0 ;;
+    RM*:ReliantUNIX-*:*:*)
+       echo mips-sni-sysv4
+       exit 0 ;;
     RM*:SINIX-*:*:*)
        echo mips-sni-sysv4
        exit 0 ;;
@@ -587,9 +844,9 @@ EOF
        fi
        exit 0 ;;
     PENTIUM:CPunix:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-                          # says <Richard.M.Bartel@ccMail.Census.GOV>
-       echo i586-unisys-sysv4
-       exit 0 ;;
+                           # says <Richard.M.Bartel@ccMail.Census.GOV>
+        echo i586-unisys-sysv4
+        exit 0 ;;
     *:UNIX_System_V:4*:FTX*)
        # From Gerald Hewes <hewes@openmarket.com>.
        # How about differentiating between stratus architectures? -djm
@@ -602,19 +859,43 @@ EOF
     mc68*:A/UX:*:*)
        echo m68k-apple-aux${UNAME_RELEASE}
        exit 0 ;;
-    R3000:*System_V*:*:* | R4000:UNIX_SYSV:*:*)
+    news*:NEWS-OS:*:6*)
+       echo mips-sony-newsos6
+       exit 0 ;;
+    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R4000:UNIX_SV:*:*)
        if [ -d /usr/nec ]; then
-               echo mips-nec-sysv${UNAME_RELEASE}
+               echo mips-nec-sysv${UNAME_RELEASE}
        else
-               echo mips-unknown-sysv${UNAME_RELEASE}
+               echo mips-unknown-sysv${UNAME_RELEASE}
        fi
+        exit 0 ;;
+    BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
+       echo powerpc-be-beos
+       exit 0 ;;
+    BeMac:BeOS:*:*)    # BeOS running on Mac or Mac clone, PPC only.
+       echo powerpc-apple-beos
+       exit 0 ;;
+    BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
+       echo i586-pc-beos
+       exit 0 ;;
+    SX-4:SUPER-UX:*:*)
+       echo sx4-nec-superux${UNAME_RELEASE}
+       exit 0 ;;
+    SX-5:SUPER-UX:*:*)
+       echo sx5-nec-superux${UNAME_RELEASE}
+       exit 0 ;;
+    Power*:Rhapsody:*:*)
+       echo powerpc-apple-rhapsody${UNAME_RELEASE}
+       exit 0 ;;
+    *:Rhapsody:*:*)
+       echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
        exit 0 ;;
 esac
 
 #echo '(No uname command or uname output not recognized.)' 1>&2
 #echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
 
-cat >dummy.c <<EOF
+cat >$dummy.c <<EOF
 #ifdef _SEQUENT_
 # include <sys/types.h>
 # include <sys/utsname.h>
@@ -630,11 +911,11 @@ main ()
 #include <sys/param.h>
   printf ("m68k-sony-newsos%s\n",
 #ifdef NEWSOS4
-         "4"
+          "4"
 #else
          ""
 #endif
-        ); exit (0);
+         ); exit (0);
 #endif
 #endif
 
@@ -652,7 +933,10 @@ main ()
 #endif
   int version;
   version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
   exit (0);
 #endif
 
@@ -708,16 +992,16 @@ main ()
   printf ("i860-alliant-bsd\n"); exit (0);
 #endif
 
-#ifdef __EMX__
-  printf ("i386-emx-os2"); exit(0);
+#if defined(__EMX__)
+  printf ("i386-emx-os2"); exit(0);  
 #endif
 
   exit (1);
 }
 EOF
 
-${CC-cc} dummy.c -o dummy 2>/dev/null && ./dummy && rm dummy.c dummy && exit 0
-rm -f dummy.c dummy
+$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0
+rm -f $dummy.c $dummy
 
 # Apollos put the system type in the environment.
 
index 4d3675d..bc19a38 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Configuration validation subroutine script, version 1.1.
-# Copyright (C) 1991, 92, 93, 94, 95, 96, 1999 Free Software Foundation, Inc.
+#   Copyright (C) 1991, 92-97, 1998 Free Software Foundation, Inc.
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
 # can handle that machine.  It does not imply ALL GNU software can.
@@ -12,7 +12,7 @@
 #
 # This program is distributed in the hope that it will be useful,
 # but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 # GNU General Public License for more details.
 #
 # You should have received a copy of the GNU General Public License
@@ -34,7 +34,7 @@
 # and recognize all the CPU types, system types and aliases
 # that are meaningful with *any* GNU software.
 # Each package is responsible for reporting which valid configurations
-# it does not support. The user should be able to distinguish
+# it does not support.  The user should be able to distinguish
 # a failure to support a valid configuration from a meaningless
 # configuration.
 
@@ -68,7 +68,7 @@ esac
 # Here we must recognize all the valid KERNEL-OS combinations.
 maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
 case $maybe_os in
-  linux-gnu*|freebsd*-*)
+  linux-gnu*)
     os=-$maybe_os
     basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
     ;;
@@ -98,19 +98,6 @@ case $os in
                os=
                basic_machine=$1
                ;;
-       -sim | -cisco | -oki | -wec | -winbond )        # CYGNUS LOCAL
-               os=
-               basic_machine=$1
-               ;;
-       -scout)                                         # CYGNUS LOCAL
-               ;;
-       -wrs)                                           # CYGNUS LOCAL
-               os=vxworks
-               basic_machine=$1
-               ;;
-       -hiuxmpp)
-               os=-hiuxmpp
-               ;;
        -hiux*)
                os=-hiuxwe2
                ;;
@@ -162,45 +149,21 @@ esac
 case $basic_machine in
        # Recognize the basic CPU types without company name.
        # Some are omitted here because they have special meanings below.
-       tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arm \
-               | arme[lb] | pyramid | mn10300 \
-               | tron | a29k | 580 | i960 | h8300 | hppa | hppa1.0 | hppa1.1 \
-               | alpha | we32k | ns16k | clipper | i370 | sh \
-               | powerpc | powerpcle | 1750a | dsp16xx | mips64 | mipsel \
-               | pdp11 | mips64el | mips64orion | mips64orionel \
-               | sparc | sparclet | sparclite | sparc64)
-               basic_machine=$basic_machine-unknown
-               ;;
-       m88110 | m680[01234]0 | m683?2 | m68360 | z8k | v70 | h8500 | w65) # CYGNUS LOCAL
-               basic_machine=$basic_machine-unknown
-               ;;
-       mips64vr4300 | mips64vr4300el) # CYGNUS LOCAL jsmith/vr4300
-               basic_machine=$basic_machine-unknown
-               ;;
-       mips64vr4100 | mips64vr4100el) # CYGNUS LOCAL jsmith/vr4100
-               basic_machine=$basic_machine-unknown
-               ;;
-       mips64vr5000 | mips64vr5000el) # CYGNUS LOCAL ian/vr5000
-               basic_machine=$basic_machine-unknown
-               ;;
-       mips16) # CYGNUS LOCAL krk/mips16
-               basic_machine=$basic_machine-unknown
-               ;;
-# CYGNUS LOCAL law
-       mn10200)
-               basic_machine=$basic_machine-unknown
-               ;;
-# END CYGNUS LOCAL
-       d10v)                           # CYGNUS LOCAL meissner/d10v
-               basic_machine=$basic_machine-unknown
-               ;;
-       mn10200)                        # CYGNUS LOCAL
+       tahoe | i860 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
+               | arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
+               | 580 | i960 | h8300 \
+               | hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w \
+               | alpha | alphaev[4-7] | alphaev56 | alphapca5[67] \
+               | we32k | ns16k | clipper | i370 | sh | powerpc | powerpcle \
+               | 1750a | dsp16xx | pdp11 | mips64 | mipsel | mips64el \
+               | mips64orion | mips64orionel | mipstx39 | mipstx39el \
+               | sparc | sparclet | sparclite | sparc64 | v850)
                basic_machine=$basic_machine-unknown
                ;;
        # 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[3456]86)
+       i[34567]86)
          basic_machine=$basic_machine-pc
          ;;
        # Object if more than one company name word.
@@ -209,43 +172,29 @@ case $basic_machine in
                exit 1
                ;;
        # Recognize the basic CPU types with company name.
-       vax-* | tahoe-* | i[3456]86-* | i860-* | m32r-* | m68k-* | m68000-* \
-             | m88k-* | sparc-* | ns32k-* | fx80-* | arm-* | c[123]* \
-             | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* | power-* \
-             | none-* | 580-* | cray2-* | h8300-* | i960-* | xmp-* | ymp-* \
-             | hppa-* | hppa1.0-* | hppa1.1-* | alpha-* | we32k-* | cydra-* | ns16k-* \
-             | pn-* | np1-* | xps100-* | clipper-* | orion-* | sparclite-* \
-             | pdp11-* | sh-* | powerpc-* | powerpcle-* | sparc64-* | mips64-* | mipsel-* \
-             | mips64el-* | mips64orion-* | mips64orionel-* | f301-*)
-               ;;
-       m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | h8500-* | d10v-*) # CYGNUS LOCAL
-               ;;
-       mips64vr4300-* | mips64vr4300el-*) # CYGNUS LOCAL jsmith/vr4300
-               ;;
-       mips64vr4100-* | mips64vr4100el-*) # CYGNUS LOCAL jsmith/vr4100
-               ;;
-       mips16-*) # CYGNUS LOCAL krk/mips16
+       vax-* | tahoe-* | i[34567]86-* | i860-* | m32r-* | m68k-* | m68000-* \
+             | m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
+             | mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
+             | power-* | none-* | 580-* | cray2-* | h8300-* | i960-* \
+             | xmp-* | ymp-* \
+             | hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
+             | alpha-* | alphaev[4-7]-* | alphaev56-* | alphapca5[67] \
+             | we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
+             | clipper-* | orion-* \
+             | sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
+             | sparc64-* | mips64-* | mipsel-* \
+             | mips64el-* | mips64orion-* | mips64orionel-*  \
+             | mipstx39-* | mipstx39el-* \
+             | f301-* | armv*-*)
                ;;
        # Recognize the various machine names and aliases which stand
        # for a CPU type and a company and sometimes even an OS.
-       386bsd)                                         # CYGNUS LOCAL
-               basic_machine=i386-unknown
-               os=-bsd
-               ;;
        3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
                basic_machine=m68000-att
                ;;
        3b*)
                basic_machine=we32k-att
                ;;
-       a29khif)                                        # CYGNUS LOCAL
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
-       adobe68k)                                       # CYGNUS LOCAL
-               basic_machine=m68010-adobe
-               os=-scout
-               ;;
        alliant | fx80)
                basic_machine=fx80-alliant
                ;;
@@ -263,9 +212,9 @@ case $basic_machine in
        amiga | amiga-*)
                basic_machine=m68k-cbm
                ;;
-       amigados)
+       amigaos | amigados)
                basic_machine=m68k-cbm
-               os=-amigados
+               os=-amigaos
                ;;
        amigaunix | amix)
                basic_machine=m68k-cbm
@@ -275,16 +224,6 @@ case $basic_machine in
                basic_machine=m68k-apollo
                os=-sysv
                ;;
-       apollo68bsd)                                    # CYGNUS LOCAL
-               basic_machine=m68k-apollo
-               os=-bsd
-               ;;
-       atarist)
-               basic_machine=m68k-atari
-               ;;
-       emx)
-               basic_machine=i386-emx
-               ;;
        aux)
                basic_machine=m68k-apple
                os=-aux
@@ -361,10 +300,6 @@ case $basic_machine in
        encore | umax | mmax)
                basic_machine=ns32k-encore
                ;;
-       es1800 | OSE68k | ose68k | ose | OSE)           # CYGNUS LOCAL
-               basic_machine=m68k-ericsson
-               os=-ose
-               ;;
        fx2800)
                basic_machine=i860-alliant
                ;;
@@ -375,10 +310,6 @@ case $basic_machine in
                basic_machine=tron-gmicro
                os=-sysv
                ;;
-       hiuxmpp)
-               basic_machine=hppa1.1-hitachi
-               os=-hiuxmpp
-               ;;
        h3050r* | hiux*)
                basic_machine=hppa1.1-hitachi
                os=-hiuxwe2
@@ -387,14 +318,6 @@ case $basic_machine in
                basic_machine=h8300-hitachi
                os=-hms
                ;;
-       h8300xray)                                      # CYGNUS LOCAL
-               basic_machine=h8300-hitachi
-               os=-xray
-               ;;
-       h8500hms)                                       # CYGNUS LOCAL
-               basic_machine=h8500-hitachi
-               os=-hms
-               ;;
        harris)
                basic_machine=m88k-harris
                os=-sysv3
@@ -410,22 +333,6 @@ case $basic_machine in
                basic_machine=m68k-hp
                os=-hpux
                ;;
-       w89k-*)                                         # CYGNUS LOCAL
-               basic_machine=hppa1.1-winbond
-               os=-proelf
-               ;;
-       op50n-*)                                        # CYGNUS LOCAL
-               basic_machine=hppa1.1-oki
-               os=-proelf
-               ;;
-       op60c-*)                                        # CYGNUS LOCAL
-               basic_machine=hppa1.1-oki
-               os=-proelf
-               ;;
-       hppro)                                          # CYGNUS LOCAL
-               basic_machine=hppa1.1-hp
-               os=-proelf
-               ;;
        hp9k2[0-9][0-9] | hp9k31[0-9])
                basic_machine=m68000-hp
                ;;
@@ -441,43 +348,35 @@ case $basic_machine in
        hppa-next)
                os=-nextstep3
                ;;
-       hppaosf)                                        # CYGNUS LOCAL
-               basic_machine=hppa1.1-hp
-               os=-osf
+       hp3k9[0-9][0-9] | hp9[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               os=-mpeix
+               ;;
+       hp3k9[0-9][0-9] | hp9[0-9][0-9])
+               basic_machine=hppa1.0-hp
+               os=-mpeix
                ;;
        i370-ibm* | ibm*)
                basic_machine=i370-ibm
                os=-mvs
                ;;
 # I'm not sure what "Sysv32" means.  Should this be sysv3.2?
-       i[3456]86v32)
+       i[34567]86v32)
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-sysv32
                ;;
-       i[3456]86v4*)
+       i[34567]86v4*)
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-sysv4
                ;;
-       i[3456]86v)
+       i[34567]86v)
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-sysv
                ;;
-       i[3456]86sol2)
+       i[34567]86sol2)
                basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
                os=-solaris2
                ;;
-       i386mach)                                       # CYGNUS LOCAL
-               basic_machine=i386-mach
-               os=-mach
-               ;;
-       i386-vsta | vsta)                               # CYGNUS LOCAL
-               basic_machine=i386-unknown
-               os=-vsta
-               ;;
-       i386-go32 | go32)                               # CYGNUS LOCAL
-               basic_machine=i386-unknown
-               os=-go32
-               ;;
        iris | iris4d)
                basic_machine=mips-sgi
                case $os in
@@ -508,11 +407,11 @@ case $basic_machine in
                ;;
        mipsel*-linux*)
                basic_machine=mipsel-unknown
-               os=-linux
+               os=-linux-gnu
                ;;
        mips*-linux*)
                basic_machine=mips-unknown
-               os=-linux
+               os=-linux-gnu
                ;;
        mips3*-*)
                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
@@ -520,21 +419,13 @@ case $basic_machine in
        mips3*)
                basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
                ;;
-       monitor)                                        # CYGNUS LOCAL
-               basic_machine=m68k-rom68k
-               os=-coff
-               ;;
-       msdos)                                          # CYGNUS LOCAL
-               basic_machine=i386-unknown
-               os=-msdos
-               ;;
        ncr3000)
                basic_machine=i486-ncr
                os=-sysv4
                ;;
-       netbsd386)
-               basic_machine=i386-unknown              # CYGNUS LOCAL
-               os=-netbsd
+       netwinder)
+               basic_machine=armv4l-corel
+               os=-linux
                ;;
        news | news700 | news800 | news900)
                basic_machine=m68k-sony
@@ -548,10 +439,6 @@ case $basic_machine in
                basic_machine=mips-sony
                os=-newsos
                ;;
-       necv70)                                         # CYGNUS LOCAL
-               basic_machine=v70-nec
-               os=-sysv
-               ;;
        next | m*-next )
                basic_machine=m68k-next
                case $os in
@@ -577,21 +464,9 @@ case $basic_machine in
                basic_machine=i960-intel
                os=-nindy
                ;;
-       mon960)                                         # CYGNUS LOCAL
-               basic_machine=i960-intel
-               os=-mon960
-               ;;
        np1)
                basic_machine=np1-gould
                ;;
-       OSE68000 | ose68000)                            # CYGNUS LOCAL
-               basic_machine=m68000-ericsson
-               os=-ose
-               ;;
-       os68k)                                          # CYGNUS LOCAL
-               basic_machine=m68k-none
-               os=-os68k
-               ;;
        pa-hitachi)
                basic_machine=hppa1.1-hitachi
                os=-hiuxwe2
@@ -606,28 +481,26 @@ case $basic_machine in
        pbb)
                basic_machine=m68k-tti
                ;;
-       pc532 | pc532-*)
+        pc532 | pc532-*)
                basic_machine=ns32k-pc532
                ;;
-       pentium | p5)
-               basic_machine=i586-intel
+       pentium | p5 | k5 | nexen)
+               basic_machine=i586-pc
+               ;;
+       pentiumpro | p6 | k6 | 6x86)
+               basic_machine=i686-pc
                ;;
-       pentiumpro | p6)
-               basic_machine=i686-intel
+       pentiumii | pentium2)
+               basic_machine=i786-pc
                ;;
-       pentium-* | p5-*)
+       pentium-* | p5-* | k5-* | nexen-*)
                basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
-       pentiumpro-* | p6-*)
+       pentiumpro-* | p6-* | k6-* | 6x86-*)
                basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
-       k5)
-               # We don't have specific support for AMD's K5 yet, so just call it a Pentium
-               basic_machine=i586-amd
-               ;;
-       nexen)
-               # We don't have specific support for Nexgen yet, so just call it a Pentium
-               basic_machine=i586-nexgen
+       pentiumii-* | pentium2-*)
+               basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        pn)
                basic_machine=pn-gould
@@ -635,32 +508,24 @@ case $basic_machine in
        power)  basic_machine=rs6000-ibm
                ;;
        ppc)    basic_machine=powerpc-unknown
-               ;;
+               ;;
        ppc-*)  basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        ppcle | powerpclittle | ppc-le | powerpc-little)
                basic_machine=powerpcle-unknown
-               ;;
+               ;;
        ppcle-* | powerpclittle-*)
                basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
                ;;
        ps2)
                basic_machine=i386-ibm
                ;;
-       rom68k)                                         # CYGNUS LOCAL
-               basic_machine=m68k-rom68k
-               os=-coff
-               ;;
        rm[46]00)
                basic_machine=mips-siemens
                ;;
        rtpc | rtpc-*)
                basic_machine=romp-ibm
                ;;
-       sa29200)                                        # CYGNUS LOCAL
-               basic_machine=a29k-amd
-               os=-udi
-               ;;
        sequent)
                basic_machine=i386-sequent
                ;;
@@ -668,10 +533,6 @@ case $basic_machine in
                basic_machine=sh-hitachi
                os=-hms
                ;;
-       sparclite-wrs)                                  # CYGNUS LOCAL
-               basic_machine=sparclite-wrs
-               os=-vxworks
-               ;;
        sps7)
                basic_machine=m68k-bull
                os=-sysv2
@@ -679,13 +540,6 @@ case $basic_machine in
        spur)
                basic_machine=spur-unknown
                ;;
-       st2000)                                         # CYGNUS LOCAL
-               basic_machine=m68k-tandem
-               ;;
-       stratus)                                        # CYGNUS LOCAL
-               basic_machine=i860-stratus
-               os=-sysv4
-               ;;
        sun2)
                basic_machine=m68000-sun
                ;;
@@ -730,6 +584,12 @@ case $basic_machine in
                basic_machine=i386-sequent
                os=-dynix
                ;;
+       tx39)
+               basic_machine=mipstx39-unknown
+               ;;
+       tx39el)
+               basic_machine=mipstx39el-unknown
+               ;;
        tower | tower-32)
                basic_machine=m68k-ncr
                ;;
@@ -741,10 +601,6 @@ case $basic_machine in
                basic_machine=a29k-nyu
                os=-sym1
                ;;
-       v810 | necv810)                                 # CYGNUS LOCAL
-               basic_machine=v810-nec
-               os=-none
-               ;;
        vaxv)
                basic_machine=vax-dec
                os=-sysv
@@ -753,9 +609,9 @@ case $basic_machine in
                basic_machine=vax-dec
                os=-vms
                ;;
-       vpp*|vx|vx-*)
-              basic_machine=f301-fujitsu
-              ;;
+       vpp*|vx|vx-*)
+               basic_machine=f301-fujitsu
+               ;;
        vxworks960)
                basic_machine=i960-wrs
                os=-vxworks
@@ -768,20 +624,19 @@ case $basic_machine in
                basic_machine=a29k-wrs
                os=-vxworks
                ;;
-       w65*)                                           # CYGNUS LOCAL
-               basic_machine=w65-wdc
-               os=-none
-               ;;
        xmp)
                basic_machine=xmp-cray
                os=-unicos
                ;;
-       xps | xps100)
+        xps | xps100)
                basic_machine=xps100-honeywell
                ;;
-       z8k-*-coff)                                     # CYGNUS LOCAL
-               basic_machine=z8k-unknown
-               os=-sim
+       *mint | *MiNT)
+               basic_machine=m68k-atari
+               os=-mint
+               ;;
+        os2 )
+               os=-os2
                ;;
        none)
                basic_machine=none-none
@@ -790,17 +645,8 @@ 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.
-       w89k)                                           # CYGNUS LOCAL
-               basic_machine=hppa1.1-winbond
-               ;;
-       op50n)                                          # CYGNUS LOCAL
-               basic_machine=hppa1.1-oki
-               ;;
-       op60c)                                          # CYGNUS LOCAL
-               basic_machine=hppa1.1-oki
-               ;;
        mips)
-               if [ x$os = x-linux ]; then
+               if [ x$os = x-linux-gnu ]; then
                        basic_machine=mips-unknown
                else
                        basic_machine=mips-mips
@@ -824,7 +670,7 @@ case $basic_machine in
        sparc)
                basic_machine=sparc-sun
                ;;
-       cydra)
+        cydra)
                basic_machine=cydra-cydrome
                ;;
        orion)
@@ -833,12 +679,6 @@ case $basic_machine in
        orion105)
                basic_machine=clipper-highlevel
                ;;
-       mac | mpw | mac-mpw)                            # CYGNUS LOCAL
-               basic_machine=m68k-apple
-               ;;
-       pmac | pmac-mpw)                                # CYGNUS LOCAL
-               basic_machine=powerpc-apple
-               ;;
        *)
                echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
                exit 1
@@ -862,8 +702,8 @@ esac
 if [ x"$os" != x"" ]
 then
 case $os in
-       # First match some system type aliases
-       # that might get confused with valid system types.
+        # First match some system type aliases
+        # that might get confused with valid system types.
        # -solaris* is a basic system type, with this one exception.
        -solaris1 | -solaris1.*)
                os=`echo $os | sed -e 's|solaris1|sunos4|'`
@@ -871,9 +711,12 @@ case $os in
        -solaris)
                os=-solaris2
                ;;
-       -unixware* | svr4*)
+       -svr4*)
                os=-sysv4
                ;;
+       -unixware*)
+               os=-sysv4.2uw
+               ;;
        -gnu/linux*)
                os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
                ;;
@@ -884,26 +727,19 @@ case $os in
        -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
              | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
              | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
-             | -amigados* | -msdos* | -newsos* | -unicos* | -aof* | -aos* \
+             | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+             | -aos* \
              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
              | -hiux* | -386bsd* | -netbsd* | -openbsd* | -freebsd* | -riscix* \
              | -lynxos* | -bosx* | -nextstep* | -cxux* | -aout* | -elf* \
              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-             | -cygwin32* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -linux-gnu* | -uxpv* | -mingw32* )
+             | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+             | -mingw32* | -linux-gnu* | -uxpv* | -beos* | -rhapsody* \
+             | -openstep* | -mpeix* | -oskit*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
-       # CYGNUS LOCAL
-       -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-             | -windows* | -osx | -abug |  -netware* | -os9* | -beos* \
-             | -macos* | -mpw* | -magic* | -mon960* | -lnews* )
-               ;;
-       -mac*)
-               os=`echo $os | sed -e 's|mac|macos|'`
-               ;;
-       # END CYGNUS LOCAL
        -linux*)
                os=`echo $os | sed -e 's|linux|linux-gnu|'`
                ;;
@@ -928,14 +764,11 @@ case $os in
        -acis*)
                os=-aos
                ;;
-       -386bsd)                                        # CYGNUS LOCAL
-               os=-bsd
-               ;;
        -ctix* | -uts*)
                os=-sysv
                ;;
        -ns2 )
-               os=-nextstep2
+               os=-nextstep2
                ;;
        # Preserve the version number of sinix5.
        -sinix5.*)
@@ -962,26 +795,16 @@ case $os in
        # This must come after -sysvr4.
        -sysv*)
                ;;
-       -ose*)                                          # CYGNUS LOCAL
-               os=-ose
-               ;;
-       -es1800*)                                       # CYGNUS LOCAL
-               os=-ose
-               ;;
        -xenix)
                os=-xenix
                ;;
-       -mint)
-               os=-mint
-               ;;
-       -os2)
-               os=-os2
+        -*mint | -*MiNT)
+               os=-mint
                ;;
        -none)
                ;;
        *)
                # Get rid of the `-' at the beginning of $os.
-               echo "os=($os)"
                os=`echo $os | sed 's/[^-]*-//'`
                echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
                exit 1
@@ -1003,10 +826,13 @@ case $basic_machine in
        *-acorn)
                os=-riscix1.2
                ;;
+       arm*-corel)
+               os=-linux
+               ;;
        arm*-semi)
                os=-aout
                ;;
-       pdp11-*)
+        pdp11-*)
                os=-none
                ;;
        *-dec | vax-*)
@@ -1024,36 +850,18 @@ case $basic_machine in
                # default.
                # os=-sunos4
                ;;
-       m68*-cisco)                                     # CYGNUS LOCAL
-               os=-aout
-               ;;
-       mips*-cisco)                                    # CYGNUS LOCAL
-               os=-elf
-               ;;
-       mips*-*)                                        # CYGNUS LOCAL
-               os=-elf
-               ;;
        *-tti)  # must be before sparc entry or we get the wrong os.
                os=-sysv3
                ;;
        sparc-* | *-sun)
                os=-sunos4.1.1
                ;;
-       *-be)                                           # CYGNUS LOCAL
+       *-be)
                os=-beos
                ;;
        *-ibm)
                os=-aix
                ;;
-       *-wec)                                          # CYGNUS LOCAL
-               os=-proelf
-               ;;
-       *-winbond)                                      # CYGNUS LOCAL
-               os=-proelf
-               ;;
-       *-oki)                                          # CYGNUS LOCAL
-               os=-proelf
-               ;;
        *-hp)
                os=-hpux
                ;;
@@ -1064,7 +872,7 @@ case $basic_machine in
                os=-sysv
                ;;
        *-cbm)
-               os=-amigados
+               os=-amigaos
                ;;
        *-dg)
                os=-dgux
@@ -1096,19 +904,19 @@ case $basic_machine in
        *-next)
                os=-nextstep3
                ;;
-       *-gould)
+        *-gould)
                os=-sysv
                ;;
-       *-highlevel)
+        *-highlevel)
                os=-bsd
                ;;
        *-encore)
                os=-bsd
                ;;
-       *-sgi)
+        *-sgi)
                os=-irix
                ;;
-       *-siemens)
+        *-siemens)
                os=-sysv4
                ;;
        *-masscomp)
@@ -1117,14 +925,8 @@ case $basic_machine in
        f301-fujitsu)
                os=-uxpv
                ;;
-       *-rom68k)                                       # CYGNUS LOCAL
-               os=-coff
-               ;;
-       *-*bug)                                         # CYGNUS LOCAL
-               os=-coff
-               ;;
-       *-apple)                                        # CYGNUS LOCAL
-               os=-macos
+       *-atari*)
+               os=-mint
                ;;
        *)
                os=-none
@@ -1147,12 +949,15 @@ case $basic_machine in
                        -aix*)
                                vendor=ibm
                                ;;
-                       -beos*)                                         # CYGNUS LOCAL
-                               vendor=be
-                               ;;
                        -hpux*)
                                vendor=hp
                                ;;
+                       -mpeix*)
+                               vendor=hp
+                               ;;
+                       -mpeix*)
+                               vendor=hp
+                               ;;
                        -hiux*)
                                vendor=hitachi
                                ;;
@@ -1180,11 +985,8 @@ case $basic_machine in
                        -aux*)
                                vendor=apple
                                ;;
-                       -hms*)                          # CYGNUS LOCAL
-                               vendor=hitachi
-                               ;;
-                       -mpw* | -macos*)                # CYGNUS LOCAL
-                               vendor=apple
+                       -*mint | -*MiNT)
+                               vendor=atari
                                ;;
                esac
                basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
index e843669..ebc6691 100755 (executable)
@@ -1,4 +1,4 @@
-#!/bin/sh
+#! /bin/sh
 #
 # install - install a program, script, or datafile
 # This comes from X11R5 (mit/util/scripts/install.sh).
index d0fd194..70f6e58 100755 (executable)
@@ -7,6 +7,26 @@
 # $Id$
 
 errstatus=0
+dirmode=""
+
+usage="\
+Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..."
+
+# process command line arguments
+while test $# -gt 0 ; do
+   case "${1}" in
+     -h | --help | --h* )                      # -h for help
+        echo "${usage}" 1>&2; exit 0 ;;
+     -m )                                      # -m PERM arg
+        shift
+        test $# -eq 0 && { echo "${usage}" 1>&2; exit 1; }
+        dirmode="${1}"
+        shift ;;
+     -- ) shift; break ;;                      # stop option processing
+     -* ) echo "${usage}" 1>&2; exit 1 ;;      # unknown option
+     * )  break ;;                             # first non-opt arg
+   esac
+done
 
 for file
 do
@@ -22,12 +42,23 @@ do
      esac
 
      if test ! -d "$pathcomp"; then
-        echo "mkdir $pathcomp" 1>&2
+        echo "mkdir $pathcomp"
 
         mkdir "$pathcomp" || lasterr=$?
 
         if test ! -d "$pathcomp"; then
          errstatus=$lasterr
+       else
+         if test ! -z "$dirmode"; then
+            echo "chmod $dirmode $pathcomp"
+
+            lasterr=""
+            chmod $dirmode "$pathcomp" || lasterr=$?
+
+            if test ! -z "$lasterr"; then
+              errstatus=$lasterr
+            fi
+         fi
         fi
      fi
 
@@ -37,4 +68,7 @@ done
 
 exit $errstatus
 
-# mkinstalldirs ends here
+# Local Variables:
+# mode:shell-script
+# sh-indentation:3
+# End: