mirror of
git://git.gnupg.org/gnupg.git
synced 2025-01-09 12:54:23 +01:00
worked on solving some bugs
This commit is contained in:
parent
be06120679
commit
5e79cb47e0
@ -1,5 +1,11 @@
|
|||||||
|
2001-03-12 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* INSTALL: Add a note to VPATH builds.
|
||||||
|
|
||||||
2001-03-08 Werner Koch <wk@gnupg.org>
|
2001-03-08 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* debian/: Applied update from James.
|
||||||
|
|
||||||
Added copyright and license notices to some more files.
|
Added copyright and license notices to some more files.
|
||||||
|
|
||||||
2001-01-18 Werner Koch <wk@gnupg.org>
|
2001-01-18 Werner Koch <wk@gnupg.org>
|
||||||
|
15
INSTALL
15
INSTALL
@ -239,13 +239,14 @@ Or, on systems that have the `env' program, you can do it like this:
|
|||||||
Compiling For Multiple Architectures
|
Compiling For Multiple Architectures
|
||||||
====================================
|
====================================
|
||||||
|
|
||||||
You can compile the package for more than one kind of computer at the same
|
You can compile the package for more than one kind of computer at
|
||||||
time by placing the object files for each architecture in their own
|
the same time by placing the object files for each architecture in
|
||||||
directory. To do this, you must use a version of `make', such as GNU `make',
|
their own directory. To do this, you must use a version of `make',
|
||||||
that supports the `VPATH' variable. `cd' to the directory where you want the
|
such as GNU `make', that supports the `VPATH' variable. `cd' to the
|
||||||
object files and executables to go and run the `configure' script.
|
directory where you want the object files and executables to go and
|
||||||
`configure' automatically checks for the source code in the directory that
|
run the `configure' script; please use a relative filename name to
|
||||||
`configure' is in and in `..'.
|
invoke `configure'. `configure' automatically checks for the source
|
||||||
|
code in the directory that `configure' is in and in `..'.
|
||||||
|
|
||||||
If you have to use a `make' that does not supports the `VPATH'
|
If you have to use a `make' that does not supports the `VPATH'
|
||||||
variable, you have to compile the package for one architecture at a time
|
variable, you have to compile the package for one architecture at a time
|
||||||
|
23
NEWS
23
NEWS
@ -1,13 +1,4 @@
|
|||||||
|
|
||||||
* The verification status of self-signatures are now cached. To increase
|
|
||||||
the speed of key list operations for existing keys you can do the
|
|
||||||
following in yout GnuPG homedir (~/.gnupg):
|
|
||||||
$ cp pubring.gpg pubring.gpg.save
|
|
||||||
$ gpg --export-all >x
|
|
||||||
$ rm pubring.gpg
|
|
||||||
$ gpg --import x
|
|
||||||
Note, that only v4 keys (i.e no old RSA keys) benefit from this caching.
|
|
||||||
|
|
||||||
* WARNING: The semantics of --verify have changed to address a problem
|
* WARNING: The semantics of --verify have changed to address a problem
|
||||||
with detached signature detection. --verify now ignores signed material
|
with detached signature detection. --verify now ignores signed material
|
||||||
given on stdin unless this is requested by using a "-" as the name for
|
given on stdin unless this is requested by using a "-" as the name for
|
||||||
@ -20,6 +11,20 @@
|
|||||||
* Secret keys are no longer imported unless you use the new option
|
* Secret keys are no longer imported unless you use the new option
|
||||||
--allow-secret-key-import.
|
--allow-secret-key-import.
|
||||||
|
|
||||||
|
* There is now a notation of a primary user ID. For example this one is
|
||||||
|
printed with a signature verifaction as the first user ID, revoked user
|
||||||
|
IDs are not printed there anymore. I general the primary user ID is the
|
||||||
|
one with the latest self-signature.
|
||||||
|
|
||||||
|
* The verification status of self-signatures are now cached. To increase
|
||||||
|
the speed of key list operations for existing keys you can do the
|
||||||
|
following in yout GnuPG homedir (~/.gnupg):
|
||||||
|
$ cp pubring.gpg pubring.gpg.save
|
||||||
|
$ gpg --export-all >x
|
||||||
|
$ rm pubring.gpg
|
||||||
|
$ gpg --import x
|
||||||
|
Note, that only v4 keys (i.e no old RSA keys) benefit from this caching.
|
||||||
|
|
||||||
* Support for the gpg-agent from gpg 1.1 and other changes needed by
|
* Support for the gpg-agent from gpg 1.1 and other changes needed by
|
||||||
gpgme.
|
gpgme.
|
||||||
|
|
||||||
|
2
THANKS
2
THANKS
@ -38,6 +38,7 @@ Dimitri dmitri@advantrix.com
|
|||||||
Dirk Lattermann dlatt@t-online.de
|
Dirk Lattermann dlatt@t-online.de
|
||||||
Ed Boraas ecxjo@esperanto.org
|
Ed Boraas ecxjo@esperanto.org
|
||||||
Edmund GRIMLEY EVANS edmundo@rano.org
|
Edmund GRIMLEY EVANS edmundo@rano.org
|
||||||
|
Edwin Woudt edwin@woudt.nl
|
||||||
Enzo Michelangeli em@MailAndNews.com
|
Enzo Michelangeli em@MailAndNews.com
|
||||||
Ernst Molitor ernst.molitor@uni-bonn.de
|
Ernst Molitor ernst.molitor@uni-bonn.de
|
||||||
Fabio Coatti cova@ferrara.linux.it
|
Fabio Coatti cova@ferrara.linux.it
|
||||||
@ -74,6 +75,7 @@ Jens Bachem bachem@rrz.uni-koeln.de
|
|||||||
Jeroen C. van Gelderen jeroen@vangelderen.org
|
Jeroen C. van Gelderen jeroen@vangelderen.org
|
||||||
J Horacio MG homega@ciberia.es
|
J Horacio MG homega@ciberia.es
|
||||||
J. Michael Ashley jashley@acm.org
|
J. Michael Ashley jashley@acm.org
|
||||||
|
Jim Bauer jfbauer@home.com
|
||||||
Jim Small cavenewt@my-deja.com
|
Jim Small cavenewt@my-deja.com
|
||||||
Joachim Backes backes@rhrk.uni-kl.de
|
Joachim Backes backes@rhrk.uni-kl.de
|
||||||
John A. Martin jam@jamux.com
|
John A. Martin jam@jamux.com
|
||||||
|
5
TODO
5
TODO
@ -8,8 +8,6 @@
|
|||||||
|
|
||||||
* Can we output things like the preferences?
|
* Can we output things like the preferences?
|
||||||
|
|
||||||
* Add Dave's UTS patches
|
|
||||||
|
|
||||||
** Check whether the use of -u and --clearsign created 2 signatures.
|
** Check whether the use of -u and --clearsign created 2 signatures.
|
||||||
removed dups from the skclist.
|
removed dups from the skclist.
|
||||||
|
|
||||||
@ -106,6 +104,3 @@ Nice to have
|
|||||||
trustdb.
|
trustdb.
|
||||||
* Evaluate whether it make sense to replace the namehashs either by
|
* Evaluate whether it make sense to replace the namehashs either by
|
||||||
using the user ID directly or by using pointers into the trustdb.
|
using the user ID directly or by using pointers into the trustdb.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,3 +1,16 @@
|
|||||||
|
2001-03-12 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* twofish.c (gnupgext_enum_func): Add some static when comnpiled
|
||||||
|
as a module.
|
||||||
|
|
||||||
|
* tiger.c (tiger_get_info): Return "TIGER192" and not just
|
||||||
|
"TIGER". By Edwin Woudt.
|
||||||
|
|
||||||
|
2001-03-08 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* random.c: Always include time.h - standard requirement. Thanks
|
||||||
|
to James Troup.
|
||||||
|
|
||||||
2001-01-18 Werner Koch <wk@gnupg.org>
|
2001-01-18 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
* rndw32.c: Fixed typo and wrong ifdef for VER_PLATFORM* macro
|
* rndw32.c: Fixed typo and wrong ifdef for VER_PLATFORM* macro
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
#include <time.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
@ -43,9 +44,6 @@
|
|||||||
#ifdef HAVE_GETTIMEOFDAY
|
#ifdef HAVE_GETTIMEOFDAY
|
||||||
#include <sys/times.h>
|
#include <sys/times.h>
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_CLOCK_GETTIME
|
|
||||||
#include <time.h>
|
|
||||||
#endif
|
|
||||||
#ifdef HAVE_GETRUSAGE
|
#ifdef HAVE_GETRUSAGE
|
||||||
#include <sys/resource.h>
|
#include <sys/resource.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -904,7 +904,7 @@ tiger_get_info( int algo, size_t *contextsize,
|
|||||||
*(void (**)(TIGER_CONTEXT *))r_final = tiger_final;
|
*(void (**)(TIGER_CONTEXT *))r_final = tiger_final;
|
||||||
*(byte *(**)(TIGER_CONTEXT *))r_read = tiger_read;
|
*(byte *(**)(TIGER_CONTEXT *))r_read = tiger_read;
|
||||||
|
|
||||||
return "TIGER";
|
return "TIGER192";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1004,6 +1004,8 @@ twofish_get_info (int algo, size_t *keylen,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
#ifdef IS_MODULE
|
||||||
|
static
|
||||||
const char * const gnupgext_version = "TWOFISH ($Revision$)";
|
const char * const gnupgext_version = "TWOFISH ($Revision$)";
|
||||||
|
|
||||||
static struct {
|
static struct {
|
||||||
@ -1034,7 +1036,7 @@ static struct {
|
|||||||
* version = interface version of the function/pointer
|
* version = interface version of the function/pointer
|
||||||
* (currently this is 1 for all functions)
|
* (currently this is 1 for all functions)
|
||||||
*/
|
*/
|
||||||
void *
|
static void *
|
||||||
gnupgext_enum_func ( int what, int *sequence, int *class, int *vers )
|
gnupgext_enum_func ( int what, int *sequence, int *class, int *vers )
|
||||||
{
|
{
|
||||||
void *ret;
|
void *ret;
|
||||||
@ -1062,4 +1064,4 @@ gnupgext_enum_func ( int what, int *sequence, int *class, int *vers )
|
|||||||
*sequence = i;
|
*sequence = i;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
37
debian/changelog
vendored
37
debian/changelog
vendored
@ -1,3 +1,40 @@
|
|||||||
|
gnupg (1.0.4-3) unstable; urgency=medium
|
||||||
|
|
||||||
|
* debian/rules (binary): make gpg binary suid, closes: #86433.
|
||||||
|
* debian/postinst: don't use suidregister.
|
||||||
|
* debian/postrm: removed (only called suidunregister).
|
||||||
|
* debian/control: conflict with suidmanager << 0.50.
|
||||||
|
* mpi/longlong.h: apply fix for ARM long long artimetic from Philip
|
||||||
|
Blundell <philb@gnu.org>, closes: #87487.
|
||||||
|
* debian/preinst: the old GnuPG debs have moved to people.debian.org.
|
||||||
|
* cipher/random.c: #include <time.h> as well as <sys/time.h>
|
||||||
|
* g10/misc.c: likewise.
|
||||||
|
* debian/rules: define a strip alias which removes the .comment and
|
||||||
|
.note sections.
|
||||||
|
* debian/rules (binary-arch): use it.
|
||||||
|
* debian/lintian.override: new file; override the SUID warning from
|
||||||
|
lintian.
|
||||||
|
* debian/rules (binary-arch): install it.
|
||||||
|
|
||||||
|
-- James Troup <james@nocrew.org> Sun, 25 Feb 2001 05:24:58 +0000
|
||||||
|
|
||||||
|
gnupg (1.0.4-2) stable unstable; urgency=high
|
||||||
|
|
||||||
|
* Apply security fix patch from Werner.
|
||||||
|
* Apply another patch from Werner to fix bogus warning on Rijndael
|
||||||
|
usage.
|
||||||
|
* Change section to 'non-US'.
|
||||||
|
|
||||||
|
-- James Troup <james@nocrew.org> Mon, 12 Feb 2001 07:47:02 +0000
|
||||||
|
|
||||||
|
gnupg (1.0.4-1) stable unstable; urgency=high
|
||||||
|
|
||||||
|
* New upstream version.
|
||||||
|
* Fixes a serious bug which could lead to false signature verification
|
||||||
|
results when more than one signature is fed to gpg.
|
||||||
|
|
||||||
|
-- James Troup <james@nocrew.org> Tue, 17 Oct 2000 17:26:17 +0100
|
||||||
|
|
||||||
gnupg (1.0.3b-1) unstable; urgency=low
|
gnupg (1.0.3b-1) unstable; urgency=low
|
||||||
|
|
||||||
* New upstream snapshot version.
|
* New upstream snapshot version.
|
||||||
|
4
debian/control
vendored
4
debian/control
vendored
@ -1,5 +1,5 @@
|
|||||||
Source: gnupg
|
Source: gnupg
|
||||||
Section: utils
|
Section: non-US
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Maintainer: James Troup <james@nocrew.org>
|
Maintainer: James Troup <james@nocrew.org>
|
||||||
Standards-Version: 3.1.1.1
|
Standards-Version: 3.1.1.1
|
||||||
@ -9,7 +9,7 @@ Package: gnupg
|
|||||||
Architecture: any
|
Architecture: any
|
||||||
Depends: ${shlibs:Depends}, makedev (>= 2.3.1-13)
|
Depends: ${shlibs:Depends}, makedev (>= 2.3.1-13)
|
||||||
Suggests: gnupg-doc
|
Suggests: gnupg-doc
|
||||||
Conflicts: gpg-rsa, gpg-rsaref
|
Conflicts: gpg-rsa, gpg-rsaref, suidmanager (<< 0.50)
|
||||||
Replaces: gpg-rsa, gpg-rsaref
|
Replaces: gpg-rsa, gpg-rsaref
|
||||||
Provides: gpg-rsa, gpg-rsaref
|
Provides: gpg-rsa, gpg-rsaref
|
||||||
Description: GNU privacy guard - a free PGP replacement.
|
Description: GNU privacy guard - a free PGP replacement.
|
||||||
|
1
debian/lintian.override
vendored
Normal file
1
debian/lintian.override
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
gnupg: setuid-binary usr/bin/gpg 4755 root/root
|
2
debian/preinst
vendored
2
debian/preinst
vendored
@ -34,7 +34,7 @@ EOF
|
|||||||
If at any stage you need a pre-0.3.3 gnupg, you can find source and
|
If at any stage you need a pre-0.3.3 gnupg, you can find source and
|
||||||
binaries for i386, m68k, alpha, powerpc and hurd-i386 at
|
binaries for i386, m68k, alpha, powerpc and hurd-i386 at
|
||||||
|
|
||||||
http://james.nocrew.org/gnupg/
|
http://people.debian.org/~troup/gnupg/
|
||||||
|
|
||||||
Press return to continue
|
Press return to continue
|
||||||
EOF
|
EOF
|
||||||
|
9
debian/rules
vendored
9
debian/rules
vendored
@ -9,6 +9,8 @@
|
|||||||
# paternity under the Copyright, Designs and Patents Act 1988.)
|
# paternity under the Copyright, Designs and Patents Act 1988.)
|
||||||
# This file may have to be extensively modified
|
# This file may have to be extensively modified
|
||||||
|
|
||||||
|
STRIP=strip --remove-section=.comment --remove-section=.note
|
||||||
|
|
||||||
build:
|
build:
|
||||||
$(checkdir)
|
$(checkdir)
|
||||||
./configure --prefix=/usr --with-included-gettext
|
./configure --prefix=/usr --with-included-gettext
|
||||||
@ -34,11 +36,12 @@ binary-arch: checkroot build # test
|
|||||||
install -d debian/tmp/DEBIAN/
|
install -d debian/tmp/DEBIAN/
|
||||||
install -m 755 debian/preinst debian/prerm debian/postinst debian/postrm debian/tmp/DEBIAN/
|
install -m 755 debian/preinst debian/prerm debian/postinst debian/postrm debian/tmp/DEBIAN/
|
||||||
$(MAKE) prefix=`pwd`/debian/tmp/usr mandir=`pwd`/debian/tmp/usr/share/man install
|
$(MAKE) prefix=`pwd`/debian/tmp/usr mandir=`pwd`/debian/tmp/usr/share/man install
|
||||||
strip debian/tmp/usr/bin/*
|
$(STRIP) debian/tmp/usr/bin/*
|
||||||
|
chmod 4755 debian/tmp/usr/bin/gpg
|
||||||
chmod 644 debian/tmp/usr/lib/gnupg/*
|
chmod 644 debian/tmp/usr/lib/gnupg/*
|
||||||
sed -e "s#../g10/gpg#gpg#" < tools/lspgpot > debian/tmp/usr/bin/lspgpot
|
sed -e "s#../g10/gpg#gpg#" < tools/lspgpot > debian/tmp/usr/bin/lspgpot
|
||||||
chmod 755 debian/tmp/usr/bin/lspgpot
|
chmod 755 debian/tmp/usr/bin/lspgpot
|
||||||
strip --strip-unneeded debian/tmp/usr/lib/gnupg/*
|
$(STRIP) --strip-unneeded debian/tmp/usr/lib/gnupg/*
|
||||||
# In response to #53714... no idea if it's correct, will check with upstream
|
# In response to #53714... no idea if it's correct, will check with upstream
|
||||||
mv debian/tmp/usr/share/locale/es_ES debian/tmp/usr/share/locale/es
|
mv debian/tmp/usr/share/locale/es_ES debian/tmp/usr/share/locale/es
|
||||||
sed -e "s#/usr/local/#/usr/#" < debian/tmp/usr/share/man/man1/gpg.1 \
|
sed -e "s#/usr/local/#/usr/#" < debian/tmp/usr/share/man/man1/gpg.1 \
|
||||||
@ -57,6 +60,8 @@ binary-arch: checkroot build # test
|
|||||||
gzip -9v debian/tmp/usr/share/doc/gnupg/*
|
gzip -9v debian/tmp/usr/share/doc/gnupg/*
|
||||||
ln -s changelog.g10.gz debian/tmp/usr/share/doc/gnupg/changelog.gz
|
ln -s changelog.g10.gz debian/tmp/usr/share/doc/gnupg/changelog.gz
|
||||||
install -m 644 debian/copyright debian/tmp/usr/share/doc/gnupg/
|
install -m 644 debian/copyright debian/tmp/usr/share/doc/gnupg/
|
||||||
|
install -d debian/tmp/usr/share/lintian/overrides/
|
||||||
|
install -m 644 debian/lintian.override debian/tmp/usr/share/lintian/overrides/gnupg
|
||||||
dpkg-shlibdeps g10/gpg
|
dpkg-shlibdeps g10/gpg
|
||||||
dpkg-gencontrol -isp
|
dpkg-gencontrol -isp
|
||||||
chown -R root.root debian/tmp
|
chown -R root.root debian/tmp
|
||||||
|
@ -1,8 +1,53 @@
|
|||||||
|
2001-03-12 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* armor.c (parse_header_line): Removed double empty line check.
|
||||||
|
(parse_header_line): Replaced trim_trailing_ws with a counting
|
||||||
|
function so that we can adjust for the next read.
|
||||||
|
|
||||||
|
* options.skel: Fixed 3 typos. By Thomas Klausner. Replaced the
|
||||||
|
keyserver example by a better working server.
|
||||||
|
|
||||||
|
* parse-packet.c (parse_symkeyenc): Return Invalid_Packet on error.
|
||||||
|
(parse_pubkeyenc): Ditto.
|
||||||
|
(parse_onepass_sig): Ditto.
|
||||||
|
(parse_plaintext): Ditto.
|
||||||
|
(parse_encrypted): Ditto.
|
||||||
|
(parse_signature): Return error at other places too.
|
||||||
|
(parse_key): Ditto.
|
||||||
|
* g10.c (main): Set opt.list_packets to another value when invoked
|
||||||
|
with the --list-packets command.
|
||||||
|
* mainproc.c (do_proc_packets): Don's stop processing when running
|
||||||
|
under --list-packets command.
|
||||||
|
|
||||||
|
* signal.c (do_sigaction): Removed.
|
||||||
|
(init_one_signal): New to replace the above. Needed to support
|
||||||
|
systems without sigactions. Suggested by Dave Dykstra.
|
||||||
|
(got_fatal_signal,init_signals): Use the above here.
|
||||||
|
(do_block): Use sigset() if sigprocmask() is not available.
|
||||||
|
|
||||||
|
* armor.c (parse_hash_header): Test on TIGER192, which is the
|
||||||
|
correct value as per rfc2440. By Edwin Woudt.
|
||||||
|
|
||||||
2001-03-08 Werner Koch <wk@gnupg.org>
|
2001-03-08 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* misc.c: Include time.h. By James Troup.
|
||||||
|
|
||||||
* getkey.c: Re-enabled the unknown user Id and PK caches and
|
* getkey.c: Re-enabled the unknown user Id and PK caches and
|
||||||
increased their sizes.
|
increased their sizes.
|
||||||
|
|
||||||
|
* getkey.c (merge_selfsigs_main): Set expire date and continue
|
||||||
|
processing even if we found a revoked key.
|
||||||
|
(merge_selfsigs_subkeys): Ditto.
|
||||||
|
|
||||||
|
* packet.h: Add an is_revoked flag to the user_id packet.
|
||||||
|
* getkey.c (fixup_uidnode): Set that flag here.
|
||||||
|
(merge_selfsigs_main): Fix so that the latest signature is used to
|
||||||
|
find the self-signature for an UID.
|
||||||
|
* parse-packet.c (parse_user_id): Zero out all fields.
|
||||||
|
* mainproc.c (check_sig_and_print): Print the primary user ID
|
||||||
|
according the the node flag and then all other non-revoked user IDs.
|
||||||
|
(is_uid_revoked): Removed; it is now handled by the key selection code.
|
||||||
|
|
||||||
Changed the year list of all copyright notices.
|
Changed the year list of all copyright notices.
|
||||||
|
|
||||||
2001-03-07 Werner Koch <wk@gnupg.org>
|
2001-03-07 Werner Koch <wk@gnupg.org>
|
||||||
|
22
g10/armor.c
22
g10/armor.c
@ -245,7 +245,9 @@ parse_hash_header( const char *line )
|
|||||||
found |= 2;
|
found |= 2;
|
||||||
else if( !strncmp( s, "MD5", s2-s ) )
|
else if( !strncmp( s, "MD5", s2-s ) )
|
||||||
found |= 4;
|
found |= 4;
|
||||||
else if( !strncmp( s, "TIGER", s2-s ) )
|
else if( !strncmp( s, "TIGER192", s2-s ) )
|
||||||
|
found |= 8;
|
||||||
|
else if( !strncmp( s, "TIGER", s2-s ) ) /* used by old versions */
|
||||||
found |= 8;
|
found |= 8;
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
@ -312,19 +314,19 @@ is_armor_header( byte *line, unsigned len )
|
|||||||
* >0: Good header line
|
* >0: Good header line
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
parse_header_line( armor_filter_context_t *afx, byte *line, unsigned len )
|
parse_header_line( armor_filter_context_t *afx, byte *line, unsigned int len )
|
||||||
{
|
{
|
||||||
byte *p;
|
byte *p;
|
||||||
int hashes=0;
|
int hashes=0;
|
||||||
|
unsigned int len2;
|
||||||
|
|
||||||
/* fixme: why this double check? I think the original code w/o the
|
len2 = check_trailing_ws( line, len );
|
||||||
* second check for an empty line was done from an early draft of
|
if( !len2 ) {
|
||||||
* of OpenPGP - or simply very stupid code */
|
afx->buffer_pos = len2; /* (it is not the fine way to do it here) */
|
||||||
if( *line == '\n' || ( len && (*line == '\r' && line[1]=='\n') ) )
|
return 0; /* WS only: same as empty line */
|
||||||
return 0; /* empty line */
|
}
|
||||||
len = trim_trailing_ws( line, len );
|
len = len2;
|
||||||
if( !len )
|
line[len2] = 0;
|
||||||
return 0; /* WS only same as empty line */
|
|
||||||
|
|
||||||
p = strchr( line, ':');
|
p = strchr( line, ':');
|
||||||
if( !p || !p[1] ) {
|
if( !p || !p[1] ) {
|
||||||
|
@ -1574,7 +1574,7 @@ main( int argc, char **argv )
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case aListPackets:
|
case aListPackets:
|
||||||
opt.list_packets=1;
|
opt.list_packets=2;
|
||||||
default:
|
default:
|
||||||
if( argc > 1 )
|
if( argc > 1 )
|
||||||
wrong_args(_("[filename]"));
|
wrong_args(_("[filename]"));
|
||||||
|
40
g10/getkey.c
40
g10/getkey.c
@ -1354,12 +1354,13 @@ fixup_uidnode ( KBNODE uidnode, KBNODE signode )
|
|||||||
uid->created = 0; /* not created == invalid */
|
uid->created = 0; /* not created == invalid */
|
||||||
if ( !signode )
|
if ( !signode )
|
||||||
return; /* no self-signature */
|
return; /* no self-signature */
|
||||||
if ( IS_UID_REV ( sig ) )
|
if ( IS_UID_REV ( sig ) ) {
|
||||||
|
uid->is_revoked = 1;
|
||||||
return; /* has been revoked */
|
return; /* has been revoked */
|
||||||
|
}
|
||||||
|
|
||||||
uid->created = sig->timestamp; /* this one is okay */
|
uid->created = sig->timestamp; /* this one is okay */
|
||||||
|
|
||||||
|
|
||||||
/* store the key flags in the helper variable for later processing */
|
/* store the key flags in the helper variable for later processing */
|
||||||
uid->help_key_usage = 0;
|
uid->help_key_usage = 0;
|
||||||
p = parse_sig_subpkt ( sig->hashed_data, SIGSUBPKT_KEY_FLAGS, &n );
|
p = parse_sig_subpkt ( sig->hashed_data, SIGSUBPKT_KEY_FLAGS, &n );
|
||||||
@ -1434,13 +1435,15 @@ merge_selfsigs_main( KBNODE keyblock, int *r_revoked )
|
|||||||
; /* signature did not verify */
|
; /* signature did not verify */
|
||||||
else if ( IS_KEY_REV (sig) ){
|
else if ( IS_KEY_REV (sig) ){
|
||||||
/* key has been revoked - there is no way to override
|
/* key has been revoked - there is no way to override
|
||||||
* such a revocation, so we can stop now.
|
* such a revocation, so we theoretically can stop now.
|
||||||
* we can't cope with expiration times for revocations
|
* We should not cope with expiration times for revocations
|
||||||
* here because we have to assumethat an attacker can
|
* here because we have to assume that an attacker can
|
||||||
* generate all kinds of signatures.
|
* generate all kinds of signatures. However due to the
|
||||||
|
* fact that the key has been revoked it does not harm
|
||||||
|
* either and by continuing we gather some more info on
|
||||||
|
* that key.
|
||||||
*/
|
*/
|
||||||
*r_revoked = 1;
|
*r_revoked = 1;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
else if ( IS_KEY_SIG (sig) && sig->timestamp >= sigdate ) {
|
else if ( IS_KEY_SIG (sig) && sig->timestamp >= sigdate ) {
|
||||||
const byte *p;
|
const byte *p;
|
||||||
@ -1511,8 +1514,9 @@ merge_selfsigs_main( KBNODE keyblock, int *r_revoked )
|
|||||||
if ( sig->keyid[0] == kid[0] && sig->keyid[1]==kid[1] ) {
|
if ( sig->keyid[0] == kid[0] && sig->keyid[1]==kid[1] ) {
|
||||||
if ( check_key_signature( keyblock, k, NULL ) )
|
if ( check_key_signature( keyblock, k, NULL ) )
|
||||||
; /* signature did not verify */
|
; /* signature did not verify */
|
||||||
else if ( IS_UID_SIG (sig) || IS_UID_REV (sig)) {
|
else if ( (IS_UID_SIG (sig) || IS_UID_REV (sig))
|
||||||
/* Note: we allow to invalidated cert revocations
|
&& sig->timestamp >= sigdate ) {
|
||||||
|
/* Note: we allow to invalidate cert revocations
|
||||||
* by a newer signature. An attacker can't use this
|
* by a newer signature. An attacker can't use this
|
||||||
* because a key should be revoced with a key revocation.
|
* because a key should be revoced with a key revocation.
|
||||||
* The reason why we have to allow for that is that at
|
* The reason why we have to allow for that is that at
|
||||||
@ -1583,10 +1587,9 @@ merge_selfsigs_main( KBNODE keyblock, int *r_revoked )
|
|||||||
}
|
}
|
||||||
pk->pubkey_usage = key_usage;
|
pk->pubkey_usage = key_usage;
|
||||||
|
|
||||||
|
|
||||||
if ( !key_expire_seen ) {
|
if ( !key_expire_seen ) {
|
||||||
/* find the latest valid user ID with a key expiration set
|
/* find the latest valid user ID with a key expiration set
|
||||||
* Note, that this may be a diferent one from the above because
|
* Note, that this may be a different one from the above because
|
||||||
* some user IDs may have no expiration date set */
|
* some user IDs may have no expiration date set */
|
||||||
uiddate = 0;
|
uiddate = 0;
|
||||||
for(k=keyblock; k && k->pkt->pkttype != PKT_PUBLIC_SUBKEY;
|
for(k=keyblock; k && k->pkt->pkttype != PKT_PUBLIC_SUBKEY;
|
||||||
@ -1603,8 +1606,10 @@ merge_selfsigs_main( KBNODE keyblock, int *r_revoked )
|
|||||||
}
|
}
|
||||||
|
|
||||||
pk->has_expired = key_expire >= curtime? 0 : key_expire;
|
pk->has_expired = key_expire >= curtime? 0 : key_expire;
|
||||||
/* FIXME: we should see how to get rid of the expiretime fields */
|
if ( pk->version >= 4 )
|
||||||
|
pk->expiredate = key_expire;
|
||||||
|
/* Fixme: we should see how to get rid of the expiretime fields but
|
||||||
|
* this needs changes at other palces too. */
|
||||||
|
|
||||||
/* and now find the real primary user ID and delete all others */
|
/* and now find the real primary user ID and delete all others */
|
||||||
uiddate = uiddate2 = 0;
|
uiddate = uiddate2 = 0;
|
||||||
@ -1681,12 +1686,10 @@ merge_selfsigs_subkey( KBNODE keyblock, KBNODE subnode )
|
|||||||
if ( check_key_signature( keyblock, k, NULL ) )
|
if ( check_key_signature( keyblock, k, NULL ) )
|
||||||
; /* signature did not verify */
|
; /* signature did not verify */
|
||||||
else if ( IS_SUBKEY_REV (sig) ) {
|
else if ( IS_SUBKEY_REV (sig) ) {
|
||||||
/* key has been revoked - given the fact that it is easy
|
|
||||||
* to create a new subkey, it does not make sense to
|
|
||||||
* revive a revoked key. So we can stop here.
|
|
||||||
*/
|
|
||||||
subpk->is_revoked = 1;
|
subpk->is_revoked = 1;
|
||||||
return;
|
/* although we could stop now, we continue to
|
||||||
|
* figure out other information like the old expiration
|
||||||
|
* time */
|
||||||
}
|
}
|
||||||
else if ( IS_SUBKEY_SIG (sig) && sig->timestamp >= sigdate ) {
|
else if ( IS_SUBKEY_SIG (sig) && sig->timestamp >= sigdate ) {
|
||||||
p = parse_sig_subpkt( sig->hashed_data,
|
p = parse_sig_subpkt( sig->hashed_data,
|
||||||
@ -1735,6 +1738,7 @@ merge_selfsigs_subkey( KBNODE keyblock, KBNODE subnode )
|
|||||||
else
|
else
|
||||||
key_expire = 0;
|
key_expire = 0;
|
||||||
subpk->has_expired = key_expire >= curtime? 0 : key_expire;
|
subpk->has_expired = key_expire >= curtime? 0 : key_expire;
|
||||||
|
subpk->expiredate = key_expire;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
114
g10/mainproc.c
114
g10/mainproc.c
@ -245,8 +245,8 @@ proc_symkey_enc( CTX c, PACKET *pkt )
|
|||||||
PKT_symkey_enc *enc;
|
PKT_symkey_enc *enc;
|
||||||
|
|
||||||
enc = pkt->pkt.symkey_enc;
|
enc = pkt->pkt.symkey_enc;
|
||||||
if( enc->seskeylen )
|
if (enc->seskeylen)
|
||||||
log_error( "symkey_enc packet with session keys are not supported!\n");
|
log_error ("symkey_enc packet with session keys are not supported!\n");
|
||||||
else {
|
else {
|
||||||
c->last_was_session_key = 2;
|
c->last_was_session_key = 2;
|
||||||
c->dek = passphrase_to_dek( NULL, 0, enc->cipher_algo, &enc->s2k, 0 );
|
c->dek = passphrase_to_dek( NULL, 0, enc->cipher_algo, &enc->s2k, 0 );
|
||||||
@ -1040,7 +1040,9 @@ do_proc_packets( CTX c, IOBUF a )
|
|||||||
any_data = 1;
|
any_data = 1;
|
||||||
if( rc ) {
|
if( rc ) {
|
||||||
free_packet(pkt);
|
free_packet(pkt);
|
||||||
if( rc == G10ERR_INVALID_PACKET )
|
/* stop processing hwne an invalid packet has been encountered
|
||||||
|
* but don't do so when we are doing a --list-packet. */
|
||||||
|
if( rc == G10ERR_INVALID_PACKET && opt.list_packets != 2 )
|
||||||
break;
|
break;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1163,68 +1165,6 @@ do_proc_packets( CTX c, IOBUF a )
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* fixme: This code is a duplicate fro keylist.c and should be replaced
|
|
||||||
* by flags set in getkey.c. gpg 1.1 already does this */
|
|
||||||
static int
|
|
||||||
is_uid_revoked ( KBNODE keyblock, KBNODE uidnode, u32 *mainkid )
|
|
||||||
{
|
|
||||||
KBNODE node;
|
|
||||||
PKT_signature *selfsig = NULL; /* the latest valid self signature */
|
|
||||||
|
|
||||||
assert ( uidnode->pkt->pkttype == PKT_USER_ID );
|
|
||||||
|
|
||||||
/* first find out about the latest valid self-signature */
|
|
||||||
for ( node = uidnode->next; node; node = node->next ) {
|
|
||||||
PKT_signature *sig;
|
|
||||||
|
|
||||||
if ( node->pkt->pkttype == PKT_USER_ID
|
|
||||||
|| node->pkt->pkttype == PKT_PHOTO_ID
|
|
||||||
|| node->pkt->pkttype == PKT_PUBLIC_SUBKEY
|
|
||||||
|| node->pkt->pkttype == PKT_SECRET_SUBKEY )
|
|
||||||
break;
|
|
||||||
if ( node->pkt->pkttype != PKT_SIGNATURE )
|
|
||||||
continue;
|
|
||||||
sig = node->pkt->pkt.signature;
|
|
||||||
if ( mainkid[0] != sig->keyid[0] || mainkid[1] != sig->keyid[1] )
|
|
||||||
continue; /* we only care about self-signatures for now */
|
|
||||||
|
|
||||||
if ( (sig->sig_class&~3) == 0x10 ) { /* regular self signature */
|
|
||||||
if ( !check_key_signature( keyblock, node, NULL ) ) {
|
|
||||||
if ( !selfsig )
|
|
||||||
selfsig = sig; /* use the first valid sig */
|
|
||||||
else if ( sig->timestamp > selfsig->timestamp
|
|
||||||
&& sig->sig_class >= selfsig->sig_class )
|
|
||||||
selfsig = sig; /* but this one is newer */
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* watch out for a newer revocation */
|
|
||||||
for ( node = uidnode->next; node; node = node->next ) {
|
|
||||||
PKT_signature *sig;
|
|
||||||
|
|
||||||
if ( node->pkt->pkttype == PKT_USER_ID
|
|
||||||
|| node->pkt->pkttype == PKT_PHOTO_ID
|
|
||||||
|| node->pkt->pkttype == PKT_PUBLIC_SUBKEY
|
|
||||||
|| node->pkt->pkttype == PKT_SECRET_SUBKEY )
|
|
||||||
break;
|
|
||||||
if ( node->pkt->pkttype != PKT_SIGNATURE )
|
|
||||||
continue;
|
|
||||||
sig = node->pkt->pkt.signature;
|
|
||||||
if ( mainkid[0] != sig->keyid[0] || mainkid[1] != sig->keyid[1] )
|
|
||||||
continue; /* we only care about self-signatures */
|
|
||||||
|
|
||||||
if ( sig->sig_class == 0x30
|
|
||||||
&& (!selfsig || sig->timestamp >= selfsig->timestamp) ) {
|
|
||||||
if ( !check_key_signature( keyblock, node, NULL ) )
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
check_sig_and_print( CTX c, KBNODE node )
|
check_sig_and_print( CTX c, KBNODE node )
|
||||||
{
|
{
|
||||||
@ -1282,8 +1222,6 @@ check_sig_and_print( CTX c, KBNODE node )
|
|||||||
KBNODE un, keyblock;
|
KBNODE un, keyblock;
|
||||||
char *us;
|
char *us;
|
||||||
int count=0;
|
int count=0;
|
||||||
u32 mainkid[2];
|
|
||||||
int mainkid_ok = 0;
|
|
||||||
|
|
||||||
keyblock = get_pubkeyblock( sig->keyid );
|
keyblock = get_pubkeyblock( sig->keyid );
|
||||||
|
|
||||||
@ -1291,35 +1229,45 @@ check_sig_and_print( CTX c, KBNODE node )
|
|||||||
write_status_text( rc? STATUS_BADSIG : STATUS_GOODSIG, us );
|
write_status_text( rc? STATUS_BADSIG : STATUS_GOODSIG, us );
|
||||||
m_free(us);
|
m_free(us);
|
||||||
|
|
||||||
/* fixme: list only user ids which are valid and add information
|
/* find an print the primary user ID */
|
||||||
* about the trustworthiness of each user id, sort them.
|
|
||||||
* Integrate this with check_signatures_trust(). */
|
|
||||||
for( un=keyblock; un; un = un->next ) {
|
for( un=keyblock; un; un = un->next ) {
|
||||||
if ( !mainkid_ok && un->pkt->pkttype == PKT_PUBLIC_KEY ) {
|
if( un->pkt->pkttype != PKT_USER_ID )
|
||||||
keyid_from_pk( un->pkt->pkt.public_key, mainkid );
|
|
||||||
mainkid_ok = 1;
|
|
||||||
}
|
|
||||||
if( !mainkid_ok || un->pkt->pkttype != PKT_USER_ID )
|
|
||||||
continue;
|
continue;
|
||||||
if ( is_uid_revoked (keyblock, un, mainkid ) )
|
if ( un->pkt->pkt.user_id->is_revoked )
|
||||||
|
continue;
|
||||||
|
if ( !un->pkt->pkt.user_id->is_primary )
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if( !count++ )
|
log_info(rc? _("BAD signature from \"")
|
||||||
log_info(rc? _("BAD signature from \"")
|
: _("Good signature from \""));
|
||||||
: _("Good signature from \""));
|
|
||||||
else
|
|
||||||
log_info( _(" aka \""));
|
|
||||||
print_utf8_string( log_stream(), un->pkt->pkt.user_id->name,
|
print_utf8_string( log_stream(), un->pkt->pkt.user_id->name,
|
||||||
un->pkt->pkt.user_id->len );
|
un->pkt->pkt.user_id->len );
|
||||||
fputs("\"\n", log_stream() );
|
fputs("\"\n", log_stream() );
|
||||||
if( rc )
|
count++;
|
||||||
break; /* print only one id in this case */
|
|
||||||
}
|
}
|
||||||
if( !count ) { /* just in case that we have no userid */
|
if( !count ) { /* just in case that we have no userid */
|
||||||
log_info(rc? _("BAD signature from \"")
|
log_info(rc? _("BAD signature from \"")
|
||||||
: _("Good signature from \""));
|
: _("Good signature from \""));
|
||||||
fputs("[?]\"\n", log_stream() );
|
fputs("[?]\"\n", log_stream() );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* If we have a good signature and already printed
|
||||||
|
* the primary user ID, print all the other user IDs */
|
||||||
|
if ( count && !rc ) {
|
||||||
|
for( un=keyblock; un; un = un->next ) {
|
||||||
|
if( un->pkt->pkttype != PKT_USER_ID )
|
||||||
|
continue;
|
||||||
|
if ( un->pkt->pkt.user_id->is_revoked )
|
||||||
|
continue;
|
||||||
|
if ( un->pkt->pkt.user_id->is_primary )
|
||||||
|
continue;
|
||||||
|
|
||||||
|
log_info( _(" aka \""));
|
||||||
|
print_utf8_string( log_stream(), un->pkt->pkt.user_id->name,
|
||||||
|
un->pkt->pkt.user_id->len );
|
||||||
|
fputs("\"\n", log_stream() );
|
||||||
|
}
|
||||||
|
}
|
||||||
release_kbnode( keyblock );
|
release_kbnode( keyblock );
|
||||||
if( !rc )
|
if( !rc )
|
||||||
print_notation_data( sig );
|
print_notation_data( sig );
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
#include <asm/unistd.h>
|
#include <asm/unistd.h>
|
||||||
#endif
|
#endif
|
||||||
#ifdef HAVE_SETRLIMIT
|
#ifdef HAVE_SETRLIMIT
|
||||||
|
#include <time.h>
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/resource.h>
|
#include <sys/resource.h>
|
||||||
#endif
|
#endif
|
||||||
|
@ -44,7 +44,7 @@ struct {
|
|||||||
int fingerprint; /* list fingerprints */
|
int fingerprint; /* list fingerprints */
|
||||||
int list_sigs; /* list signatures */
|
int list_sigs; /* list signatures */
|
||||||
int no_armor;
|
int no_armor;
|
||||||
int list_packets; /* list-packets mode */
|
int list_packets; /* list-packets mode: 1=normal, 2=invoked by command*/
|
||||||
int def_cipher_algo;
|
int def_cipher_algo;
|
||||||
int force_v3_sigs;
|
int force_v3_sigs;
|
||||||
int force_mdc;
|
int force_mdc;
|
||||||
|
@ -48,7 +48,7 @@ force-v3-sigs
|
|||||||
|
|
||||||
# Because some mailers change lines starting with "From " to ">From "
|
# Because some mailers change lines starting with "From " to ">From "
|
||||||
# it is good to handle such lines in a special way when creating
|
# it is good to handle such lines in a special way when creating
|
||||||
# cleartext signatures; all other PGP versions it this way too.
|
# cleartext signatures; all other PGP versions do it this way too.
|
||||||
# To enable full OpenPGP compliance you have to remove this option.
|
# To enable full OpenPGP compliance you have to remove this option.
|
||||||
|
|
||||||
escape-from-lines
|
escape-from-lines
|
||||||
@ -81,12 +81,12 @@ lock-once
|
|||||||
|
|
||||||
|
|
||||||
# GnuPG can import a key from a HKP keyerver if one is missing
|
# GnuPG can import a key from a HKP keyerver if one is missing
|
||||||
# for sercain operations. Is you set this option to a keyserver
|
# for certain operations. Is you set this option to a keyserver
|
||||||
# you will be asked in such a case whether GnuPG should try to
|
# you will be asked in such a case whether GnuPG should try to
|
||||||
# import the key from that server (server do syncronize with each
|
# import the key from that server (server do syncronize with each
|
||||||
# others and DNS Round-Robin may give you a random server each time).
|
# other and DNS Round-Robin may give you a random server each time).
|
||||||
# Use "host -l pgp.net | grep www" to figure out a keyserver.
|
# Use "host -l pgp.net | grep www" to figure out a keyserver.
|
||||||
#keyserver wwwkeys.eu.pgp.net
|
#keyserver wwwkeys.nl.pgp.net
|
||||||
|
|
||||||
# The environment variable http_proxy is only used when the
|
# The environment variable http_proxy is only used when the
|
||||||
# this option is set.
|
# this option is set.
|
||||||
|
@ -178,6 +178,7 @@ typedef struct {
|
|||||||
int help_key_usage;
|
int help_key_usage;
|
||||||
u32 help_key_expire;
|
u32 help_key_expire;
|
||||||
int is_primary;
|
int is_primary;
|
||||||
|
int is_revoked;
|
||||||
u32 created; /* according to the self-signature */
|
u32 created; /* according to the self-signature */
|
||||||
char name[1];
|
char name[1];
|
||||||
} PKT_user_id;
|
} PKT_user_id;
|
||||||
|
@ -576,19 +576,23 @@ static int
|
|||||||
parse_symkeyenc( IOBUF inp, int pkttype, unsigned long pktlen, PACKET *packet )
|
parse_symkeyenc( IOBUF inp, int pkttype, unsigned long pktlen, PACKET *packet )
|
||||||
{
|
{
|
||||||
PKT_symkey_enc *k;
|
PKT_symkey_enc *k;
|
||||||
|
int rc = 0;
|
||||||
int i, version, s2kmode, cipher_algo, hash_algo, seskeylen, minlen;
|
int i, version, s2kmode, cipher_algo, hash_algo, seskeylen, minlen;
|
||||||
|
|
||||||
if( pktlen < 4 ) {
|
if( pktlen < 4 ) {
|
||||||
log_error("packet(%d) too short\n", pkttype);
|
log_error("packet(%d) too short\n", pkttype);
|
||||||
|
rc = G10ERR_INVALID_PACKET;
|
||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
version = iobuf_get_noeof(inp); pktlen--;
|
version = iobuf_get_noeof(inp); pktlen--;
|
||||||
if( version != 4 ) {
|
if( version != 4 ) {
|
||||||
log_error("packet(%d) with unknown version %d\n", pkttype, version);
|
log_error("packet(%d) with unknown version %d\n", pkttype, version);
|
||||||
|
rc = G10ERR_INVALID_PACKET;
|
||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
if( pktlen > 200 ) { /* (we encode the seskeylen in a byte) */
|
if( pktlen > 200 ) { /* (we encode the seskeylen in a byte) */
|
||||||
log_error("packet(%d) too large\n", pkttype);
|
log_error("packet(%d) too large\n", pkttype);
|
||||||
|
rc = G10ERR_INVALID_PACKET;
|
||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
cipher_algo = iobuf_get_noeof(inp); pktlen--;
|
cipher_algo = iobuf_get_noeof(inp); pktlen--;
|
||||||
@ -610,6 +614,7 @@ parse_symkeyenc( IOBUF inp, int pkttype, unsigned long pktlen, PACKET *packet )
|
|||||||
}
|
}
|
||||||
if( minlen > pktlen ) {
|
if( minlen > pktlen ) {
|
||||||
log_error("packet with S2K %d too short\n", s2kmode );
|
log_error("packet with S2K %d too short\n", s2kmode );
|
||||||
|
rc = G10ERR_INVALID_PACKET;
|
||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
seskeylen = pktlen - minlen;
|
seskeylen = pktlen - minlen;
|
||||||
@ -646,24 +651,27 @@ parse_symkeyenc( IOBUF inp, int pkttype, unsigned long pktlen, PACKET *packet )
|
|||||||
|
|
||||||
leave:
|
leave:
|
||||||
skip_rest(inp, pktlen);
|
skip_rest(inp, pktlen);
|
||||||
return 0;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
parse_pubkeyenc( IOBUF inp, int pkttype, unsigned long pktlen, PACKET *packet )
|
parse_pubkeyenc( IOBUF inp, int pkttype, unsigned long pktlen, PACKET *packet )
|
||||||
{
|
{
|
||||||
unsigned n;
|
unsigned int n;
|
||||||
|
int rc = 0;
|
||||||
int i, ndata;
|
int i, ndata;
|
||||||
PKT_pubkey_enc *k;
|
PKT_pubkey_enc *k;
|
||||||
|
|
||||||
k = packet->pkt.pubkey_enc = m_alloc_clear(sizeof *packet->pkt.pubkey_enc);
|
k = packet->pkt.pubkey_enc = m_alloc_clear(sizeof *packet->pkt.pubkey_enc);
|
||||||
if( pktlen < 12 ) {
|
if( pktlen < 12 ) {
|
||||||
log_error("packet(%d) too short\n", pkttype);
|
log_error("packet(%d) too short\n", pkttype);
|
||||||
|
rc = G10ERR_INVALID_PACKET;
|
||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
k->version = iobuf_get_noeof(inp); pktlen--;
|
k->version = iobuf_get_noeof(inp); pktlen--;
|
||||||
if( k->version != 2 && k->version != 3 ) {
|
if( k->version != 2 && k->version != 3 ) {
|
||||||
log_error("packet(%d) with unknown version %d\n", pkttype, k->version);
|
log_error("packet(%d) with unknown version %d\n", pkttype, k->version);
|
||||||
|
rc = G10ERR_INVALID_PACKET;
|
||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
k->keyid[0] = read_32(inp); pktlen -= 4;
|
k->keyid[0] = read_32(inp); pktlen -= 4;
|
||||||
@ -695,7 +703,7 @@ parse_pubkeyenc( IOBUF inp, int pkttype, unsigned long pktlen, PACKET *packet )
|
|||||||
|
|
||||||
leave:
|
leave:
|
||||||
skip_rest(inp, pktlen);
|
skip_rest(inp, pktlen);
|
||||||
return 0;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1088,6 +1096,7 @@ parse_signature( IOBUF inp, int pkttype, unsigned long pktlen,
|
|||||||
is_v4=1;
|
is_v4=1;
|
||||||
else if( sig->version != 2 && sig->version != 3 ) {
|
else if( sig->version != 2 && sig->version != 3 ) {
|
||||||
log_error("packet(%d) with unknown version %d\n", pkttype, sig->version);
|
log_error("packet(%d) with unknown version %d\n", pkttype, sig->version);
|
||||||
|
rc = G10ERR_INVALID_PACKET;
|
||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1223,14 +1232,17 @@ parse_onepass_sig( IOBUF inp, int pkttype, unsigned long pktlen,
|
|||||||
PKT_onepass_sig *ops )
|
PKT_onepass_sig *ops )
|
||||||
{
|
{
|
||||||
int version;
|
int version;
|
||||||
|
int rc = 0;
|
||||||
|
|
||||||
if( pktlen < 13 ) {
|
if( pktlen < 13 ) {
|
||||||
log_error("packet(%d) too short\n", pkttype);
|
log_error("packet(%d) too short\n", pkttype);
|
||||||
|
rc = G10ERR_INVALID_PACKET;
|
||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
version = iobuf_get_noeof(inp); pktlen--;
|
version = iobuf_get_noeof(inp); pktlen--;
|
||||||
if( version != 3 ) {
|
if( version != 3 ) {
|
||||||
log_error("onepass_sig with unknown version %d\n", version);
|
log_error("onepass_sig with unknown version %d\n", version);
|
||||||
|
rc = G10ERR_INVALID_PACKET;
|
||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
ops->sig_class = iobuf_get_noeof(inp); pktlen--;
|
ops->sig_class = iobuf_get_noeof(inp); pktlen--;
|
||||||
@ -1249,7 +1261,7 @@ parse_onepass_sig( IOBUF inp, int pkttype, unsigned long pktlen,
|
|||||||
|
|
||||||
leave:
|
leave:
|
||||||
skip_rest(inp, pktlen);
|
skip_rest(inp, pktlen);
|
||||||
return 0;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1289,11 +1301,13 @@ parse_key( IOBUF inp, int pkttype, unsigned long pktlen,
|
|||||||
is_v4=1;
|
is_v4=1;
|
||||||
else if( version != 2 && version != 3 ) {
|
else if( version != 2 && version != 3 ) {
|
||||||
log_error("packet(%d) with unknown version %d\n", pkttype, version);
|
log_error("packet(%d) with unknown version %d\n", pkttype, version);
|
||||||
|
rc = G10ERR_INVALID_PACKET;
|
||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( pktlen < 11 ) {
|
if( pktlen < 11 ) {
|
||||||
log_error("packet(%d) too short\n", pkttype);
|
log_error("packet(%d) too short\n", pkttype);
|
||||||
|
rc = G10ERR_INVALID_PACKET;
|
||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1572,6 +1586,12 @@ parse_user_id( IOBUF inp, int pkttype, unsigned long pktlen, PACKET *packet )
|
|||||||
packet->pkt.user_id->len = pktlen;
|
packet->pkt.user_id->len = pktlen;
|
||||||
packet->pkt.user_id->photo = NULL;
|
packet->pkt.user_id->photo = NULL;
|
||||||
packet->pkt.user_id->photolen = 0;
|
packet->pkt.user_id->photolen = 0;
|
||||||
|
packet->pkt.user_id->is_primary = 0;
|
||||||
|
packet->pkt.user_id->is_revoked = 0;
|
||||||
|
packet->pkt.user_id->created = 0;
|
||||||
|
packet->pkt.user_id->help_key_usage = 0;
|
||||||
|
packet->pkt.user_id->help_key_expire = 0;
|
||||||
|
|
||||||
p = packet->pkt.user_id->name;
|
p = packet->pkt.user_id->name;
|
||||||
for( ; pktlen; pktlen--, p++ )
|
for( ; pktlen; pktlen--, p++ )
|
||||||
*p = iobuf_get_noeof(inp);
|
*p = iobuf_get_noeof(inp);
|
||||||
@ -1580,7 +1600,7 @@ parse_user_id( IOBUF inp, int pkttype, unsigned long pktlen, PACKET *packet )
|
|||||||
if( list_mode ) {
|
if( list_mode ) {
|
||||||
int n = packet->pkt.user_id->len;
|
int n = packet->pkt.user_id->len;
|
||||||
printf(":user ID packet: \"");
|
printf(":user ID packet: \"");
|
||||||
/* fixme: Hey why don't we replace this wioth print_string?? */
|
/* fixme: Hey why don't we replace this with print_string?? */
|
||||||
for(p=packet->pkt.user_id->name; n; p++, n-- ) {
|
for(p=packet->pkt.user_id->name; n; p++, n-- ) {
|
||||||
if( *p >= ' ' && *p <= 'z' )
|
if( *p >= ' ' && *p <= 'z' )
|
||||||
putchar(*p);
|
putchar(*p);
|
||||||
@ -1663,6 +1683,7 @@ static int
|
|||||||
parse_plaintext( IOBUF inp, int pkttype, unsigned long pktlen,
|
parse_plaintext( IOBUF inp, int pkttype, unsigned long pktlen,
|
||||||
PACKET *pkt, int new_ctb )
|
PACKET *pkt, int new_ctb )
|
||||||
{
|
{
|
||||||
|
int rc = 0;
|
||||||
int mode, namelen;
|
int mode, namelen;
|
||||||
PKT_plaintext *pt;
|
PKT_plaintext *pt;
|
||||||
byte *p;
|
byte *p;
|
||||||
@ -1670,6 +1691,7 @@ parse_plaintext( IOBUF inp, int pkttype, unsigned long pktlen,
|
|||||||
|
|
||||||
if( pktlen && pktlen < 6 ) {
|
if( pktlen && pktlen < 6 ) {
|
||||||
log_error("packet(%d) too short (%lu)\n", pkttype, (ulong)pktlen);
|
log_error("packet(%d) too short (%lu)\n", pkttype, (ulong)pktlen);
|
||||||
|
rc = G10ERR_INVALID_PACKET;
|
||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
mode = iobuf_get_noeof(inp); if( pktlen ) pktlen--;
|
mode = iobuf_get_noeof(inp); if( pktlen ) pktlen--;
|
||||||
@ -1709,7 +1731,7 @@ parse_plaintext( IOBUF inp, int pkttype, unsigned long pktlen,
|
|||||||
}
|
}
|
||||||
|
|
||||||
leave:
|
leave:
|
||||||
return 0;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1738,6 +1760,7 @@ static int
|
|||||||
parse_encrypted( IOBUF inp, int pkttype, unsigned long pktlen,
|
parse_encrypted( IOBUF inp, int pkttype, unsigned long pktlen,
|
||||||
PACKET *pkt, int new_ctb )
|
PACKET *pkt, int new_ctb )
|
||||||
{
|
{
|
||||||
|
int rc = 0;
|
||||||
PKT_encrypted *ed;
|
PKT_encrypted *ed;
|
||||||
unsigned long orig_pktlen = pktlen;
|
unsigned long orig_pktlen = pktlen;
|
||||||
|
|
||||||
@ -1757,12 +1780,14 @@ parse_encrypted( IOBUF inp, int pkttype, unsigned long pktlen,
|
|||||||
log_error("encrypted_mdc packet with unknown version %d\n",
|
log_error("encrypted_mdc packet with unknown version %d\n",
|
||||||
version);
|
version);
|
||||||
/*skip_rest(inp, pktlen); should we really do this? */
|
/*skip_rest(inp, pktlen); should we really do this? */
|
||||||
|
rc = G10ERR_INVALID_PACKET;
|
||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
ed->mdc_method = DIGEST_ALGO_SHA1;
|
ed->mdc_method = DIGEST_ALGO_SHA1;
|
||||||
}
|
}
|
||||||
if( orig_pktlen && pktlen < 10 ) { /* actually this is blocksize+2 */
|
if( orig_pktlen && pktlen < 10 ) { /* actually this is blocksize+2 */
|
||||||
log_error("packet(%d) too short\n", pkttype);
|
log_error("packet(%d) too short\n", pkttype);
|
||||||
|
rc = G10ERR_INVALID_PACKET;
|
||||||
skip_rest(inp, pktlen);
|
skip_rest(inp, pktlen);
|
||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
@ -1779,7 +1804,7 @@ parse_encrypted( IOBUF inp, int pkttype, unsigned long pktlen,
|
|||||||
pktlen = 0;
|
pktlen = 0;
|
||||||
|
|
||||||
leave:
|
leave:
|
||||||
return 0;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1787,6 +1812,7 @@ static int
|
|||||||
parse_mdc( IOBUF inp, int pkttype, unsigned long pktlen,
|
parse_mdc( IOBUF inp, int pkttype, unsigned long pktlen,
|
||||||
PACKET *pkt, int new_ctb )
|
PACKET *pkt, int new_ctb )
|
||||||
{
|
{
|
||||||
|
int rc = 0;
|
||||||
PKT_mdc *mdc;
|
PKT_mdc *mdc;
|
||||||
byte *p;
|
byte *p;
|
||||||
|
|
||||||
@ -1795,6 +1821,7 @@ parse_mdc( IOBUF inp, int pkttype, unsigned long pktlen,
|
|||||||
printf(":mdc packet: length=%lu\n", pktlen);
|
printf(":mdc packet: length=%lu\n", pktlen);
|
||||||
if( !new_ctb || pktlen != 20 ) {
|
if( !new_ctb || pktlen != 20 ) {
|
||||||
log_error("mdc_packet with invalid encoding\n");
|
log_error("mdc_packet with invalid encoding\n");
|
||||||
|
rc = G10ERR_INVALID_PACKET;
|
||||||
goto leave;
|
goto leave;
|
||||||
}
|
}
|
||||||
p = mdc->hash;
|
p = mdc->hash;
|
||||||
@ -1802,7 +1829,7 @@ parse_mdc( IOBUF inp, int pkttype, unsigned long pktlen,
|
|||||||
*p = iobuf_get_noeof(inp);
|
*p = iobuf_get_noeof(inp);
|
||||||
|
|
||||||
leave:
|
leave:
|
||||||
return 0;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -430,7 +430,7 @@ sign_file( STRLIST filenames, int detached, STRLIST locusr,
|
|||||||
if( !(filesize = iobuf_get_filelength(inp)) )
|
if( !(filesize = iobuf_get_filelength(inp)) )
|
||||||
log_info(_("WARNING: `%s' is an empty file\n"), fname );
|
log_info(_("WARNING: `%s' is an empty file\n"), fname );
|
||||||
/* we can't yet encode the length of very large files,
|
/* we can't yet encode the length of very large files,
|
||||||
* so we switch to partial lengthn encoding in this case */
|
* so we switch to partial length encoding in this case */
|
||||||
if ( filesize >= IOBUF_FILELENGTH_LIMIT )
|
if ( filesize >= IOBUF_FILELENGTH_LIMIT )
|
||||||
filesize = 0;
|
filesize = 0;
|
||||||
|
|
||||||
|
114
g10/signal.c
114
g10/signal.c
@ -38,6 +38,36 @@
|
|||||||
static volatile int caught_fatal_sig = 0;
|
static volatile int caught_fatal_sig = 0;
|
||||||
static volatile int caught_sigusr1 = 0;
|
static volatile int caught_sigusr1 = 0;
|
||||||
|
|
||||||
|
static void
|
||||||
|
init_one_signal (int sig, RETSIGTYPE (*handler)(int), int check_ign )
|
||||||
|
{
|
||||||
|
#ifndef HAVE_DOSISH_SYSTEM
|
||||||
|
#if HAVE_SIGACTION
|
||||||
|
struct sigaction oact, nact;
|
||||||
|
|
||||||
|
if (check_ign) {
|
||||||
|
/* we don't want to change an IGN handler */
|
||||||
|
sigaction (sig, NULL, &oact );
|
||||||
|
if (oact.sa_handler == SIG_IGN )
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
nact.sa_handler = handler;
|
||||||
|
sigemptyset (&nact.sa_mask);
|
||||||
|
nact.sa_flags = 0;
|
||||||
|
sigaction ( sig, &nact, NULL);
|
||||||
|
#else
|
||||||
|
RETSIGTYPE (*ohandler)(int);
|
||||||
|
|
||||||
|
ohandler = signal (sig, handler);
|
||||||
|
if (check_ign && ohandler == SIG_IGN) {
|
||||||
|
/* Change it back if it was already set to IGN */
|
||||||
|
signal (sig, SIG_IGN);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif /*!HAVE_DOSISH_SYSTEM*/
|
||||||
|
}
|
||||||
|
|
||||||
static const char *
|
static const char *
|
||||||
get_signal_name( int signum )
|
get_signal_name( int signum )
|
||||||
{
|
{
|
||||||
@ -66,18 +96,9 @@ got_fatal_signal( int sig )
|
|||||||
s = get_signal_name(sig); write(2, s, strlen(s) );
|
s = get_signal_name(sig); write(2, s, strlen(s) );
|
||||||
write(2, " caught ... exiting\n", 21 );
|
write(2, " caught ... exiting\n", 21 );
|
||||||
|
|
||||||
#ifndef HAVE_DOSISH_SYSTEM
|
/* reset action to default action and raise signal again */
|
||||||
{ /* reset action to default action and raise signal again */
|
init_one_signal (sig, SIG_DFL, 0);
|
||||||
struct sigaction nact;
|
|
||||||
nact.sa_handler = SIG_DFL;
|
|
||||||
sigemptyset( &nact.sa_mask );
|
|
||||||
nact.sa_flags = 0;
|
|
||||||
sigaction( sig, &nact, NULL);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
remove_lockfiles ();
|
remove_lockfiles ();
|
||||||
|
|
||||||
raise( sig );
|
raise( sig );
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -88,37 +109,18 @@ got_usr_signal( int sig )
|
|||||||
caught_sigusr1 = 1;
|
caught_sigusr1 = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef HAVE_DOSISH_SYSTEM
|
|
||||||
static void
|
|
||||||
do_sigaction( int sig, struct sigaction *nact )
|
|
||||||
{
|
|
||||||
struct sigaction oact;
|
|
||||||
|
|
||||||
sigaction( sig, NULL, &oact );
|
|
||||||
if( oact.sa_handler != SIG_IGN )
|
|
||||||
sigaction( sig, nact, NULL);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
void
|
void
|
||||||
init_signals()
|
init_signals()
|
||||||
{
|
{
|
||||||
#ifndef HAVE_DOSISH_SYSTEM
|
#ifndef HAVE_DOSISH_SYSTEM
|
||||||
struct sigaction nact;
|
init_one_signal (SIGINT, got_fatal_signal, 1 );
|
||||||
|
init_one_signal (SIGHUP, got_fatal_signal, 1 );
|
||||||
nact.sa_handler = got_fatal_signal;
|
init_one_signal (SIGTERM, got_fatal_signal, 1 );
|
||||||
sigemptyset( &nact.sa_mask );
|
init_one_signal (SIGQUIT, got_fatal_signal, 1 );
|
||||||
nact.sa_flags = 0;
|
init_one_signal (SIGSEGV, got_fatal_signal, 1 );
|
||||||
|
init_one_signal (SIGUSR1, got_usr_signal, 0 );
|
||||||
do_sigaction( SIGINT, &nact );
|
init_one_signal (SIGPIPE, SIG_IGN, 0 );
|
||||||
do_sigaction( SIGHUP, &nact );
|
|
||||||
do_sigaction( SIGTERM, &nact );
|
|
||||||
do_sigaction( SIGQUIT, &nact );
|
|
||||||
do_sigaction( SIGSEGV, &nact );
|
|
||||||
nact.sa_handler = got_usr_signal;
|
|
||||||
sigaction( SIGUSR1, &nact, NULL );
|
|
||||||
nact.sa_handler = SIG_IGN;
|
|
||||||
sigaction( SIGPIPE, &nact, NULL );
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,6 +129,7 @@ void
|
|||||||
pause_on_sigusr( int which )
|
pause_on_sigusr( int which )
|
||||||
{
|
{
|
||||||
#ifndef HAVE_DOSISH_SYSTEM
|
#ifndef HAVE_DOSISH_SYSTEM
|
||||||
|
#ifdef HAVE_SIGPROCMASK
|
||||||
sigset_t mask, oldmask;
|
sigset_t mask, oldmask;
|
||||||
|
|
||||||
assert( which == 1 );
|
assert( which == 1 );
|
||||||
@ -138,6 +141,14 @@ pause_on_sigusr( int which )
|
|||||||
sigsuspend( &oldmask );
|
sigsuspend( &oldmask );
|
||||||
caught_sigusr1 = 0;
|
caught_sigusr1 = 0;
|
||||||
sigprocmask( SIG_UNBLOCK, &mask, NULL );
|
sigprocmask( SIG_UNBLOCK, &mask, NULL );
|
||||||
|
#else
|
||||||
|
assert (which == 1);
|
||||||
|
sighold (SIGUSR1);
|
||||||
|
while (!caught_sigusr1)
|
||||||
|
sigpause(SIGUSR1);
|
||||||
|
caught_sigusr1 = 0;
|
||||||
|
sigrelse(SIGUSR1); ????
|
||||||
|
#endif /*!HAVE_SIGPROCMASK*/
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -145,12 +156,13 @@ pause_on_sigusr( int which )
|
|||||||
static void
|
static void
|
||||||
do_block( int block )
|
do_block( int block )
|
||||||
{
|
{
|
||||||
#ifndef HAVE_DOSISH_SYSTEM
|
#ifndef HAVE_DOSISH_SYSTEM
|
||||||
static int is_blocked;
|
static int is_blocked;
|
||||||
|
#ifdef HAVE_SIGPROCMASK
|
||||||
static sigset_t oldmask;
|
static sigset_t oldmask;
|
||||||
|
|
||||||
if( block ) {
|
if( block ) {
|
||||||
sigset_t newmask;
|
sigset_t newmask;
|
||||||
|
|
||||||
if( is_blocked )
|
if( is_blocked )
|
||||||
log_bug("signals are already blocked\n");
|
log_bug("signals are already blocked\n");
|
||||||
@ -164,7 +176,28 @@ do_block( int block )
|
|||||||
sigprocmask( SIG_SETMASK, &oldmask, NULL );
|
sigprocmask( SIG_SETMASK, &oldmask, NULL );
|
||||||
is_blocked = 0;
|
is_blocked = 0;
|
||||||
}
|
}
|
||||||
#endif /*HAVE_DOSISH_SYSTEM*/
|
#else /*!HAVE_SIGPROCMASK*/
|
||||||
|
static void (*disposition[MAXSIG])();
|
||||||
|
int sig;
|
||||||
|
|
||||||
|
if( block ) {
|
||||||
|
if( is_blocked )
|
||||||
|
log_bug("signals are already blocked\n");
|
||||||
|
for (sig=1; sig < MAXSIG; sig++) {
|
||||||
|
disposition[sig] = sigset (sig, SIG_HOLD);
|
||||||
|
}
|
||||||
|
is_blocked = 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if( !is_blocked )
|
||||||
|
log_bug("signals are not blocked\n");
|
||||||
|
for (sig=1; sig < MAXSIG; sig++) {
|
||||||
|
sigset (sig, disposition[sig]);
|
||||||
|
}
|
||||||
|
is_blocked = 0;
|
||||||
|
}
|
||||||
|
#endif /*!HAVE_SIGPROCMASK*/
|
||||||
|
#endif /*HAVE_DOSISH_SYSTEM*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -179,4 +212,3 @@ unblock_all_signals()
|
|||||||
{
|
{
|
||||||
do_block(0);
|
do_block(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -172,8 +172,12 @@ STRLIST strlist_last( STRLIST node );
|
|||||||
const char *memistr( const char *buf, size_t buflen, const char *sub );
|
const char *memistr( const char *buf, size_t buflen, const char *sub );
|
||||||
char *mem2str( char *, const void *, size_t);
|
char *mem2str( char *, const void *, size_t);
|
||||||
char *trim_spaces( char *string );
|
char *trim_spaces( char *string );
|
||||||
unsigned trim_trailing_chars( byte *line, unsigned len, const char *trimchars);
|
unsigned int trim_trailing_chars( byte *line, unsigned int len,
|
||||||
unsigned trim_trailing_ws( byte *line, unsigned len );
|
const char *trimchars);
|
||||||
|
unsigned int trim_trailing_ws( byte *line, unsigned len );
|
||||||
|
unsigned int check_trailing_chars( const byte *line, unsigned int len,
|
||||||
|
const char *trimchars );
|
||||||
|
unsigned int check_trailing_ws( const byte *line, unsigned int len );
|
||||||
int string_count_chr( const char *string, int c );
|
int string_count_chr( const char *string, int c );
|
||||||
int set_native_charset( const char *newset );
|
int set_native_charset( const char *newset );
|
||||||
const char* get_native_charset(void);
|
const char* get_native_charset(void);
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2001-03-12 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* config.guess, config.sub: Replaced with the current GNU CVS ones.
|
||||||
|
|
||||||
2001-01-18 Werner Koch <wk@gnupg.org>
|
2001-01-18 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
* autogen.sh: New options --build-w32
|
* autogen.sh: New options --build-w32
|
||||||
|
552
scripts/config.guess
vendored
552
scripts/config.guess
vendored
@ -1,9 +1,9 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Attempt to guess a canonical system name.
|
# Attempt to guess a canonical system name.
|
||||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
|
||||||
# Free Software Foundation, Inc.
|
# Free Software Foundation, Inc.
|
||||||
|
|
||||||
version='2000-07-27'
|
timestamp='2001-03-06'
|
||||||
|
|
||||||
# This file is free software; you can redistribute it and/or modify it
|
# 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
|
# under the terms of the GNU General Public License as published by
|
||||||
@ -32,30 +32,41 @@ version='2000-07-27'
|
|||||||
# exits with 0. Otherwise, it exits with 1.
|
# exits with 0. Otherwise, it exits with 1.
|
||||||
#
|
#
|
||||||
# The plan is that this can be called by configure scripts if you
|
# The plan is that this can be called by configure scripts if you
|
||||||
# don't specify an explicit system type (host/target name).
|
# don't specify an explicit build system type.
|
||||||
#
|
|
||||||
# Only a few systems have been added to this list; please add others
|
|
||||||
# (but try to keep the structure clean).
|
|
||||||
#
|
|
||||||
|
|
||||||
me=`echo "$0" | sed -e 's,.*/,,'`
|
me=`echo "$0" | sed -e 's,.*/,,'`
|
||||||
|
|
||||||
usage="\
|
usage="\
|
||||||
Usage: $0 [OPTION]
|
Usage: $0 [OPTION]
|
||||||
|
|
||||||
Output the configuration name of this system.
|
Output the configuration name of the system \`$me' is run on.
|
||||||
|
|
||||||
Operation modes:
|
Operation modes:
|
||||||
-h, --help print this help, then exit
|
-h, --help print this help, then exit
|
||||||
-V, --version print version number, then exit"
|
-t, --time-stamp print date of last modification, then exit
|
||||||
|
-v, --version print version number, then exit
|
||||||
|
|
||||||
|
Report bugs and patches to <config-patches@gnu.org>."
|
||||||
|
|
||||||
|
version="\
|
||||||
|
GNU config.guess ($timestamp)
|
||||||
|
|
||||||
|
Originally written by Per Bothner.
|
||||||
|
Copyright (C) 1992, 93, 94, 95, 96, 97, 98, 99, 2000
|
||||||
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This is free software; see the source for copying conditions. There is NO
|
||||||
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||||
|
|
||||||
help="
|
help="
|
||||||
Try \`$me --help' for more information."
|
Try \`$me --help' for more information."
|
||||||
|
|
||||||
# Parse command line
|
# Parse command line
|
||||||
while test $# -gt 0 ; do
|
while test $# -gt 0 ; do
|
||||||
case "$1" in
|
case $1 in
|
||||||
--version | --vers* | -V )
|
--time-stamp | --time* | -t )
|
||||||
|
echo "$timestamp" ; exit 0 ;;
|
||||||
|
--version | -v )
|
||||||
echo "$version" ; exit 0 ;;
|
echo "$version" ; exit 0 ;;
|
||||||
--help | --h* | -h )
|
--help | --h* | -h )
|
||||||
echo "$usage"; exit 0 ;;
|
echo "$usage"; exit 0 ;;
|
||||||
@ -64,9 +75,7 @@ while test $# -gt 0 ; do
|
|||||||
- ) # Use stdin as input.
|
- ) # Use stdin as input.
|
||||||
break ;;
|
break ;;
|
||||||
-* )
|
-* )
|
||||||
exec >&2
|
echo "$me: invalid option $1$help" >&2
|
||||||
echo "$me: invalid option $1"
|
|
||||||
echo "$help"
|
|
||||||
exit 1 ;;
|
exit 1 ;;
|
||||||
* )
|
* )
|
||||||
break ;;
|
break ;;
|
||||||
@ -78,19 +87,30 @@ if test $# != 0; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
|
dummy=dummy-$$
|
||||||
|
trap 'rm -f $dummy.c $dummy.o $dummy.rel $dummy; exit 1' 1 2 15
|
||||||
|
|
||||||
|
# CC_FOR_BUILD -- compiler used by this script.
|
||||||
|
# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
|
||||||
|
# use `HOST_CC' if defined, but it is deprecated.
|
||||||
|
|
||||||
|
case $CC_FOR_BUILD,$HOST_CC,$CC in
|
||||||
|
,,) echo "int dummy(){}" > $dummy.c
|
||||||
|
for c in cc gcc c89 ; do
|
||||||
|
($c $dummy.c -c -o $dummy.o) >/dev/null 2>&1
|
||||||
|
if test $? = 0 ; then
|
||||||
|
CC_FOR_BUILD="$c"; break
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
rm -f $dummy.c $dummy.o $dummy.rel
|
||||||
|
if test x"$CC_FOR_BUILD" = x ; then
|
||||||
|
CC_FOR_BUILD=no_compiler_found
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
,,*) CC_FOR_BUILD=$CC ;;
|
||||||
|
,*,*) CC_FOR_BUILD=$HOST_CC ;;
|
||||||
|
esac
|
||||||
|
|
||||||
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
|
# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
|
||||||
# (ghazi@noc.rutgers.edu 8/24/94.)
|
# (ghazi@noc.rutgers.edu 8/24/94.)
|
||||||
@ -100,12 +120,9 @@ fi
|
|||||||
|
|
||||||
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
|
UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
|
||||||
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
|
UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
|
||||||
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
|
UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
|
||||||
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
|
UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
|
||||||
|
|
||||||
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.
|
# Note: order is significant - the case branches are not exclusive.
|
||||||
|
|
||||||
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
||||||
@ -129,16 +146,24 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
|
|||||||
ibmrt|romp-ibm) machine=romp-ibm ;;
|
ibmrt|romp-ibm) machine=romp-ibm ;;
|
||||||
*) machine=${UNAME_MACHINE}-unknown ;;
|
*) machine=${UNAME_MACHINE}-unknown ;;
|
||||||
esac
|
esac
|
||||||
# The Operating System including object format.
|
# The Operating System including object format, if it has switched
|
||||||
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
# to ELF recently, or will in the future.
|
||||||
| grep __ELF__ >/dev/null
|
case "${UNAME_MACHINE}" in
|
||||||
then
|
i386|sparc|amiga|arm*|hp300|mvme68k|vax|atari|luna68k|mac68k|news68k|next68k|pc532|sun3*|x68k)
|
||||||
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
|
if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
|
||||||
# Return netbsd for either. FIX?
|
| grep __ELF__ >/dev/null
|
||||||
os=netbsd
|
then
|
||||||
else
|
# Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
|
||||||
os=netbsdelf
|
# Return netbsd for either. FIX?
|
||||||
fi
|
os=netbsd
|
||||||
|
else
|
||||||
|
os=netbsdelf
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
os=netbsd
|
||||||
|
;;
|
||||||
|
esac
|
||||||
# The OS release
|
# The OS release
|
||||||
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
|
release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
|
||||||
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
|
# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
|
||||||
@ -247,7 +272,7 @@ EOF
|
|||||||
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
|
arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
|
||||||
echo arm-acorn-riscix${UNAME_RELEASE}
|
echo arm-acorn-riscix${UNAME_RELEASE}
|
||||||
exit 0;;
|
exit 0;;
|
||||||
SR2?01:HI-UX/MPP:*:*)
|
SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
|
||||||
echo hppa1.1-hitachi-hiuxmpp
|
echo hppa1.1-hitachi-hiuxmpp
|
||||||
exit 0;;
|
exit 0;;
|
||||||
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
|
Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
|
||||||
@ -383,7 +408,7 @@ EOF
|
|||||||
EOF
|
EOF
|
||||||
$CC_FOR_BUILD $dummy.c -o $dummy \
|
$CC_FOR_BUILD $dummy.c -o $dummy \
|
||||||
&& ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
|
&& ./$dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
|
||||||
&& rm $dummy.c $dummy && exit 0
|
&& rm -f $dummy.c $dummy && exit 0
|
||||||
rm -f $dummy.c $dummy
|
rm -f $dummy.c $dummy
|
||||||
echo mips-mips-riscos${UNAME_RELEASE}
|
echo mips-mips-riscos${UNAME_RELEASE}
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
@ -437,6 +462,14 @@ EOF
|
|||||||
i?86:AIX:*:*)
|
i?86:AIX:*:*)
|
||||||
echo i386-ibm-aix
|
echo i386-ibm-aix
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
|
ia64:AIX:*:*)
|
||||||
|
if [ -x /usr/bin/oslevel ] ; then
|
||||||
|
IBM_REV=`/usr/bin/oslevel`
|
||||||
|
else
|
||||||
|
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
|
||||||
|
fi
|
||||||
|
echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
|
||||||
|
exit 0 ;;
|
||||||
*:AIX:2:3)
|
*:AIX:2:3)
|
||||||
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
|
if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
|
||||||
sed 's/^ //' << EOF >$dummy.c
|
sed 's/^ //' << EOF >$dummy.c
|
||||||
@ -450,7 +483,7 @@ EOF
|
|||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
$CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
|
$CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
|
||||||
rm -f $dummy.c $dummy
|
rm -f $dummy.c $dummy
|
||||||
echo rs6000-ibm-aix3.2.5
|
echo rs6000-ibm-aix3.2.5
|
||||||
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
|
elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
|
||||||
@ -459,9 +492,9 @@ EOF
|
|||||||
echo rs6000-ibm-aix3.2
|
echo rs6000-ibm-aix3.2
|
||||||
fi
|
fi
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
*:AIX:*:4)
|
*:AIX:*:[45])
|
||||||
IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | head -1 | awk '{ print $1 }'`
|
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
|
if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
|
||||||
IBM_ARCH=rs6000
|
IBM_ARCH=rs6000
|
||||||
else
|
else
|
||||||
IBM_ARCH=powerpc
|
IBM_ARCH=powerpc
|
||||||
@ -469,7 +502,7 @@ EOF
|
|||||||
if [ -x /usr/bin/oslevel ] ; then
|
if [ -x /usr/bin/oslevel ] ; then
|
||||||
IBM_REV=`/usr/bin/oslevel`
|
IBM_REV=`/usr/bin/oslevel`
|
||||||
else
|
else
|
||||||
IBM_REV=4.${UNAME_RELEASE}
|
IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
|
||||||
fi
|
fi
|
||||||
echo ${IBM_ARCH}-ibm-aix${IBM_REV}
|
echo ${IBM_ARCH}-ibm-aix${IBM_REV}
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
@ -495,10 +528,28 @@ EOF
|
|||||||
echo m68k-hp-bsd4.4
|
echo m68k-hp-bsd4.4
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
9000/[34678]??:HP-UX:*:*)
|
9000/[34678]??:HP-UX:*:*)
|
||||||
|
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
|
||||||
case "${UNAME_MACHINE}" in
|
case "${UNAME_MACHINE}" in
|
||||||
9000/31? ) HP_ARCH=m68000 ;;
|
9000/31? ) HP_ARCH=m68000 ;;
|
||||||
9000/[34]?? ) HP_ARCH=m68k ;;
|
9000/[34]?? ) HP_ARCH=m68k ;;
|
||||||
9000/[678][0-9][0-9])
|
9000/[678][0-9][0-9])
|
||||||
|
case "${HPUX_REV}" in
|
||||||
|
11.[0-9][0-9])
|
||||||
|
if [ -x /usr/bin/getconf ]; then
|
||||||
|
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
|
||||||
|
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
|
||||||
|
case "${sc_cpu_version}" in
|
||||||
|
523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
|
||||||
|
528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
|
||||||
|
532) # CPU_PA_RISC2_0
|
||||||
|
case "${sc_kernel_bits}" in
|
||||||
|
32) HP_ARCH="hppa2.0n" ;;
|
||||||
|
64) HP_ARCH="hppa2.0w" ;;
|
||||||
|
esac ;;
|
||||||
|
esac
|
||||||
|
fi ;;
|
||||||
|
esac
|
||||||
|
if [ "${HP_ARCH}" = "" ]; then
|
||||||
sed 's/^ //' << EOF >$dummy.c
|
sed 's/^ //' << EOF >$dummy.c
|
||||||
|
|
||||||
#define _HPUX_SOURCE
|
#define _HPUX_SOURCE
|
||||||
@ -533,11 +584,16 @@ EOF
|
|||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
(CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
|
(CCOPTS= $CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null ) && HP_ARCH=`./$dummy`
|
||||||
|
if test -z "$HP_ARCH"; then HP_ARCH=hppa; fi
|
||||||
rm -f $dummy.c $dummy
|
rm -f $dummy.c $dummy
|
||||||
|
fi ;;
|
||||||
esac
|
esac
|
||||||
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
|
|
||||||
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
|
echo ${HP_ARCH}-hp-hpux${HPUX_REV}
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
|
ia64:HP-UX:*:*)
|
||||||
|
HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
|
||||||
|
echo ia64-hp-hpux${HPUX_REV}
|
||||||
|
exit 0 ;;
|
||||||
3050*:HI-UX:*:*)
|
3050*:HI-UX:*:*)
|
||||||
sed 's/^ //' << EOF >$dummy.c
|
sed 's/^ //' << EOF >$dummy.c
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
@ -564,7 +620,7 @@ EOF
|
|||||||
exit (0);
|
exit (0);
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
$CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm $dummy.c $dummy && exit 0
|
$CC_FOR_BUILD $dummy.c -o $dummy && ./$dummy && rm -f $dummy.c $dummy && exit 0
|
||||||
rm -f $dummy.c $dummy
|
rm -f $dummy.c $dummy
|
||||||
echo unknown-hitachi-hiuxwe2
|
echo unknown-hitachi-hiuxwe2
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
@ -628,23 +684,24 @@ EOF
|
|||||||
CRAY*TS:*:*:*)
|
CRAY*TS:*:*:*)
|
||||||
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
CRAY*T3E:*:*:*)
|
CRAY*T3D:*:*:*)
|
||||||
echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
echo alpha-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
|
CRAY*T3E:*:*:*)
|
||||||
|
echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||||
|
exit 0 ;;
|
||||||
CRAY*SV1:*:*:*)
|
CRAY*SV1:*:*:*)
|
||||||
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
CRAY-2:*:*:*)
|
CRAY-2:*:*:*)
|
||||||
echo cray2-cray-unicos
|
echo cray2-cray-unicos
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
F300:UNIX_System_V:*:*)
|
F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
|
||||||
|
FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
|
||||||
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
|
||||||
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
|
FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
|
||||||
echo "f300-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
F301:UNIX_System_V:*:*)
|
|
||||||
echo f301-fujitsu-uxpv`echo $UNAME_RELEASE | sed 's/ .*//'`
|
|
||||||
exit 0 ;;
|
|
||||||
hp300:OpenBSD:*:*)
|
hp300:OpenBSD:*:*)
|
||||||
echo m68k-unknown-openbsd${UNAME_RELEASE}
|
echo m68k-unknown-openbsd${UNAME_RELEASE}
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
@ -669,6 +726,9 @@ EOF
|
|||||||
i*:MINGW*:*)
|
i*:MINGW*:*)
|
||||||
echo ${UNAME_MACHINE}-pc-mingw32
|
echo ${UNAME_MACHINE}-pc-mingw32
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
|
i*:PW*:*)
|
||||||
|
echo ${UNAME_MACHINE}-pc-pw32
|
||||||
|
exit 0 ;;
|
||||||
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
|
i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
|
||||||
# How do we know it's Interix rather than the generic POSIX subsystem?
|
# How do we know it's Interix rather than the generic POSIX subsystem?
|
||||||
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
|
# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
|
||||||
@ -690,57 +750,38 @@ EOF
|
|||||||
i*86:Minix:*:*)
|
i*86:Minix:*:*)
|
||||||
echo ${UNAME_MACHINE}-pc-minix
|
echo ${UNAME_MACHINE}-pc-minix
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
*:Linux:*:*)
|
arm*:Linux:*:*)
|
||||||
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
# The BFD linker knows what the default object file format is, so
|
exit 0 ;;
|
||||||
# first see if it will tell us. cd to the root directory to prevent
|
ia64:Linux:*:*)
|
||||||
# problems with other programs or directories called `ld' in the path.
|
echo ${UNAME_MACHINE}-unknown-linux
|
||||||
ld_help_string=`cd /; ld --help 2>&1`
|
exit 0 ;;
|
||||||
ld_supported_emulations=`echo $ld_help_string \
|
m68*:Linux:*:*)
|
||||||
| sed -ne '/supported emulations:/!d
|
echo ${UNAME_MACHINE}-unknown-linux-gnuaout
|
||||||
s/[ ][ ]*/ /g
|
exit 0 ;;
|
||||||
s/.*supported emulations: *//
|
mips:Linux:*:*)
|
||||||
s/ .*//
|
cat >$dummy.c <<EOF
|
||||||
p'`
|
#ifdef __cplusplus
|
||||||
case "$ld_supported_emulations" in
|
#include <stdio.h> /* for printf() prototype */
|
||||||
*ia64)
|
int main (int argc, char *argv[]) {
|
||||||
echo "${UNAME_MACHINE}-unknown-linux"
|
#else
|
||||||
exit 0
|
int main (argc, argv) int argc; char *argv[]; {
|
||||||
;;
|
#endif
|
||||||
i?86linux)
|
#ifdef __MIPSEB__
|
||||||
echo "${UNAME_MACHINE}-pc-linux-gnuaout"
|
printf ("%s-unknown-linux-gnu\n", argv[1]);
|
||||||
exit 0
|
#endif
|
||||||
;;
|
#ifdef __MIPSEL__
|
||||||
elf_i?86)
|
printf ("%sel-unknown-linux-gnu\n", argv[1]);
|
||||||
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
|
#endif
|
||||||
;;
|
return 0;
|
||||||
i?86coff)
|
}
|
||||||
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
|
EOF
|
||||||
exit 0
|
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
|
||||||
;;
|
rm -f $dummy.c $dummy
|
||||||
sparclinux)
|
;;
|
||||||
echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
|
ppc:Linux:*:*)
|
||||||
exit 0
|
# Determine Lib Version
|
||||||
;;
|
cat >$dummy.c <<EOF
|
||||||
armlinux)
|
|
||||||
echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
elf32arm*)
|
|
||||||
echo "${UNAME_MACHINE}-unknown-linux-gnuoldld"
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
armelf_linux*)
|
|
||||||
echo "${UNAME_MACHINE}-unknown-linux-gnu"
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
m68klinux)
|
|
||||||
echo "${UNAME_MACHINE}-unknown-linux-gnuaout"
|
|
||||||
exit 0
|
|
||||||
;;
|
|
||||||
elf32ppc | elf32ppclinux)
|
|
||||||
# Determine Lib Version
|
|
||||||
cat >$dummy.c <<EOF
|
|
||||||
#include <features.h>
|
#include <features.h>
|
||||||
#if defined(__GLIBC__)
|
#if defined(__GLIBC__)
|
||||||
extern char __libc_version[];
|
extern char __libc_version[];
|
||||||
@ -753,127 +794,127 @@ main(argc, argv)
|
|||||||
#if defined(__GLIBC__)
|
#if defined(__GLIBC__)
|
||||||
printf("%s %s\n", __libc_version, __libc_release);
|
printf("%s %s\n", __libc_version, __libc_release);
|
||||||
#else
|
#else
|
||||||
printf("unkown\n");
|
printf("unknown\n");
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
LIBC=""
|
LIBC=""
|
||||||
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
|
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null
|
||||||
|
if test "$?" = 0 ; then
|
||||||
|
./$dummy | grep 1\.99 > /dev/null
|
||||||
|
if test "$?" = 0 ; then LIBC="libc1" ; fi
|
||||||
|
fi
|
||||||
|
rm -f $dummy.c $dummy
|
||||||
|
echo powerpc-unknown-linux-gnu${LIBC}
|
||||||
|
exit 0 ;;
|
||||||
|
alpha:Linux:*:*)
|
||||||
|
cat <<EOF >$dummy.s
|
||||||
|
.data
|
||||||
|
\$Lformat:
|
||||||
|
.byte 37,100,45,37,120,10,0 # "%d-%x\n"
|
||||||
|
.text
|
||||||
|
.globl main
|
||||||
|
.align 4
|
||||||
|
.ent main
|
||||||
|
main:
|
||||||
|
.frame \$30,16,\$26,0
|
||||||
|
ldgp \$29,0(\$27)
|
||||||
|
.prologue 1
|
||||||
|
.long 0x47e03d80 # implver \$0
|
||||||
|
lda \$2,-1
|
||||||
|
.long 0x47e20c21 # amask \$2,\$1
|
||||||
|
lda \$16,\$Lformat
|
||||||
|
mov \$0,\$17
|
||||||
|
not \$1,\$18
|
||||||
|
jsr \$26,printf
|
||||||
|
ldgp \$29,0(\$26)
|
||||||
|
mov 0,\$16
|
||||||
|
jsr \$26,exit
|
||||||
|
.end main
|
||||||
|
EOF
|
||||||
|
LIBC=""
|
||||||
|
$CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
|
||||||
|
if test "$?" = 0 ; then
|
||||||
|
case `./$dummy` in
|
||||||
|
0-0) UNAME_MACHINE="alpha" ;;
|
||||||
|
1-0) UNAME_MACHINE="alphaev5" ;;
|
||||||
|
1-1) UNAME_MACHINE="alphaev56" ;;
|
||||||
|
1-101) UNAME_MACHINE="alphapca56" ;;
|
||||||
|
2-303) UNAME_MACHINE="alphaev6" ;;
|
||||||
|
2-307) UNAME_MACHINE="alphaev67" ;;
|
||||||
|
esac
|
||||||
|
objdump --private-headers $dummy | \
|
||||||
|
grep ld.so.1 > /dev/null
|
||||||
if test "$?" = 0 ; then
|
if test "$?" = 0 ; then
|
||||||
./$dummy | grep 1\.99 > /dev/null
|
LIBC="libc1"
|
||||||
if test "$?" = 0 ; then
|
|
||||||
LIBC="libc1"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
rm -f $dummy.c $dummy
|
fi
|
||||||
echo powerpc-unknown-linux-gnu${LIBC}
|
rm -f $dummy.s $dummy
|
||||||
|
echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
|
||||||
|
exit 0 ;;
|
||||||
|
parisc:Linux:*:* | hppa:Linux:*:*)
|
||||||
|
# Look for CPU level
|
||||||
|
case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
|
||||||
|
PA7*) echo hppa1.1-unknown-linux-gnu ;;
|
||||||
|
PA8*) echo hppa2.0-unknown-linux-gnu ;;
|
||||||
|
*) echo hppa-unknown-linux-gnu ;;
|
||||||
|
esac
|
||||||
|
exit 0 ;;
|
||||||
|
parisc64:Linux:*:* | hppa64:Linux:*:*)
|
||||||
|
echo hppa64-unknown-linux-gnu
|
||||||
|
exit 0 ;;
|
||||||
|
s390:Linux:*:* | s390x:Linux:*:*)
|
||||||
|
echo ${UNAME_MACHINE}-ibm-linux
|
||||||
|
exit 0 ;;
|
||||||
|
sh*:Linux:*:*)
|
||||||
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
|
exit 0 ;;
|
||||||
|
sparc:Linux:*:*)
|
||||||
|
echo ${UNAME_MACHINE}-unknown-linux-gnu
|
||||||
|
exit 0 ;;
|
||||||
|
x86_64:Linux:*:*)
|
||||||
|
echo x86_64-unknown-linux-gnu
|
||||||
|
exit 0 ;;
|
||||||
|
i?86:Linux:*:*)
|
||||||
|
# The BFD linker knows what the default object file format is, so
|
||||||
|
# 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_supported_emulations=`cd /; ld --help 2>&1 \
|
||||||
|
| 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
|
exit 0
|
||||||
;;
|
;;
|
||||||
shelf_linux)
|
elf_i?86)
|
||||||
echo "${UNAME_MACHINE}-unknown-linux-gnu"
|
TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
|
||||||
|
;;
|
||||||
|
i?86coff)
|
||||||
|
echo "${UNAME_MACHINE}-pc-linux-gnucoff"
|
||||||
exit 0
|
exit 0
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
# Either a pre-BFD a.out linker (linux-gnuoldld)
|
||||||
if test "${UNAME_MACHINE}" = "alpha" ; then
|
# or one that does not give us useful --help.
|
||||||
cat <<EOF >$dummy.s
|
# GCC wants to distinguish between linux-gnuoldld and linux-gnuaout.
|
||||||
.data
|
# If ld does not provide *any* "supported emulations:"
|
||||||
\$Lformat:
|
# that means it is gnuoldld.
|
||||||
.byte 37,100,45,37,120,10,0 # "%d-%x\n"
|
test -z "$ld_supported_emulations" && echo "${UNAME_MACHINE}-pc-linux-gnuoldld" && exit 0
|
||||||
|
case "${UNAME_MACHINE}" in
|
||||||
.text
|
i?86)
|
||||||
.globl main
|
VENDOR=pc;
|
||||||
.align 4
|
;;
|
||||||
.ent main
|
*)
|
||||||
main:
|
VENDOR=unknown;
|
||||||
.frame \$30,16,\$26,0
|
;;
|
||||||
ldgp \$29,0(\$27)
|
esac
|
||||||
.prologue 1
|
# Determine whether the default compiler is a.out or elf
|
||||||
.long 0x47e03d80 # implver \$0
|
cat >$dummy.c <<EOF
|
||||||
lda \$2,-1
|
|
||||||
.long 0x47e20c21 # amask \$2,\$1
|
|
||||||
lda \$16,\$Lformat
|
|
||||||
mov \$0,\$17
|
|
||||||
not \$1,\$18
|
|
||||||
jsr \$26,printf
|
|
||||||
ldgp \$29,0(\$26)
|
|
||||||
mov 0,\$16
|
|
||||||
jsr \$26,exit
|
|
||||||
.end main
|
|
||||||
EOF
|
|
||||||
LIBC=""
|
|
||||||
$CC_FOR_BUILD $dummy.s -o $dummy 2>/dev/null
|
|
||||||
if test "$?" = 0 ; then
|
|
||||||
case `./$dummy` in
|
|
||||||
0-0)
|
|
||||||
UNAME_MACHINE="alpha"
|
|
||||||
;;
|
|
||||||
1-0)
|
|
||||||
UNAME_MACHINE="alphaev5"
|
|
||||||
;;
|
|
||||||
1-1)
|
|
||||||
UNAME_MACHINE="alphaev56"
|
|
||||||
;;
|
|
||||||
1-101)
|
|
||||||
UNAME_MACHINE="alphapca56"
|
|
||||||
;;
|
|
||||||
2-303)
|
|
||||||
UNAME_MACHINE="alphaev6"
|
|
||||||
;;
|
|
||||||
2-307)
|
|
||||||
UNAME_MACHINE="alphaev67"
|
|
||||||
;;
|
|
||||||
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
|
|
||||||
#ifdef __cplusplus
|
|
||||||
#include <stdio.h> /* for printf() prototype */
|
|
||||||
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
|
|
||||||
#ifdef __MIPSEL__
|
|
||||||
printf ("%sel-unknown-linux-gnu\n", argv[1]);
|
|
||||||
#endif
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
|
|
||||||
rm -f $dummy.c $dummy
|
|
||||||
elif test "${UNAME_MACHINE}" = "s390"; then
|
|
||||||
echo s390-ibm-linux && exit 0
|
|
||||||
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.
|
|
||||||
# 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
|
|
||||||
#include <features.h>
|
#include <features.h>
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
#include <stdio.h> /* for printf() prototype */
|
#include <stdio.h> /* for printf() prototype */
|
||||||
@ -897,10 +938,10 @@ EOF
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm $dummy.c $dummy && exit 0
|
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy "${UNAME_MACHINE}" && rm -f $dummy.c $dummy && exit 0
|
||||||
rm -f $dummy.c $dummy
|
rm -f $dummy.c $dummy
|
||||||
test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
|
test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
|
||||||
fi ;;
|
;;
|
||||||
# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. earlier versions
|
# 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.
|
# are messed up and put the nodename in both sysname and nodename.
|
||||||
i?86:DYNIX/ptx:4*:*)
|
i?86:DYNIX/ptx:4*:*)
|
||||||
@ -977,7 +1018,7 @@ EOF
|
|||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
M68*:*:R3V[567]*:*)
|
M68*:*:R3V[567]*:*)
|
||||||
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
|
test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
|
||||||
3[34]??:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
|
3[34]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 4850:*:4.0:3.0)
|
||||||
OS_REL=''
|
OS_REL=''
|
||||||
test -r /etc/.relid \
|
test -r /etc/.relid \
|
||||||
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
|
&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
|
||||||
@ -1000,9 +1041,12 @@ EOF
|
|||||||
TSUNAMI:LynxOS:2.*:*)
|
TSUNAMI:LynxOS:2.*:*)
|
||||||
echo sparc-unknown-lynxos${UNAME_RELEASE}
|
echo sparc-unknown-lynxos${UNAME_RELEASE}
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
rs6000:LynxOS:2.*:* | PowerPC:LynxOS:2.*:*)
|
rs6000:LynxOS:2.*:*)
|
||||||
echo rs6000-unknown-lynxos${UNAME_RELEASE}
|
echo rs6000-unknown-lynxos${UNAME_RELEASE}
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
|
PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:*)
|
||||||
|
echo powerpc-unknown-lynxos${UNAME_RELEASE}
|
||||||
|
exit 0 ;;
|
||||||
SM[BE]S:UNIX_SV:*:*)
|
SM[BE]S:UNIX_SV:*:*)
|
||||||
echo mips-dde-sysv${UNAME_RELEASE}
|
echo mips-dde-sysv${UNAME_RELEASE}
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
@ -1036,7 +1080,7 @@ EOF
|
|||||||
mc68*:A/UX:*:*)
|
mc68*:A/UX:*:*)
|
||||||
echo m68k-apple-aux${UNAME_RELEASE}
|
echo m68k-apple-aux${UNAME_RELEASE}
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
news*:NEWS-OS:*:6*)
|
news*:NEWS-OS:6*:*)
|
||||||
echo mips-sony-newsos6
|
echo mips-sony-newsos6
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
|
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
|
||||||
@ -1079,9 +1123,12 @@ EOF
|
|||||||
*:QNX:*:4*)
|
*:QNX:*:4*)
|
||||||
echo i386-pc-qnx
|
echo i386-pc-qnx
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
NSR-W:NONSTOP_KERNEL:*:*)
|
NSR-[KW]:NONSTOP_KERNEL:*:*)
|
||||||
echo nsr-tandem-nsk${UNAME_RELEASE}
|
echo nsr-tandem-nsk${UNAME_RELEASE}
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
|
*:NonStop-UX:*:*)
|
||||||
|
echo mips-compaq-nonstopux
|
||||||
|
exit 0 ;;
|
||||||
BS2000:POSIX*:*:*)
|
BS2000:POSIX*:*:*)
|
||||||
echo bs2000-siemens-sysv
|
echo bs2000-siemens-sysv
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
@ -1099,6 +1146,29 @@ EOF
|
|||||||
fi
|
fi
|
||||||
echo ${UNAME_MACHINE}-unknown-plan9
|
echo ${UNAME_MACHINE}-unknown-plan9
|
||||||
exit 0 ;;
|
exit 0 ;;
|
||||||
|
i?86:OS/2:*:*)
|
||||||
|
# If we were able to find `uname', then EMX Unix compatibility
|
||||||
|
# is probably installed.
|
||||||
|
echo ${UNAME_MACHINE}-pc-os2-emx
|
||||||
|
exit 0 ;;
|
||||||
|
*:TOPS-10:*:*)
|
||||||
|
echo pdp10-unknown-tops10
|
||||||
|
exit 0 ;;
|
||||||
|
*:TENEX:*:*)
|
||||||
|
echo pdp10-unknown-tenex
|
||||||
|
exit 0 ;;
|
||||||
|
KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
|
||||||
|
echo pdp10-dec-tops20
|
||||||
|
exit 0 ;;
|
||||||
|
XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
|
||||||
|
echo pdp10-xkl-tops20
|
||||||
|
exit 0 ;;
|
||||||
|
*:TOPS-20:*:*)
|
||||||
|
echo pdp10-unknown-tops20
|
||||||
|
exit 0 ;;
|
||||||
|
*:ITS:*:*)
|
||||||
|
echo pdp10-unknown-its
|
||||||
|
exit 0 ;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
#echo '(No uname command or uname output not recognized.)' 1>&2
|
#echo '(No uname command or uname output not recognized.)' 1>&2
|
||||||
@ -1190,11 +1260,24 @@ main ()
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined (vax)
|
#if defined (vax)
|
||||||
#if !defined (ultrix)
|
# if !defined (ultrix)
|
||||||
printf ("vax-dec-bsd\n"); exit (0);
|
# include <sys/param.h>
|
||||||
#else
|
# if defined (BSD)
|
||||||
printf ("vax-dec-ultrix\n"); exit (0);
|
# if BSD == 43
|
||||||
#endif
|
printf ("vax-dec-bsd4.3\n"); exit (0);
|
||||||
|
# else
|
||||||
|
# if BSD == 199006
|
||||||
|
printf ("vax-dec-bsd4.3reno\n"); exit (0);
|
||||||
|
# else
|
||||||
|
printf ("vax-dec-bsd\n"); exit (0);
|
||||||
|
# endif
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
printf ("vax-dec-bsd\n"); exit (0);
|
||||||
|
# endif
|
||||||
|
# else
|
||||||
|
printf ("vax-dec-ultrix\n"); exit (0);
|
||||||
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined (alliant) && defined (i860)
|
#if defined (alliant) && defined (i860)
|
||||||
@ -1205,7 +1288,7 @@ main ()
|
|||||||
}
|
}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm $dummy.c $dummy && exit 0
|
$CC_FOR_BUILD $dummy.c -o $dummy 2>/dev/null && ./$dummy && rm -f $dummy.c $dummy && exit 0
|
||||||
rm -f $dummy.c $dummy
|
rm -f $dummy.c $dummy
|
||||||
|
|
||||||
# Apollos put the system type in the environment.
|
# Apollos put the system type in the environment.
|
||||||
@ -1241,8 +1324,9 @@ fi
|
|||||||
cat >&2 <<EOF
|
cat >&2 <<EOF
|
||||||
$0: unable to guess system type
|
$0: unable to guess system type
|
||||||
|
|
||||||
The $version version of this script cannot recognize your system type.
|
This script, last modified $timestamp, has failed to recognize
|
||||||
Please download the most up to date version of the config scripts:
|
the operating system you are using. It is advised that you
|
||||||
|
download the most up to date version of the config scripts from
|
||||||
|
|
||||||
ftp://ftp.gnu.org/pub/gnu/config/
|
ftp://ftp.gnu.org/pub/gnu/config/
|
||||||
|
|
||||||
@ -1251,7 +1335,7 @@ send the following data and any information you think might be
|
|||||||
pertinent to <config-patches@gnu.org> in order to provide the needed
|
pertinent to <config-patches@gnu.org> in order to provide the needed
|
||||||
information to handle your system.
|
information to handle your system.
|
||||||
|
|
||||||
config.guess version = $version
|
config.guess timestamp = $timestamp
|
||||||
|
|
||||||
uname -m = `(uname -m) 2>/dev/null || echo unknown`
|
uname -m = `(uname -m) 2>/dev/null || echo unknown`
|
||||||
uname -r = `(uname -r) 2>/dev/null || echo unknown`
|
uname -r = `(uname -r) 2>/dev/null || echo unknown`
|
||||||
@ -1278,7 +1362,7 @@ exit 1
|
|||||||
|
|
||||||
# Local variables:
|
# Local variables:
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
# time-stamp-start: "version='"
|
# time-stamp-start: "timestamp='"
|
||||||
# time-stamp-format: "%:y-%02m-%02d"
|
# time-stamp-format: "%:y-%02m-%02d"
|
||||||
# time-stamp-end: "'"
|
# time-stamp-end: "'"
|
||||||
# End:
|
# End:
|
||||||
|
122
scripts/config.sub
vendored
122
scripts/config.sub
vendored
@ -1,9 +1,9 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Configuration validation subroutine script, version 1.1.
|
# Configuration validation subroutine script.
|
||||||
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000
|
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
|
||||||
# Free Software Foundation, Inc.
|
# Free Software Foundation, Inc.
|
||||||
|
|
||||||
version='2000-07-27'
|
timestamp='2001-02-16'
|
||||||
|
|
||||||
# This file is (in principle) common to ALL GNU software.
|
# This file is (in principle) common to ALL GNU software.
|
||||||
# The presence of a machine in this file suggests that SOME GNU software
|
# The presence of a machine in this file suggests that SOME GNU software
|
||||||
@ -60,16 +60,30 @@ Usage: $0 [OPTION] CPU-MFR-OPSYS
|
|||||||
Canonicalize a configuration name.
|
Canonicalize a configuration name.
|
||||||
|
|
||||||
Operation modes:
|
Operation modes:
|
||||||
-h, --help print this help, then exit
|
-h, --help print this help, then exit
|
||||||
-V, --version print version number, then exit"
|
-t, --time-stamp print date of last modification, then exit
|
||||||
|
-v, --version print version number, then exit
|
||||||
|
|
||||||
|
Report bugs and patches to <config-patches@gnu.org>."
|
||||||
|
|
||||||
|
version="\
|
||||||
|
GNU config.sub ($timestamp)
|
||||||
|
|
||||||
|
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
|
||||||
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This is free software; see the source for copying conditions. There is NO
|
||||||
|
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
||||||
|
|
||||||
help="
|
help="
|
||||||
Try \`$me --help' for more information."
|
Try \`$me --help' for more information."
|
||||||
|
|
||||||
# Parse command line
|
# Parse command line
|
||||||
while test $# -gt 0 ; do
|
while test $# -gt 0 ; do
|
||||||
case "$1" in
|
case $1 in
|
||||||
--version | --vers* | -V )
|
--time-stamp | --time* | -t )
|
||||||
|
echo "$timestamp" ; exit 0 ;;
|
||||||
|
--version | -v )
|
||||||
echo "$version" ; exit 0 ;;
|
echo "$version" ; exit 0 ;;
|
||||||
--help | --h* | -h )
|
--help | --h* | -h )
|
||||||
echo "$usage"; exit 0 ;;
|
echo "$usage"; exit 0 ;;
|
||||||
@ -78,9 +92,7 @@ while test $# -gt 0 ; do
|
|||||||
- ) # Use stdin as input.
|
- ) # Use stdin as input.
|
||||||
break ;;
|
break ;;
|
||||||
-* )
|
-* )
|
||||||
exec >&2
|
echo "$me: invalid option $1$help"
|
||||||
echo "$me: invalid option $1"
|
|
||||||
echo "$help"
|
|
||||||
exit 1 ;;
|
exit 1 ;;
|
||||||
|
|
||||||
*local*)
|
*local*)
|
||||||
@ -105,7 +117,7 @@ esac
|
|||||||
# Here we must recognize all the valid KERNEL-OS combinations.
|
# Here we must recognize all the valid KERNEL-OS combinations.
|
||||||
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
|
||||||
case $maybe_os in
|
case $maybe_os in
|
||||||
nto-qnx* | linux-gnu*)
|
nto-qnx* | linux-gnu* | storm-chaos* | os2-emx*)
|
||||||
os=-$maybe_os
|
os=-$maybe_os
|
||||||
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
|
||||||
;;
|
;;
|
||||||
@ -203,22 +215,24 @@ esac
|
|||||||
case $basic_machine in
|
case $basic_machine in
|
||||||
# Recognize the basic CPU types without company name.
|
# Recognize the basic CPU types without company name.
|
||||||
# Some are omitted here because they have special meanings below.
|
# Some are omitted here because they have special meanings below.
|
||||||
tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc | arm \
|
tahoe | i860 | ia64 | m32r | m68k | m68000 | m88k | ns32k | arc \
|
||||||
| arme[lb] | pyramid | mn10200 | mn10300 | tron | a29k \
|
| arm | arme[lb] | arm[bl]e | armv[2345] | armv[345][lb] | strongarm | xscale \
|
||||||
|
| pyramid | mn10200 | mn10300 | tron | a29k \
|
||||||
| 580 | i960 | h8300 \
|
| 580 | i960 | h8300 \
|
||||||
| x86 | ppcbe | mipsbe | mipsle | shbe | shle | armbe | armle \
|
| x86 | ppcbe | mipsbe | mipsle | shbe | shle \
|
||||||
| hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
|
| hppa | hppa1.0 | hppa1.1 | hppa2.0 | hppa2.0w | hppa2.0n \
|
||||||
| hppa64 \
|
| hppa64 \
|
||||||
| alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \
|
| alpha | alphaev[4-8] | alphaev56 | alphapca5[67] \
|
||||||
| alphaev6[78] \
|
| alphaev6[78] \
|
||||||
| we32k | ns16k | clipper | i370 | sh | sh[34] \
|
| we32k | ns16k | clipper | i370 | sh | sh[34] \
|
||||||
| powerpc | powerpcle \
|
| powerpc | powerpcle \
|
||||||
| 1750a | dsp16xx | pdp11 | mips16 | mips64 | mipsel | mips64el \
|
| 1750a | dsp16xx | pdp10 | pdp11 \
|
||||||
|
| mips16 | mips64 | mipsel | mips64el \
|
||||||
| mips64orion | mips64orionel | mipstx39 | mipstx39el \
|
| mips64orion | mips64orionel | mipstx39 | mipstx39el \
|
||||||
| mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
|
| mips64vr4300 | mips64vr4300el | mips64vr4100 | mips64vr4100el \
|
||||||
| mips64vr5000 | miprs64vr5000el | mcore \
|
| mips64vr5000 | miprs64vr5000el | mcore \
|
||||||
| sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
|
| sparc | sparclet | sparclite | sparc64 | sparcv9 | v850 | c4x \
|
||||||
| thumb | d10v | d30v | fr30 | avr)
|
| thumb | d10v | d30v | fr30 | avr | openrisc)
|
||||||
basic_machine=$basic_machine-unknown
|
basic_machine=$basic_machine-unknown
|
||||||
;;
|
;;
|
||||||
m6811 | m68hc11 | m6812 | m68hc12)
|
m6811 | m68hc11 | m6812 | m68hc12)
|
||||||
@ -232,7 +246,7 @@ case $basic_machine in
|
|||||||
# We use `pc' rather than `unknown'
|
# We use `pc' rather than `unknown'
|
||||||
# because (1) that's what they normally are, and
|
# because (1) that's what they normally are, and
|
||||||
# (2) the word "unknown" tends to confuse beginning users.
|
# (2) the word "unknown" tends to confuse beginning users.
|
||||||
i[234567]86)
|
i[234567]86 | x86_64)
|
||||||
basic_machine=$basic_machine-pc
|
basic_machine=$basic_machine-pc
|
||||||
;;
|
;;
|
||||||
# Object if more than one company name word.
|
# Object if more than one company name word.
|
||||||
@ -243,26 +257,28 @@ case $basic_machine in
|
|||||||
# Recognize the basic CPU types with company name.
|
# Recognize the basic CPU types with company name.
|
||||||
# FIXME: clean up the formatting here.
|
# FIXME: clean up the formatting here.
|
||||||
vax-* | tahoe-* | i[234567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
|
vax-* | tahoe-* | i[234567]86-* | i860-* | ia64-* | m32r-* | m68k-* | m68000-* \
|
||||||
| m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | arm-* | c[123]* \
|
| m88k-* | sparc-* | ns32k-* | fx80-* | arc-* | c[123]* \
|
||||||
|
| arm-* | armbe-* | armle-* | armv*-* | strongarm-* | xscale-* \
|
||||||
| mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
|
| mips-* | pyramid-* | tron-* | a29k-* | romp-* | rs6000-* \
|
||||||
| power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
|
| power-* | none-* | 580-* | cray2-* | h8300-* | h8500-* | i960-* \
|
||||||
| xmp-* | ymp-* \
|
| xmp-* | ymp-* \
|
||||||
| x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* | armbe-* | armle-* \
|
| x86-* | ppcbe-* | mipsbe-* | mipsle-* | shbe-* | shle-* \
|
||||||
| hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
|
| hppa-* | hppa1.0-* | hppa1.1-* | hppa2.0-* | hppa2.0w-* \
|
||||||
| hppa2.0n-* | hppa64-* \
|
| hppa2.0n-* | hppa64-* \
|
||||||
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \
|
| alpha-* | alphaev[4-8]-* | alphaev56-* | alphapca5[67]-* \
|
||||||
| alphaev6[78]-* \
|
| alphaev6[78]-* \
|
||||||
| we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
|
| we32k-* | cydra-* | ns16k-* | pn-* | np1-* | xps100-* \
|
||||||
| clipper-* | orion-* \
|
| clipper-* | orion-* \
|
||||||
| sparclite-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
|
| sparclite-* | pdp10-* | pdp11-* | sh-* | powerpc-* | powerpcle-* \
|
||||||
| sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
|
| sparc64-* | sparcv9-* | sparc86x-* | mips16-* | mips64-* | mipsel-* \
|
||||||
| mips64el-* | mips64orion-* | mips64orionel-* \
|
| mips64el-* | mips64orion-* | mips64orionel-* \
|
||||||
| mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
|
| mips64vr4100-* | mips64vr4100el-* | mips64vr4300-* | mips64vr4300el-* \
|
||||||
| mipstx39-* | mipstx39el-* | mcore-* \
|
| mipstx39-* | mipstx39el-* | mcore-* \
|
||||||
| f301-* | armv*-* | s390-* | sv1-* | t3e-* \
|
| f30[01]-* | f700-* | s390-* | s390x-* | sv1-* | t3e-* \
|
||||||
|
| [cjt]90-* \
|
||||||
| m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
|
| m88110-* | m680[01234]0-* | m683?2-* | m68360-* | z8k-* | d10v-* \
|
||||||
| thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* \
|
| thumb-* | v850-* | d30v-* | tic30-* | c30-* | fr30-* \
|
||||||
| bs2000-* | tic54x-* | c54x-*)
|
| bs2000-* | tic54x-* | c54x-* | x86_64-*)
|
||||||
;;
|
;;
|
||||||
# Recognize the various machine names and aliases which stand
|
# Recognize the various machine names and aliases which stand
|
||||||
# for a CPU type and a company and sometimes even an OS.
|
# for a CPU type and a company and sometimes even an OS.
|
||||||
@ -353,8 +369,8 @@ case $basic_machine in
|
|||||||
basic_machine=cray2-cray
|
basic_machine=cray2-cray
|
||||||
os=-unicos
|
os=-unicos
|
||||||
;;
|
;;
|
||||||
[ctj]90-cray)
|
[cjt]90)
|
||||||
basic_machine=c90-cray
|
basic_machine=${basic_machine}-cray
|
||||||
os=-unicos
|
os=-unicos
|
||||||
;;
|
;;
|
||||||
crds | unos)
|
crds | unos)
|
||||||
@ -410,6 +426,10 @@ case $basic_machine in
|
|||||||
basic_machine=tron-gmicro
|
basic_machine=tron-gmicro
|
||||||
os=-sysv
|
os=-sysv
|
||||||
;;
|
;;
|
||||||
|
go32)
|
||||||
|
basic_machine=i386-pc
|
||||||
|
os=-go32
|
||||||
|
;;
|
||||||
h3050r* | hiux*)
|
h3050r* | hiux*)
|
||||||
basic_machine=hppa1.1-hitachi
|
basic_machine=hppa1.1-hitachi
|
||||||
os=-hiuxwe2
|
os=-hiuxwe2
|
||||||
@ -509,14 +529,6 @@ case $basic_machine in
|
|||||||
basic_machine=i386-unknown
|
basic_machine=i386-unknown
|
||||||
os=-vsta
|
os=-vsta
|
||||||
;;
|
;;
|
||||||
i386-go32 | go32)
|
|
||||||
basic_machine=i386-unknown
|
|
||||||
os=-go32
|
|
||||||
;;
|
|
||||||
i386-mingw32 | mingw32)
|
|
||||||
basic_machine=i386-unknown
|
|
||||||
os=-mingw32
|
|
||||||
;;
|
|
||||||
iris | iris4d)
|
iris | iris4d)
|
||||||
basic_machine=mips-sgi
|
basic_machine=mips-sgi
|
||||||
case $os in
|
case $os in
|
||||||
@ -542,6 +554,10 @@ case $basic_machine in
|
|||||||
basic_machine=ns32k-utek
|
basic_machine=ns32k-utek
|
||||||
os=-sysv
|
os=-sysv
|
||||||
;;
|
;;
|
||||||
|
mingw32)
|
||||||
|
basic_machine=i386-pc
|
||||||
|
os=-mingw32
|
||||||
|
;;
|
||||||
miniframe)
|
miniframe)
|
||||||
basic_machine=m68000-convergent
|
basic_machine=m68000-convergent
|
||||||
;;
|
;;
|
||||||
@ -572,7 +588,7 @@ case $basic_machine in
|
|||||||
os=-coff
|
os=-coff
|
||||||
;;
|
;;
|
||||||
msdos)
|
msdos)
|
||||||
basic_machine=i386-unknown
|
basic_machine=i386-pc
|
||||||
os=-msdos
|
os=-msdos
|
||||||
;;
|
;;
|
||||||
mvs)
|
mvs)
|
||||||
@ -636,6 +652,10 @@ case $basic_machine in
|
|||||||
basic_machine=i960-intel
|
basic_machine=i960-intel
|
||||||
os=-mon960
|
os=-mon960
|
||||||
;;
|
;;
|
||||||
|
nonstopux)
|
||||||
|
basic_machine=mips-compaq
|
||||||
|
os=-nonstopux
|
||||||
|
;;
|
||||||
np1)
|
np1)
|
||||||
basic_machine=np1-gould
|
basic_machine=np1-gould
|
||||||
;;
|
;;
|
||||||
@ -671,28 +691,28 @@ case $basic_machine in
|
|||||||
pc532 | pc532-*)
|
pc532 | pc532-*)
|
||||||
basic_machine=ns32k-pc532
|
basic_machine=ns32k-pc532
|
||||||
;;
|
;;
|
||||||
pentium | p5 | k5 | k6 | nexen)
|
pentium | p5 | k5 | k6 | nexgen)
|
||||||
basic_machine=i586-pc
|
basic_machine=i586-pc
|
||||||
;;
|
;;
|
||||||
pentiumpro | p6 | 6x86 | athlon)
|
pentiumpro | p6 | 6x86 | athlon)
|
||||||
basic_machine=i686-pc
|
basic_machine=i686-pc
|
||||||
;;
|
;;
|
||||||
pentiumii | pentium2)
|
pentiumii | pentium2)
|
||||||
basic_machine=i786-pc
|
basic_machine=i686-pc
|
||||||
;;
|
;;
|
||||||
pentium-* | p5-* | k5-* | k6-* | nexen-*)
|
pentium-* | p5-* | k5-* | k6-* | nexgen-*)
|
||||||
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||||
;;
|
;;
|
||||||
pentiumpro-* | p6-* | 6x86-* | athlon-*)
|
pentiumpro-* | p6-* | 6x86-* | athlon-*)
|
||||||
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||||
;;
|
;;
|
||||||
pentiumii-* | pentium2-*)
|
pentiumii-* | pentium2-*)
|
||||||
basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
|
basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
|
||||||
;;
|
;;
|
||||||
pn)
|
pn)
|
||||||
basic_machine=pn-gould
|
basic_machine=pn-gould
|
||||||
;;
|
;;
|
||||||
power) basic_machine=rs6000-ibm
|
power) basic_machine=power-ibm
|
||||||
;;
|
;;
|
||||||
ppc) basic_machine=powerpc-unknown
|
ppc) basic_machine=powerpc-unknown
|
||||||
;;
|
;;
|
||||||
@ -707,6 +727,10 @@ case $basic_machine in
|
|||||||
ps2)
|
ps2)
|
||||||
basic_machine=i386-ibm
|
basic_machine=i386-ibm
|
||||||
;;
|
;;
|
||||||
|
pw32)
|
||||||
|
basic_machine=i586-unknown
|
||||||
|
os=-pw32
|
||||||
|
;;
|
||||||
rom68k)
|
rom68k)
|
||||||
basic_machine=m68k-rom68k
|
basic_machine=m68k-rom68k
|
||||||
os=-coff
|
os=-coff
|
||||||
@ -897,6 +921,10 @@ case $basic_machine in
|
|||||||
vax)
|
vax)
|
||||||
basic_machine=vax-dec
|
basic_machine=vax-dec
|
||||||
;;
|
;;
|
||||||
|
pdp10)
|
||||||
|
# there are many clones, so DEC is not a safe bet
|
||||||
|
basic_machine=pdp10-unknown
|
||||||
|
;;
|
||||||
pdp11)
|
pdp11)
|
||||||
basic_machine=pdp11-dec
|
basic_machine=pdp11-dec
|
||||||
;;
|
;;
|
||||||
@ -904,7 +932,7 @@ case $basic_machine in
|
|||||||
basic_machine=we32k-att
|
basic_machine=we32k-att
|
||||||
;;
|
;;
|
||||||
sh3 | sh4)
|
sh3 | sh4)
|
||||||
base_machine=sh-unknown
|
basic_machine=sh-unknown
|
||||||
;;
|
;;
|
||||||
sparc | sparcv9)
|
sparc | sparcv9)
|
||||||
basic_machine=sparc-sun
|
basic_machine=sparc-sun
|
||||||
@ -987,7 +1015,8 @@ case $os in
|
|||||||
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
| -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
|
||||||
| -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
|
| -mingw32* | -linux-gnu* | -uxpv* | -beos* | -mpeix* | -udk* \
|
||||||
| -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
|
| -interix* | -uwin* | -rhapsody* | -darwin* | -opened* \
|
||||||
| -openstep* | -oskit*)
|
| -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
|
||||||
|
| -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* | -os2*)
|
||||||
# Remember, each alternative MUST END IN *, to match a version number.
|
# Remember, each alternative MUST END IN *, to match a version number.
|
||||||
;;
|
;;
|
||||||
-qnx*)
|
-qnx*)
|
||||||
@ -1048,7 +1077,7 @@ case $os in
|
|||||||
-ns2 )
|
-ns2 )
|
||||||
os=-nextstep2
|
os=-nextstep2
|
||||||
;;
|
;;
|
||||||
-nsk)
|
-nsk*)
|
||||||
os=-nsk
|
os=-nsk
|
||||||
;;
|
;;
|
||||||
# Preserve the version number of sinix5.
|
# Preserve the version number of sinix5.
|
||||||
@ -1085,7 +1114,7 @@ case $os in
|
|||||||
-xenix)
|
-xenix)
|
||||||
os=-xenix
|
os=-xenix
|
||||||
;;
|
;;
|
||||||
-*mint | -*MiNT)
|
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
|
||||||
os=-mint
|
os=-mint
|
||||||
;;
|
;;
|
||||||
-none)
|
-none)
|
||||||
@ -1119,6 +1148,9 @@ case $basic_machine in
|
|||||||
arm*-semi)
|
arm*-semi)
|
||||||
os=-aout
|
os=-aout
|
||||||
;;
|
;;
|
||||||
|
pdp10-*)
|
||||||
|
os=-tops20
|
||||||
|
;;
|
||||||
pdp11-*)
|
pdp11-*)
|
||||||
os=-none
|
os=-none
|
||||||
;;
|
;;
|
||||||
@ -1227,7 +1259,7 @@ case $basic_machine in
|
|||||||
*-masscomp)
|
*-masscomp)
|
||||||
os=-rtu
|
os=-rtu
|
||||||
;;
|
;;
|
||||||
f301-fujitsu)
|
f30[01]-fujitsu | f700-fujitsu)
|
||||||
os=-uxpv
|
os=-uxpv
|
||||||
;;
|
;;
|
||||||
*-rom68k)
|
*-rom68k)
|
||||||
@ -1305,7 +1337,7 @@ case $basic_machine in
|
|||||||
-mpw* | -macos*)
|
-mpw* | -macos*)
|
||||||
vendor=apple
|
vendor=apple
|
||||||
;;
|
;;
|
||||||
-*mint | -*MiNT)
|
-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
|
||||||
vendor=atari
|
vendor=atari
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@ -1318,7 +1350,7 @@ exit 0
|
|||||||
|
|
||||||
# Local variables:
|
# Local variables:
|
||||||
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
# time-stamp-start: "version='"
|
# time-stamp-start: "timestamp='"
|
||||||
# time-stamp-format: "%:y-%02m-%02d"
|
# time-stamp-format: "%:y-%02m-%02d"
|
||||||
# time-stamp-end: "'"
|
# time-stamp-end: "'"
|
||||||
# End:
|
# End:
|
||||||
|
@ -1,3 +1,7 @@
|
|||||||
|
2001-03-12 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
|
* strgutil.c (check_trailing_chars,check_trailing_ws): New.
|
||||||
|
|
||||||
2001-03-08 Werner Koch <wk@gnupg.org>
|
2001-03-08 Werner Koch <wk@gnupg.org>
|
||||||
|
|
||||||
* argparse.c (default_strusage): Changed year of printed copyright
|
* argparse.c (default_strusage): Changed year of printed copyright
|
||||||
|
@ -247,7 +247,7 @@ trim_spaces( char *str )
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
unsigned
|
unsigned int
|
||||||
trim_trailing_chars( byte *line, unsigned len, const char *trimchars )
|
trim_trailing_chars( byte *line, unsigned len, const char *trimchars )
|
||||||
{
|
{
|
||||||
byte *p, *mark;
|
byte *p, *mark;
|
||||||
@ -278,6 +278,37 @@ trim_trailing_ws( byte *line, unsigned len )
|
|||||||
return trim_trailing_chars( line, len, " \t\r\n" );
|
return trim_trailing_chars( line, len, " \t\r\n" );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned int
|
||||||
|
check_trailing_chars( const byte *line, unsigned int len,
|
||||||
|
const char *trimchars )
|
||||||
|
{
|
||||||
|
const byte *p, *mark;
|
||||||
|
unsigned int n;
|
||||||
|
|
||||||
|
for(mark=NULL, p=line, n=0; n < len; n++, p++ ) {
|
||||||
|
if( strchr(trimchars, *p ) ) {
|
||||||
|
if( !mark )
|
||||||
|
mark = p;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
mark = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
if( mark ) {
|
||||||
|
return mark - line;
|
||||||
|
}
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
|
||||||
|
/****************
|
||||||
|
* remove trailing white spaces and return the length of the buffer
|
||||||
|
*/
|
||||||
|
unsigned int
|
||||||
|
check_trailing_ws( const byte *line, unsigned int len )
|
||||||
|
{
|
||||||
|
return check_trailing_chars( line, len, " \t\r\n" );
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
|
Loading…
x
Reference in New Issue
Block a user