diff options
author | Werner Koch <wk@gnupg.org> | 1999-05-08 19:35:16 +0200 |
---|---|---|
committer | Werner Koch <wk@gnupg.org> | 1999-05-08 19:35:16 +0200 |
commit | a1dcec76c1f85b95c1eff73d12c1c13f699aaecb (patch) | |
tree | a041bdf1210b06678f548af47f1ab65fe23ca973 | |
parent | . (diff) | |
download | gnupg2-a1dcec76c1f85b95c1eff73d12c1c13f699aaecb.tar.xz gnupg2-a1dcec76c1f85b95c1eff73d12c1c13f699aaecb.zip |
See ChangeLog: Sat May 8 19:28:33 CEST 1999 Werner Koch
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | NEWS | 8 | ||||
-rw-r--r-- | TODO | 6 | ||||
-rw-r--r-- | VERSION | 2 | ||||
-rw-r--r-- | doc/gpg.1pod | 28 | ||||
-rw-r--r-- | g10/ChangeLog | 21 | ||||
-rw-r--r-- | g10/build-packet.c | 23 | ||||
-rw-r--r-- | g10/encode.c | 189 | ||||
-rw-r--r-- | g10/free-packet.c | 48 | ||||
-rw-r--r-- | g10/mainproc.c | 53 | ||||
-rw-r--r-- | g10/packet.h | 1 | ||||
-rw-r--r-- | g10/parse-packet.c | 81 | ||||
-rw-r--r-- | g10/sig-check.c | 4 | ||||
-rw-r--r-- | scripts/ChangeLog | 5 | ||||
-rwxr-xr-x | scripts/config.guess | 518 | ||||
-rwxr-xr-x | scripts/config.sub | 422 | ||||
-rwxr-xr-x | scripts/install-sh | 2 | ||||
-rwxr-xr-x | scripts/mkinstalldirs | 38 |
18 files changed, 680 insertions, 773 deletions
@@ -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 @@ -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. @@ -28,8 +28,10 @@ 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. @@ -1 +1 @@ -0.9.6 +0.9.6a diff --git a/doc/gpg.1pod b/doc/gpg.1pod index 9e8abc44b..26d96f979 100644 --- a/doc/gpg.1pod +++ b/doc/gpg.1pod @@ -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 diff --git a/g10/ChangeLog b/g10/ChangeLog index a29764a2f..4585c9a34 100644 --- a/g10/ChangeLog +++ b/g10/ChangeLog @@ -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. diff --git a/g10/build-packet.c b/g10/build-packet.c index 7a2c1062a..577c10984 100644 --- a/g10/build-packet.c +++ b/g10/build-packet.c @@ -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] ); diff --git a/g10/encode.c b/g10/encode.c index ba97299e2..775d64f15 100644 --- a/g10/encode.c +++ b/g10/encode.c @@ -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. diff --git a/g10/free-packet.c b/g10/free-packet.c index e8a3a8af3..aef8e2fb0 100644 --- a/g10/free-packet.c +++ b/g10/free-packet.c @@ -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++ ) { diff --git a/g10/mainproc.c b/g10/mainproc.c index 9bfdaaf9a..17c958feb 100644 --- a/g10/mainproc.c +++ b/g10/mainproc.c @@ -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; diff --git a/g10/packet.h b/g10/packet.h index 312668317..741e10009 100644 --- a/g10/packet.h +++ b/g10/packet.h @@ -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 ); diff --git a/g10/parse-packet.c b/g10/parse-packet.c index 94bf0f38d..291128ba3 100644 --- a/g10/parse-packet.c +++ b/g10/parse-packet.c @@ -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; } diff --git a/g10/sig-check.c b/g10/sig-check.c index 8b1f51c3d..068035cf4 100644 --- a/g10/sig-check.c +++ b/g10/sig-check.c @@ -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. diff --git a/scripts/ChangeLog b/scripts/ChangeLog index bc352d720..1ccecc8d5 100644 --- a/scripts/ChangeLog +++ b/scripts/ChangeLog @@ -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 diff --git a/scripts/config.guess b/scripts/config.guess index 3aa18a54e..902daa009 100755 --- a/scripts/config.guess +++ b/scripts/config.guess @@ -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 @@ -35,6 +36,20 @@ # (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. diff --git a/scripts/config.sub b/scripts/config.sub index 4d3675dbd..bc19a382f 100755 --- a/scripts/config.sub +++ b/scripts/config.sub @@ -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/"` diff --git a/scripts/install-sh b/scripts/install-sh index e8436696c..ebc66913e 100755 --- a/scripts/install-sh +++ b/scripts/install-sh @@ -1,4 +1,4 @@ -#!/bin/sh +#! /bin/sh # # install - install a program, script, or datafile # This comes from X11R5 (mit/util/scripts/install.sh). diff --git a/scripts/mkinstalldirs b/scripts/mkinstalldirs index d0fd194fd..70f6e5802 100755 --- a/scripts/mkinstalldirs +++ b/scripts/mkinstalldirs @@ -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: |