Imported Upstream version 1.46 upstream/1.46
authorDariusz Michaluk <d.michaluk@samsung.com>
Tue, 17 Jan 2023 09:10:58 +0000 (10:10 +0100)
committerDariusz Michaluk <d.michaluk@samsung.com>
Tue, 17 Jan 2023 09:10:58 +0000 (10:10 +0100)
125 files changed:
AUTHORS
ChangeLog
Makefile.am
Makefile.in
NEWS
VERSION
aclocal.m4
autogen.sh
build-aux/config.guess
build-aux/config.rpath
build-aux/config.sub
config.h.in
configure
configure.ac
contrib/ChangeLog-2011 [deleted file]
doc/Makefile.am
doc/Makefile.in
doc/gpgrt.info
doc/gpgrt.texi
doc/stamp-vti
doc/version.texi
doc/yat2m.c
lang/Makefile.in
lang/cl/Makefile.in
lang/cl/gpg-error.asd
libgpg-error.spec
m4/Makefile.am
m4/Makefile.in
m4/codeset.m4
m4/gettext.m4
m4/glibc2.m4 [deleted file]
m4/glibc21.m4 [deleted file]
m4/host-cpu-c-abi.m4 [new file with mode: 0644]
m4/iconv.m4
m4/intdiv0.m4 [deleted file]
m4/intmax.m4 [deleted file]
m4/inttypes-h.m4 [deleted file]
m4/inttypes-pri.m4 [deleted file]
m4/inttypes.m4 [deleted file]
m4/inttypes_h.m4 [deleted file]
m4/isc-posix.m4 [deleted file]
m4/lcmessage.m4 [deleted file]
m4/lib-ld.m4
m4/lib-link.m4
m4/lib-prefix.m4
m4/longdouble.m4 [deleted file]
m4/longlong.m4 [deleted file]
m4/nls.m4
m4/po.m4
m4/printf-posix.m4 [deleted file]
m4/progtest.m4
m4/signed.m4 [deleted file]
m4/size_max.m4 [deleted file]
m4/stdint_h.m4 [deleted file]
m4/uintmax_t.m4 [deleted file]
m4/ulonglong.m4 [deleted file]
m4/visibility.m4 [deleted file]
m4/wchar_t.m4 [deleted file]
m4/wint_t.m4 [deleted file]
m4/xsize.m4 [deleted file]
po/LINGUAS
po/Makefile.in.in
po/Makevars
po/Rules-quot
po/cs.po
po/da.po
po/de.po
po/eo.po
po/es.po
po/fr.po
po/hu.po
po/insert-header.sin
po/it.po
po/ja.po
po/libgpg-error.pot
po/nl.po
po/pl.po
po/pt.po
po/remove-potcdate.sin
po/ro.po
po/ru.po
po/sr.po
po/sv.po
po/tr.gmo [new file with mode: 0644]
po/tr.po [new file with mode: 0644]
po/uk.po
po/vi.po
po/zh_CN.po
po/zh_TW.po
potomo [deleted file]
src/Makefile.am
src/Makefile.in
src/argparse.c
src/estream-printf.c
src/estream.c
src/gpg-error-config-test.sh [deleted file]
src/gpg-error-config-test.sh.in
src/gpg-error.def.in
src/gpg-error.h.in
src/gpg-error.m4
src/gpgrt-config [deleted file]
src/gpgrt-config.in
src/gpgrt-int.h
src/init.c
src/init.h
src/logging.c
src/mkheader.c
src/mkw32errmap.c [deleted file]
src/posix-lock.c
src/protos.h
src/spawn-posix.c
src/spawn-w32.c
src/sysutils.c
src/version.c
src/versioninfo.rc.in
src/visibility.c
src/visibility.h
src/w32-add.h
src/w32-estream.c
src/w32-gettext.c
src/w32-reg.c
src/w32ce-add.h [deleted file]
tests/Makefile.am
tests/Makefile.in
tests/t-poll.c

diff --git a/AUTHORS b/AUTHORS
index 71dd5d3..6aba44a 100644 (file)
--- a/AUTHORS
+++ b/AUTHORS
@@ -16,7 +16,7 @@ listed individually.
 List of Copyright holders
 =========================
 
-  Copyright (C) 2001-2020 g10 Code GmbH
+  Copyright (C) 2001-2022 g10 Code GmbH
   Copyright (C) 1995-2017 Free Software Foundation, Inc.
   Copyright (C) 1998-2006, 2008-2017  Werner Koch
   Copyright (C) 2014 Jedi Lin
@@ -46,6 +46,7 @@ nl    - Freek de Kruijf <f.de.kruijf at gmail.com>
 pl    - Jakub Bogusz <qboosh at pld-linux.org>
 ro    - Laurentiu Buzdugan <lbuz at rolix.org>
 sv    - Daniel Nylander <po at danielnylander.se>
+tr    - Emir SARI <emir_sari at icloud.com>
 uk    - Yuri Chornoivan <yurchor at ukr.net>
 vi    - Clytie Siddall <clytie at riverland.net.au>
 zh_CN - Aron Xu <happyaron.xu at gmail.com>
index 782dd6a..b573a46 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,360 @@
+2022-10-07  Werner Koch  <wk@gnupg.org>
+
+       Release 1.46.
+       + commit ea031873aa9642831017937fd33e9009d514ee07
+
+
+2022-09-21  Damien Goutte-Gattat  <dgouttegattat@incenp.org>
+
+       m4: Fix detection of gpgrt's libdir.
+       + commit 628cb1a786bd5d420be17c2e9ffd407f4fbf517e
+       * src/gpg-error.m4 (GPGRT_CONFIG): Handle the case where none of the
+       system lib directories contain a pkgconfig subdirectory.
+
+2022-09-19  Damien Goutte-Gattat via Gnupg-devel  <gnupg-devel@gnupg.org>
+
+       build: Fix installation of gpg-error-config.1.
+       + commit b5043421d2b3ff5999e88808737ff400bf15b0ee
+       * doc/Makefile.am (myman_pages): Rename man page to gpg-error-config.1
+       and only install if gpg-error-config itself is installed.
+
+2022-09-15  NIIBE Yutaka  <gniibe@fsij.org>
+
+       yat2m: Use __noreturn__ attribute.
+       + commit a86ad1cbb6bd83cb30ab87f5ad1c70077288a8da
+       * doc/yat2m.c (ATTR_NR_PRINTF): Use __noreturn__.
+
+       Remove extra semicolons.
+       + commit 6f103890e9728072e1c9c1e0a1d7f87220d8eecc
+       * src/gpgrt-int.h: Remove extra.
+       * src/visibility.h: Likewise.
+
+2022-09-08  NIIBE Yutaka  <gniibe@fsij.org>
+
+       Silence compiler warnings.
+       + commit 10dc853291a1786f061e01cdcf477be0c31441b1
+       * src/argparse.c (show_version): It's no args.
+       (_gpgrt_log_get_fd, _gpgrt_log_get_stream): Likewise.
+
+2022-08-25  NIIBE Yutaka  <gniibe@fsij.org>
+
+       gpgrt-config: Strip system paths for --cflags and --libs.
+       + commit 4615816f71e91f4c3bb8b0e4122dd153ec7c1927
+       * src/gpgrt-config.in: Strip -I and -L with system paths.
+
+2022-08-17  Ingo Klöcker  <dev@ingo-kloecker.de>
+
+       build: Omit -L<libdir> for standard paths on some 64-bit systems.
+       + commit fcb19dbfd49338e5c282e2853d71d66a0594d3c1
+       * configure.ac (GPG_ERROR_CONFIG_LIBS): Handle the case $libdir =
+       '${exec_prefix}/lib64'.
+
+2022-08-15  NIIBE Yutaka  <gniibe@fsij.org>
+
+       build: Only install gpg-error-config when enabled.
+       + commit 0b47de9c719b0ed0da0791f0525de073737bde5a
+       * configure.ac (INSTALL_GPG_ERROR_CONFIG): New.
+       * src/Makefile.am (bin_SCRIPTS, noinst_SCRIPTS): Conditionalize.
+
+2022-08-02  Werner Koch  <wk@gnupg.org>
+
+       w32: Convert REG_DWORD values to a string.
+       + commit 745d333cf7b5b6fee62e3b26c8a2ccc004e017da
+       * src/w32-reg.c (_gpgrt_w32_reg_query_string): Handle REG_DWORD
+
+2022-07-28  NIIBE Yutaka  <gniibe@fsij.org>
+
+       w32: Fix for bidirectional pipe.
+       + commit 25701f105b947500f920eb5a13e328f8f7843d38
+       * src/estream.c (func_w32_seek): Return an error with ESPIPE, when
+       it's pipe.
+
+2022-07-22  NIIBE Yutaka  <gniibe@fsij.org>
+
+       doc: Update gpgrt.texi for old gpg-error-config script.
+       + commit 1e7d0d3ef627f3cdee70b8409f04d7e2ecf4fdd6
+       * doc/gpgrt.texi: Address pkg-config.  Manual entry is for
+       gpg-error-config.  gpgrt-config is an internal command for
+       gpg-error.m4.
+
+2022-07-19  NIIBE Yutaka  <gniibe@fsij.org>
+
+       build: Fix configure script.
+       + commit 64bcee3c467d837694d225e15981ea76ebf7e7b9
+       * configure.ac (AC_HEADER_TIME): Remove obsolete AC macro.
+       (AC_CHECK_SIZEOF(time_t)): Remove unneeded check.
+
+       build: Update config.guess, config.sub, and config.rpath.
+       + commit b1b808f30f83e92e7d30a9336588c15553699a7b
+       * build-aux/config.guess: Update from upstream.
+       * build-aux/config.sub: Ditto.
+       * build-aux/config.rpath: Update from gettext 0.21.
+
+2022-06-28  NIIBE Yutaka  <gniibe@fsij.org>
+
+       Remove Windows CE support.
+       + commit 14ead267268f8ed14bf1ab49189646a95654b706
+       * contrib/*: Remove.
+       * Makefile.am: Remove contrib.
+       * autogen.sh: Remove Windows CE support.
+       * configure.ac (have_w32ce_system): Remove.
+       * src/Makefile.am [HAVE_W32CE_SYSTEM] (extra_cppflags): Remove.
+       (gpg_extra_headers): Remove.
+       (EXTRA_DIST): Remove mkw32errmap.c and w32ce-add.h
+       (BUILT_SOURCES): Remove mkw32errmap.map.c.
+       (tmp_files): Remove mkw32errmap.tab.h mkw32errmap.map.c
+       (CLEANFILES): Likewise.
+       * src/estream-printf.c [HAVE_W32CE_SYSTEM]: Remove.
+       * src/estream.c [HAVE_W32CE_SYSTEM]: Remove.
+       * src/gpg-error.def.in [HAVE_W32CE_SYSTEM]: Remove.
+       * src/gpgrt-int.h: Fix comment.
+       * src/init.c [HAVE_W32CE_SYSTEM]: Remove.
+       * src/init.h [HAVE_W32CE_SYSTEM]: Remove.
+       * src/mkheader.c: Remove Windows CE support.
+       * src/mkw32errmap.c, src/w32ce-add.h: Remove.
+       * src/spawn-posix.c [HAVE_W32CE_SYSTEM]: Remove.
+       * src/spawn-w32.c [HAVE_W32CE_SYSTEM]: Remove.
+       * src/sysutils.c [HAVE_W32CE_SYSTEM]: Remove.
+       * src/w32-estream.c [HAVE_W32CE_SYSTEM]: Remove.
+       * src/w32-reg.c [HAVE_W32CE_SYSTEM]: Remove.
+       * tests/Makefile.am [HAVE_W32CE_SYSTEM]: Remove.
+
+       Typo fix in autogen.sh.
+       + commit 084d135f44a027e86f1005c893935464ffbc4b82
+       * autogen.sh: Fix typo.
+
+2022-04-07  Werner Koch  <wk@gnupg.org>
+
+       Release 1.45.
+       + commit dbac537e5e865fb6f3aa8596d213aa8c47a9dea1
+
+
+2022-04-07  NIIBE Yutaka  <gniibe@fsij.org>
+
+       logging: Fix the previous commit.
+       + commit 74e6afcc36b28b0acc49fbe25f29b42d1a223caf
+       * src/logging.c (set_file_fd): Open with append mode.
+
+       logging: Fix gpgrt_log_get_fd for file.
+       + commit 5ef201c10b1cc870ae06e34ad02bb5da0a763bfe
+       * src/logging.c (fun_writer): Only use this for socket writing.
+       (set_file_fd): Use es_stderr when "-".
+       Use the stream by _gpgrt_fdopen when FD is specified.
+       Use the stream by _gpgrt_fopen when name is not socket.
+       Only use the stream by _gpgrt_fopencookie for socket.
+       [HAVE_W32CE_SYSTEM]: Remove W32CE support.
+
+2022-04-04  NIIBE Yutaka  <gniibe@fsij.org>
+
+       w32: Add ES_SYSHD_SOCK support for gpgrt_sysopen.
+       + commit 018ea46a30cf4eda70070ba42c4fee642fb2fd8a
+       * src/mkheader.c (write_special): Support @SOCKET_t@ substitution.
+       * src/gpgrt-int.h (gpgrt_stream_backend_kind_t): Add BACKEND_SOCK.
+       * src/gpg-error.h.in (struct _gpgrt_syshd): Use @SOCKET_t@.
+       * src/estream.c [HAVE_W32_SYSTEM] (estream_cookie_sock_t): New.
+       [HAVE_W32_SYSTEM] (func_sock_create, func_sock_read): New.
+       [HAVE_W32_SYSTEM] (func_sock_write, func_sock_seek): New.
+       [HAVE_W32_SYSTEM] (func_sock_destroy, func_sock_ioctl): New.
+       [HAVE_W32_SYSTEM] (estream_functions_sock, do_sockopen): New.
+       [HAVE_W32_SYSTEM] (do_sysopen): Call do_sockopen.
+
+2022-03-29  NIIBE Yutaka  <gniibe@fsij.org>
+
+       w32: Fix handle_to_pid for MinGW-w64.
+       + commit 660db9c9a90f377fc14a5d659d974d68d782b2d1
+       * src/spawn-w32.c (handle_to_pid): Use pid_t to coerce the type.
+
+2022-03-28  NIIBE Yutaka  <gniibe@fsij.org>
+
+       core: Fix support of posix-lock for FreeBSD.
+       + commit 6e17e70bb7eea1f6ed4c08f795ea65a09f89d38f
+       * src/posix-lock.c [__FreeBSD__] (use_pthread_p): Use
+       pthread_key_create to determine if it's linked to lpthread or not.
+
+       yat2m: Only emit a message of the page with --verbose option.
+       + commit 70489b4f75c0afcb1b5c65e579b231d8f657b8c6
+       * doc/yat2m.c (finish_page): Conditionalize the output with VERBOSE.
+
+2022-03-25  NIIBE Yutaka  <gniibe@fsij.org>
+
+       w32: Fix for MinGW which doesn't define EOPNOTSUPP.
+       + commit 8e67e8c3f21c798ff1f4862b0e7228825e6dd4f6
+       * src/w32-estream.c: Add EOPNOTSUPP.
+
+2022-03-04  Werner Koch  <wk@gnupg.org>
+
+       w32: Support file names longer than MAX_PATH.
+       + commit 32dad4e4135f0bdc436ed684da753d4b0cdb0ea1
+       * src/sysutils.c (any8bitchar): Remove.
+       (_gpgrt_fname_to_wchar): New.
+       (_gpgrt_mkdir): Use instead of plain utf8 conversion.
+       (_gpgrt_access): Reimplement using GetFileAttributesW so that long
+       files names are supported.
+       * src/estream.c (_gpgrt_w32_get_last_err_code): New.
+       (func_file_create_w32): New.
+       (_gpgrt_fopen): Handle the "sysopen" mode flag.  Support mapping of
+       /dev/null.
+       (_gpgrt_freopen): Support mapping of /dev/null.
+       * src/w32-gettext.c (load_domain): Allow long file names.
+
+       * src/visibility.c (gpgrt_free_wchar): Make function public.
+       (gpgrt_fname_to_wchar): Ditto.
+       (gpgrt_utf8_to_wchar): Ditto.
+       (gpgrt_wchar_to_utf8): Ditto.
+       * src/w32-add.h  (gpgrt_free_wchar): New prototype.
+       (gpgrt_fname_to_wchar): Ditto.
+       (gpgrt_utf8_to_wchar): Ditto.
+       (gpgrt_wchar_to_utf8): Ditto.
+       * src/gpg-error.def.in: Add them here too.
+
+2022-02-17  NIIBE Yutaka  <gniibe@fsij.org>
+
+       gpg-error.m4: Fix use with older gpgrt-config (< 1.33).
+       + commit 666d64d2bc6539d0ca03dea69abc5a8ccdf37be5
+       * src/gpg-error.m4: When gpgrt-config doesn't work expected for
+       gpg-error.pc, unset GPGRT_CONFIG.
+
+2022-02-01  NIIBE Yutaka  <gniibe@fsij.org>
+
+       build,tests: Fix detection of have_lock_optimization.
+       + commit 433aba9e778ebe9500c29ae1ae34999d48e98a19
+       * configure.ac: Lock optimization (without sys/single_threaded.h) is
+       only known to work on GNU system, using weak symbol.
+
+2022-01-27  Werner Koch  <wk@gnupg.org>
+
+       Release 1.44.
+       + commit 54eff9cb9ac86809f3217179eb1029058d4a7936
+       * configure.ac: Bump LT version to C32/A32/R2.
+
+2022-01-27  Emir SARI  <emir_sari@icloud.com>
+
+       Add Turkish translations.
+       + commit 663b91fe91af0bb290fe18092896a8917bf51e14
+
+
+2022-01-25  Werner Koch  <wk@gnupg.org>
+
+       core: Fix returning of option attributes for options with args.
+       + commit 5ab088aba9f05b480c311e94d45a88728ac9320b
+       * src/argparse.c (_gpgrt_argparse): Set attributes info flags
+
+2022-01-18  Daniel Kahn Gillmor  <dkg@fifthhorseman.net>
+
+       build: Detect more flexible musl variants of GNU.
+       + commit 0150919b6a8244be1055d01ad21d6fa47788ab0e
+       * configure.ac: expand *-*-linux-musl to *-*-linux-musl*.
+
+2022-01-18  NIIBE Yutaka  <gniibe@fsij.org>
+
+       po,w32: Directly run msgfmt at install-data-hook.
+       + commit b26220f92fa668e185dbf2bcc5006c6e74b20073
+       * Makefile.am (EXTRA_DIST): Remove potomo.
+       [HAVE_W32_SYSTEM] (install-data-hook): Run msgfmt.
+
+       po: Update files from gettext 0.21 to match m4/po.m4.
+       + commit b37c68f28a921d1c03507469f4af53e012ef7679
+       * po/Makefile.in.in: Update.
+       * po/Makevars: Update.
+       * po/Rules-quot: Update.
+       * po/insert-header.sin: Update.
+       * po/remove-potcdate.sin: Update.
+
+2021-12-22  NIIBE Yutaka  <gniibe@fsij.org>
+
+       build: Recover and update *.m4.
+       + commit 973dbdbfc90136798cfa4001166a40b904fdad70
+       * m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: Copied
+       from gnulib.
+       * m4/po.m4, m4/nls.m4, m4/progtest.m4: Likewise.
+       * m4/gettext.m4, m4/iconv.m4: Update from gnulib.
+       * m4/host-cpu-c-abi.m4: New from gnulib.
+
+       build: Remove obsolete m4 files.
+       + commit 980e4410bb0a372a7bcce5f454915e6565a56b96
+       * m4/glibc2.m4, m4/glibc21.m4, m4/intdiv0.m4, m4/intmax.m4: Remove.
+       * m4/inttypes-h.m4, m4/inttypes-pri.m4, m4/inttypes.m4: Remove.
+       * m4/inttypes_h.m4, m4/isc-posix.m4, m4/lcmessage.m4: Remove.
+       * m4/lib-ld.m4, m4/lib-link.m4, m4/lib-prefix.m4: Remove.
+       * m4/longdouble.m4, m4/longlong.m4, m4/nls.m4, m4/po.m4: Remove.
+       * m4/printf-posix.m4, m4/progtest.m4, m4/signed.m4: Remove.
+       * m4/size_max.m4, m4/stdint_h.m4, m4/uintmax_t.m4: Remove.
+       * m4/ulonglong.m4, m4/visibility.m4, m4/wchar_t.m4: Remove.
+       * m4/wint_t.m4, m4/xsize.m4: Remove.
+
+2021-12-17  NIIBE Yutaka  <gniibe@fsij.org>
+
+       tests: Fix gpg-error-config-test for PKG_CONFIG_LIBDIR.
+       + commit 8d2bd9a0d4bba9b820bc03a9275441c39182d5b7
+       * src/gpg-error-config-test.sh.in: Clear PKG_CONFIG_LIBDIR.
+
+2021-12-15  NIIBE Yutaka  <gniibe@fsij.org>
+
+       build: Update configure.ac for newer autoconf.
+       + commit f5e043ad271f431f2c35fc6b22fc51b448507b01
+       * configure.ac (AC_PREREQ): Require 2.69 or later.
+       (AC_CONFIG_HEADERS): Replace AC_CONFIG_HEADER.
+       (AC_HEADER_STDC): Remove.
+       * m4/codeset.m4: Update from gnulib.
+
+2021-12-13  NIIBE Yutaka  <gniibe@fsij.org>
+
+       build: Fix have_lock_optimization code for 'guessing yes'.
+       + commit f15c06951bb91eb0a4ab54f6707b6e21448945f9
+       * configure.ac: Support 'guessing yes' for gl_cv_have_weak.
+
+       build: Detect a system with musl, as a variant of GNU System.
+       + commit e17cf023d894acc3932505f66fbd9c31ce56793f
+       * configure.ac: Add *-*-linux-musl.
+
+2021-12-07  Jakub Jelen  <jjelen@redhat.com>
+
+       configure: Add missing check for logging.
+       + commit 7fac8e02d80d139f43fc5fd179618ab769512124
+       * configure.ac: Add missing check for inet_pton to avoid using inet_addr
+         in modern systems.
+
+2021-11-29  NIIBE Yutaka  <gniibe@fsij.org>
+
+       tests,w32: Use CreatePipe and es_sysopen.
+       + commit 858bcd4343ac40566825cfa861ee60bcc54cb6c8
+       * tests/t-poll.c (create_pipe): Use CreatePipe.
+
+2021-11-25  NIIBE Yutaka  <gniibe@fsij.org>
+
+       build,tests: Run t-lock-single-posix only on platforms supported.
+       + commit 50e0f32b19356fd7c64c799192379ff2204cd8a3
+       * configure.ac (HAVE_LOCK_OPTIMIZATION): New.
+       * tests/Makefile.am: Use HAVE_LOCK_OPTIMIZATION for
+       t-lock-single-posix.
+
+2021-11-19  NIIBE Yutaka  <gniibe@fsij.org>
+
+       build: Fix dependency to gpg-error-config-test.sh.
+       + commit 0fcfca8e9ffa25836f391df75f5b3bb1b7dc1a69
+       * src/Makefile.am (gpg-error-config): It depends on configure
+       generated gpg-error-config-test.sh.
+
+2021-11-12  NIIBE Yutaka  <gniibe@fsij.org>
+
+       build: Fix for configure generated files.
+       + commit fd83c3e29744c8d7829df3de8c10f9c68f11e429
+       * src/Makefile.am (bin_SCRIPTS): Add gpgrt-config.
+       (EXTRA_DIST): Add gpgrt-config.in and gpg-error-config-test.sh.in.
+       (CLEANFILES): Add configure generated files.
+
+       configure: Escape includedir/libdir to defer interpretation of vars.
+       + commit 1e5b17f4284ea2904c65d08097735a1a4a8879a1
+       configure.ac: Escape includedir for GPG_ERROR_CONFIG_CFLAGS.
+       Escape libdir for GPG_ERROR_CONFIG_LIBS.
+
+2021-11-04  NIIBE Yutaka  <gniibe@fsij.org>
+
+       estream: Only include sys/select.h when needed.
+       + commit 61843dace32f12475b1ade5423deaa0421cbbc0b
+       * src/estream.c: The select function is only used when poll is not
+       available.  So, let it include the header file only when needed.
+
 2021-11-03  Werner Koch  <wk@gnupg.org>
 
        Release 1.43.
index b67a276..8897f17 100644 (file)
 # License along with this program; if not, see <https://www.gnu.org/licenses/>.
 # SPDX-License-Identifier: LGPL-2.1-or-later
 
-# Location of the released tarball archives.  Note that this is an
-# internal archive and before uploading this to the public server,
-# manual tests should be run and the git release tat set and pushed.
-# Adjust as needed.
-RELEASE_ARCHIVE_DIR  = wk@vigenere:tarballs/libgpg-error/
+# Location of the released tarball archives.  This is prefixed by
+# the variable RELEASE_ARCHIVE in ~/.gnupg-autogen.rc.  For example:
+# RELEASE_ARCHIVE=wk@somehost:archive/tarballs
+RELEASE_ARCHIVE_SUFFIX  = libgpg-error
+# The variable RELEASE_SIGNING_KEY in ~/.gnupg-autogen.rc is used
+# to specify the key for signing.  For example:
+# RELEASE_SIGNKEY=D8692123C4065DEA5E0F3AB5249B39D24F25E3B6
 
-# The key used to sign the released sources.  Adjust as needed.
-RELEASE_SIGNING_KEY  = 6DAA6E64A76D2840571B4902528897B826403ADA
 
 # Autoconf flags
 ACLOCAL_AMFLAGS = -I m4
@@ -34,8 +34,8 @@ DISTCHECK_CONFIGURE_FLAGS = --enable-doc
 GITLOG_TO_CHANGELOG=gitlog-to-changelog
 
 EXTRA_DIST = autogen.sh autogen.rc libgpg-error.spec.in                \
-             VERSION COPYING COPYING.LIB potomo doc/HACKING ChangeLog-2011 \
-            po/ChangeLog-2011 m4/ChangeLog-2011 contrib/ChangeLog-2011 \
+             VERSION COPYING COPYING.LIB doc/HACKING ChangeLog-2011 \
+            po/ChangeLog-2011 m4/ChangeLog-2011 \
              build-aux/git-log-footer  build-aux/git-log-fix
 
 
@@ -103,12 +103,12 @@ gen-ChangeLog:
 if HAVE_W32_SYSTEM
 install-data-hook:
        set -e; \
-       for i in $$($(top_srcdir)/potomo --get-linguas $(top_srcdir)/po); do \
-           $(MKDIR_P) "$(DESTDIR)$(localedir)/$$i/LC_MESSAGES" || true; \
-           rm -f "$(DESTDIR)$(localedir)/$$i/LC_MESSAGES/libgpg-error.mo" \
-                                                 2>/dev/null || true; \
-           $(top_srcdir)/potomo $(top_srcdir)/po/$$i.po \
-              "$(DESTDIR)$(localedir)/$$i/LC_MESSAGES/libgpg-error.mo" ; \
+       for i in $$(sed -e '/^#/d' -e 's/#.*//' $(top_srcdir)/po/LINGUAS); do \
+           $(MKDIR_P) "$(DESTDIR)$(localedir)/$$i/LC_MESSAGES" || true;       \
+           rm -f "$(DESTDIR)$(localedir)/$$i/LC_MESSAGES/libgpg-error.mo"     \
+                                                 2>/dev/null || true;         \
+           msgfmt -o "$(DESTDIR)$(localedir)/$$i/LC_MESSAGES/libgpg-error.mo" \
+                   $(top_srcdir)/po/$$i.po ;                                  \
        done
 endif
 
@@ -141,7 +141,19 @@ release:
 
 sign-release:
         +(set -e; \
-         cd dist; \
+         test $$(pwd | sed 's,.*/,,') = dist || cd dist; \
+         x=$$(grep '^RELEASE_ARCHIVE=' $$HOME/.gnupg-autogen.rc|cut -d= -f2);\
+          if [ -z "$$x" ]; then \
+             echo "error: RELEASE_ARCHIVE missing in ~/.gnupg-autogen.rc">&2; \
+             exit 2;\
+          fi;\
+          myarchive="$$x/$(RELEASE_ARCHIVE_SUFFIX)";\
+         x=$$(grep '^RELEASE_SIGNKEY=' $$HOME/.gnupg-autogen.rc|cut -d= -f2);\
+          if [ -z "$$x" ]; then \
+             echo "error: RELEASE_SIGNKEY missing in ~/.gnupg-autogen.rc">&2; \
+             exit 2;\
+          fi;\
+         mysignkey="$$x";\
          files1="$(RELEASE_NAME).tar.bz2 \
                  $(RELEASE_NAME).tar.gz" ; \
          files2="$(RELEASE_NAME).tar.bz2.sig \
@@ -149,15 +161,15 @@ sign-release:
                  $(RELEASE_NAME).swdb \
                  $(RELEASE_NAME).buildlog" ;\
          echo "/* Signing the source tarball ..." ;\
-         gpg -sbu $(RELEASE_SIGNING_KEY) $(RELEASE_NAME).tar.bz2 ;\
-         gpg -sbu $(RELEASE_SIGNING_KEY) $(RELEASE_NAME).tar.gz  ;\
+         gpg -sbu $$mysignkey $(RELEASE_NAME).tar.bz2 ;\
+         gpg -sbu $$mysignkey $(RELEASE_NAME).tar.gz  ;\
          cat $(RELEASE_NAME).swdb >swdb.snippet;\
          echo >>swdb.snippet ;\
          sha1sum $${files1} >>swdb.snippet ;\
           cat "../$(RELEASE_NAME).buildlog" swdb.snippet \
                | gzip >$(RELEASE_NAME).buildlog ;\
-          echo "Copying to local archive ..." ;\
-         scp -p $${files1} $${files2} $(RELEASE_ARCHIVE_DIR)/ || true;\
+          echo "Copying to archive $$myarchive ..." ;\
+         scp -p $${files1} $${files2} $${myarchive}/ || true;\
          echo '/*' ;\
          echo ' * All done; for checksums see dist/swdb.snippet' ;\
          echo ' */' ;\
index 6eb3f31..f6df404 100644 (file)
@@ -112,14 +112,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/autobuild.m4 \
        $(top_srcdir)/m4/ax_cc_for_build.m4 \
        $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/estream.m4 \
        $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gnupg-misc.m4 \
-       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
-       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
-       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
-       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/readline.m4 \
-       $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/ltoptions.m4 \
+       $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+       $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/threadlib.m4 \
+       $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \
@@ -325,8 +326,8 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -408,14 +409,13 @@ top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 
-# Location of the released tarball archives.  Note that this is an
-# internal archive and before uploading this to the public server,
-# manual tests should be run and the git release tat set and pushed.
-# Adjust as needed.
-RELEASE_ARCHIVE_DIR = wk@vigenere:tarballs/libgpg-error/
-
-# The key used to sign the released sources.  Adjust as needed.
-RELEASE_SIGNING_KEY = 6DAA6E64A76D2840571B4902528897B826403ADA
+# Location of the released tarball archives.  This is prefixed by
+# the variable RELEASE_ARCHIVE in ~/.gnupg-autogen.rc.  For example:
+# RELEASE_ARCHIVE=wk@somehost:archive/tarballs
+RELEASE_ARCHIVE_SUFFIX = libgpg-error
+# The variable RELEASE_SIGNING_KEY in ~/.gnupg-autogen.rc is used
+# to specify the key for signing.  For example:
+# RELEASE_SIGNKEY=D8692123C4065DEA5E0F3AB5249B39D24F25E3B6
 
 # Autoconf flags
 ACLOCAL_AMFLAGS = -I m4
@@ -424,8 +424,8 @@ DISTCHECK_CONFIGURE_FLAGS = --enable-doc
 # (A suitable gitlog-to-changelog script can be found in GnuPG master.)
 GITLOG_TO_CHANGELOG = gitlog-to-changelog
 EXTRA_DIST = autogen.sh autogen.rc libgpg-error.spec.in                \
-             VERSION COPYING COPYING.LIB potomo doc/HACKING ChangeLog-2011 \
-            po/ChangeLog-2011 m4/ChangeLog-2011 contrib/ChangeLog-2011 \
+             VERSION COPYING COPYING.LIB doc/HACKING ChangeLog-2011 \
+            po/ChangeLog-2011 m4/ChangeLog-2011 \
              build-aux/git-log-footer  build-aux/git-log-fix
 
 @LANGUAGES_SOME_FALSE@lang_subdirs = 
@@ -975,12 +975,12 @@ gen-ChangeLog:
 
 @HAVE_W32_SYSTEM_TRUE@install-data-hook:
 @HAVE_W32_SYSTEM_TRUE@ set -e; \
-@HAVE_W32_SYSTEM_TRUE@ for i in $$($(top_srcdir)/potomo --get-linguas $(top_srcdir)/po); do \
-@HAVE_W32_SYSTEM_TRUE@           $(MKDIR_P) "$(DESTDIR)$(localedir)/$$i/LC_MESSAGES" || true; \
-@HAVE_W32_SYSTEM_TRUE@           rm -f "$(DESTDIR)$(localedir)/$$i/LC_MESSAGES/libgpg-error.mo" \
-@HAVE_W32_SYSTEM_TRUE@                                                 2>/dev/null || true; \
-@HAVE_W32_SYSTEM_TRUE@           $(top_srcdir)/potomo $(top_srcdir)/po/$$i.po \
-@HAVE_W32_SYSTEM_TRUE@              "$(DESTDIR)$(localedir)/$$i/LC_MESSAGES/libgpg-error.mo" ; \
+@HAVE_W32_SYSTEM_TRUE@ for i in $$(sed -e '/^#/d' -e 's/#.*//' $(top_srcdir)/po/LINGUAS); do \
+@HAVE_W32_SYSTEM_TRUE@           $(MKDIR_P) "$(DESTDIR)$(localedir)/$$i/LC_MESSAGES" || true;       \
+@HAVE_W32_SYSTEM_TRUE@           rm -f "$(DESTDIR)$(localedir)/$$i/LC_MESSAGES/libgpg-error.mo"     \
+@HAVE_W32_SYSTEM_TRUE@                                                 2>/dev/null || true;         \
+@HAVE_W32_SYSTEM_TRUE@           msgfmt -o "$(DESTDIR)$(localedir)/$$i/LC_MESSAGES/libgpg-error.mo" \
+@HAVE_W32_SYSTEM_TRUE@                   $(top_srcdir)/po/$$i.po ;                                  \
 @HAVE_W32_SYSTEM_TRUE@ done
 
 stowinstall:
@@ -1008,7 +1008,19 @@ release:
 
 sign-release:
         +(set -e; \
-         cd dist; \
+         test $$(pwd | sed 's,.*/,,') = dist || cd dist; \
+         x=$$(grep '^RELEASE_ARCHIVE=' $$HOME/.gnupg-autogen.rc|cut -d= -f2);\
+          if [ -z "$$x" ]; then \
+             echo "error: RELEASE_ARCHIVE missing in ~/.gnupg-autogen.rc">&2; \
+             exit 2;\
+          fi;\
+          myarchive="$$x/$(RELEASE_ARCHIVE_SUFFIX)";\
+         x=$$(grep '^RELEASE_SIGNKEY=' $$HOME/.gnupg-autogen.rc|cut -d= -f2);\
+          if [ -z "$$x" ]; then \
+             echo "error: RELEASE_SIGNKEY missing in ~/.gnupg-autogen.rc">&2; \
+             exit 2;\
+          fi;\
+         mysignkey="$$x";\
          files1="$(RELEASE_NAME).tar.bz2 \
                  $(RELEASE_NAME).tar.gz" ; \
          files2="$(RELEASE_NAME).tar.bz2.sig \
@@ -1016,15 +1028,15 @@ sign-release:
                  $(RELEASE_NAME).swdb \
                  $(RELEASE_NAME).buildlog" ;\
          echo "/* Signing the source tarball ..." ;\
-         gpg -sbu $(RELEASE_SIGNING_KEY) $(RELEASE_NAME).tar.bz2 ;\
-         gpg -sbu $(RELEASE_SIGNING_KEY) $(RELEASE_NAME).tar.gz  ;\
+         gpg -sbu $$mysignkey $(RELEASE_NAME).tar.bz2 ;\
+         gpg -sbu $$mysignkey $(RELEASE_NAME).tar.gz  ;\
          cat $(RELEASE_NAME).swdb >swdb.snippet;\
          echo >>swdb.snippet ;\
          sha1sum $${files1} >>swdb.snippet ;\
           cat "../$(RELEASE_NAME).buildlog" swdb.snippet \
                | gzip >$(RELEASE_NAME).buildlog ;\
-          echo "Copying to local archive ..." ;\
-         scp -p $${files1} $${files2} $(RELEASE_ARCHIVE_DIR)/ || true;\
+          echo "Copying to archive $$myarchive ..." ;\
+         scp -p $${files1} $${files2} $${myarchive}/ || true;\
          echo '/*' ;\
          echo ' * All done; for checksums see dist/swdb.snippet' ;\
          echo ' */' ;\
diff --git a/NEWS b/NEWS
index eccabac..f967d74 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,79 @@
+Noteworthy changes in version 1.46 (2022-10-07) [C33/A33/R1]
+-----------------------------------------------
+
+ * Support for bidirectional pipes under Windows.  [T6112]
+
+ * REG_DWORD types are now support in the Windows Registry.
+   [rE745d333cf7]
+
+ * Added ES_SYSHD_SOCK support for gpgrt_sysopen under Windows.
+   [rE018ea46a30]
+
+ * Fixed gpgrt_log_get_fd for the file case.  [T5922]
+
+ * Avoids header problem with C11 and "noreturn".  [T4002]
+
+ * The gpg-error-config command is not installed by default, because
+   it is now replaced by use of pkg-config/gpgrt-config with
+   gpg-error.pc.  Supply --enable-install-gpg-error-config configure
+   option, if it's really needed.
+
+ * Fixed support of posix-lock for FreeBSD.  [rE6e17e70bb7]
+
+ * Build fixes for some Mingw tool chain versions.  [T5890, T4656]
+
+ * Removed remaining support for WindowsCE.  [T5912]
+
+ * Updated config.guess, config.sub, and config.rpath.  [T6078]
+
+ * gpg-error-config is now only installed when enabled.  [T5683]
+
+ * System paths are now stripped from --cflags --and --libs.  [T6136]
+
+ Release-info: https://dev.gnupg.org/T5923
+
+
+Noteworthy changes in version 1.45 (2022-04-07) [C33/A33/R0]
+-----------------------------------------------
+
+ * Support the "sysopen" mode parameter for gpgrt_fopen so that file
+   names longer than MAX_PATH can be supported under Windows.
+
+ * gpgrt_access and gpgrt_mkdir now support file names longer than
+   MAX_PATH.
+
+ * gpgrt_fopen now maps "/dev/null" to "nul" on Windows.
+
+ * Published some internal helper functions for Windows.
+
+ * Interface changes relative to the 1.42 release:
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ gpgrt_free_wchar                 NEW.
+ gpgrt_fname_to_wchar             NEW.
+ gpgrt_utf8_to_wchar              NEW.
+ gpgrt_wchar_to_utf8              NEW.
+
+ Release-info: https://dev.gnupg.org/T5802
+
+
+Noteworthy changes in version 1.44 (2022-01-27) [C32/A32/R2]
+-----------------------------------------------
+
+ * Fix dependency to gpg-error-config-test.sh.  [T5696]
+
+ * Run the posix locking test only on supported platforms.  [T5699]
+
+ * Detect Linux systems using musl.  [T5762]
+
+ * Fix gpg-error-config-test for PKG_CONFIG_LIBDIR.  [T5740]
+
+ * Fix returning of option attributes for options with args.  [T5799]
+
+ * Add Turkish translations.
+
+ Release-info: https://dev.gnupg.org/T5676
+
+
 Noteworthy changes in version 1.43 (2021-11-03) [C32/A32/R1]
 -----------------------------------------------
 
diff --git a/VERSION b/VERSION
index d9d7ef5..7ab887e 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.43
+1.46
index 86f4cbe..8d2cbf8 100644 (file)
@@ -1343,6 +1343,7 @@ m4_include([m4/codeset.m4])
 m4_include([m4/estream.m4])
 m4_include([m4/gettext.m4])
 m4_include([m4/gnupg-misc.m4])
+m4_include([m4/host-cpu-c-abi.m4])
 m4_include([m4/iconv.m4])
 m4_include([m4/lib-ld.m4])
 m4_include([m4/lib-link.m4])
index 9b36158..9ea0612 100755 (executable)
@@ -1,6 +1,6 @@
 #! /bin/sh
 # autogen.sh
-# Copyright (C) 2003, 2014, 2017, 2018 g10 Code GmbH
+# Copyright (C) 2003, 2014, 2017, 2018, 2022 g10 Code GmbH
 #
 # This file is free software; as a special exception the author gives
 # unlimited permission to copy and/or distribute it, with or without
@@ -15,7 +15,7 @@
 # configure it for the respective package.  It is maintained as part of
 # GnuPG and source copied by other packages.
 #
-# Version: 2018-07-10
+# Version: 2022-06-28
 
 configure_ac="configure.ac"
 
@@ -137,8 +137,6 @@ extraoptions=
 # List of optional variables sourced from autogen.rc and ~/.gnupg-autogen.rc
 w32_toolprefixes=
 w32_extraoptions=
-w32ce_toolprefixes=
-w32ce_extraoptions=
 w64_toolprefixes=
 w64_extraoptions=
 amd64_toolprefixes=
@@ -146,7 +144,6 @@ amd64_toolprefixes=
 # What follows are variables which are sourced but default to
 # environment variables or lacking them hardcoded values.
 #w32root=
-#w32ce_root=
 #w64root=
 #amd64root=
 
@@ -167,11 +164,6 @@ case "$1" in
         myhost="w32"
         shift
         ;;
-    --build-w32ce)
-        myhost="w32"
-        myhostsub="ce"
-        shift
-        ;;
     --build-w64)
         myhost="w32"
         myhostsub="64"
@@ -203,7 +195,7 @@ if [ "$myhost" = "git-build" ]; then
     die_p
     make || fatal "error running make"
     die_p
-    make check || fatal "error running male check"
+    make check || fatal "error running make check"
     die_p
     exit 0
 fi
@@ -294,12 +286,6 @@ fi
 # ******************
 if [ "$myhost" = "w32" ]; then
     case $myhostsub in
-        ce)
-          w32root="$w32ce_root"
-          [ -z "$w32root" ] && w32root="$HOME/w32ce_root"
-          toolprefixes="$w32ce_toolprefixes arm-mingw32ce"
-          extraoptions="$extraoptions $w32ce_extraoptions"
-          ;;
         64)
           w32root="$w64root"
           [ -z "$w32root" ] && w32root="$HOME/w64root"
index b33c9e8..7f76b62 100755 (executable)
@@ -1,12 +1,14 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2018 Free Software Foundation, Inc.
+#   Copyright 1992-2022 Free Software Foundation, Inc.
 
-timestamp='2018-08-29'
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2022-01-09'
 
 # 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
-# the Free Software Foundation; either version 3 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful, but
@@ -27,11 +29,19 @@ timestamp='2018-08-29'
 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
 #
 # You can get the latest version of this script from:
-# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
 #
 # Please send patches to <config-patches@gnu.org>.
 
 
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX.  However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
+
 me=`echo "$0" | sed -e 's,.*/,,'`
 
 usage="\
@@ -50,7 +60,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2018 Free Software Foundation, Inc.
+Copyright 1992-2022 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."
@@ -84,6 +94,9 @@ if test $# != 0; then
   exit 1
 fi
 
+# Just in case it came from the environment.
+GUESS=
+
 # CC_FOR_BUILD -- compiler used by this script. Note that the use of a
 # compiler to aid in system detection is discouraged as it requires
 # temporary files to be created and, as you can see below, it is a
@@ -96,12 +109,13 @@ fi
 
 tmp=
 # shellcheck disable=SC2172
-trap 'test -z "$tmp" || rm -fr "$tmp"' 1 2 13 15
-trap 'exitcode=$?; test -z "$tmp" || rm -fr "$tmp"; exit $exitcode' 0
+trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15
 
 set_cc_for_build() {
+    # prevent multiple calls if $tmp is already set
+    test "$tmp" && return 0
     : "${TMPDIR=/tmp}"
-    # shellcheck disable=SC2039
+    # shellcheck disable=SC2039,SC3028
     { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
        { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } ||
        { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } ||
@@ -111,7 +125,7 @@ set_cc_for_build() {
        ,,)    echo "int x;" > "$dummy.c"
               for driver in cc gcc c89 c99 ; do
                   if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
-                      CC_FOR_BUILD="$driver"
+                      CC_FOR_BUILD=$driver
                       break
                   fi
               done
@@ -132,14 +146,12 @@ fi
 
 UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=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
 
-case "$UNAME_SYSTEM" in
+case $UNAME_SYSTEM in
 Linux|GNU|GNU/*)
-       # If the system lacks a compiler, then just pick glibc.
-       # We could probably try harder.
-       LIBC=gnu
+       LIBC=unknown
 
        set_cc_for_build
        cat <<-EOF > "$dummy.c"
@@ -148,24 +160,37 @@ Linux|GNU|GNU/*)
        LIBC=uclibc
        #elif defined(__dietlibc__)
        LIBC=dietlibc
-       #else
+       #elif defined(__GLIBC__)
        LIBC=gnu
+       #else
+       #include <stdarg.h>
+       /* First heuristic to detect musl libc.  */
+       #ifdef __DEFINED_va_list
+       LIBC=musl
+       #endif
        #endif
        EOF
-       eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
+       cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
+       eval "$cc_set_libc"
 
-       # If ldd exists, use it to detect musl libc.
-       if command -v ldd >/dev/null && \
-               ldd --version 2>&1 | grep -q ^musl
-       then
-           LIBC=musl
+       # Second heuristic to detect musl libc.
+       if [ "$LIBC" = unknown ] &&
+          command -v ldd >/dev/null &&
+          ldd --version 2>&1 | grep -q ^musl; then
+               LIBC=musl
+       fi
+
+       # If the system lacks a compiler, then just pick glibc.
+       # We could probably try harder.
+       if [ "$LIBC" = unknown ]; then
+               LIBC=gnu
        fi
        ;;
 esac
 
 # 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
     *:NetBSD:*:*)
        # NetBSD (nbsd) targets should (where applicable) match one or
        # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*,
@@ -177,12 +202,12 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
        #
        # Note: NetBSD doesn't particularly care about the vendor
        # portion of the name.  We always set it to "unknown".
-       sysctl="sysctl -n hw.machine_arch"
        UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
-           "/sbin/$sysctl" 2>/dev/null || \
-           "/usr/sbin/$sysctl" 2>/dev/null || \
+           /sbin/sysctl -n hw.machine_arch 2>/dev/null || \
+           /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \
            echo unknown)`
-       case "$UNAME_MACHINE_ARCH" in
+       case $UNAME_MACHINE_ARCH in
+           aarch64eb) machine=aarch64_be-unknown ;;
            armeb) machine=armeb-unknown ;;
            arm*) machine=arm-unknown ;;
            sh3el) machine=shl-unknown ;;
@@ -191,13 +216,13 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
            earmv*)
                arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'`
                endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'`
-               machine="${arch}${endian}"-unknown
+               machine=${arch}${endian}-unknown
                ;;
-           *) machine="$UNAME_MACHINE_ARCH"-unknown ;;
+           *) machine=$UNAME_MACHINE_ARCH-unknown ;;
        esac
        # The Operating System including object format, if it has switched
        # to ELF recently (or will in the future) and ABI.
-       case "$UNAME_MACHINE_ARCH" in
+       case $UNAME_MACHINE_ARCH in
            earm*)
                os=netbsdelf
                ;;
@@ -218,7 +243,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
                ;;
        esac
        # Determine ABI tags.
-       case "$UNAME_MACHINE_ARCH" in
+       case $UNAME_MACHINE_ARCH in
            earm*)
                expr='s/^earmv[0-9]/-eabi/;s/eb$//'
                abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"`
@@ -229,7 +254,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
        # thus, need a distinct triplet. However, they do not need
        # kernel version information, so it can be replaced with a
        # suitable tag, in the style of linux-gnu.
-       case "$UNAME_VERSION" in
+       case $UNAME_VERSION in
            Debian*)
                release='-gnu'
                ;;
@@ -240,45 +265,57 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
        # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
        # contains redundant information, the shorter form:
        # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-       echo "$machine-${os}${release}${abi-}"
-       exit ;;
+       GUESS=$machine-${os}${release}${abi-}
+       ;;
     *:Bitrig:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
-       echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE
+       ;;
     *:OpenBSD:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
-       echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE
+       ;;
+    *:SecBSD:*:*)
+       UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'`
+       GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE
+       ;;
     *:LibertyBSD:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
-       echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE
+       ;;
     *:MidnightBSD:*:*)
-       echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE
+       ;;
     *:ekkoBSD:*:*)
-       echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE
+       ;;
     *:SolidBSD:*:*)
-       echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE
+       ;;
+    *:OS108:*:*)
+       GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE
+       ;;
     macppc:MirBSD:*:*)
-       echo powerpc-unknown-mirbsd"$UNAME_RELEASE"
-       exit ;;
+       GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE
+       ;;
     *:MirBSD:*:*)
-       echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE
+       ;;
     *:Sortix:*:*)
-       echo "$UNAME_MACHINE"-unknown-sortix
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-sortix
+       ;;
+    *:Twizzler:*:*)
+       GUESS=$UNAME_MACHINE-unknown-twizzler
+       ;;
     *:Redox:*:*)
-       echo "$UNAME_MACHINE"-unknown-redox
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-redox
+       ;;
     mips:OSF1:*.*)
-        echo mips-dec-osf1
-        exit ;;
+       GUESS=mips-dec-osf1
+       ;;
     alpha:OSF1:*:*)
+       # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
+       trap '' 0
        case $UNAME_RELEASE in
        *4.0)
                UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
@@ -292,7 +329,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
        # covers most systems running today.  This code pipes the CPU
        # types through head -n 1, so we only detect the type of CPU 0.
        ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
-       case "$ALPHA_CPU_TYPE" in
+       case $ALPHA_CPU_TYPE in
            "EV4 (21064)")
                UNAME_MACHINE=alpha ;;
            "EV4.5 (21064)")
@@ -329,112 +366,121 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
        # A Tn.n version is a released field test version.
        # A Xn.n version is an unreleased experimental baselevel.
        # 1.2 uses "1.2" for uname -r.
-       echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`"
-       # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
-       exitcode=$?
-       trap '' 0
-       exit $exitcode ;;
+       OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
+       GUESS=$UNAME_MACHINE-dec-osf$OSF_REL
+       ;;
     Amiga*:UNIX_System_V:4.0:*)
-       echo m68k-unknown-sysv4
-       exit ;;
+       GUESS=m68k-unknown-sysv4
+       ;;
     *:[Aa]miga[Oo][Ss]:*:*)
-       echo "$UNAME_MACHINE"-unknown-amigaos
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-amigaos
+       ;;
     *:[Mm]orph[Oo][Ss]:*:*)
-       echo "$UNAME_MACHINE"-unknown-morphos
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-morphos
+       ;;
     *:OS/390:*:*)
-       echo i370-ibm-openedition
-       exit ;;
+       GUESS=i370-ibm-openedition
+       ;;
     *:z/VM:*:*)
-       echo s390-ibm-zvmoe
-       exit ;;
+       GUESS=s390-ibm-zvmoe
+       ;;
     *:OS400:*:*)
-       echo powerpc-ibm-os400
-       exit ;;
+       GUESS=powerpc-ibm-os400
+       ;;
     arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-       echo arm-acorn-riscix"$UNAME_RELEASE"
-       exit ;;
+       GUESS=arm-acorn-riscix$UNAME_RELEASE
+       ;;
     arm*:riscos:*:*|arm*:RISCOS:*:*)
-       echo arm-unknown-riscos
-       exit ;;
+       GUESS=arm-unknown-riscos
+       ;;
     SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-       echo hppa1.1-hitachi-hiuxmpp
-       exit ;;
+       GUESS=hppa1.1-hitachi-hiuxmpp
+       ;;
     Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
        # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
-       if test "`(/bin/universe) 2>/dev/null`" = att ; then
-               echo pyramid-pyramid-sysv3
-       else
-               echo pyramid-pyramid-bsd
-       fi
-       exit ;;
+       case `(/bin/universe) 2>/dev/null` in
+           att) GUESS=pyramid-pyramid-sysv3 ;;
+           *)   GUESS=pyramid-pyramid-bsd   ;;
+       esac
+       ;;
     NILE*:*:*:dcosx)
-       echo pyramid-pyramid-svr4
-       exit ;;
+       GUESS=pyramid-pyramid-svr4
+       ;;
     DRS?6000:unix:4.0:6*)
-       echo sparc-icl-nx6
-       exit ;;
+       GUESS=sparc-icl-nx6
+       ;;
     DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
        case `/usr/bin/uname -p` in
-           sparc) echo sparc-icl-nx7; exit ;;
-       esac ;;
+           sparc) GUESS=sparc-icl-nx7 ;;
+       esac
+       ;;
     s390x:SunOS:*:*)
-       echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
-       exit ;;
+       SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+       GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL
+       ;;
     sun4H:SunOS:5.*:*)
-       echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
-       exit ;;
+       SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+       GUESS=sparc-hal-solaris2$SUN_REL
+       ;;
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-       echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
-       exit ;;
+       SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+       GUESS=sparc-sun-solaris2$SUN_REL
+       ;;
     i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
-       echo i386-pc-auroraux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=i386-pc-auroraux$UNAME_RELEASE
+       ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-       UNAME_REL="`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`"
-       case `isainfo -b` in
-           32)
-               echo i386-pc-solaris2"$UNAME_REL"
-               ;;
-           64)
-               echo x86_64-pc-solaris2"$UNAME_REL"
-               ;;
-       esac
-       exit ;;
+       set_cc_for_build
+       SUN_ARCH=i386
+       # If there is a compiler, see if it is configured for 64-bit objects.
+       # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
+       # This test works for both compilers.
+       if test "$CC_FOR_BUILD" != no_compiler_found; then
+           if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
+               (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \
+               grep IS_64BIT_ARCH >/dev/null
+           then
+               SUN_ARCH=x86_64
+           fi
+       fi
+       SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+       GUESS=$SUN_ARCH-pc-solaris2$SUN_REL
+       ;;
     sun4*:SunOS:6*:*)
        # According to config.sub, this is the proper way to canonicalize
        # SunOS6.  Hard to guess exactly what SunOS6 will be like, but
        # it's likely to be more like Solaris than SunOS4.
-       echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
-       exit ;;
+       SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+       GUESS=sparc-sun-solaris3$SUN_REL
+       ;;
     sun4*:SunOS:*:*)
-       case "`/usr/bin/arch -k`" in
+       case `/usr/bin/arch -k` in
            Series*|S4*)
                UNAME_RELEASE=`uname -v`
                ;;
        esac
        # Japanese Language versions have a version number like `4.1.3-JL'.
-       echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`"
-       exit ;;
+       SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'`
+       GUESS=sparc-sun-sunos$SUN_REL
+       ;;
     sun3*:SunOS:*:*)
-       echo m68k-sun-sunos"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-sun-sunos$UNAME_RELEASE
+       ;;
     sun*:*:4.2BSD:*)
        UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
        test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3
-       case "`/bin/arch`" in
+       case `/bin/arch` in
            sun3)
-               echo m68k-sun-sunos"$UNAME_RELEASE"
+               GUESS=m68k-sun-sunos$UNAME_RELEASE
                ;;
            sun4)
-               echo sparc-sun-sunos"$UNAME_RELEASE"
+               GUESS=sparc-sun-sunos$UNAME_RELEASE
                ;;
        esac
-       exit ;;
+       ;;
     aushp:SunOS:*:*)
-       echo sparc-auspex-sunos"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sparc-auspex-sunos$UNAME_RELEASE
+       ;;
     # The situation for MiNT is a little confusing.  The machine name
     # can be virtually everything (everything which is not
     # "atarist" or "atariste" at least should have a processor
@@ -444,41 +490,41 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
     # MiNT.  But MiNT is downward compatible to TOS, so this should
     # be no problem.
     atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-       echo m68k-atari-mint"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-atari-mint$UNAME_RELEASE
+       ;;
     atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-       echo m68k-atari-mint"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-atari-mint$UNAME_RELEASE
+       ;;
     *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-       echo m68k-atari-mint"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-atari-mint$UNAME_RELEASE
+       ;;
     milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-       echo m68k-milan-mint"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-milan-mint$UNAME_RELEASE
+       ;;
     hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-       echo m68k-hades-mint"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-hades-mint$UNAME_RELEASE
+       ;;
     *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-       echo m68k-unknown-mint"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-unknown-mint$UNAME_RELEASE
+       ;;
     m68k:machten:*:*)
-       echo m68k-apple-machten"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-apple-machten$UNAME_RELEASE
+       ;;
     powerpc:machten:*:*)
-       echo powerpc-apple-machten"$UNAME_RELEASE"
-       exit ;;
+       GUESS=powerpc-apple-machten$UNAME_RELEASE
+       ;;
     RISC*:Mach:*:*)
-       echo mips-dec-mach_bsd4.3
-       exit ;;
+       GUESS=mips-dec-mach_bsd4.3
+       ;;
     RISC*:ULTRIX:*:*)
-       echo mips-dec-ultrix"$UNAME_RELEASE"
-       exit ;;
+       GUESS=mips-dec-ultrix$UNAME_RELEASE
+       ;;
     VAX*:ULTRIX*:*:*)
-       echo vax-dec-ultrix"$UNAME_RELEASE"
-       exit ;;
+       GUESS=vax-dec-ultrix$UNAME_RELEASE
+       ;;
     2020:CLIX:*:* | 2430:CLIX:*:*)
-       echo clipper-intergraph-clix"$UNAME_RELEASE"
-       exit ;;
+       GUESS=clipper-intergraph-clix$UNAME_RELEASE
+       ;;
     mips:*:*:UMIPS | mips:*:*:RISCos)
        set_cc_for_build
        sed 's/^        //' << EOF > "$dummy.c"
@@ -506,75 +552,76 @@ EOF
          dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` &&
          SYSTEM_NAME=`"$dummy" "$dummyarg"` &&
            { echo "$SYSTEM_NAME"; exit; }
-       echo mips-mips-riscos"$UNAME_RELEASE"
-       exit ;;
+       GUESS=mips-mips-riscos$UNAME_RELEASE
+       ;;
     Motorola:PowerMAX_OS:*:*)
-       echo powerpc-motorola-powermax
-       exit ;;
+       GUESS=powerpc-motorola-powermax
+       ;;
     Motorola:*:4.3:PL8-*)
-       echo powerpc-harris-powermax
-       exit ;;
+       GUESS=powerpc-harris-powermax
+       ;;
     Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
-       echo powerpc-harris-powermax
-       exit ;;
+       GUESS=powerpc-harris-powermax
+       ;;
     Night_Hawk:Power_UNIX:*:*)
-       echo powerpc-harris-powerunix
-       exit ;;
+       GUESS=powerpc-harris-powerunix
+       ;;
     m88k:CX/UX:7*:*)
-       echo m88k-harris-cxux7
-       exit ;;
+       GUESS=m88k-harris-cxux7
+       ;;
     m88k:*:4*:R4*)
-       echo m88k-motorola-sysv4
-       exit ;;
+       GUESS=m88k-motorola-sysv4
+       ;;
     m88k:*:3*:R3*)
-       echo m88k-motorola-sysv3
-       exit ;;
+       GUESS=m88k-motorola-sysv3
+       ;;
     AViiON:dgux:*:*)
        # DG/UX returns AViiON for all architectures
        UNAME_PROCESSOR=`/usr/bin/uname -p`
-       if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
+       if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
        then
-           if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
-              [ "$TARGET_BINARY_INTERFACE"x = x ]
+           if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
+              test "$TARGET_BINARY_INTERFACE"x = x
            then
-               echo m88k-dg-dgux"$UNAME_RELEASE"
+               GUESS=m88k-dg-dgux$UNAME_RELEASE
            else
-               echo m88k-dg-dguxbcs"$UNAME_RELEASE"
+               GUESS=m88k-dg-dguxbcs$UNAME_RELEASE
            fi
        else
-           echo i586-dg-dgux"$UNAME_RELEASE"
+           GUESS=i586-dg-dgux$UNAME_RELEASE
        fi
-       exit ;;
+       ;;
     M88*:DolphinOS:*:*)        # DolphinOS (SVR3)
-       echo m88k-dolphin-sysv3
-       exit ;;
+       GUESS=m88k-dolphin-sysv3
+       ;;
     M88*:*:R3*:*)
        # Delta 88k system running SVR3
-       echo m88k-motorola-sysv3
-       exit ;;
+       GUESS=m88k-motorola-sysv3
+       ;;
     XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
-       echo m88k-tektronix-sysv3
-       exit ;;
+       GUESS=m88k-tektronix-sysv3
+       ;;
     Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
-       echo m68k-tektronix-bsd
-       exit ;;
+       GUESS=m68k-tektronix-bsd
+       ;;
     *:IRIX*:*:*)
-       echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`"
-       exit ;;
+       IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'`
+       GUESS=mips-sgi-irix$IRIX_REL
+       ;;
     ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-       echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
-       exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
+       GUESS=romp-ibm-aix    # uname -m gives an 8 hex-code CPU id
+       ;;                    # Note that: echo "'`uname -s`'" gives 'AIX '
     i*86:AIX:*:*)
-       echo i386-ibm-aix
-       exit ;;
+       GUESS=i386-ibm-aix
+       ;;
     ia64:AIX:*:*)
-       if [ -x /usr/bin/oslevel ] ; then
+       if test -x /usr/bin/oslevel ; then
                IBM_REV=`/usr/bin/oslevel`
        else
-               IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
+               IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
        fi
-       echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV"
-       exit ;;
+       GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV
+       ;;
     *:AIX:2:3)
        if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
                set_cc_for_build
@@ -591,16 +638,16 @@ EOF
 EOF
                if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"`
                then
-                       echo "$SYSTEM_NAME"
+                       GUESS=$SYSTEM_NAME
                else
-                       echo rs6000-ibm-aix3.2.5
+                       GUESS=rs6000-ibm-aix3.2.5
                fi
        elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
-               echo rs6000-ibm-aix3.2.4
+               GUESS=rs6000-ibm-aix3.2.4
        else
-               echo rs6000-ibm-aix3.2
+               GUESS=rs6000-ibm-aix3.2
        fi
-       exit ;;
+       ;;
     *:AIX:*:[4567])
        IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
        if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then
@@ -608,56 +655,56 @@ EOF
        else
                IBM_ARCH=powerpc
        fi
-       if [ -x /usr/bin/lslpp ] ; then
-               IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
+       if test -x /usr/bin/lslpp ; then
+               IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \
                           awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
        else
-               IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
+               IBM_REV=$UNAME_VERSION.$UNAME_RELEASE
        fi
-       echo "$IBM_ARCH"-ibm-aix"$IBM_REV"
-       exit ;;
+       GUESS=$IBM_ARCH-ibm-aix$IBM_REV
+       ;;
     *:AIX:*:*)
-       echo rs6000-ibm-aix
-       exit ;;
+       GUESS=rs6000-ibm-aix
+       ;;
     ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*)
-       echo romp-ibm-bsd4.4
-       exit ;;
+       GUESS=romp-ibm-bsd4.4
+       ;;
     ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-       echo romp-ibm-bsd"$UNAME_RELEASE"   # 4.3 with uname added to
-       exit ;;                             # report: romp-ibm BSD 4.3
+       GUESS=romp-ibm-bsd$UNAME_RELEASE    # 4.3 with uname added to
+       ;;                                  # report: romp-ibm BSD 4.3
     *:BOSX:*:*)
-       echo rs6000-bull-bosx
-       exit ;;
+       GUESS=rs6000-bull-bosx
+       ;;
     DPX/2?00:B.O.S.:*:*)
-       echo m68k-bull-sysv3
-       exit ;;
+       GUESS=m68k-bull-sysv3
+       ;;
     9000/[34]??:4.3bsd:1.*:*)
-       echo m68k-hp-bsd
-       exit ;;
+       GUESS=m68k-hp-bsd
+       ;;
     hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
-       echo m68k-hp-bsd4.4
-       exit ;;
+       GUESS=m68k-hp-bsd4.4
+       ;;
     9000/[34678]??:HP-UX:*:*)
-       HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
-       case "$UNAME_MACHINE" in
+       HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+       case $UNAME_MACHINE in
            9000/31?)            HP_ARCH=m68000 ;;
            9000/[34]??)         HP_ARCH=m68k ;;
            9000/[678][0-9][0-9])
-               if [ -x /usr/bin/getconf ]; then
+               if test -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
+                   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
+                       case $sc_kernel_bits in
                          32) HP_ARCH=hppa2.0n ;;
                          64) HP_ARCH=hppa2.0w ;;
                          '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
                        esac ;;
                    esac
                fi
-               if [ "$HP_ARCH" = "" ]; then
+               if test "$HP_ARCH" = ""; then
                    set_cc_for_build
                    sed 's/^            //' << EOF > "$dummy.c"
 
@@ -696,7 +743,7 @@ EOF
                    test -z "$HP_ARCH" && HP_ARCH=hppa
                fi ;;
        esac
-       if [ "$HP_ARCH" = hppa2.0w ]
+       if test "$HP_ARCH" = hppa2.0w
        then
            set_cc_for_build
 
@@ -717,12 +764,12 @@ EOF
                HP_ARCH=hppa64
            fi
        fi
-       echo "$HP_ARCH"-hp-hpux"$HPUX_REV"
-       exit ;;
+       GUESS=$HP_ARCH-hp-hpux$HPUX_REV
+       ;;
     ia64:HP-UX:*:*)
-       HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'`
-       echo ia64-hp-hpux"$HPUX_REV"
-       exit ;;
+       HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'`
+       GUESS=ia64-hp-hpux$HPUX_REV
+       ;;
     3050*:HI-UX:*:*)
        set_cc_for_build
        sed 's/^        //' << EOF > "$dummy.c"
@@ -752,36 +799,36 @@ EOF
 EOF
        $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` &&
                { echo "$SYSTEM_NAME"; exit; }
-       echo unknown-hitachi-hiuxwe2
-       exit ;;
+       GUESS=unknown-hitachi-hiuxwe2
+       ;;
     9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*)
-       echo hppa1.1-hp-bsd
-       exit ;;
+       GUESS=hppa1.1-hp-bsd
+       ;;
     9000/8??:4.3bsd:*:*)
-       echo hppa1.0-hp-bsd
-       exit ;;
+       GUESS=hppa1.0-hp-bsd
+       ;;
     *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
-       echo hppa1.0-hp-mpeix
-       exit ;;
+       GUESS=hppa1.0-hp-mpeix
+       ;;
     hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*)
-       echo hppa1.1-hp-osf
-       exit ;;
+       GUESS=hppa1.1-hp-osf
+       ;;
     hp8??:OSF1:*:*)
-       echo hppa1.0-hp-osf
-       exit ;;
+       GUESS=hppa1.0-hp-osf
+       ;;
     i*86:OSF1:*:*)
-       if [ -x /usr/sbin/sysversion ] ; then
-           echo "$UNAME_MACHINE"-unknown-osf1mk
+       if test -x /usr/sbin/sysversion ; then
+           GUESS=$UNAME_MACHINE-unknown-osf1mk
        else
-           echo "$UNAME_MACHINE"-unknown-osf1
+           GUESS=$UNAME_MACHINE-unknown-osf1
        fi
-       exit ;;
+       ;;
     parisc*:Lites*:*:*)
-       echo hppa1.1-hp-lites
-       exit ;;
+       GUESS=hppa1.1-hp-lites
+       ;;
     C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-       echo c1-convex-bsd
-       exit ;;
+       GUESS=c1-convex-bsd
+       ;;
     C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
        if getsysinfo -f scalar_acc
        then echo c32-convex-bsd
@@ -789,17 +836,18 @@ EOF
        fi
        exit ;;
     C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-       echo c34-convex-bsd
-       exit ;;
+       GUESS=c34-convex-bsd
+       ;;
     C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-       echo c38-convex-bsd
-       exit ;;
+       GUESS=c38-convex-bsd
+       ;;
     C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-       echo c4-convex-bsd
-       exit ;;
+       GUESS=c4-convex-bsd
+       ;;
     CRAY*Y-MP:*:*:*)
-       echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
+       CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+       GUESS=ymp-cray-unicos$CRAY_REL
+       ;;
     CRAY*[A-Z]90:*:*:*)
        echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \
        | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
@@ -807,114 +855,129 @@ EOF
              -e 's/\.[^.]*$/.X/'
        exit ;;
     CRAY*TS:*:*:*)
-       echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
+       CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+       GUESS=t90-cray-unicos$CRAY_REL
+       ;;
     CRAY*T3E:*:*:*)
-       echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
+       CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+       GUESS=alphaev5-cray-unicosmk$CRAY_REL
+       ;;
     CRAY*SV1:*:*:*)
-       echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
+       CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+       GUESS=sv1-cray-unicos$CRAY_REL
+       ;;
     *:UNICOS/mp:*:*)
-       echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'
-       exit ;;
+       CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'`
+       GUESS=craynv-cray-unicosmp$CRAY_REL
+       ;;
     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_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'`
-       echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-       exit ;;
+       GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+       ;;
     5000:UNIX_System_V:4.*:*)
        FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
        FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
-       echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-       exit ;;
+       GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}
+       ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-       echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE
+       ;;
     sparc*:BSD/OS:*:*)
-       echo sparc-unknown-bsdi"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sparc-unknown-bsdi$UNAME_RELEASE
+       ;;
     *:BSD/OS:*:*)
-       echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE
+       ;;
     arm:FreeBSD:*:*)
        UNAME_PROCESSOR=`uname -p`
        set_cc_for_build
        if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
            | grep -q __ARM_PCS_VFP
        then
-           echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi
+           FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+           GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi
        else
-           echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf
+           FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+           GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf
        fi
-       exit ;;
+       ;;
     *:FreeBSD:*:*)
        UNAME_PROCESSOR=`/usr/bin/uname -p`
-       case "$UNAME_PROCESSOR" in
+       case $UNAME_PROCESSOR in
            amd64)
                UNAME_PROCESSOR=x86_64 ;;
            i386)
                UNAME_PROCESSOR=i586 ;;
        esac
-       echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
-       exit ;;
+       FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+       GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL
+       ;;
     i*:CYGWIN*:*)
-       echo "$UNAME_MACHINE"-pc-cygwin
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-cygwin
+       ;;
     *:MINGW64*:*)
-       echo "$UNAME_MACHINE"-pc-mingw64
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-mingw64
+       ;;
     *:MINGW*:*)
-       echo "$UNAME_MACHINE"-pc-mingw32
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-mingw32
+       ;;
     *:MSYS*:*)
-       echo "$UNAME_MACHINE"-pc-msys
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-msys
+       ;;
     i*:PW*:*)
-       echo "$UNAME_MACHINE"-pc-pw32
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-pw32
+       ;;
+    *:SerenityOS:*:*)
+        GUESS=$UNAME_MACHINE-pc-serenity
+        ;;
     *:Interix*:*)
-       case "$UNAME_MACHINE" in
+       case $UNAME_MACHINE in
            x86)
-               echo i586-pc-interix"$UNAME_RELEASE"
-               exit ;;
+               GUESS=i586-pc-interix$UNAME_RELEASE
+               ;;
            authenticamd | genuineintel | EM64T)
-               echo x86_64-unknown-interix"$UNAME_RELEASE"
-               exit ;;
+               GUESS=x86_64-unknown-interix$UNAME_RELEASE
+               ;;
            IA64)
-               echo ia64-unknown-interix"$UNAME_RELEASE"
-               exit ;;
+               GUESS=ia64-unknown-interix$UNAME_RELEASE
+               ;;
        esac ;;
     i*:UWIN*:*)
-       echo "$UNAME_MACHINE"-pc-uwin
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-uwin
+       ;;
     amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
-       echo x86_64-unknown-cygwin
-       exit ;;
+       GUESS=x86_64-pc-cygwin
+       ;;
     prep*:SunOS:5.*:*)
-       echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`"
-       exit ;;
+       SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`
+       GUESS=powerpcle-unknown-solaris2$SUN_REL
+       ;;
     *:GNU:*:*)
        # the GNU system
-       echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`"
-       exit ;;
+       GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'`
+       GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'`
+       GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL
+       ;;
     *:GNU/*:*:*)
        # other systems with GNU libc and userland
-       echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC"
-       exit ;;
+       GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"`
+       GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+       GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC
+       ;;
     *:Minix:*:*)
-       echo "$UNAME_MACHINE"-unknown-minix
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-minix
+       ;;
     aarch64:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     aarch64_be:Linux:*:*)
        UNAME_MACHINE=aarch64_be
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     alpha:Linux:*:*)
-       case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+       case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in
          EV5)   UNAME_MACHINE=alphaev5 ;;
          EV56)  UNAME_MACHINE=alphaev56 ;;
          PCA56) UNAME_MACHINE=alphapca56 ;;
@@ -925,183 +988,225 @@ EOF
        esac
        objdump --private-headers /bin/sh | grep -q ld.so.1
        if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
-    arc:Linux:*:* | arceb:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
+    arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*)
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     arm*:Linux:*:*)
        set_cc_for_build
        if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
            | grep -q __ARM_EABI__
        then
-           echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
+           GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
        else
            if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
                | grep -q __ARM_PCS_VFP
            then
-               echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi
+               GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi
            else
-               echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf
+               GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf
            fi
        fi
-       exit ;;
+       ;;
     avr32*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     cris:Linux:*:*)
-       echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+       ;;
     crisv32:Linux:*:*)
-       echo "$UNAME_MACHINE"-axis-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-axis-linux-$LIBC
+       ;;
     e2k:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     frv:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     hexagon:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     i*86:Linux:*:*)
-       echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-linux-$LIBC
+       ;;
     ia64:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     k1om:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
+    loongarch32:Linux:*:* | loongarch64:Linux:*:* | loongarchx32:Linux:*:*)
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     m32r*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     m68*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     mips:Linux:*:* | mips64:Linux:*:*)
        set_cc_for_build
+       IS_GLIBC=0
+       test x"${LIBC}" = xgnu && IS_GLIBC=1
        sed 's/^        //' << EOF > "$dummy.c"
        #undef CPU
-       #undef ${UNAME_MACHINE}
-       #undef ${UNAME_MACHINE}el
+       #undef mips
+       #undef mipsel
+       #undef mips64
+       #undef mips64el
+       #if ${IS_GLIBC} && defined(_ABI64)
+       LIBCABI=gnuabi64
+       #else
+       #if ${IS_GLIBC} && defined(_ABIN32)
+       LIBCABI=gnuabin32
+       #else
+       LIBCABI=${LIBC}
+       #endif
+       #endif
+
+       #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+       CPU=mipsisa64r6
+       #else
+       #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6
+       CPU=mipsisa32r6
+       #else
+       #if defined(__mips64)
+       CPU=mips64
+       #else
+       CPU=mips
+       #endif
+       #endif
+       #endif
+
        #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-       CPU=${UNAME_MACHINE}el
+       MIPS_ENDIAN=el
        #else
        #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-       CPU=${UNAME_MACHINE}
+       MIPS_ENDIAN=
        #else
-       CPU=
+       MIPS_ENDIAN=
        #endif
        #endif
 EOF
-       eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`"
-       test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; }
+       cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'`
+       eval "$cc_set_vars"
+       test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; }
        ;;
     mips64el:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     openrisc*:Linux:*:*)
-       echo or1k-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=or1k-unknown-linux-$LIBC
+       ;;
     or32:Linux:*:* | or1k*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     padre:Linux:*:*)
-       echo sparc-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=sparc-unknown-linux-$LIBC
+       ;;
     parisc64:Linux:*:* | hppa64:Linux:*:*)
-       echo hppa64-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=hppa64-unknown-linux-$LIBC
+       ;;
     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-"$LIBC" ;;
-         PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;;
-         *)    echo hppa-unknown-linux-"$LIBC" ;;
+         PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;;
+         PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;;
+         *)    GUESS=hppa-unknown-linux-$LIBC ;;
        esac
-       exit ;;
+       ;;
     ppc64:Linux:*:*)
-       echo powerpc64-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=powerpc64-unknown-linux-$LIBC
+       ;;
     ppc:Linux:*:*)
-       echo powerpc-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=powerpc-unknown-linux-$LIBC
+       ;;
     ppc64le:Linux:*:*)
-       echo powerpc64le-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=powerpc64le-unknown-linux-$LIBC
+       ;;
     ppcle:Linux:*:*)
-       echo powerpcle-unknown-linux-"$LIBC"
-       exit ;;
-    riscv32:Linux:*:* | riscv64:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=powerpcle-unknown-linux-$LIBC
+       ;;
+    riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*)
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     s390:Linux:*:* | s390x:Linux:*:*)
-       echo "$UNAME_MACHINE"-ibm-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-ibm-linux-$LIBC
+       ;;
     sh64*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     sh*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     sparc:Linux:*:* | sparc64:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     tile*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     vax:Linux:*:*)
-       echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-dec-linux-$LIBC
+       ;;
     x86_64:Linux:*:*)
-       echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
-       exit ;;
+       set_cc_for_build
+       LIBCABI=$LIBC
+       if test "$CC_FOR_BUILD" != no_compiler_found; then
+           if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
+               (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+               grep IS_X32 >/dev/null
+           then
+               LIBCABI=${LIBC}x32
+           fi
+       fi
+       GUESS=$UNAME_MACHINE-pc-linux-$LIBCABI
+       ;;
     xtensa*:Linux:*:*)
-       echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+       ;;
     i*86:DYNIX/ptx:4*:*)
        # 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.
-       echo i386-sequent-sysv4
-       exit ;;
+       GUESS=i386-sequent-sysv4
+       ;;
     i*86:UNIX_SV:4.2MP:2.*)
        # Unixware is an offshoot of SVR4, but it has its own version
        # number series starting with 2...
        # I am not positive that other SVR4 systems won't match this,
        # I just have to hope.  -- rms.
        # Use sysv4.2uw... so that sysv4* matches it.
-       echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION"
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION
+       ;;
     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 ;;
+       GUESS=$UNAME_MACHINE-pc-os2-emx
+       ;;
     i*86:XTS-300:*:STOP)
-       echo "$UNAME_MACHINE"-unknown-stop
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-stop
+       ;;
     i*86:atheos:*:*)
-       echo "$UNAME_MACHINE"-unknown-atheos
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-atheos
+       ;;
     i*86:syllable:*:*)
-       echo "$UNAME_MACHINE"-pc-syllable
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-syllable
+       ;;
     i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
-       echo i386-unknown-lynxos"$UNAME_RELEASE"
-       exit ;;
+       GUESS=i386-unknown-lynxos$UNAME_RELEASE
+       ;;
     i*86:*DOS:*:*)
-       echo "$UNAME_MACHINE"-pc-msdosdjgpp
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-msdosdjgpp
+       ;;
     i*86:*:4.*:*)
        UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'`
        if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-               echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL"
+               GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL
        else
-               echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL"
+               GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL
        fi
-       exit ;;
+       ;;
     i*86:*:5:[678]*)
        # UnixWare 7.x, OpenUNIX and OpenServer 6.
        case `/bin/uname -X | grep "^Machine"` in
@@ -1109,12 +1214,12 @@ EOF
            *Pentium)        UNAME_MACHINE=i586 ;;
            *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
        esac
-       echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}"
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+       ;;
     i*86:*:3.2:*)
        if test -f /usr/options/cb.name; then
                UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-               echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL"
+               GUESS=$UNAME_MACHINE-pc-isc$UNAME_REL
        elif /bin/uname -X 2>/dev/null >/dev/null ; then
                UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
                (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
@@ -1124,11 +1229,11 @@ EOF
                        && UNAME_MACHINE=i686
                (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
                        && UNAME_MACHINE=i686
-               echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL"
+               GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL
        else
-               echo "$UNAME_MACHINE"-pc-sysv32
+               GUESS=$UNAME_MACHINE-pc-sysv32
        fi
-       exit ;;
+       ;;
     pc:*:*:*)
        # Left here for compatibility:
        # uname -m prints for DJGPP always 'pc', but it prints nothing about
@@ -1136,31 +1241,31 @@ EOF
        # Note: whatever this is, it MUST be the same as what config.sub
        # prints for the "djgpp" host, or else GDB configure will decide that
        # this is a cross-build.
-       echo i586-pc-msdosdjgpp
-       exit ;;
+       GUESS=i586-pc-msdosdjgpp
+       ;;
     Intel:Mach:3*:*)
-       echo i386-pc-mach3
-       exit ;;
+       GUESS=i386-pc-mach3
+       ;;
     paragon:*:*:*)
-       echo i860-intel-osf1
-       exit ;;
+       GUESS=i860-intel-osf1
+       ;;
     i860:*:4.*:*) # i860-SVR4
        if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-         echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4
+         GUESS=i860-stardent-sysv$UNAME_RELEASE    # Stardent Vistra i860-SVR4
        else # Add other i860-SVR4 vendors below as they are discovered.
-         echo i860-unknown-sysv"$UNAME_RELEASE"  # Unknown i860-SVR4
+         GUESS=i860-unknown-sysv$UNAME_RELEASE     # Unknown i860-SVR4
        fi
-       exit ;;
+       ;;
     mini*:CTIX:SYS*5:*)
        # "miniframe"
-       echo m68010-convergent-sysv
-       exit ;;
+       GUESS=m68010-convergent-sysv
+       ;;
     mc68k:UNIX:SYSTEM5:3.51m)
-       echo m68k-convergent-sysv
-       exit ;;
+       GUESS=m68k-convergent-sysv
+       ;;
     M680?0:D-NIX:5.3:*)
-       echo m68k-diab-dnix
-       exit ;;
+       GUESS=m68k-diab-dnix
+       ;;
     M68*:*:R3V[5678]*:*)
        test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
     3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
@@ -1185,250 +1290,404 @@ EOF
        /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
            && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;;
     m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-       echo m68k-unknown-lynxos"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-unknown-lynxos$UNAME_RELEASE
+       ;;
     mc68030:UNIX_System_V:4.*:*)
-       echo m68k-atari-sysv4
-       exit ;;
+       GUESS=m68k-atari-sysv4
+       ;;
     TSUNAMI:LynxOS:2.*:*)
-       echo sparc-unknown-lynxos"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sparc-unknown-lynxos$UNAME_RELEASE
+       ;;
     rs6000:LynxOS:2.*:*)
-       echo rs6000-unknown-lynxos"$UNAME_RELEASE"
-       exit ;;
+       GUESS=rs6000-unknown-lynxos$UNAME_RELEASE
+       ;;
     PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
-       echo powerpc-unknown-lynxos"$UNAME_RELEASE"
-       exit ;;
+       GUESS=powerpc-unknown-lynxos$UNAME_RELEASE
+       ;;
     SM[BE]S:UNIX_SV:*:*)
-       echo mips-dde-sysv"$UNAME_RELEASE"
-       exit ;;
+       GUESS=mips-dde-sysv$UNAME_RELEASE
+       ;;
     RM*:ReliantUNIX-*:*:*)
-       echo mips-sni-sysv4
-       exit ;;
+       GUESS=mips-sni-sysv4
+       ;;
     RM*:SINIX-*:*:*)
-       echo mips-sni-sysv4
-       exit ;;
+       GUESS=mips-sni-sysv4
+       ;;
     *:SINIX-*:*:*)
        if uname -p 2>/dev/null >/dev/null ; then
                UNAME_MACHINE=`(uname -p) 2>/dev/null`
-               echo "$UNAME_MACHINE"-sni-sysv4
+               GUESS=$UNAME_MACHINE-sni-sysv4
        else
-               echo ns32k-sni-sysv
+               GUESS=ns32k-sni-sysv
        fi
-       exit ;;
+       ;;
     PENTIUM:*:4.0*:*)  # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
                        # says <Richard.M.Bartel@ccMail.Census.GOV>
-       echo i586-unisys-sysv4
-       exit ;;
+       GUESS=i586-unisys-sysv4
+       ;;
     *:UNIX_System_V:4*:FTX*)
        # From Gerald Hewes <hewes@openmarket.com>.
        # How about differentiating between stratus architectures? -djm
-       echo hppa1.1-stratus-sysv4
-       exit ;;
+       GUESS=hppa1.1-stratus-sysv4
+       ;;
     *:*:*:FTX*)
        # From seanf@swdc.stratus.com.
-       echo i860-stratus-sysv4
-       exit ;;
+       GUESS=i860-stratus-sysv4
+       ;;
     i*86:VOS:*:*)
        # From Paul.Green@stratus.com.
-       echo "$UNAME_MACHINE"-stratus-vos
-       exit ;;
+       GUESS=$UNAME_MACHINE-stratus-vos
+       ;;
     *:VOS:*:*)
        # From Paul.Green@stratus.com.
-       echo hppa1.1-stratus-vos
-       exit ;;
+       GUESS=hppa1.1-stratus-vos
+       ;;
     mc68*:A/UX:*:*)
-       echo m68k-apple-aux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=m68k-apple-aux$UNAME_RELEASE
+       ;;
     news*:NEWS-OS:6*:*)
-       echo mips-sony-newsos6
-       exit ;;
+       GUESS=mips-sony-newsos6
+       ;;
     R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
-       if [ -d /usr/nec ]; then
-               echo mips-nec-sysv"$UNAME_RELEASE"
+       if test -d /usr/nec; then
+               GUESS=mips-nec-sysv$UNAME_RELEASE
        else
-               echo mips-unknown-sysv"$UNAME_RELEASE"
+               GUESS=mips-unknown-sysv$UNAME_RELEASE
        fi
-       exit ;;
+       ;;
     BeBox:BeOS:*:*)    # BeOS running on hardware made by Be, PPC only.
-       echo powerpc-be-beos
-       exit ;;
+       GUESS=powerpc-be-beos
+       ;;
     BeMac:BeOS:*:*)    # BeOS running on Mac or Mac clone, PPC only.
-       echo powerpc-apple-beos
-       exit ;;
+       GUESS=powerpc-apple-beos
+       ;;
     BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
-       echo i586-pc-beos
-       exit ;;
+       GUESS=i586-pc-beos
+       ;;
     BePC:Haiku:*:*)    # Haiku running on Intel PC compatible.
-       echo i586-pc-haiku
-       exit ;;
+       GUESS=i586-pc-haiku
+       ;;
     x86_64:Haiku:*:*)
-       echo x86_64-unknown-haiku
-       exit ;;
+       GUESS=x86_64-unknown-haiku
+       ;;
     SX-4:SUPER-UX:*:*)
-       echo sx4-nec-superux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sx4-nec-superux$UNAME_RELEASE
+       ;;
     SX-5:SUPER-UX:*:*)
-       echo sx5-nec-superux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sx5-nec-superux$UNAME_RELEASE
+       ;;
     SX-6:SUPER-UX:*:*)
-       echo sx6-nec-superux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sx6-nec-superux$UNAME_RELEASE
+       ;;
     SX-7:SUPER-UX:*:*)
-       echo sx7-nec-superux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sx7-nec-superux$UNAME_RELEASE
+       ;;
     SX-8:SUPER-UX:*:*)
-       echo sx8-nec-superux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sx8-nec-superux$UNAME_RELEASE
+       ;;
     SX-8R:SUPER-UX:*:*)
-       echo sx8r-nec-superux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sx8r-nec-superux$UNAME_RELEASE
+       ;;
     SX-ACE:SUPER-UX:*:*)
-       echo sxace-nec-superux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=sxace-nec-superux$UNAME_RELEASE
+       ;;
     Power*:Rhapsody:*:*)
-       echo powerpc-apple-rhapsody"$UNAME_RELEASE"
-       exit ;;
+       GUESS=powerpc-apple-rhapsody$UNAME_RELEASE
+       ;;
     *:Rhapsody:*:*)
-       echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE
+       ;;
+    arm64:Darwin:*:*)
+       GUESS=aarch64-apple-darwin$UNAME_RELEASE
+       ;;
     *:Darwin:*:*)
-       UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-       set_cc_for_build
-       if test "$UNAME_PROCESSOR" = unknown ; then
-           UNAME_PROCESSOR=powerpc
+       UNAME_PROCESSOR=`uname -p`
+       case $UNAME_PROCESSOR in
+           unknown) UNAME_PROCESSOR=powerpc ;;
+       esac
+       if command -v xcode-select > /dev/null 2> /dev/null && \
+               ! xcode-select --print-path > /dev/null 2> /dev/null ; then
+           # Avoid executing cc if there is no toolchain installed as
+           # cc will be a stub that puts up a graphical alert
+           # prompting the user to install developer tools.
+           CC_FOR_BUILD=no_compiler_found
+       else
+           set_cc_for_build
        fi
-       if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then
-           if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
-               if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-                      (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
-                      grep IS_64BIT_ARCH >/dev/null
-               then
-                   case $UNAME_PROCESSOR in
-                       i386) UNAME_PROCESSOR=x86_64 ;;
-                       powerpc) UNAME_PROCESSOR=powerpc64 ;;
-                   esac
-               fi
-               # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
-               if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
-                      (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
-                      grep IS_PPC >/dev/null
-               then
-                   UNAME_PROCESSOR=powerpc
-               fi
+       if test "$CC_FOR_BUILD" != no_compiler_found; then
+           if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
+                  (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+                  grep IS_64BIT_ARCH >/dev/null
+           then
+               case $UNAME_PROCESSOR in
+                   i386) UNAME_PROCESSOR=x86_64 ;;
+                   powerpc) UNAME_PROCESSOR=powerpc64 ;;
+               esac
+           fi
+           # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc
+           if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \
+                  (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
+                  grep IS_PPC >/dev/null
+           then
+               UNAME_PROCESSOR=powerpc
            fi
        elif test "$UNAME_PROCESSOR" = i386 ; then
-           # Avoid executing cc on OS X 10.9, as it ships with a stub
-           # that puts up a graphical alert prompting to install
-           # developer tools.  Any system running Mac OS X 10.7 or
-           # later (Darwin 11 and later) is required to have a 64-bit
-           # processor. This is not true of the ARM version of Darwin
-           # that Apple uses in portable devices.
-           UNAME_PROCESSOR=x86_64
+           # uname -m returns i386 or x86_64
+           UNAME_PROCESSOR=$UNAME_MACHINE
        fi
-       echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE
+       ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
        UNAME_PROCESSOR=`uname -p`
        if test "$UNAME_PROCESSOR" = x86; then
                UNAME_PROCESSOR=i386
                UNAME_MACHINE=pc
        fi
-       echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE
+       ;;
     *:QNX:*:4*)
-       echo i386-pc-qnx
-       exit ;;
+       GUESS=i386-pc-qnx
+       ;;
     NEO-*:NONSTOP_KERNEL:*:*)
-       echo neo-tandem-nsk"$UNAME_RELEASE"
-       exit ;;
+       GUESS=neo-tandem-nsk$UNAME_RELEASE
+       ;;
     NSE-*:NONSTOP_KERNEL:*:*)
-       echo nse-tandem-nsk"$UNAME_RELEASE"
-       exit ;;
+       GUESS=nse-tandem-nsk$UNAME_RELEASE
+       ;;
     NSR-*:NONSTOP_KERNEL:*:*)
-       echo nsr-tandem-nsk"$UNAME_RELEASE"
-       exit ;;
+       GUESS=nsr-tandem-nsk$UNAME_RELEASE
+       ;;
     NSV-*:NONSTOP_KERNEL:*:*)
-       echo nsv-tandem-nsk"$UNAME_RELEASE"
-       exit ;;
+       GUESS=nsv-tandem-nsk$UNAME_RELEASE
+       ;;
     NSX-*:NONSTOP_KERNEL:*:*)
-       echo nsx-tandem-nsk"$UNAME_RELEASE"
-       exit ;;
+       GUESS=nsx-tandem-nsk$UNAME_RELEASE
+       ;;
     *:NonStop-UX:*:*)
-       echo mips-compaq-nonstopux
-       exit ;;
+       GUESS=mips-compaq-nonstopux
+       ;;
     BS2000:POSIX*:*:*)
-       echo bs2000-siemens-sysv
-       exit ;;
+       GUESS=bs2000-siemens-sysv
+       ;;
     DS/*:UNIX_System_V:*:*)
-       echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE"
-       exit ;;
+       GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE
+       ;;
     *:Plan9:*:*)
        # "uname -m" is not consistent, so use $cputype instead. 386
        # is converted to i386 for consistency with other x86
        # operating systems.
-       # shellcheck disable=SC2154
-       if test "$cputype" = 386; then
+       if test "${cputype-}" = 386; then
            UNAME_MACHINE=i386
-       else
-           UNAME_MACHINE="$cputype"
+       elif test "x${cputype-}" != x; then
+           UNAME_MACHINE=$cputype
        fi
-       echo "$UNAME_MACHINE"-unknown-plan9
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-plan9
+       ;;
     *:TOPS-10:*:*)
-       echo pdp10-unknown-tops10
-       exit ;;
+       GUESS=pdp10-unknown-tops10
+       ;;
     *:TENEX:*:*)
-       echo pdp10-unknown-tenex
-       exit ;;
+       GUESS=pdp10-unknown-tenex
+       ;;
     KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
-       echo pdp10-dec-tops20
-       exit ;;
+       GUESS=pdp10-dec-tops20
+       ;;
     XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
-       echo pdp10-xkl-tops20
-       exit ;;
+       GUESS=pdp10-xkl-tops20
+       ;;
     *:TOPS-20:*:*)
-       echo pdp10-unknown-tops20
-       exit ;;
+       GUESS=pdp10-unknown-tops20
+       ;;
     *:ITS:*:*)
-       echo pdp10-unknown-its
-       exit ;;
+       GUESS=pdp10-unknown-its
+       ;;
     SEI:*:*:SEIUX)
-       echo mips-sei-seiux"$UNAME_RELEASE"
-       exit ;;
+       GUESS=mips-sei-seiux$UNAME_RELEASE
+       ;;
     *:DragonFly:*:*)
-       echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`"
-       exit ;;
+       DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'`
+       GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL
+       ;;
     *:*VMS:*:*)
        UNAME_MACHINE=`(uname -p) 2>/dev/null`
-       case "$UNAME_MACHINE" in
-           A*) echo alpha-dec-vms ; exit ;;
-           I*) echo ia64-dec-vms ; exit ;;
-           V*) echo vax-dec-vms ; exit ;;
+       case $UNAME_MACHINE in
+           A*) GUESS=alpha-dec-vms ;;
+           I*) GUESS=ia64-dec-vms ;;
+           V*) GUESS=vax-dec-vms ;;
        esac ;;
     *:XENIX:*:SysV)
-       echo i386-pc-xenix
-       exit ;;
+       GUESS=i386-pc-xenix
+       ;;
     i*86:skyos:*:*)
-       echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`"
-       exit ;;
+       SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`
+       GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL
+       ;;
     i*86:rdos:*:*)
-       echo "$UNAME_MACHINE"-pc-rdos
-       exit ;;
-    i*86:AROS:*:*)
-       echo "$UNAME_MACHINE"-pc-aros
-       exit ;;
+       GUESS=$UNAME_MACHINE-pc-rdos
+       ;;
+    i*86:Fiwix:*:*)
+       GUESS=$UNAME_MACHINE-pc-fiwix
+       ;;
+    *:AROS:*:*)
+       GUESS=$UNAME_MACHINE-unknown-aros
+       ;;
     x86_64:VMkernel:*:*)
-       echo "$UNAME_MACHINE"-unknown-esx
-       exit ;;
+       GUESS=$UNAME_MACHINE-unknown-esx
+       ;;
     amd64:Isilon\ OneFS:*:*)
-       echo x86_64-unknown-onefs
-       exit ;;
+       GUESS=x86_64-unknown-onefs
+       ;;
+    *:Unleashed:*:*)
+       GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
+       ;;
 esac
 
+# Do we have a guess based on uname results?
+if test "x$GUESS" != x; then
+    echo "$GUESS"
+    exit
+fi
+
+# No uname command or uname output not recognized.
+set_cc_for_build
+cat > "$dummy.c" <<EOF
+#ifdef _SEQUENT_
+#include <sys/types.h>
+#include <sys/utsname.h>
+#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#include <signal.h>
+#if defined(_SIZE_T_) || defined(SIGLOST)
+#include <sys/utsname.h>
+#endif
+#endif
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
+     I don't know....  */
+  printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+  printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+  "4"
+#else
+  ""
+#endif
+  ); exit (0);
+#endif
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+  int version;
+  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+  if (version < 4)
+    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+  else
+    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+  exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+  printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+  printf ("ns32k-encore-mach\n"); exit (0);
+#else
+  printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+  printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+  printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+  printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+  struct utsname un;
+
+  uname(&un);
+  if (strncmp(un.version, "V2", 2) == 0) {
+    printf ("i386-sequent-ptx2\n"); exit (0);
+  }
+  if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+    printf ("i386-sequent-ptx1\n"); exit (0);
+  }
+  printf ("i386-sequent-ptx\n"); exit (0);
+#endif
+
+#if defined (vax)
+#if !defined (ultrix)
+#include <sys/param.h>
+#if defined (BSD)
+#if BSD == 43
+  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
+#if defined(_SIZE_T_) || defined(SIGLOST)
+  struct utsname un;
+  uname (&un);
+  printf ("vax-dec-ultrix%s\n", un.release); exit (0);
+#else
+  printf ("vax-dec-ultrix\n"); exit (0);
+#endif
+#endif
+#endif
+#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__)
+#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__)
+#if defined(_SIZE_T_) || defined(SIGLOST)
+  struct utsname *un;
+  uname (&un);
+  printf ("mips-dec-ultrix%s\n", un.release); exit (0);
+#else
+  printf ("mips-dec-ultrix\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (alliant) && defined (i860)
+  printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+  exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` &&
+       { echo "$SYSTEM_NAME"; exit; }
+
+# Apollos put the system type in the environment.
+test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; }
+
 echo "$0: unable to guess system type" >&2
 
-case "$UNAME_MACHINE:$UNAME_SYSTEM" in
+case $UNAME_MACHINE:$UNAME_SYSTEM in
     mips:Linux | mips64:Linux)
        # If we got here on MIPS GNU/Linux, output extra information.
        cat >&2 <<EOF
@@ -1445,9 +1704,17 @@ This script (version $timestamp), has failed to recognize the
 operating system you are using. If your script is old, overwrite *all*
 copies of config.guess and config.sub with the latest versions from:
 
-  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
+  https://git.savannah.gnu.org/cgit/config.git/plain/config.guess
 and
-  https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+  https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
+EOF
+
+our_year=`echo $timestamp | sed 's,-.*,,'`
+thisyear=`date +%Y`
+# shellcheck disable=SC2003
+script_age=`expr "$thisyear" - "$our_year"`
+if test "$script_age" -lt 3 ; then
+   cat >&2 <<EOF
 
 If $0 has already been updated, send the following data and any
 information you think might be pertinent to config-patches@gnu.org to
@@ -1475,6 +1742,7 @@ UNAME_RELEASE = "$UNAME_RELEASE"
 UNAME_SYSTEM  = "$UNAME_SYSTEM"
 UNAME_VERSION = "$UNAME_VERSION"
 EOF
+fi
 
 exit 1
 
index b625621..24be79c 100755 (executable)
@@ -2,7 +2,7 @@
 # Output a system dependent set of variables, describing how to set the
 # run time search path of shared libraries in an executable.
 #
-#   Copyright 1996-2014 Free Software Foundation, Inc.
+#   Copyright 1996-2020 Free Software Foundation, Inc.
 #   Taken from GNU libtool, 2001
 #   Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
 #
index b51fb8c..dba16e8 100755 (executable)
@@ -1,12 +1,14 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2018 Free Software Foundation, Inc.
+#   Copyright 1992-2022 Free Software Foundation, Inc.
 
-timestamp='2018-08-29'
+# shellcheck disable=SC2006,SC2268 # see below for rationale
+
+timestamp='2022-01-03'
 
 # 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
-# the Free Software Foundation; either version 3 of the License, or
+# the Free Software Foundation, either version 3 of the License, or
 # (at your option) any later version.
 #
 # This program is distributed in the hope that it will be useful, but
@@ -33,7 +35,7 @@ timestamp='2018-08-29'
 # Otherwise, we print the canonical config type on stdout and succeed.
 
 # You can get the latest version of this script from:
-# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
+# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
 
 # This file is supposed to be the same for all GNU packages
 # and recognize all the CPU types, system types and aliases
@@ -50,6 +52,13 @@ timestamp='2018-08-29'
 #      CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
 # It is wrong to echo any other type of specification.
 
+# The "shellcheck disable" line above the timestamp inhibits complaints
+# about features and limitations of the classic Bourne shell that were
+# superseded or lifted in POSIX.  However, this script identifies a wide
+# variety of pre-POSIX systems that do not have POSIX shells at all, and
+# even some reasonably current systems (Solaris 10 as case-in-point) still
+# have a pre-POSIX /bin/sh.
+
 me=`echo "$0" | sed -e 's,.*/,,'`
 
 usage="\
@@ -67,7 +76,7 @@ Report bugs and patches to <config-patches@gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2018 Free Software Foundation, Inc.
+Copyright 1992-2022 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."
@@ -89,7 +98,7 @@ while test $# -gt 0 ; do
     - )        # Use stdin as input.
        break ;;
     -* )
-       echo "$me: invalid option $1$help"
+       echo "$me: invalid option $1$help" >&2
        exit 1 ;;
 
     *local*)
@@ -111,9 +120,12 @@ case $# in
 esac
 
 # Split fields of configuration type
-IFS="-" read -r field1 field2 field3 field4 <<EOF
+# shellcheck disable=SC2162
+saved_IFS=$IFS
+IFS="-" read field1 field2 field3 field4 <<EOF
 $1
 EOF
+IFS=$saved_IFS
 
 # Separate into logical components for further validation
 case $1 in
@@ -123,37 +135,36 @@ case $1 in
                ;;
        *-*-*-*)
                basic_machine=$field1-$field2
-               os=$field3-$field4
+               basic_os=$field3-$field4
                ;;
        *-*-*)
                # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two
                # parts
                maybe_os=$field2-$field3
                case $maybe_os in
-                       nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \
-                       | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \
+                       nto-qnx* | linux-* | uclinux-uclibc* \
                        | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
                        | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
                        | storm-chaos* | os2-emx* | rtmk-nova*)
                                basic_machine=$field1
-                               os=$maybe_os
+                               basic_os=$maybe_os
                                ;;
                        android-linux)
                                basic_machine=$field1-unknown
-                               os=linux-android
+                               basic_os=linux-android
                                ;;
                        *)
                                basic_machine=$field1-$field2
-                               os=$field3
+                               basic_os=$field3
                                ;;
                esac
                ;;
        *-*)
-               # A lone config we happen to match not fitting any patern
+               # A lone config we happen to match not fitting any pattern
                case $field1-$field2 in
                        decstation-3100)
                                basic_machine=mips-dec
-                               os=
+                               basic_os=
                                ;;
                        *-*)
                                # Second component is usually, but not always the OS
@@ -161,7 +172,11 @@ case $1 in
                                        # Prevent following clause from handling this valid os
                                        sun*os*)
                                                basic_machine=$field1
-                                               os=$field2
+                                               basic_os=$field2
+                                               ;;
+                                       zephyr*)
+                                               basic_machine=$field1-unknown
+                                               basic_os=$field2
                                                ;;
                                        # Manufacturers
                                        dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
@@ -174,11 +189,11 @@ case $1 in
                                        | microblaze* | sim | cisco \
                                        | oki | wec | wrs | winbond)
                                                basic_machine=$field1-$field2
-                                               os=
+                                               basic_os=
                                                ;;
                                        *)
                                                basic_machine=$field1
-                                               os=$field2
+                                               basic_os=$field2
                                                ;;
                                esac
                        ;;
@@ -190,450 +205,451 @@ case $1 in
                case $field1 in
                        386bsd)
                                basic_machine=i386-pc
-                               os=bsd
+                               basic_os=bsd
                                ;;
                        a29khif)
                                basic_machine=a29k-amd
-                               os=udi
+                               basic_os=udi
                                ;;
                        adobe68k)
                                basic_machine=m68010-adobe
-                               os=scout
+                               basic_os=scout
                                ;;
                        alliant)
                                basic_machine=fx80-alliant
-                               os=
+                               basic_os=
                                ;;
                        altos | altos3068)
                                basic_machine=m68k-altos
-                               os=
+                               basic_os=
                                ;;
                        am29k)
                                basic_machine=a29k-none
-                               os=bsd
+                               basic_os=bsd
                                ;;
                        amdahl)
                                basic_machine=580-amdahl
-                               os=sysv
+                               basic_os=sysv
                                ;;
                        amiga)
                                basic_machine=m68k-unknown
-                               os=
+                               basic_os=
                                ;;
                        amigaos | amigados)
                                basic_machine=m68k-unknown
-                               os=amigaos
+                               basic_os=amigaos
                                ;;
                        amigaunix | amix)
                                basic_machine=m68k-unknown
-                               os=sysv4
+                               basic_os=sysv4
                                ;;
                        apollo68)
                                basic_machine=m68k-apollo
-                               os=sysv
+                               basic_os=sysv
                                ;;
                        apollo68bsd)
                                basic_machine=m68k-apollo
-                               os=bsd
+                               basic_os=bsd
                                ;;
                        aros)
                                basic_machine=i386-pc
-                               os=aros
+                               basic_os=aros
                                ;;
                        aux)
                                basic_machine=m68k-apple
-                               os=aux
+                               basic_os=aux
                                ;;
                        balance)
                                basic_machine=ns32k-sequent
-                               os=dynix
+                               basic_os=dynix
                                ;;
                        blackfin)
                                basic_machine=bfin-unknown
-                               os=linux
+                               basic_os=linux
                                ;;
                        cegcc)
                                basic_machine=arm-unknown
-                               os=cegcc
+                               basic_os=cegcc
                                ;;
                        convex-c1)
                                basic_machine=c1-convex
-                               os=bsd
+                               basic_os=bsd
                                ;;
                        convex-c2)
                                basic_machine=c2-convex
-                               os=bsd
+                               basic_os=bsd
                                ;;
                        convex-c32)
                                basic_machine=c32-convex
-                               os=bsd
+                               basic_os=bsd
                                ;;
                        convex-c34)
                                basic_machine=c34-convex
-                               os=bsd
+                               basic_os=bsd
                                ;;
                        convex-c38)
                                basic_machine=c38-convex
-                               os=bsd
+                               basic_os=bsd
                                ;;
                        cray)
                                basic_machine=j90-cray
-                               os=unicos
+                               basic_os=unicos
                                ;;
                        crds | unos)
                                basic_machine=m68k-crds
-                               os=
+                               basic_os=
                                ;;
                        da30)
                                basic_machine=m68k-da30
-                               os=
+                               basic_os=
                                ;;
                        decstation | pmax | pmin | dec3100 | decstatn)
                                basic_machine=mips-dec
-                               os=
+                               basic_os=
                                ;;
                        delta88)
                                basic_machine=m88k-motorola
-                               os=sysv3
+                               basic_os=sysv3
                                ;;
                        dicos)
                                basic_machine=i686-pc
-                               os=dicos
+                               basic_os=dicos
                                ;;
                        djgpp)
                                basic_machine=i586-pc
-                               os=msdosdjgpp
+                               basic_os=msdosdjgpp
                                ;;
                        ebmon29k)
                                basic_machine=a29k-amd
-                               os=ebmon
+                               basic_os=ebmon
                                ;;
                        es1800 | OSE68k | ose68k | ose | OSE)
                                basic_machine=m68k-ericsson
-                               os=ose
+                               basic_os=ose
                                ;;
                        gmicro)
                                basic_machine=tron-gmicro
-                               os=sysv
+                               basic_os=sysv
                                ;;
                        go32)
                                basic_machine=i386-pc
-                               os=go32
+                               basic_os=go32
                                ;;
                        h8300hms)
                                basic_machine=h8300-hitachi
-                               os=hms
+                               basic_os=hms
                                ;;
                        h8300xray)
                                basic_machine=h8300-hitachi
-                               os=xray
+                               basic_os=xray
                                ;;
                        h8500hms)
                                basic_machine=h8500-hitachi
-                               os=hms
+                               basic_os=hms
                                ;;
                        harris)
                                basic_machine=m88k-harris
-                               os=sysv3
+                               basic_os=sysv3
                                ;;
-                       hp300)
+                       hp300 | hp300hpux)
                                basic_machine=m68k-hp
+                               basic_os=hpux
                                ;;
                        hp300bsd)
                                basic_machine=m68k-hp
-                               os=bsd
-                               ;;
-                       hp300hpux)
-                               basic_machine=m68k-hp
-                               os=hpux
+                               basic_os=bsd
                                ;;
                        hppaosf)
                                basic_machine=hppa1.1-hp
-                               os=osf
+                               basic_os=osf
                                ;;
                        hppro)
                                basic_machine=hppa1.1-hp
-                               os=proelf
+                               basic_os=proelf
                                ;;
                        i386mach)
                                basic_machine=i386-mach
-                               os=mach
-                               ;;
-                       vsta)
-                               basic_machine=i386-pc
-                               os=vsta
+                               basic_os=mach
                                ;;
                        isi68 | isi)
                                basic_machine=m68k-isi
-                               os=sysv
+                               basic_os=sysv
                                ;;
                        m68knommu)
                                basic_machine=m68k-unknown
-                               os=linux
+                               basic_os=linux
                                ;;
                        magnum | m3230)
                                basic_machine=mips-mips
-                               os=sysv
+                               basic_os=sysv
                                ;;
                        merlin)
                                basic_machine=ns32k-utek
-                               os=sysv
+                               basic_os=sysv
                                ;;
                        mingw64)
                                basic_machine=x86_64-pc
-                               os=mingw64
+                               basic_os=mingw64
                                ;;
                        mingw32)
                                basic_machine=i686-pc
-                               os=mingw32
+                               basic_os=mingw32
                                ;;
                        mingw32ce)
                                basic_machine=arm-unknown
-                               os=mingw32ce
+                               basic_os=mingw32ce
                                ;;
                        monitor)
                                basic_machine=m68k-rom68k
-                               os=coff
+                               basic_os=coff
                                ;;
                        morphos)
                                basic_machine=powerpc-unknown
-                               os=morphos
+                               basic_os=morphos
                                ;;
                        moxiebox)
                                basic_machine=moxie-unknown
-                               os=moxiebox
+                               basic_os=moxiebox
                                ;;
                        msdos)
                                basic_machine=i386-pc
-                               os=msdos
+                               basic_os=msdos
                                ;;
                        msys)
                                basic_machine=i686-pc
-                               os=msys
+                               basic_os=msys
                                ;;
                        mvs)
                                basic_machine=i370-ibm
-                               os=mvs
+                               basic_os=mvs
                                ;;
                        nacl)
                                basic_machine=le32-unknown
-                               os=nacl
+                               basic_os=nacl
                                ;;
                        ncr3000)
                                basic_machine=i486-ncr
-                               os=sysv4
+                               basic_os=sysv4
                                ;;
                        netbsd386)
                                basic_machine=i386-pc
-                               os=netbsd
+                               basic_os=netbsd
                                ;;
                        netwinder)
                                basic_machine=armv4l-rebel
-                               os=linux
+                               basic_os=linux
                                ;;
                        news | news700 | news800 | news900)
                                basic_machine=m68k-sony
-                               os=newsos
+                               basic_os=newsos
                                ;;
                        news1000)
                                basic_machine=m68030-sony
-                               os=newsos
+                               basic_os=newsos
                                ;;
                        necv70)
                                basic_machine=v70-nec
-                               os=sysv
+                               basic_os=sysv
                                ;;
                        nh3000)
                                basic_machine=m68k-harris
-                               os=cxux
+                               basic_os=cxux
                                ;;
                        nh[45]000)
                                basic_machine=m88k-harris
-                               os=cxux
+                               basic_os=cxux
                                ;;
                        nindy960)
                                basic_machine=i960-intel
-                               os=nindy
+                               basic_os=nindy
                                ;;
                        mon960)
                                basic_machine=i960-intel
-                               os=mon960
+                               basic_os=mon960
                                ;;
                        nonstopux)
                                basic_machine=mips-compaq
-                               os=nonstopux
+                               basic_os=nonstopux
                                ;;
                        os400)
                                basic_machine=powerpc-ibm
-                               os=os400
+                               basic_os=os400
                                ;;
                        OSE68000 | ose68000)
                                basic_machine=m68000-ericsson
-                               os=ose
+                               basic_os=ose
                                ;;
                        os68k)
                                basic_machine=m68k-none
-                               os=os68k
+                               basic_os=os68k
                                ;;
                        paragon)
                                basic_machine=i860-intel
-                               os=osf
+                               basic_os=osf
                                ;;
                        parisc)
                                basic_machine=hppa-unknown
-                               os=linux
+                               basic_os=linux
+                               ;;
+                       psp)
+                               basic_machine=mipsallegrexel-sony
+                               basic_os=psp
                                ;;
                        pw32)
                                basic_machine=i586-unknown
-                               os=pw32
+                               basic_os=pw32
                                ;;
                        rdos | rdos64)
                                basic_machine=x86_64-pc
-                               os=rdos
+                               basic_os=rdos
                                ;;
                        rdos32)
                                basic_machine=i386-pc
-                               os=rdos
+                               basic_os=rdos
                                ;;
                        rom68k)
                                basic_machine=m68k-rom68k
-                               os=coff
+                               basic_os=coff
                                ;;
                        sa29200)
                                basic_machine=a29k-amd
-                               os=udi
+                               basic_os=udi
                                ;;
                        sei)
                                basic_machine=mips-sei
-                               os=seiux
+                               basic_os=seiux
                                ;;
                        sequent)
                                basic_machine=i386-sequent
-                               os=
+                               basic_os=
                                ;;
                        sps7)
                                basic_machine=m68k-bull
-                               os=sysv2
+                               basic_os=sysv2
                                ;;
                        st2000)
                                basic_machine=m68k-tandem
-                               os=
+                               basic_os=
                                ;;
                        stratus)
                                basic_machine=i860-stratus
-                               os=sysv4
+                               basic_os=sysv4
                                ;;
                        sun2)
                                basic_machine=m68000-sun
-                               os=
+                               basic_os=
                                ;;
                        sun2os3)
                                basic_machine=m68000-sun
-                               os=sunos3
+                               basic_os=sunos3
                                ;;
                        sun2os4)
                                basic_machine=m68000-sun
-                               os=sunos4
+                               basic_os=sunos4
                                ;;
                        sun3)
                                basic_machine=m68k-sun
-                               os=
+                               basic_os=
                                ;;
                        sun3os3)
                                basic_machine=m68k-sun
-                               os=sunos3
+                               basic_os=sunos3
                                ;;
                        sun3os4)
                                basic_machine=m68k-sun
-                               os=sunos4
+                               basic_os=sunos4
                                ;;
                        sun4)
                                basic_machine=sparc-sun
-                               os=
+                               basic_os=
                                ;;
                        sun4os3)
                                basic_machine=sparc-sun
-                               os=sunos3
+                               basic_os=sunos3
                                ;;
                        sun4os4)
                                basic_machine=sparc-sun
-                               os=sunos4
+                               basic_os=sunos4
                                ;;
                        sun4sol2)
                                basic_machine=sparc-sun
-                               os=solaris2
+                               basic_os=solaris2
                                ;;
                        sun386 | sun386i | roadrunner)
                                basic_machine=i386-sun
-                               os=
+                               basic_os=
                                ;;
                        sv1)
                                basic_machine=sv1-cray
-                               os=unicos
+                               basic_os=unicos
                                ;;
                        symmetry)
                                basic_machine=i386-sequent
-                               os=dynix
+                               basic_os=dynix
                                ;;
                        t3e)
                                basic_machine=alphaev5-cray
-                               os=unicos
+                               basic_os=unicos
                                ;;
                        t90)
                                basic_machine=t90-cray
-                               os=unicos
+                               basic_os=unicos
                                ;;
                        toad1)
                                basic_machine=pdp10-xkl
-                               os=tops20
+                               basic_os=tops20
                                ;;
                        tpf)
                                basic_machine=s390x-ibm
-                               os=tpf
+                               basic_os=tpf
                                ;;
                        udi29k)
                                basic_machine=a29k-amd
-                               os=udi
+                               basic_os=udi
                                ;;
                        ultra3)
                                basic_machine=a29k-nyu
-                               os=sym1
+                               basic_os=sym1
                                ;;
                        v810 | necv810)
                                basic_machine=v810-nec
-                               os=none
+                               basic_os=none
                                ;;
                        vaxv)
                                basic_machine=vax-dec
-                               os=sysv
+                               basic_os=sysv
                                ;;
                        vms)
                                basic_machine=vax-dec
-                               os=vms
+                               basic_os=vms
+                               ;;
+                       vsta)
+                               basic_machine=i386-pc
+                               basic_os=vsta
                                ;;
                        vxworks960)
                                basic_machine=i960-wrs
-                               os=vxworks
+                               basic_os=vxworks
                                ;;
                        vxworks68)
                                basic_machine=m68k-wrs
-                               os=vxworks
+                               basic_os=vxworks
                                ;;
                        vxworks29k)
                                basic_machine=a29k-wrs
-                               os=vxworks
+                               basic_os=vxworks
                                ;;
                        xbox)
                                basic_machine=i686-pc
-                               os=mingw32
+                               basic_os=mingw32
                                ;;
                        ymp)
                                basic_machine=ymp-cray
-                               os=unicos
+                               basic_os=unicos
                                ;;
                        *)
                                basic_machine=$1
-                               os=
+                               basic_os=
                                ;;
                esac
                ;;
@@ -685,17 +701,17 @@ case $basic_machine in
        bluegene*)
                cpu=powerpc
                vendor=ibm
-               os=cnk
+               basic_os=cnk
                ;;
        decsystem10* | dec10*)
                cpu=pdp10
                vendor=dec
-               os=tops10
+               basic_os=tops10
                ;;
        decsystem20* | dec20*)
                cpu=pdp10
                vendor=dec
-               os=tops20
+               basic_os=tops20
                ;;
        delta | 3300 | motorola-3300 | motorola-delta \
              | 3300-motorola | delta-motorola)
@@ -705,7 +721,7 @@ case $basic_machine in
        dpx2*)
                cpu=m68k
                vendor=bull
-               os=sysv3
+               basic_os=sysv3
                ;;
        encore | umax | mmax)
                cpu=ns32k
@@ -714,7 +730,7 @@ case $basic_machine in
        elxsi)
                cpu=elxsi
                vendor=elxsi
-               os=${os:-bsd}
+               basic_os=${basic_os:-bsd}
                ;;
        fx2800)
                cpu=i860
@@ -727,7 +743,7 @@ case $basic_machine in
        h3050r* | hiux*)
                cpu=hppa1.1
                vendor=hitachi
-               os=hiuxwe2
+               basic_os=hiuxwe2
                ;;
        hp3k9[0-9][0-9] | hp9[0-9][0-9])
                cpu=hppa1.0
@@ -770,36 +786,36 @@ case $basic_machine in
        i*86v32)
                cpu=`echo "$1" | sed -e 's/86.*/86/'`
                vendor=pc
-               os=sysv32
+               basic_os=sysv32
                ;;
        i*86v4*)
                cpu=`echo "$1" | sed -e 's/86.*/86/'`
                vendor=pc
-               os=sysv4
+               basic_os=sysv4
                ;;
        i*86v)
                cpu=`echo "$1" | sed -e 's/86.*/86/'`
                vendor=pc
-               os=sysv
+               basic_os=sysv
                ;;
        i*86sol2)
                cpu=`echo "$1" | sed -e 's/86.*/86/'`
                vendor=pc
-               os=solaris2
+               basic_os=solaris2
                ;;
        j90 | j90-cray)
                cpu=j90
                vendor=cray
-               os=${os:-unicos}
+               basic_os=${basic_os:-unicos}
                ;;
        iris | iris4d)
                cpu=mips
                vendor=sgi
-               case $os in
+               case $basic_os in
                    irix*)
                        ;;
                    *)
-                       os=irix4
+                       basic_os=irix4
                        ;;
                esac
                ;;
@@ -810,24 +826,26 @@ case $basic_machine in
        *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*)
                cpu=m68k
                vendor=atari
-               os=mint
+               basic_os=mint
                ;;
        news-3600 | risc-news)
                cpu=mips
                vendor=sony
-               os=newsos
+               basic_os=newsos
                ;;
        next | m*-next)
                cpu=m68k
                vendor=next
-               case $os in
-                   nextstep* )
+               case $basic_os in
+                   openstep*)
+                       ;;
+                   nextstep*)
                        ;;
                    ns2*)
-                     os=nextstep2
+                     basic_os=nextstep2
                        ;;
                    *)
-                     os=nextstep3
+                     basic_os=nextstep3
                        ;;
                esac
                ;;
@@ -838,12 +856,12 @@ case $basic_machine in
        op50n-* | op60c-*)
                cpu=hppa1.1
                vendor=oki
-               os=proelf
+               basic_os=proelf
                ;;
        pa-hitachi)
                cpu=hppa1.1
                vendor=hitachi
-               os=hiuxwe2
+               basic_os=hiuxwe2
                ;;
        pbd)
                cpu=sparc
@@ -880,12 +898,12 @@ case $basic_machine in
        sde)
                cpu=mipsisa32
                vendor=sde
-               os=${os:-elf}
+               basic_os=${basic_os:-elf}
                ;;
        simso-wrs)
                cpu=sparclite
                vendor=wrs
-               os=vxworks
+               basic_os=vxworks
                ;;
        tower | tower-32)
                cpu=m68k
@@ -902,7 +920,7 @@ case $basic_machine in
        w89k-*)
                cpu=hppa1.1
                vendor=winbond
-               os=proelf
+               basic_os=proelf
                ;;
        none)
                cpu=none
@@ -918,9 +936,12 @@ case $basic_machine in
                ;;
 
        *-*)
-               IFS="-" read -r cpu vendor <<EOF
+               # shellcheck disable=SC2162
+               saved_IFS=$IFS
+               IFS="-" read cpu vendor <<EOF
 $basic_machine
 EOF
+               IFS=$saved_IFS
                ;;
        # We use `pc' rather than `unknown'
        # because (1) that's what they normally are, and
@@ -950,15 +971,15 @@ unset -v basic_machine
 
 # Decode basic machines in the full and proper CPU-Company form.
 case $cpu-$vendor in
-       # Here we handle the default manufacturer of certain CPU types in cannonical form. It is in
+       # Here we handle the default manufacturer of certain CPU types in canonical form. It is in
        # some cases the only manufacturer, in others, it is the most popular.
        craynv-unknown)
                vendor=cray
-               os=${os:-unicosmp}
+               basic_os=${basic_os:-unicosmp}
                ;;
        c90-unknown | c90-cray)
                vendor=cray
-               os=${os:-unicos}
+               basic_os=${Basic_os:-unicos}
                ;;
        fx80-unknown)
                vendor=alliant
@@ -999,10 +1020,15 @@ case $cpu-$vendor in
                ;;
 
        # Here we normalize CPU types with a missing or matching vendor
+       armh-unknown | armh-alt)
+               cpu=armv7l
+               vendor=alt
+               basic_os=${basic_os:-linux-gnueabihf}
+               ;;
        dpx20-unknown | dpx20-bull)
                cpu=rs6000
                vendor=bull
-               os=${os:-bosx}
+               basic_os=${basic_os:-bosx}
                ;;
 
        # Here we normalize CPU types irrespective of the vendor
@@ -1011,7 +1037,7 @@ case $cpu-$vendor in
                ;;
        blackfin-*)
                cpu=bfin
-               os=linux
+               basic_os=linux
                ;;
        c54x-*)
                cpu=tic54x
@@ -1024,7 +1050,7 @@ case $cpu-$vendor in
                ;;
        e500v[12]-*)
                cpu=powerpc
-               os=$os"spe"
+               basic_os=${basic_os}"spe"
                ;;
        mips3*-*)
                cpu=mips64
@@ -1034,7 +1060,7 @@ case $cpu-$vendor in
                ;;
        m68knommu-*)
                cpu=m68k
-               os=linux
+               basic_os=linux
                ;;
        m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
                cpu=s12z
@@ -1044,7 +1070,7 @@ case $cpu-$vendor in
                ;;
        parisc-*)
                cpu=hppa
-               os=linux
+               basic_os=linux
                ;;
        pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
                cpu=i586
@@ -1100,11 +1126,14 @@ case $cpu-$vendor in
        xscale-* | xscalee[bl]-*)
                cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
                ;;
+       arm64-* | aarch64le-*)
+               cpu=aarch64
+               ;;
 
-       # Recognize the cannonical CPU Types that limit and/or modify the
+       # Recognize the canonical CPU Types that limit and/or modify the
        # company names they are paired with.
        cr16-*)
-               os=${os:-elf}
+               basic_os=${basic_os:-elf}
                ;;
        crisv32-* | etraxfs*-*)
                cpu=crisv32
@@ -1115,7 +1144,7 @@ case $cpu-$vendor in
                vendor=axis
                ;;
        crx-*)
-               os=${os:-elf}
+               basic_os=${basic_os:-elf}
                ;;
        neo-tandem)
                cpu=neo
@@ -1137,20 +1166,16 @@ case $cpu-$vendor in
                cpu=nsx
                vendor=tandem
                ;;
-       s390-*)
-               cpu=s390
-               vendor=ibm
-               ;;
-       s390x-*)
-               cpu=s390x
-               vendor=ibm
+       mipsallegrexel-sony)
+               cpu=mipsallegrexel
+               vendor=sony
                ;;
        tile*-*)
-               os=${os:-linux-gnu}
+               basic_os=${basic_os:-linux-gnu}
                ;;
 
        *)
-               # Recognize the cannonical CPU types that are allowed with any
+               # Recognize the canonical CPU types that are allowed with any
                # company name.
                case $cpu in
                        1750a | 580 \
@@ -1161,13 +1186,14 @@ case $cpu-$vendor in
                        | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
                        | alphapca5[67] | alpha64pca5[67] \
                        | am33_2.0 \
-                       | arc | arceb \
-                       | arm  | arm[lb]e | arme[lb] | armv* \
+                       | amdgcn \
+                       | arc | arceb | arc32 | arc64 \
+                       | arm | arm[lb]e | arme[lb] | armv* \
                        | avr | avr32 \
                        | asmjs \
                        | ba \
                        | be32 | be64 \
-                       | bfin | bs2000 \
+                       | bfin | bpf | bs2000 \
                        | c[123]* | c30 | [cjt]90 | c4x \
                        | c8051 | clipper | craynv | csky | cydra \
                        | d10v | d30v | dlx | dsp16xx \
@@ -1181,14 +1207,15 @@ case $cpu-$vendor in
                        | k1om \
                        | le32 | le64 \
                        | lm32 \
+                       | loongarch32 | loongarch64 | loongarchx32 \
                        | m32c | m32r | m32rle \
-                       | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \
-                       | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \
+                       | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
+                       | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
                        | m88110 | m88k | maxq | mb | mcore | mep | metag \
                        | microblaze | microblazeel \
                        | mips | mipsbe | mipseb | mipsel | mipsle \
                        | mips16 \
-                       | mips64 | mips64el \
+                       | mips64 | mips64eb | mips64el \
                        | mips64octeon | mips64octeonel \
                        | mips64orion | mips64orionel \
                        | mips64r5900 | mips64r5900el \
@@ -1199,9 +1226,13 @@ case $cpu-$vendor in
                        | mips64vr5900 | mips64vr5900el \
                        | mipsisa32 | mipsisa32el \
                        | mipsisa32r2 | mipsisa32r2el \
+                       | mipsisa32r3 | mipsisa32r3el \
+                       | mipsisa32r5 | mipsisa32r5el \
                        | mipsisa32r6 | mipsisa32r6el \
                        | mipsisa64 | mipsisa64el \
                        | mipsisa64r2 | mipsisa64r2el \
+                       | mipsisa64r3 | mipsisa64r3el \
+                       | mipsisa64r5 | mipsisa64r5el \
                        | mipsisa64r6 | mipsisa64r6el \
                        | mipsisa64sb1 | mipsisa64sb1el \
                        | mipsisa64sr71k | mipsisa64sr71kel \
@@ -1215,32 +1246,37 @@ case $cpu-$vendor in
                        | nds32 | nds32le | nds32be \
                        | nfp \
                        | nios | nios2 | nios2eb | nios2el \
-                       | none | np1 | ns16k | ns32k \
+                       | none | np1 | ns16k | ns32k | nvptx \
                        | open8 \
                        | or1k* \
                        | or32 \
                        | orion \
+                       | picochip \
                        | pdp10 | pdp11 | pj | pjl | pn | power \
                        | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
                        | pru \
                        | pyramid \
-                       | riscv | riscv32 | riscv64 \
+                       | riscv | riscv32 | riscv32be | riscv64 | riscv64be \
                        | rl78 | romp | rs6000 | rx \
+                       | s390 | s390x \
                        | score \
-                       | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
+                       | sh | shl \
+                       | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
                        | sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
                        | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
                        | sparclite \
                        | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
                        | spu \
                        | tahoe \
+                       | thumbv7* \
                        | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
                        | tron \
                        | ubicom32 \
-                       | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+                       | v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
                        | vax \
                        | visium \
-                       | wasm32 \
+                       | w65 \
+                       | wasm32 | wasm64 \
                        | we32k \
                        | x86 | x86_64 | xc16x | xgate | xps100 \
                        | xstormy16 | xtensa* \
@@ -1270,8 +1306,49 @@ esac
 
 # Decode manufacturer-specific aliases for certain operating systems.
 
-if [ x$os != x ]
+if test x$basic_os != x
 then
+
+# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
+# set os.
+case $basic_os in
+       gnu/linux*)
+               kernel=linux
+               os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
+               ;;
+       os2-emx)
+               kernel=os2
+               os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
+               ;;
+       nto-qnx*)
+               kernel=nto
+               os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
+               ;;
+       *-*)
+               # shellcheck disable=SC2162
+               saved_IFS=$IFS
+               IFS="-" read kernel os <<EOF
+$basic_os
+EOF
+               IFS=$saved_IFS
+               ;;
+       # Default OS when just kernel was specified
+       nto*)
+               kernel=nto
+               os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
+               ;;
+       linux*)
+               kernel=linux
+               os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
+               ;;
+       *)
+               kernel=
+               os=$basic_os
+               ;;
+esac
+
+# Now, normalize the OS (knowing we just have one component, it's not a kernel,
+# etc.)
 case $os in
        # First match some system type aliases that might get confused
        # with valid system types.
@@ -1283,7 +1360,7 @@ case $os in
                os=cnk
                ;;
        solaris1 | solaris1.*)
-               os=`echo $os | sed -e 's|solaris1|sunos4|'`
+               os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
                ;;
        solaris)
                os=solaris2
@@ -1291,9 +1368,6 @@ case $os in
        unixware*)
                os=sysv4.2uw
                ;;
-       gnu/linux*)
-               os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
-               ;;
        # es1800 is here to avoid being matched by es* (a different OS)
        es1800*)
                os=ose
@@ -1315,12 +1389,9 @@ case $os in
                os=sco3.2v4
                ;;
        sco3.2.[4-9]*)
-               os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+               os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
                ;;
-       sco3.2v[4-9]* | sco5v6*)
-               # Don't forget version if it is 3.2v4 or newer.
-               ;;
-       scout)
+       sco*v* | scout)
                # Don't match below
                ;;
        sco*)
@@ -1329,77 +1400,25 @@ case $os in
        psos*)
                os=psos
                ;;
-       # Now accept the basic system types.
-       # The portable systems comes first.
-       # Each alternative MUST end in a * to match a version number.
-       # sysv* is not here because it comes later, after sysvr4.
-       gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
-            | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\
-            | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
-            | sym* | kopensolaris* | plan9* \
-            | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
-            | aos* | aros* | cloudabi* | sortix* \
-            | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
-            | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
-            | knetbsd* | mirbsd* | netbsd* \
-            | bitrig* | openbsd* | solidbsd* | libertybsd* \
-            | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \
-            | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
-            | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
-            | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \
-            | chorusrdb* | cegcc* | glidix* \
-            | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
-            | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \
-            | linux-newlib* | linux-musl* | linux-uclibc* \
-            | uxpv* | beos* | mpeix* | udk* | moxiebox* \
-            | interix* | uwin* | mks* | rhapsody* | darwin* \
-            | openstep* | oskit* | conix* | pw32* | nonstopux* \
-            | storm-chaos* | tops10* | tenex* | tops20* | its* \
-            | os2* | vos* | palmos* | uclinux* | nucleus* \
-            | morphos* | superux* | rtmk* | windiss* \
-            | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
-            | skyos* | haiku* | rdos* | toppers* | drops* | es* \
-            | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
-            | midnightbsd*)
-       # Remember, each alternative MUST END IN *, to match a version number.
-               ;;
        qnx*)
-               case $cpu in
-                   x86 | i*86)
-                       ;;
-                   *)
-                       os=nto-$os
-                       ;;
-               esac
+               os=qnx
                ;;
        hiux*)
                os=hiuxwe2
                ;;
-       nto-qnx*)
-               ;;
-       nto*)
-               os=`echo $os | sed -e 's|nto|nto-qnx|'`
-               ;;
-       sim | xray | os68k* | v88r* \
-           | windows* | osx | abug | netware* | os9* \
-           | macos* | mpw* | magic* | mmixware* | mon960* | lnews*)
-               ;;
-       linux-dietlibc)
-               os=linux-dietlibc
-               ;;
-       linux*)
-               os=`echo $os | sed -e 's|linux|linux-gnu|'`
-               ;;
        lynx*178)
                os=lynxos178
                ;;
        lynx*5)
                os=lynxos5
                ;;
+       lynxos*)
+               # don't get caught up in next wildcard
+               ;;
        lynx*)
                os=lynxos
                ;;
-       mac*)
+       mac[0-9]*)
                os=`echo "$os" | sed -e 's|mac|macos|'`
                ;;
        opened*)
@@ -1444,12 +1463,9 @@ case $os in
        ns2)
                os=nextstep2
                ;;
-       nsk*)
-               os=nsk
-               ;;
        # Preserve the version number of sinix5.
        sinix5.*)
-               os=`echo $os | sed -e 's|sinix|sysv|'`
+               os=`echo "$os" | sed -e 's|sinix|sysv|'`
                ;;
        sinix*)
                os=sysv4
@@ -1472,18 +1488,12 @@ case $os in
        sysvr4)
                os=sysv4
                ;;
-       # This must come after sysvr4.
-       sysv*)
-               ;;
        ose*)
                os=ose
                ;;
        *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
                os=mint
                ;;
-       zvmoe)
-               os=zvmoe
-               ;;
        dicos*)
                os=dicos
                ;;
@@ -1500,19 +1510,11 @@ case $os in
                        ;;
                esac
                ;;
-       nacl*)
-               ;;
-       ios)
-               ;;
-       none)
-               ;;
-       *-eabi)
-               ;;
        *)
-               echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2
-               exit 1
+               # No normalization, but not necessarily accepted, that comes below.
                ;;
 esac
+
 else
 
 # Here we handle the default operating systems that come with various machines.
@@ -1525,6 +1527,7 @@ else
 # will signal an error saying that MANUFACTURER isn't an operating
 # system, and we'll never get to this point.
 
+kernel=
 case $cpu-$vendor in
        score-*)
                os=elf
@@ -1536,7 +1539,8 @@ case $cpu-$vendor in
                os=riscix1.2
                ;;
        arm*-rebel)
-               os=linux
+               kernel=linux
+               os=gnu
                ;;
        arm*-semi)
                os=aout
@@ -1702,84 +1706,180 @@ case $cpu-$vendor in
                os=none
                ;;
 esac
+
 fi
 
+# Now, validate our (potentially fixed-up) OS.
+case $os in
+       # Sometimes we do "kernel-libc", so those need to count as OSes.
+       musl* | newlib* | relibc* | uclibc*)
+               ;;
+       # Likewise for "kernel-abi"
+       eabi* | gnueabi*)
+               ;;
+       # VxWorks passes extra cpu info in the 4th filed.
+       simlinux | simwindows | spe)
+               ;;
+       # Now accept the basic system types.
+       # The portable systems comes first.
+       # Each alternative MUST end in a * to match a version number.
+       gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
+            | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
+            | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
+            | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
+            | hiux* | abug | nacl* | netware* | windows* \
+            | os9* | macos* | osx* | ios* \
+            | mpw* | magic* | mmixware* | mon960* | lnews* \
+            | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
+            | aos* | aros* | cloudabi* | sortix* | twizzler* \
+            | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
+            | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
+            | mirbsd* | netbsd* | dicos* | openedition* | ose* \
+            | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
+            | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
+            | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
+            | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
+            | udi* | lites* | ieee* | go32* | aux* | hcos* \
+            | chorusrdb* | cegcc* | glidix* | serenity* \
+            | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
+            | midipix* | mingw32* | mingw64* | mint* \
+            | uxpv* | beos* | mpeix* | udk* | moxiebox* \
+            | interix* | uwin* | mks* | rhapsody* | darwin* \
+            | openstep* | oskit* | conix* | pw32* | nonstopux* \
+            | storm-chaos* | tops10* | tenex* | tops20* | its* \
+            | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
+            | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
+            | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
+            | skyos* | haiku* | rdos* | toppers* | drops* | es* \
+            | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
+            | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
+            | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
+            | fiwix* )
+               ;;
+       # This one is extra strict with allowed versions
+       sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
+               # Don't forget version if it is 3.2v4 or newer.
+               ;;
+       none)
+               ;;
+       *)
+               echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
+               exit 1
+               ;;
+esac
+
+# As a final step for OS-related things, validate the OS-kernel combination
+# (given a valid OS), if there is a kernel.
+case $kernel-$os in
+       linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
+                  | linux-musl* | linux-relibc* | linux-uclibc* )
+               ;;
+       uclinux-uclibc* )
+               ;;
+       -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* )
+               # These are just libc implementations, not actual OSes, and thus
+               # require a kernel.
+               echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
+               exit 1
+               ;;
+       kfreebsd*-gnu* | kopensolaris*-gnu*)
+               ;;
+       vxworks-simlinux | vxworks-simwindows | vxworks-spe)
+               ;;
+       nto-qnx*)
+               ;;
+       os2-emx)
+               ;;
+       *-eabi* | *-gnueabi*)
+               ;;
+       -*)
+               # Blank kernel with real OS is always fine.
+               ;;
+       *-*)
+               echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
+               exit 1
+               ;;
+esac
+
 # Here we handle the case where we know the os, and the CPU type, but not the
 # manufacturer.  We pick the logical manufacturer.
 case $vendor in
        unknown)
-               case $os in
-                       riscix*)
+               case $cpu-$os in
+                       *-riscix*)
                                vendor=acorn
                                ;;
-                       sunos*)
+                       *-sunos*)
                                vendor=sun
                                ;;
-                       cnk*|-aix*)
+                       *-cnk* | *-aix*)
                                vendor=ibm
                                ;;
-                       beos*)
+                       *-beos*)
                                vendor=be
                                ;;
-                       hpux*)
+                       *-hpux*)
                                vendor=hp
                                ;;
-                       mpeix*)
+                       *-mpeix*)
                                vendor=hp
                                ;;
-                       hiux*)
+                       *-hiux*)
                                vendor=hitachi
                                ;;
-                       unos*)
+                       *-unos*)
                                vendor=crds
                                ;;
-                       dgux*)
+                       *-dgux*)
                                vendor=dg
                                ;;
-                       luna*)
+                       *-luna*)
                                vendor=omron
                                ;;
-                       genix*)
+                       *-genix*)
                                vendor=ns
                                ;;
-                       clix*)
+                       *-clix*)
                                vendor=intergraph
                                ;;
-                       mvs* | opened*)
+                       *-mvs* | *-opened*)
+                               vendor=ibm
+                               ;;
+                       *-os400*)
                                vendor=ibm
                                ;;
-                       os400*)
+                       s390-* | s390x-*)
                                vendor=ibm
                                ;;
-                       ptx*)
+                       *-ptx*)
                                vendor=sequent
                                ;;
-                       tpf*)
+                       *-tpf*)
                                vendor=ibm
                                ;;
-                       vxsim* | vxworks* | windiss*)
+                       *-vxsim* | *-vxworks* | *-windiss*)
                                vendor=wrs
                                ;;
-                       aux*)
+                       *-aux*)
                                vendor=apple
                                ;;
-                       hms*)
+                       *-hms*)
                                vendor=hitachi
                                ;;
-                       mpw* | macos*)
+                       *-mpw* | *-macos*)
                                vendor=apple
                                ;;
-                       *mint | mint[0-9]* | *MiNT | MiNT[0-9]*)
+                       *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*)
                                vendor=atari
                                ;;
-                       vos*)
+                       *-vos*)
                                vendor=stratus
                                ;;
                esac
                ;;
 esac
 
-echo "$cpu-$vendor-$os"
+echo "$cpu-$vendor-${kernel:+$kernel-}$os"
 exit
 
 # Local variables:
index 35725f4..7f2c728 100644 (file)
@@ -68,6 +68,9 @@
 /* Define if you have the iconv() function and it works. */
 #undef HAVE_ICONV
 
+/* Define to 1 if you have the `inet_pton' function. */
+#undef HAVE_INET_PTON
+
 /* Define to 1 if the system has the type `intmax_t'. */
 #undef HAVE_INTMAX_T
 
 /* Define to 1 if you have the <vfork.h> header file. */
 #undef HAVE_VFORK_H
 
-/* Defined if we run on WindowsCE */
-#undef HAVE_W32CE_SYSTEM
-
 /* Defined if we run on a W32 API based system */
 #undef HAVE_W32_SYSTEM
 
 /* The size of `pthread_mutex_t', as computed by sizeof. */
 #undef SIZEOF_PTHREAD_MUTEX_T
 
-/* The size of `time_t', as computed by sizeof. */
-#undef SIZEOF_TIME_T
-
 /* The size of `unsigned long', as computed by sizeof. */
 #undef SIZEOF_UNSIGNED_LONG
 
 /* Define to 1 if strerror_r returns char *. */
 #undef STRERROR_R_CHAR_P
 
-/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-#undef TIME_WITH_SYS_TIME
-
 /* Define if the combination of the ISO C and POSIX multithreading APIs can be
    used. */
 #undef USE_ISOC_AND_POSIX_THREADS
index f2908f5..bd218bd 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for libgpg-error 1.43.
+# Generated by GNU Autoconf 2.69 for libgpg-error 1.46.
 #
 # Report bugs to <https://bugs.gnupg.org>.
 #
@@ -590,8 +590,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='libgpg-error'
 PACKAGE_TARNAME='libgpg-error'
-PACKAGE_VERSION='1.43'
-PACKAGE_STRING='libgpg-error 1.43'
+PACKAGE_VERSION='1.46'
+PACKAGE_STRING='libgpg-error 1.46'
 PACKAGE_BUGREPORT='https://bugs.gnupg.org'
 PACKAGE_URL=''
 
@@ -652,14 +652,14 @@ BUILD_VERSION
 BUILD_REVISION
 BUILD_GPGSCM_FALSE
 BUILD_GPGSCM_TRUE
+HAVE_LOCK_OPTIMIZATION_FALSE
+HAVE_LOCK_OPTIMIZATION_TRUE
 HAVE_GENERATED_LOCK_OBJ_H_FALSE
 HAVE_GENERATED_LOCK_OBJ_H_TRUE
 FORCE_USE_SYSCFG_FALSE
 FORCE_USE_SYSCFG_TRUE
 CROSS_COMPILING_FALSE
 CROSS_COMPILING_TRUE
-HAVE_W32CE_SYSTEM_FALSE
-HAVE_W32CE_SYSTEM_TRUE
 HAVE_W64_SYSTEM_FALSE
 HAVE_W64_SYSTEM_TRUE
 HAVE_W32_SYSTEM_FALSE
@@ -691,15 +691,17 @@ LTLIBICONV
 LIBICONV
 INTL_MACOSX_LIBS
 XGETTEXT_EXTRA_OPTIONS
+MSGMERGE_FOR_MSGFMT_OPTION
 MSGMERGE
 XGETTEXT_015
 XGETTEXT
 GMSGFMT_015
-MSGFMT_015
 GMSGFMT
 MSGFMT
 GETTEXT_MACRO_VERSION
 USE_NLS
+INSTALL_GPG_ERROR_CONFIG_FALSE
+INSTALL_GPG_ERROR_CONFIG_TRUE
 EXEEXT_FOR_BUILD
 CC_FOR_BUILD
 RC
@@ -840,6 +842,7 @@ enable_fast_install
 with_gnu_ld
 with_sysroot
 enable_libtool_lock
+enable_install_gpg_error_config
 enable_nls
 enable_rpath
 with_libiconv_prefix
@@ -1412,7 +1415,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures libgpg-error 1.43 to adapt to many kinds of systems.
+\`configure' configures libgpg-error 1.46 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1483,7 +1486,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of libgpg-error 1.43:";;
+     short | recursive ) echo "Configuration of libgpg-error 1.46:";;
    esac
   cat <<\_ACEOF
 
@@ -1509,6 +1512,8 @@ Optional Features:
   --enable-fast-install[=PKGS]
                           optimize for fast installation [default=yes]
   --disable-libtool-lock  avoid locking (might break parallel builds)
+  --enable-install-gpg-error-config
+                          install gpg-error-config command
   --disable-nls           do not use Native Language Support
   --disable-rpath         do not hardcode runtime library paths
   --enable-ld-version-script
@@ -1614,7 +1619,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-libgpg-error configure 1.43
+libgpg-error configure 1.46
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2266,7 +2271,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by libgpg-error $as_me 1.43, which was
+It was created by libgpg-error $as_me 1.46, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2622,8 +2627,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 #   (Interfaces added:                 AGE++)
 #   (Interfaces removed:               AGE=0)
 # Note that added error codes don't constitute an interface change.
-LIBGPG_ERROR_LT_CURRENT=32
-LIBGPG_ERROR_LT_AGE=32
+LIBGPG_ERROR_LT_CURRENT=33
+LIBGPG_ERROR_LT_AGE=33
 LIBGPG_ERROR_LT_REVISION=1
 ################################################
 
@@ -2631,7 +2636,7 @@ LIBGPG_ERROR_LT_REVISION=1
 
 
 
-VERSION_NUMBER=0x012b00
+VERSION_NUMBER=0x012e00
 
 
 ac_aux_dir=
@@ -3144,7 +3149,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='libgpg-error'
- VERSION='1.43'
+ VERSION='1.46'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -5048,7 +5053,7 @@ else
 int
 main ()
 {
-char* cs = nl_langinfo(CODESET);
+char* cs = nl_langinfo(CODESET); return !cs;
   ;
   return 0;
 }
@@ -5106,16 +5111,11 @@ esac
 # Set some variables depending on the platform for later use.
 have_w32_system=no
 have_w64_system=no
-have_w32ce_system=no
 case "${host}" in
     x86_64-*mingw32*)
         have_w32_system=yes
         have_w64_system=yes
         ;;
-    *-mingw32ce*)
-        have_w32_system=yes
-        have_w32ce_system=yes
-        ;;
     *-mingw32*)
         have_w32_system=yes
         ;;
 
 
 
+# We used to provide gpg-error-config command always.  Now, it's
+# gpgrt-config command with gpg-error.pc configuration file, which
+# does same thing.  gpg-error-config command is deprecated.
+# Check whether --enable-install-gpg-error-config was given.
+if test "${enable_install_gpg_error_config+set}" = set; then :
+  enableval=$enable_install_gpg_error_config; install_gpg_error_config=$enableval
+fi
+
+ if test "$install_gpg_error_config" = "yes"; then
+  INSTALL_GPG_ERROR_CONFIG_TRUE=
+  INSTALL_GPG_ERROR_CONFIG_FALSE='#'
+else
+  INSTALL_GPG_ERROR_CONFIG_TRUE='#'
+  INSTALL_GPG_ERROR_CONFIG_FALSE=
+fi
+
 
 # Note, that autogen.sh greps for the next line.
 
@@ -13093,7 +13109,7 @@ $as_echo "$USE_NLS" >&6; }
 
 
 
-      GETTEXT_MACRO_VERSION=0.19
+      GETTEXT_MACRO_VERSION=0.20
 
 
 
 
 
 
-    case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
-    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
-    *) MSGFMT_015=$MSGFMT ;;
-  esac
-
-  case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
+    case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
     '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
     *) GMSGFMT_015=$GMSGFMT ;;
   esac
@@ -13365,7 +13376,15 @@ $as_echo "no" >&6; }
 fi
 
 
-        test -n "$localedir" || localedir='${datadir}/locale'
+    if LC_ALL=C $MSGMERGE --help | grep ' --for-msgfmt ' >/dev/null; then
+    MSGMERGE_FOR_MSGFMT_OPTION='--for-msgfmt'
+  else
+        if LC_ALL=C $MSGMERGE --help | grep ' --no-fuzzy-matching ' >/dev/null; then
+      MSGMERGE_FOR_MSGFMT_OPTION='--no-fuzzy-matching --no-location --quiet'
+    else
+                        MSGMERGE_FOR_MSGFMT_OPTION='--no-location --quiet'
+    fi
+  fi
 
 
     test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
@@ -13412,38 +13431,12 @@ if test "${PATH_SEPARATOR+set}" != set; then
        }
 fi
 
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
+if test -n "$LD"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld" >&5
+$as_echo_n "checking for ld... " >&6; }
+elif test "$GCC" = yes; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
 $as_echo_n "checking for ld used by $CC... " >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'`
-      while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do
-        ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
 elif test "$with_gnu_ld" = yes; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
 $as_echo_n "checking for GNU ld... " >&6; }
@@ -13451,44 +13444,129 @@ else
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
 $as_echo_n "checking for non-GNU ld... " >&6; }
 fi
-if ${acl_cv_path_LD+:} false; then :
+if test -n "$LD"; then
+  # Let the user override the test with a path.
+  :
+else
+  if ${acl_cv_path_LD+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  if test -z "$LD"; then
-  acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$acl_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      acl_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-        test "$with_gnu_ld" != no && break
-        ;;
-      *)
-        test "$with_gnu_ld" != yes && break
-        ;;
+
+    acl_cv_path_LD= # Final result of this test
+    ac_prog=ld # Program to search in $PATH
+    if test "$GCC" = yes; then
+      # Check if gcc -print-prog-name=ld gives a path.
+      case $host in
+        *-*-mingw*)
+          # gcc leaves a trailing carriage return which upsets mingw
+          acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+        *)
+          acl_output=`($CC -print-prog-name=ld) 2>&5` ;;
+      esac
+      case $acl_output in
+        # Accept absolute paths.
+        [\\/]* | ?:[\\/]*)
+          re_direlt='/[^/][^/]*/\.\./'
+          # Canonicalize the pathname of ld
+          acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'`
+          while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do
+            acl_output=`echo $acl_output | sed "s%$re_direlt%/%"`
+          done
+          # Got the pathname. No search in PATH is needed.
+          acl_cv_path_LD="$acl_output"
+          ac_prog=
+          ;;
+        "")
+          # If it fails, then pretend we aren't using GCC.
+          ;;
+        *)
+          # If it is relative, then search for the first ld in PATH.
+          with_gnu_ld=unknown
+          ;;
       esac
     fi
-  done
-  IFS="$acl_save_ifs"
+    if test -n "$ac_prog"; then
+      # Search for $ac_prog in $PATH.
+      acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+      for ac_dir in $PATH; do
+        IFS="$acl_save_ifs"
+        test -z "$ac_dir" && ac_dir=.
+        if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+          acl_cv_path_LD="$ac_dir/$ac_prog"
+          # Check to see if the program is GNU ld.  I'd rather use --version,
+          # but apparently some variants of GNU ld only accept -v.
+          # Break only if it was the GNU/non-GNU ld that we prefer.
+          case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
+            *GNU* | *'with BFD'*)
+              test "$with_gnu_ld" != no && break
+              ;;
+            *)
+              test "$with_gnu_ld" != yes && break
+              ;;
+          esac
+        fi
+      done
+      IFS="$acl_save_ifs"
+    fi
+    case $host in
+      *-*-aix*)
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __powerpc64__ || defined __LP64__
+                int ok;
+               #else
+                error fail
+               #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  # The compiler produces 64-bit code. Add option '-b64' so that the
+           # linker groks 64-bit object files.
+           case "$acl_cv_path_LD " in
+             *" -b64 "*) ;;
+             *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;;
+           esac
+
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+        ;;
+      sparc64-*-netbsd*)
+        cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __sparcv9 || defined __arch64__
+                int ok;
+               #else
+                error fail
+               #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+
 else
-  acl_cv_path_LD="$LD" # Let the user override the test with a path.
+  # The compiler produces 32-bit code. Add option '-m elf32_sparc'
+           # so that the linker groks 32-bit object files.
+           case "$acl_cv_path_LD " in
+             *" -m elf32_sparc "*) ;;
+             *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;;
+           esac
+
 fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+        ;;
+    esac
+
 fi
 
-LD="$acl_cv_path_LD"
+  LD="$acl_cv_path_LD"
+fi
 if test -n "$LD"; then
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
 $as_echo "$LD" >&6; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
 $as_echo "no" >&6; }
+  as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
 fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
 $as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
 if ${acl_cv_prog_gnu_ld+:} false; then :
 
 
 
-  acl_libdirstem=lib
-  acl_libdirstem2=
-  case "$host_os" in
-    solaris*)
-                                    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5
-$as_echo_n "checking for 64-bit host... " >&6; }
-if ${gl_cv_solaris_64bit+:} false; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking 32-bit host C ABI" >&5
+$as_echo_n "checking 32-bit host C ABI... " >&6; }
+if ${gl_cv_host_cpu_c_abi_32bit+:} false; then :
   $as_echo_n "(cached) " >&6
 else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+  if test -n "$gl_cv_host_cpu_c_abi"; then
+       case "$gl_cv_host_cpu_c_abi" in
+         i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
+           gl_cv_host_cpu_c_abi_32bit=yes ;;
+         x86_64 | alpha | arm64 | hppa64 | ia64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 )
+           gl_cv_host_cpu_c_abi_32bit=no ;;
+         *)
+           gl_cv_host_cpu_c_abi_32bit=unknown ;;
+       esac
+     else
+       case "$host_cpu" in
+
+         # CPUs that only support a 32-bit ABI.
+         arc \
+         | bfin \
+         | cris* \
+         | csky \
+         | epiphany \
+         | ft32 \
+         | h8300 \
+         | m68k \
+         | microblaze | microblazeel \
+         | nds32 | nds32le | nds32be \
+         | nios2 | nios2eb | nios2el \
+         | or1k* \
+         | or32 \
+         | sh | sh1234 | sh1234elb \
+         | tic6x \
+         | xtensa* )
+           gl_cv_host_cpu_c_abi_32bit=yes
+           ;;
+
+         # CPUs that only support a 64-bit ABI.
+         alpha | alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] \
+         | mmix )
+           gl_cv_host_cpu_c_abi_32bit=no
+           ;;
+
+         i[34567]86 )
+           gl_cv_host_cpu_c_abi_32bit=yes
+           ;;
+
+         x86_64 )
+           # On x86_64 systems, the C compiler may be generating code in one of
+           # these ABIs:
+           # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
+           # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
+           #   with native Windows (mingw, MSVC).
+           # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
+           # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
+#if (defined __x86_64__ || defined __amd64__ \
+                       || defined _M_X64 || defined _M_AMD64) \
+                      && !(defined __ILP32__ || defined _ILP32)
+                   int ok;
+                  #else
+                   error fail
+                  #endif
 
-#ifdef _LP64
-sixtyfour bits
-#endif
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else
+  gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           ;;
+
+         arm* | aarch64 )
+           # Assume arm with EABI.
+           # On arm64 systems, the C compiler may be generating code in one of
+           # these ABIs:
+           # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
+           # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
+           # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32)
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else
+  gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           ;;
+
+         hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
+           # On hppa, the C compiler may be generating 32-bit code or 64-bit
+           # code. In the latter case, it defines _LP64 and __LP64__.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __LP64__
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else
+  gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           ;;
+
+         ia64* )
+           # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
+           # 32-bit code. In the latter case, it defines _ILP32.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef _ILP32
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_host_cpu_c_abi_32bit=yes
+else
+  gl_cv_host_cpu_c_abi_32bit=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           ;;
+
+         mips* )
+           # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
+           # at 32.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else
+  gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           ;;
+
+         powerpc* )
+           # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
+           # No need to distinguish them here; the caller may distinguish
+           # them based on the OS.
+           # On powerpc64 systems, the C compiler may still be generating
+           # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
+           # be generating 64-bit code.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __powerpc64__ || defined __LP64__
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else
+  gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           ;;
+
+         rs6000 )
+           gl_cv_host_cpu_c_abi_32bit=yes
+           ;;
+
+         riscv32 | riscv64 )
+           # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
+           # Size of 'long' and 'void *':
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __LP64__
+                    int ok;
+                  #else
+                    error fail
+                  #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else
+  gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           ;;
+
+         s390* )
+           # On s390x, the C compiler may be generating 64-bit (= s390x) code
+           # or 31-bit (= s390) code.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __LP64__ || defined __s390x__
+                    int ok;
+                  #else
+                    error fail
+                  #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else
+  gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           ;;
+
+         sparc | sparc64 )
+           # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
+           # C compiler still generates 32-bit code.
+           cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#if defined __sparcv9 || defined __arch64__
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  gl_cv_host_cpu_c_abi_32bit=no
+else
+  gl_cv_host_cpu_c_abi_32bit=yes
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+           ;;
+
+         *)
+           gl_cv_host_cpu_c_abi_32bit=unknown
+           ;;
+       esac
+     fi
+
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi_32bit" >&5
+$as_echo "$gl_cv_host_cpu_c_abi_32bit" >&6; }
+
+  HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit"
+
+
+
+
+
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ELF binary format" >&5
+$as_echo_n "checking for ELF binary format... " >&6; }
+if ${gl_cv_elf+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+#ifdef __ELF__
+        Extensible Linking Format
+        #endif
 
 _ACEOF
 if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "sixtyfour bits" >/dev/null 2>&1; then :
-  gl_cv_solaris_64bit=yes
+  $EGREP "Extensible Linking Format" >/dev/null 2>&1; then :
+  gl_cv_elf=yes
 else
-  gl_cv_solaris_64bit=no
+  gl_cv_elf=no
 fi
 rm -f conftest*
 
 
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_solaris_64bit" >&5
-$as_echo "$gl_cv_solaris_64bit" >&6; }
-      if test $gl_cv_solaris_64bit = yes; then
-        acl_libdirstem=lib/64
-        case "$host_cpu" in
-          sparc*)        acl_libdirstem2=lib/sparcv9 ;;
-          i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
-        esac
-      fi
-      ;;
-    *)
-      searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
-      if test -n "$searchpath"; then
-        acl_save_IFS="${IFS=   }"; IFS=":"
-        for searchdir in $searchpath; do
-          if test -d "$searchdir"; then
-            case "$searchdir" in
-              */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
-              */../ | */.. )
-                # Better ignore directories of this form. They are misleading.
-                ;;
-              *) searchdir=`cd "$searchdir" && pwd`
-                 case "$searchdir" in
-                   */lib64 ) acl_libdirstem=lib64 ;;
-                 esac ;;
-            esac
-          fi
-        done
-        IFS="$acl_save_IFS"
-      fi
-      ;;
-  esac
-  test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_elf" >&5
+$as_echo "$gl_cv_elf" >&6; }
+  if test $gl_cv_elf = yes; then
+    # Extract the ELF class of a file (5th byte) in decimal.
+    # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header
+    if od -A x < /dev/null >/dev/null 2>/dev/null; then
+      # Use POSIX od.
+      func_elfclass ()
+      {
+        od -A n -t d1 -j 4 -N 1
+      }
+    else
+      # Use BSD hexdump.
+      func_elfclass ()
+      {
+        dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "'
+        echo
+      }
+    fi
+    # Use 'expr', not 'test', to compare the values of func_elfclass, because on
+    # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002,
+    # not 1 or 2.
+    case $HOST_CPU_C_ABI_32BIT in
+      yes)
+        # 32-bit ABI.
+        acl_is_expected_elfclass ()
+        {
+          expr "`func_elfclass | sed -e 's/[   ]//g'`" = 1 > /dev/null
+        }
+        ;;
+      no)
+        # 64-bit ABI.
+        acl_is_expected_elfclass ()
+        {
+          expr "`func_elfclass | sed -e 's/[   ]//g'`" = 2 > /dev/null
+        }
+        ;;
+      *)
+        # Unknown.
+        acl_is_expected_elfclass ()
+        {
+          :
+        }
+        ;;
+    esac
+  else
+    acl_is_expected_elfclass ()
+    {
+      :
+    }
+  fi
+
+    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5
+$as_echo_n "checking for the common suffixes of directories in the library search path... " >&6; }
+if ${acl_cv_libdirstems+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+            acl_libdirstem=lib
+     acl_libdirstem2=
+     acl_libdirstem3=
+     case "$host_os" in
+       solaris*)
+                                                      if test $HOST_CPU_C_ABI_32BIT = no; then
+           acl_libdirstem2=lib/64
+           case "$host_cpu" in
+             sparc*)        acl_libdirstem3=lib/sparcv9 ;;
+             i*86 | x86_64) acl_libdirstem3=lib/amd64 ;;
+           esac
+         fi
+         ;;
+       *)
+                                                                                 searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \
+                     | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+         if test $HOST_CPU_C_ABI_32BIT != no; then
+           # 32-bit or unknown ABI.
+           if test -d /usr/lib32; then
+             acl_libdirstem2=lib32
+           fi
+         fi
+         if test $HOST_CPU_C_ABI_32BIT != yes; then
+           # 64-bit or unknown ABI.
+           if test -d /usr/lib64; then
+             acl_libdirstem3=lib64
+           fi
+         fi
+         if test -n "$searchpath"; then
+           acl_save_IFS="${IFS=        }"; IFS=":"
+           for searchdir in $searchpath; do
+             if test -d "$searchdir"; then
+               case "$searchdir" in
+                 */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;;
+                 */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;;
+                 */../ | */.. )
+                   # Better ignore directories of this form. They are misleading.
+                   ;;
+                 *) searchdir=`cd "$searchdir" && pwd`
+                    case "$searchdir" in
+                      */lib32 ) acl_libdirstem2=lib32 ;;
+                      */lib64 ) acl_libdirstem3=lib64 ;;
+                    esac ;;
+               esac
+             fi
+           done
+           IFS="$acl_save_IFS"
+           if test $HOST_CPU_C_ABI_32BIT = yes; then
+             # 32-bit ABI.
+             acl_libdirstem3=
+           fi
+           if test $HOST_CPU_C_ABI_32BIT = no; then
+             # 64-bit ABI.
+             acl_libdirstem2=
+           fi
+         fi
+         ;;
+     esac
+     test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
+     test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem"
+     acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3"
 
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_libdirstems" >&5
+$as_echo "$acl_cv_libdirstems" >&6; }
+      acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'`
+  acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'`
+  acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'`
 
 
 
@@ -13626,6 +14052,8 @@ $as_echo "$gl_cv_solaris_64bit" >&6; }
 
     eval additional_includedir=\"$includedir\"
     eval additional_libdir=\"$libdir\"
+    eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
+    eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
 
   exec_prefix="$acl_save_exec_prefix"
   prefix="$acl_save_prefix"
@@ -13646,6 +14074,8 @@ if test "${with_libiconv_prefix+set}" = set; then :
 
           eval additional_includedir=\"$includedir\"
           eval additional_libdir=\"$libdir\"
+          eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
+          eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
 
   exec_prefix="$acl_save_exec_prefix"
   prefix="$acl_save_prefix"
@@ -13653,15 +14083,19 @@ if test "${with_libiconv_prefix+set}" = set; then :
       else
         additional_includedir="$withval/include"
         additional_libdir="$withval/$acl_libdirstem"
-        if test "$acl_libdirstem2" != "$acl_libdirstem" \
-           && ! test -d "$withval/$acl_libdirstem"; then
-          additional_libdir="$withval/$acl_libdirstem2"
-        fi
+        additional_libdir2="$withval/$acl_libdirstem2"
+        additional_libdir3="$withval/$acl_libdirstem3"
       fi
     fi
 
 fi
 
+  if test "X$additional_libdir2" = "X$additional_libdir"; then
+    additional_libdir2=
+  fi
+  if test "X$additional_libdir3" = "X$additional_libdir"; then
+    additional_libdir3=
+  fi
       LIBICONV=
   LTLIBICONV=
   INCICONV=
             shrext=
           fi
           if test $use_additional = yes; then
-            dir="$additional_libdir"
-                                    if test -n "$acl_shlibext"; then
-              if test -f "$dir/$libname$shrext"; then
-                found_dir="$dir"
-                found_so="$dir/$libname$shrext"
-              else
-                if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
-                  ver=`(cd "$dir" && \
-                        for f in "$libname$shrext".*; do echo "$f"; done \
-                        | sed -e "s,^$libname$shrext\\\\.,," \
-                        | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
-                        | sed 1q ) 2>/dev/null`
-                  if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
-                    found_dir="$dir"
-                    found_so="$dir/$libname$shrext.$ver"
-                  fi
-                else
-                  eval library_names=\"$acl_library_names_spec\"
-                  for f in $library_names; do
-                    if test -f "$dir/$f"; then
+            for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do
+              if test "X$found_dir" = "X"; then
+                eval dir=\$$additional_libdir_variable
+                if test -n "$dir"; then
+                                                      if test -n "$acl_shlibext"; then
+                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
                       found_dir="$dir"
-                      found_so="$dir/$f"
-                      break
+                      found_so="$dir/$libname$shrext"
+                    else
+                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                        ver=`(cd "$dir" && \
+                              for f in "$libname$shrext".*; do echo "$f"; done \
+                              | sed -e "s,^$libname$shrext\\\\.,," \
+                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                              | sed 1q ) 2>/dev/null`
+                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
+                          found_dir="$dir"
+                          found_so="$dir/$libname$shrext.$ver"
+                        fi
+                      else
+                        eval library_names=\"$acl_library_names_spec\"
+                        for f in $library_names; do
+                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
+                            found_dir="$dir"
+                            found_so="$dir/$f"
+                            break
+                          fi
+                        done
+                      fi
                     fi
-                  done
+                  fi
+                                    if test "X$found_dir" = "X"; then
+                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
+                      found_dir="$dir"
+                      found_a="$dir/$libname.$acl_libext"
+                    fi
+                  fi
+                  if test "X$found_dir" != "X"; then
+                    if test -f "$dir/$libname.la"; then
+                      found_la="$dir/$libname.la"
+                    fi
+                  fi
                 fi
               fi
-            fi
-                        if test "X$found_dir" = "X"; then
-              if test -f "$dir/$libname.$acl_libext"; then
-                found_dir="$dir"
-                found_a="$dir/$libname.$acl_libext"
-              fi
-            fi
-            if test "X$found_dir" != "X"; then
-              if test -f "$dir/$libname.la"; then
-                found_la="$dir/$libname.la"
-              fi
-            fi
+            done
           fi
           if test "X$found_dir" = "X"; then
             for x in $LDFLAGS $LTLIBICONV; do
@@ -13762,7 +14202,7 @@ fi
                 -L*)
                   dir=`echo "X$x" | sed -e 's/^X-L//'`
                                     if test -n "$acl_shlibext"; then
-                    if test -f "$dir/$libname$shrext"; then
+                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
                       found_dir="$dir"
                       found_so="$dir/$libname$shrext"
                     else
                               | sed -e "s,^$libname$shrext\\\\.,," \
                               | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
                               | sed 1q ) 2>/dev/null`
-                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
                           found_dir="$dir"
                           found_so="$dir/$libname$shrext.$ver"
                         fi
                       else
                         eval library_names=\"$acl_library_names_spec\"
                         for f in $library_names; do
-                          if test -f "$dir/$f"; then
+                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
                             found_dir="$dir"
                             found_so="$dir/$f"
                             break
@@ -13789,7 +14229,7 @@ fi
                     fi
                   fi
                                     if test "X$found_dir" = "X"; then
-                    if test -f "$dir/$libname.$acl_libext"; then
+                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
                       found_dir="$dir"
                       found_a="$dir/$libname.$acl_libext"
                     fi
@@ -13811,7 +14251,8 @@ fi
             if test "X$found_so" != "X"; then
                                                         if test "$enable_rpath" = no \
                  || test "X$found_dir" = "X/usr/$acl_libdirstem" \
-                 || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
+                 || test "X$found_dir" = "X/usr/$acl_libdirstem2" \
+                 || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then
                                 LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so"
               else
                                                                                 haveit=
                 fi
                 additional_includedir="$basedir/include"
                 ;;
+              */$acl_libdirstem3 | */$acl_libdirstem3/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'`
+                if test "$name" = 'iconv'; then
+                  LIBICONV_PREFIX="$basedir"
+                fi
+                additional_includedir="$basedir/include"
+                ;;
             esac
             if test "X$additional_includedir" != "X"; then
                                                                                                                 if test "X$additional_includedir" != "X/usr/include"; then
                             for dep in $dependency_libs; do
                 case "$dep" in
                   -L*)
-                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
-                                                                                                                                                                if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
-                       && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
+                    dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                                                                                                                                                                if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \
+                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \
+                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then
                       haveit=
-                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
-                         || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
+                      if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \
+                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \
+                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then
                         if test -n "$GCC"; then
                           case $host_os in
                             linux* | gnu* | k*bsd*-gnu) haveit=yes;;
   exec_prefix="$acl_save_exec_prefix"
   prefix="$acl_save_prefix"
 
-                          if test "X$x" = "X-L$additional_libdir"; then
+                          if test "X$x" = "X-L$dependency_libdir"; then
                             haveit=yes
                             break
                           fi
                         done
                         if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                                                        LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir"
+                          if test -d "$dependency_libdir"; then
+                                                        LIBICONV="${LIBICONV}${LIBICONV:+ }-L$dependency_libdir"
                           fi
                         fi
                         haveit=
   exec_prefix="$acl_save_exec_prefix"
   prefix="$acl_save_prefix"
 
-                          if test "X$x" = "X-L$additional_libdir"; then
+                          if test "X$x" = "X-L$dependency_libdir"; then
                             haveit=yes
                             break
                           fi
                         done
                         if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                                                        LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir"
+                          if test -d "$dependency_libdir"; then
+                                                        LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$dependency_libdir"
                           fi
                         fi
                       fi
                     fi
                     ;;
                   -l*)
-                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                                                                                                                                                                dep=`echo "X$dep" | sed -e 's/^X-l//'`
+                    if test "X$dep" != Xc \
+                       || case $host_os in
+                            linux* | gnu* | k*bsd*-gnu) false ;;
+                            *)                          true ;;
+                          esac; then
+                      names_next_round="$names_next_round $dep"
+                    fi
                     ;;
                   *.la)
                                                                                 names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
@@ -14094,8 +14551,6 @@ fi
 
 
 
-
-
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5
 $as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; }
 if ${gt_cv_func_CFPreferencesCopyAppValue+:} false; then :
@@ -14215,16 +14670,21 @@ else
 /* end confdefs.h.  */
 
 #include <libintl.h>
-$gt_revision_test_code
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
 extern int _nl_msg_cat_cntr;
 extern int *_nl_domain_bindings;
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings)
+#else
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
+#endif
+$gt_revision_test_code
 
 int
 main ()
 {
 
 bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings
+return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
 
   ;
   return 0;
@@ -14366,8 +14826,9 @@ int
 main ()
 {
 int result = 0;
-  /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
-     returns.  */
+  /* Test against AIX 5.1...7.2 bug: Failures are not distinguishable from
+     successful returns.  This is even documented in
+     <https://www.ibm.com/support/knowledgecenter/ssw_aix_72/i_bostechref/iconv.html> */
   {
     iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
     if (cd_utf8_to_88591 != (iconv_t)(-1))
@@ -14521,7 +14982,6 @@ $as_echo "$LIBICONV" >&6; }
 
 
 
-
     use_additional=yes
 
   acl_save_prefix="$prefix"
@@ -14531,6 +14991,8 @@ $as_echo "$LIBICONV" >&6; }
 
     eval additional_includedir=\"$includedir\"
     eval additional_libdir=\"$libdir\"
+    eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
+    eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
 
   exec_prefix="$acl_save_exec_prefix"
   prefix="$acl_save_prefix"
@@ -14551,6 +15013,8 @@ if test "${with_libintl_prefix+set}" = set; then :
 
           eval additional_includedir=\"$includedir\"
           eval additional_libdir=\"$libdir\"
+          eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
+          eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
 
   exec_prefix="$acl_save_exec_prefix"
   prefix="$acl_save_prefix"
@@ -14558,15 +15022,19 @@ if test "${with_libintl_prefix+set}" = set; then :
       else
         additional_includedir="$withval/include"
         additional_libdir="$withval/$acl_libdirstem"
-        if test "$acl_libdirstem2" != "$acl_libdirstem" \
-           && ! test -d "$withval/$acl_libdirstem"; then
-          additional_libdir="$withval/$acl_libdirstem2"
-        fi
+        additional_libdir2="$withval/$acl_libdirstem2"
+        additional_libdir3="$withval/$acl_libdirstem3"
       fi
     fi
 
 fi
 
+  if test "X$additional_libdir2" = "X$additional_libdir"; then
+    additional_libdir2=
+  fi
+  if test "X$additional_libdir3" = "X$additional_libdir"; then
+    additional_libdir3=
+  fi
       LIBINTL=
   LTLIBINTL=
   INCINTL=
             shrext=
           fi
           if test $use_additional = yes; then
-            dir="$additional_libdir"
-                                    if test -n "$acl_shlibext"; then
-              if test -f "$dir/$libname$shrext"; then
-                found_dir="$dir"
-                found_so="$dir/$libname$shrext"
-              else
-                if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
-                  ver=`(cd "$dir" && \
-                        for f in "$libname$shrext".*; do echo "$f"; done \
-                        | sed -e "s,^$libname$shrext\\\\.,," \
-                        | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
-                        | sed 1q ) 2>/dev/null`
-                  if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
-                    found_dir="$dir"
-                    found_so="$dir/$libname$shrext.$ver"
+            for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do
+              if test "X$found_dir" = "X"; then
+                eval dir=\$$additional_libdir_variable
+                if test -n "$dir"; then
+                                                      if test -n "$acl_shlibext"; then
+                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
+                      found_dir="$dir"
+                      found_so="$dir/$libname$shrext"
+                    else
+                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                        ver=`(cd "$dir" && \
+                              for f in "$libname$shrext".*; do echo "$f"; done \
+                              | sed -e "s,^$libname$shrext\\\\.,," \
+                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                              | sed 1q ) 2>/dev/null`
+                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
+                          found_dir="$dir"
+                          found_so="$dir/$libname$shrext.$ver"
+                        fi
+                      else
+                        eval library_names=\"$acl_library_names_spec\"
+                        for f in $library_names; do
+                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
+                            found_dir="$dir"
+                            found_so="$dir/$f"
+                            break
+                          fi
+                        done
+                      fi
+                    fi
                   fi
-                else
-                  eval library_names=\"$acl_library_names_spec\"
-                  for f in $library_names; do
-                    if test -f "$dir/$f"; then
+                                    if test "X$found_dir" = "X"; then
+                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
                       found_dir="$dir"
-                      found_so="$dir/$f"
-                      break
+                      found_a="$dir/$libname.$acl_libext"
                     fi
-                  done
+                  fi
+                  if test "X$found_dir" != "X"; then
+                    if test -f "$dir/$libname.la"; then
+                      found_la="$dir/$libname.la"
+                    fi
+                  fi
                 fi
               fi
-            fi
-                        if test "X$found_dir" = "X"; then
-              if test -f "$dir/$libname.$acl_libext"; then
-                found_dir="$dir"
-                found_a="$dir/$libname.$acl_libext"
-              fi
-            fi
-            if test "X$found_dir" != "X"; then
-              if test -f "$dir/$libname.la"; then
-                found_la="$dir/$libname.la"
-              fi
-            fi
+            done
           fi
           if test "X$found_dir" = "X"; then
             for x in $LDFLAGS $LTLIBINTL; do
@@ -14667,7 +15141,7 @@ fi
                 -L*)
                   dir=`echo "X$x" | sed -e 's/^X-L//'`
                                     if test -n "$acl_shlibext"; then
-                    if test -f "$dir/$libname$shrext"; then
+                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
                       found_dir="$dir"
                       found_so="$dir/$libname$shrext"
                     else
                               | sed -e "s,^$libname$shrext\\\\.,," \
                               | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
                               | sed 1q ) 2>/dev/null`
-                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
                           found_dir="$dir"
                           found_so="$dir/$libname$shrext.$ver"
                         fi
                       else
                         eval library_names=\"$acl_library_names_spec\"
                         for f in $library_names; do
-                          if test -f "$dir/$f"; then
+                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
                             found_dir="$dir"
                             found_so="$dir/$f"
                             break
@@ -14694,7 +15168,7 @@ fi
                     fi
                   fi
                                     if test "X$found_dir" = "X"; then
-                    if test -f "$dir/$libname.$acl_libext"; then
+                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
                       found_dir="$dir"
                       found_a="$dir/$libname.$acl_libext"
                     fi
@@ -14716,7 +15190,8 @@ fi
             if test "X$found_so" != "X"; then
                                                         if test "$enable_rpath" = no \
                  || test "X$found_dir" = "X/usr/$acl_libdirstem" \
-                 || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
+                 || test "X$found_dir" = "X/usr/$acl_libdirstem2" \
+                 || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then
                                 LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so"
               else
                                                                                 haveit=
                 fi
                 additional_includedir="$basedir/include"
                 ;;
+              */$acl_libdirstem3 | */$acl_libdirstem3/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'`
+                if test "$name" = 'intl'; then
+                  LIBINTL_PREFIX="$basedir"
+                fi
+                additional_includedir="$basedir/include"
+                ;;
             esac
             if test "X$additional_includedir" != "X"; then
                                                                                                                 if test "X$additional_includedir" != "X/usr/include"; then
                             for dep in $dependency_libs; do
                 case "$dep" in
                   -L*)
-                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
-                                                                                                                                                                if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
-                       && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
+                    dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                                                                                                                                                                if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \
+                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \
+                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then
                       haveit=
-                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
-                         || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
+                      if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \
+                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \
+                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then
                         if test -n "$GCC"; then
                           case $host_os in
                             linux* | gnu* | k*bsd*-gnu) haveit=yes;;
   exec_prefix="$acl_save_exec_prefix"
   prefix="$acl_save_prefix"
 
-                          if test "X$x" = "X-L$additional_libdir"; then
+                          if test "X$x" = "X-L$dependency_libdir"; then
                             haveit=yes
                             break
                           fi
                         done
                         if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                                                        LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir"
+                          if test -d "$dependency_libdir"; then
+                                                        LIBINTL="${LIBINTL}${LIBINTL:+ }-L$dependency_libdir"
                           fi
                         fi
                         haveit=
   exec_prefix="$acl_save_exec_prefix"
   prefix="$acl_save_prefix"
 
-                          if test "X$x" = "X-L$additional_libdir"; then
+                          if test "X$x" = "X-L$dependency_libdir"; then
                             haveit=yes
                             break
                           fi
                         done
                         if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                                                        LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir"
+                          if test -d "$dependency_libdir"; then
+                                                        LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$dependency_libdir"
                           fi
                         fi
                       fi
                     fi
                     ;;
                   -l*)
-                                        names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                                                                                                                                                                dep=`echo "X$dep" | sed -e 's/^X-l//'`
+                    if test "X$dep" != Xc \
+                       || case $host_os in
+                            linux* | gnu* | k*bsd*-gnu) false ;;
+                            *)                          true ;;
+                          esac; then
+                      names_next_round="$names_next_round $dep"
+                    fi
                     ;;
                   *.la)
                                                                                 names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'`
@@ -14975,7 +15466,6 @@ fi
 
 
 
-
           { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5
 $as_echo_n "checking for GNU gettext in libintl... " >&6; }
 if eval \${$gt_func_gnugettext_libintl+:} false; then :
@@ -14989,20 +15479,25 @@ else
 /* end confdefs.h.  */
 
 #include <libintl.h>
-$gt_revision_test_code
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
 extern int _nl_msg_cat_cntr;
 extern
 #ifdef __cplusplus
 "C"
 #endif
 const char *_nl_expand_alias (const char *);
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (""))
+#else
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
+#endif
+$gt_revision_test_code
 
 int
 main ()
 {
 
 bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
 
   ;
   return 0;
@@ -15021,20 +15516,25 @@ rm -f core conftest.err conftest.$ac_objext \
 /* end confdefs.h.  */
 
 #include <libintl.h>
-$gt_revision_test_code
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
 extern int _nl_msg_cat_cntr;
 extern
 #ifdef __cplusplus
 "C"
 #endif
 const char *_nl_expand_alias (const char *);
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (""))
+#else
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
+#endif
+$gt_revision_test_code
 
 int
 main ()
 {
 
 bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
 
   ;
   return 0;
@@ -15163,118 +15663,6 @@ $as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h
 
 
 # Checks for header files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdc=yes
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-                  (('a' <= (c) && (c) <= 'i') \
-                    || ('j' <= (c) && (c) <= 'r') \
-                    || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-       || toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
 for ac_header in locale.h stdint.h sys/select.h sys/time.h \
                   signal.h poll.h pwd.h
 do :
@@ -15635,7 +16023,7 @@ $as_echo "#define HAVE_WORKING_FORK 1" >>confdefs.h
 fi
 
 for ac_func in flockfile vasprintf mmap rand strlwr stpcpy setenv stat \
-                getrlimit getpwnam getpwuid getpwnam_r getpwuid_r
+                getrlimit getpwnam getpwuid getpwnam_r getpwuid_r inet_pton
 do :
   as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
 ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
@@ -15833,87 +16221,6 @@ cat >>confdefs.h <<_ACEOF
 _ACEOF
 
 
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time.h and sys/time.h may both be included" >&5
-$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }
-if ${ac_cv_header_time+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
-#include <sys/time.h>
-#include <time.h>
-
-int
-main ()
-{
-if ((struct tm *) 0)
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_time=yes
-else
-  ac_cv_header_time=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_time" >&5
-$as_echo "$ac_cv_header_time" >&6; }
-if test $ac_cv_header_time = yes; then
-
-$as_echo "#define TIME_WITH_SYS_TIME 1" >>confdefs.h
-
-fi
-
-# The cast to long int works around a bug in the HP C Compiler
-# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects
-# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'.
-# This bug is HP SR number 8606223364.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of time_t" >&5
-$as_echo_n "checking size of time_t... " >&6; }
-if ${ac_cv_sizeof_time_t+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (time_t))" "ac_cv_sizeof_time_t"        "
-#include <stdio.h>
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif
-
-"; then :
-
-else
-  if test "$ac_cv_type_time_t" = yes; then
-     { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "cannot compute sizeof (time_t)
-See \`config.log' for more details" "$LINENO" 5; }
-   else
-     ac_cv_sizeof_time_t=0
-   fi
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_time_t" >&5
-$as_echo "$ac_cv_sizeof_time_t" >&6; }
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define SIZEOF_TIME_T $ac_cv_sizeof_time_t
-_ACEOF
-
-
 
 for ac_header in sys/stat.h unistd.h direct.h
 do :
@@ -16533,8 +16840,8 @@ rm -f core conftest.err conftest.$ac_objext \
         LIBS=$save_LIBS
         test $gl_pthread_api = yes && break
       done
-      echo "$as_me:16536: gl_pthread_api=$gl_pthread_api" >&5
-      echo "$as_me:16537: LIBPTHREAD=$LIBPTHREAD" >&5
+      echo "$as_me:16843: gl_pthread_api=$gl_pthread_api" >&5
+      echo "$as_me:16844: LIBPTHREAD=$LIBPTHREAD" >&5
 
       gl_pthread_in_glibc=no
       # On Linux with glibc >= 2.34, libc contains the fully functional
@@ -16559,7 +16866,7 @@ rm -f conftest*
 
           ;;
       esac
-      echo "$as_me:16562: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
+      echo "$as_me:16869: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
 
       # Test for libpthread by looking for pthread_kill. (Not pthread_self,
       # since it is defined as a macro on OSF/1.)
@@ -16713,7 +17020,7 @@ fi
 
         fi
       fi
-      echo "$as_me:16716: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
+      echo "$as_me:17023: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
     fi
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5
 $as_echo_n "checking whether POSIX threads API is available... " >&6; }
@@ -16939,8 +17246,8 @@ rm -f core conftest.err conftest.$ac_objext \
         LIBS=$save_LIBS
         test $gl_pthread_api = yes && break
       done
-      echo "$as_me:16942: gl_pthread_api=$gl_pthread_api" >&5
-      echo "$as_me:16943: LIBPTHREAD=$LIBPTHREAD" >&5
+      echo "$as_me:17249: gl_pthread_api=$gl_pthread_api" >&5
+      echo "$as_me:17250: LIBPTHREAD=$LIBPTHREAD" >&5
 
       gl_pthread_in_glibc=no
       # On Linux with glibc >= 2.34, libc contains the fully functional
@@ -16965,7 +17272,7 @@ rm -f conftest*
 
           ;;
       esac
-      echo "$as_me:16968: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
+      echo "$as_me:17275: gl_pthread_in_glibc=$gl_pthread_in_glibc" >&5
 
       # Test for libpthread by looking for pthread_kill. (Not pthread_self,
       # since it is defined as a macro on OSF/1.)
@@ -17119,7 +17426,7 @@ fi
 
         fi
       fi
-      echo "$as_me:17122: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
+      echo "$as_me:17429: LIBPMULTITHREAD=$LIBPMULTITHREAD" >&5
     fi
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether POSIX threads API is available" >&5
 $as_echo_n "checking whether POSIX threads API is available... " >&6; }
@@ -18060,7 +18367,7 @@ done
 
 
 #
-# Substitution used for gpg-error-config
+# Substitution used for gpg-error-config and gpg-error.pc
 #
 GPG_ERROR_CONFIG_LIBS="$config_libs"
 if test "x$LIBTHREAD" != x; then
@@ -18071,11 +18378,7 @@ if test "x$LIBMULTITHREAD" != x; then
 else
   GPG_ERROR_CONFIG_MT_LIBS=""
 fi
-if test "$have_w32ce_system" = yes; then
-  GPG_ERROR_CONFIG_CFLAGS="-idirafter \${includedir}/gpg-extra"
-else
-  GPG_ERROR_CONFIG_CFLAGS=""
-fi
+GPG_ERROR_CONFIG_CFLAGS=""
 if test "x$THREADLIB_CPPFLAGS" != x; then
   GPG_ERROR_CONFIG_MT_CFLAGS="${THREADLIB_CPPFLAGS}"
 else
@@ -18088,32 +18391,32 @@ case "$includedir" in
   '${prefix}/include')
     if test "$prefix" != / -a "$prefix" != /usr; then
       if test -z "$GPG_ERROR_CONFIG_CFLAGS"; then
-        GPG_ERROR_CONFIG_CFLAGS="-I$includedir"
+        GPG_ERROR_CONFIG_CFLAGS="-I\${includedir}"
       else
-        GPG_ERROR_CONFIG_CFLAGS="-I$includedir $GPG_ERROR_CONFIG_CFLAGS"
+        GPG_ERROR_CONFIG_CFLAGS="-I\${includedir} $GPG_ERROR_CONFIG_CFLAGS"
       fi
     fi
     ;;
   *)
     if test -z "$GPG_ERROR_CONFIG_CFLAGS"; then
-      GPG_ERROR_CONFIG_CFLAGS="-I$includedir"
+      GPG_ERROR_CONFIG_CFLAGS="-I\${includedir}"
     else
-      GPG_ERROR_CONFIG_CFLAGS="-I$includedir $GPG_ERROR_CONFIG_CFLAGS"
+      GPG_ERROR_CONFIG_CFLAGS="-I\${includedir} $GPG_ERROR_CONFIG_CFLAGS"
     fi
     ;;
 esac
 case "$libdir" in
   /usr/lib|/usr/lib64|/lib|/lib64) ;;
-  '${exec_prefix}/lib')
+  '${exec_prefix}/lib'|'${exec_prefix}/lib64')
     if test "$exec_prefix" = "NONE"; then
       if test "$prefix" != / -a "$prefix" != /usr; then
-        GPG_ERROR_CONFIG_LIBS="-L$libdir $GPG_ERROR_CONFIG_LIBS"
+        GPG_ERROR_CONFIG_LIBS="-L\${libdir} $GPG_ERROR_CONFIG_LIBS"
       fi
     elif test "$exec_prefix" != / -a "$exec_prefix" != /usr; then
-      GPG_ERROR_CONFIG_LIBS="-L$libdir $GPG_ERROR_CONFIG_LIBS"
+      GPG_ERROR_CONFIG_LIBS="-L\${libdir} $GPG_ERROR_CONFIG_LIBS"
     fi
     ;;
-  *) GPG_ERROR_CONFIG_LIBS="-L$libdir $GPG_ERROR_CONFIG_LIBS" ;;
+  *) GPG_ERROR_CONFIG_LIBS="-L\${libdir} $GPG_ERROR_CONFIG_LIBS" ;;
 esac
 
 
@@ -18137,11 +18440,6 @@ $as_echo "#define HAVE_W32_SYSTEM 1" >>confdefs.h
 $as_echo "#define HAVE_W64_SYSTEM 1" >>confdefs.h
 
     fi
-    if test "$have_w32ce_system" = yes; then
-
-$as_echo "#define HAVE_W32CE_SYSTEM 1" >>confdefs.h
-
-    fi
     force_use_syscfg=yes
 fi
 if test x"$gl_use_threads" = xno; then
@@ -18153,7 +18451,7 @@ if test x"$gl_use_threads" = xno; then
 $as_echo "$as_me: generated src/lock-obj-pub.native.h for $host" >&6;}
 elif test x$cross_compiling = xyes; then
   case $host in
-    *-*-linux-gnu*)
+    *-*-linux-gnu* | *-*-linux-musl*)
     if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
 set dummy ${ac_tool_prefix}objdump; ac_word=$2
@@ -18282,14 +18580,6 @@ else
   HAVE_W64_SYSTEM_FALSE=
 fi
 
- if test "$have_w32ce_system" = yes; then
-  HAVE_W32CE_SYSTEM_TRUE=
-  HAVE_W32CE_SYSTEM_FALSE='#'
-else
-  HAVE_W32CE_SYSTEM_TRUE='#'
-  HAVE_W32CE_SYSTEM_FALSE=
-fi
-
  if test x$cross_compiling = xyes; then
   CROSS_COMPILING_TRUE=
   CROSS_COMPILING_FALSE='#'
@@ -18315,6 +18605,26 @@ else
 fi
 
 
+have_lock_optimization=no
+if test "$gl_threads_api" = posix; then
+  if test x$ac_cv_header_sys_single_threaded_h = xyes; then
+    have_lock_optimization=yes
+  else
+    case "${host_os}" in
+      *-gnu*) have_lock_optimization=yes ;;
+      * ) ;;
+    esac
+  fi
+fi
+ if test "$have_lock_optimization" = yes; then
+  HAVE_LOCK_OPTIMIZATION_TRUE=
+  HAVE_LOCK_OPTIMIZATION_FALSE='#'
+else
+  HAVE_LOCK_OPTIMIZATION_TRUE='#'
+  HAVE_LOCK_OPTIMIZATION_FALSE=
+fi
+
+
 
 cat >>confdefs.h <<_ACEOF
 #define HOST_TRIPLET_STRING "$host"
@@ -18381,7 +18691,7 @@ fi
 #
 # Provide information about the build.
 #
-BUILD_REVISION="d7fb048"
+BUILD_REVISION="ea03187"
 
 
 cat >>confdefs.h <<_ACEOF
@@ -18390,7 +18700,7 @@ _ACEOF
 
 
 BUILD_VERSION=`echo "$PACKAGE_VERSION"|sed 's/\([0-9.]*\).*/\1./'`
-BUILD_VERSION="${BUILD_VERSION}0.55291"
+BUILD_VERSION="${BUILD_VERSION}0.59907"
 BUILD_FILEVERSION=`echo "${BUILD_VERSION}" | tr . ,`
 
 
@@ -18622,6 +18932,10 @@ if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
   as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${INSTALL_GPG_ERROR_CONFIG_TRUE}" && test -z "${INSTALL_GPG_ERROR_CONFIG_FALSE}"; then
+  as_fn_error $? "conditional \"INSTALL_GPG_ERROR_CONFIG\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${HAVE_LD_VERSION_SCRIPT_TRUE}" && test -z "${HAVE_LD_VERSION_SCRIPT_FALSE}"; then
   as_fn_error $? "conditional \"HAVE_LD_VERSION_SCRIPT\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -18634,10 +18948,6 @@ if test -z "${HAVE_W64_SYSTEM_TRUE}" && test -z "${HAVE_W64_SYSTEM_FALSE}"; then
   as_fn_error $? "conditional \"HAVE_W64_SYSTEM\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
-if test -z "${HAVE_W32CE_SYSTEM_TRUE}" && test -z "${HAVE_W32CE_SYSTEM_FALSE}"; then
-  as_fn_error $? "conditional \"HAVE_W32CE_SYSTEM\" was never defined.
-Usually this means the macro was only invoked conditionally." "$LINENO" 5
-fi
 if test -z "${CROSS_COMPILING_TRUE}" && test -z "${CROSS_COMPILING_FALSE}"; then
   as_fn_error $? "conditional \"CROSS_COMPILING\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -18650,6 +18960,10 @@ if test -z "${HAVE_GENERATED_LOCK_OBJ_H_TRUE}" && test -z "${HAVE_GENERATED_LOCK
   as_fn_error $? "conditional \"HAVE_GENERATED_LOCK_OBJ_H\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+if test -z "${HAVE_LOCK_OPTIMIZATION_TRUE}" && test -z "${HAVE_LOCK_OPTIMIZATION_FALSE}"; then
+  as_fn_error $? "conditional \"HAVE_LOCK_OPTIMIZATION\" was never defined.
+Usually this means the macro was only invoked conditionally." "$LINENO" 5
+fi
 if test -z "${BUILD_GPGSCM_TRUE}" && test -z "${BUILD_GPGSCM_FALSE}"; then
   as_fn_error $? "conditional \"BUILD_GPGSCM\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
@@ -19063,7 +19377,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by libgpg-error $as_me 1.43, which was
+This file was extended by libgpg-error $as_me 1.46, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -19129,7 +19443,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-libgpg-error config.status 1.43
+libgpg-error config.status 1.46
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -19603,9 +19917,8 @@ fi
 
 
 # Capture the value of obsolete ALL_LINGUAS because we need it to compute
-    # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
-    # from automake < 1.5.
-    eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
+    # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS.
+    OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS"
     # Capture the value of LINGUAS because we need it to compute CATALOGS.
     LINGUAS="${LINGUAS-%UNSET%}"
 
@@ -21137,14 +21450,11 @@ _LT_EOF
             if test -n "$OBSOLETE_ALL_LINGUAS"; then
               test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
             fi
-            ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
-            # Hide the ALL_LINGUAS assignment from automake < 1.5.
-            eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+            ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
             POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
           else
             # The set of available languages was given in configure.in.
-            # Hide the ALL_LINGUAS assignment from automake < 1.5.
-            eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+            ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS
           fi
           # Compute POFILES
           # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
@@ -21265,7 +21575,7 @@ fi
 echo "
         $PACKAGE_NAME v$PACKAGE_VERSION has been configured as follows:
 
-        Revision: d7fb048  (55291)
+        Revision: ea03187  (59907)
         Platform: $host$tmp
 "
 if test "$gcry_cv_gcc_attribute_aligned" != "yes" ; then
index e0d4c42..5bbec88 100644 (file)
@@ -1,5 +1,5 @@
 # configure.ac for libgpg-error
-# Copyright (C) 2003, 2004, 2006, 2010, 2013-2020 g10 Code GmbH
+# Copyright (C) 2003, 2004, 2006, 2010, 2013-2022 g10 Code GmbH
 #
 # This file is part of libgpg-error.
 #
@@ -19,7 +19,7 @@
 
 # (Process this file with autoconf to produce a configure script.)
 # The following lines are used by ./autogen.sh.
-AC_PREREQ([2.59])
+AC_PREREQ([2.69])
 min_automake_version="1.14"
 
 # To build a release you need to create a tag with the version number
@@ -29,7 +29,7 @@ min_automake_version="1.14"
 # See below for the LT versions.
 m4_define([mym4_package],[libgpg-error])
 m4_define([mym4_major], [1])
-m4_define([mym4_minor], [43])
+m4_define([mym4_minor], [46])
 
 # Below is m4 magic to extract and compute the revision number, the
 # decimalized short revision number, a beta version string, and a flag
@@ -49,8 +49,8 @@ AC_INIT([mym4_package],[mym4_version],[https://bugs.gnupg.org])
 #   (Interfaces added:                 AGE++)
 #   (Interfaces removed:               AGE=0)
 # Note that added error codes don't constitute an interface change.
-LIBGPG_ERROR_LT_CURRENT=32
-LIBGPG_ERROR_LT_AGE=32
+LIBGPG_ERROR_LT_CURRENT=33
+LIBGPG_ERROR_LT_AGE=33
 LIBGPG_ERROR_LT_REVISION=1
 ################################################
 
@@ -65,7 +65,7 @@ AC_CONFIG_AUX_DIR([build-aux])
 AM_INIT_AUTOMAKE([serial-tests dist-bzip2])
 AM_MAINTAINER_MODE
 AC_CONFIG_SRCDIR([src/err-sources.h.in])
-AC_CONFIG_HEADER([config.h])
+AC_CONFIG_HEADERS([config.h])
 AC_CONFIG_MACRO_DIR([m4])
 AM_SILENT_RULES
 
@@ -122,16 +122,11 @@ AC_SUBST([LDADD_FOR_TESTS_KLUDGE])
 # Set some variables depending on the platform for later use.
 have_w32_system=no
 have_w64_system=no
-have_w32ce_system=no
 case "${host}" in
     x86_64-*mingw32*)
         have_w32_system=yes
         have_w64_system=yes
         ;;
-    *-mingw32ce*)
-        have_w32_system=yes
-        have_w32ce_system=yes
-        ;;
     *-mingw32*)
         have_w32_system=yes
         ;;
@@ -184,13 +179,21 @@ AH_BOTTOM([
 #define GPGRT_ENABLE_ARGPARSE_MACROS 1
 ])
 
+# We used to provide gpg-error-config command always.  Now, it's
+# gpgrt-config command with gpg-error.pc configuration file, which
+# does same thing.  gpg-error-config command is deprecated.
+AC_ARG_ENABLE(install-gpg-error-config,
+  AS_HELP_STRING([--enable-install-gpg-error-config],
+                 [install gpg-error-config command]),
+  install_gpg_error_config=$enableval)
+AM_CONDITIONAL(INSTALL_GPG_ERROR_CONFIG,
+               test "$install_gpg_error_config" = "yes")
 
 # Note, that autogen.sh greps for the next line.
 AM_GNU_GETTEXT_VERSION([0.19.3])
 AM_GNU_GETTEXT([external])
 
 # Checks for header files.
-AC_HEADER_STDC
 AC_CHECK_HEADERS([locale.h stdint.h sys/select.h sys/time.h \
                   signal.h poll.h pwd.h])
 
@@ -215,7 +218,7 @@ AC_SUBST(INSTALLSHELLPATH)
 
 AC_FUNC_FORK
 AC_CHECK_FUNCS([flockfile vasprintf mmap rand strlwr stpcpy setenv stat \
-                getrlimit getpwnam getpwuid getpwnam_r getpwuid_r ])
+                getrlimit getpwnam getpwuid getpwnam_r getpwuid_r inet_pton])
 
 
 #
@@ -226,20 +229,6 @@ AC_C_CONST
 AC_CHECK_SIZEOF(int)
 AC_CHECK_SIZEOF(long)
 AC_CHECK_SIZEOF(long long)
-AC_HEADER_TIME
-AC_CHECK_SIZEOF(time_t,,[[
-#include <stdio.h>
-#if TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# if HAVE_SYS_TIME_H
-#  include <sys/time.h>
-# else
-#  include <time.h>
-# endif
-#endif
-]])
 
 GNUPG_FUNC_MKDIR_TAKES_ONE_ARG
 
@@ -519,7 +508,7 @@ GNUPG_CHECK_READLINE
 estream_INIT
 
 #
-# Substitution used for gpg-error-config
+# Substitution used for gpg-error-config and gpg-error.pc
 #
 GPG_ERROR_CONFIG_LIBS="$config_libs"
 if test "x$LIBTHREAD" != x; then
@@ -530,11 +519,7 @@ if test "x$LIBMULTITHREAD" != x; then
 else
   GPG_ERROR_CONFIG_MT_LIBS=""
 fi
-if test "$have_w32ce_system" = yes; then
-  GPG_ERROR_CONFIG_CFLAGS="-idirafter \${includedir}/gpg-extra"
-else
-  GPG_ERROR_CONFIG_CFLAGS=""
-fi
+GPG_ERROR_CONFIG_CFLAGS=""
 if test "x$THREADLIB_CPPFLAGS" != x; then
   GPG_ERROR_CONFIG_MT_CFLAGS="${THREADLIB_CPPFLAGS}"
 else
@@ -547,32 +532,32 @@ case "$includedir" in
   '${prefix}/include')
     if test "$prefix" != / -a "$prefix" != /usr; then
       if test -z "$GPG_ERROR_CONFIG_CFLAGS"; then
-        GPG_ERROR_CONFIG_CFLAGS="-I$includedir"
+        GPG_ERROR_CONFIG_CFLAGS="-I\${includedir}"
       else
-        GPG_ERROR_CONFIG_CFLAGS="-I$includedir $GPG_ERROR_CONFIG_CFLAGS"
+        GPG_ERROR_CONFIG_CFLAGS="-I\${includedir} $GPG_ERROR_CONFIG_CFLAGS"
       fi
     fi
     ;;
   *)
     if test -z "$GPG_ERROR_CONFIG_CFLAGS"; then
-      GPG_ERROR_CONFIG_CFLAGS="-I$includedir"
+      GPG_ERROR_CONFIG_CFLAGS="-I\${includedir}"
     else
-      GPG_ERROR_CONFIG_CFLAGS="-I$includedir $GPG_ERROR_CONFIG_CFLAGS"
+      GPG_ERROR_CONFIG_CFLAGS="-I\${includedir} $GPG_ERROR_CONFIG_CFLAGS"
     fi
     ;;
 esac
 case "$libdir" in
   /usr/lib|/usr/lib64|/lib|/lib64) ;;
-  '${exec_prefix}/lib')
+  '${exec_prefix}/lib'|'${exec_prefix}/lib64')
     if test "$exec_prefix" = "NONE"; then
       if test "$prefix" != / -a "$prefix" != /usr; then
-        GPG_ERROR_CONFIG_LIBS="-L$libdir $GPG_ERROR_CONFIG_LIBS"
+        GPG_ERROR_CONFIG_LIBS="-L\${libdir} $GPG_ERROR_CONFIG_LIBS"
       fi
     elif test "$exec_prefix" != / -a "$exec_prefix" != /usr; then
-      GPG_ERROR_CONFIG_LIBS="-L$libdir $GPG_ERROR_CONFIG_LIBS"
+      GPG_ERROR_CONFIG_LIBS="-L\${libdir} $GPG_ERROR_CONFIG_LIBS"
     fi
     ;;
-  *) GPG_ERROR_CONFIG_LIBS="-L$libdir $GPG_ERROR_CONFIG_LIBS" ;;
+  *) GPG_ERROR_CONFIG_LIBS="-L\${libdir} $GPG_ERROR_CONFIG_LIBS" ;;
 esac
 
 AC_SUBST(GPG_ERROR_CONFIG_LIBS)
@@ -592,9 +577,6 @@ if test "$have_w32_system" = yes; then
     if test "$have_w64_system" = yes; then
       AC_DEFINE(HAVE_W64_SYSTEM,1,[Defined if we run on 64 bit W32 API system])
     fi
-    if test "$have_w32ce_system" = yes; then
-      AC_DEFINE(HAVE_W32CE_SYSTEM,1,[Defined if we run on WindowsCE])
-    fi
     force_use_syscfg=yes
 fi
 if test x"$gl_use_threads" = xno; then
@@ -605,7 +587,7 @@ if test x"$gl_use_threads" = xno; then
   AC_MSG_NOTICE([generated src/lock-obj-pub.native.h for $host])
 elif test x$cross_compiling = xyes; then
   case $host in
-    *-*-linux-gnu*)
+    *-*-linux-gnu* | *-*-linux-musl*)
     AC_CHECK_TOOL(OBJDUMP, [objdump])
     if test -n "$OBJDUMP"; then
       lock_obj_h_generated=yes
@@ -628,11 +610,23 @@ fi
 
 AM_CONDITIONAL(HAVE_W32_SYSTEM, test "$have_w32_system" = yes)
 AM_CONDITIONAL(HAVE_W64_SYSTEM, test "$have_w64_system" = yes)
-AM_CONDITIONAL(HAVE_W32CE_SYSTEM, test "$have_w32ce_system" = yes)
 AM_CONDITIONAL(CROSS_COMPILING, test x$cross_compiling = xyes)
 AM_CONDITIONAL(FORCE_USE_SYSCFG, test x$force_use_syscfg = xyes)
 AM_CONDITIONAL(HAVE_GENERATED_LOCK_OBJ_H, test x$lock_obj_h_generated = xyes)
 
+have_lock_optimization=no
+if test "$gl_threads_api" = posix; then
+  if test x$ac_cv_header_sys_single_threaded_h = xyes; then
+    have_lock_optimization=yes
+  else
+    case "${host_os}" in
+      *-gnu*) have_lock_optimization=yes ;;
+      * ) ;;
+    esac
+  fi
+fi
+AM_CONDITIONAL(HAVE_LOCK_OPTIMIZATION, test "$have_lock_optimization" = yes)
+
 AC_DEFINE_UNQUOTED(HOST_TRIPLET_STRING, "$host", [The host triplet])
 
 
diff --git a/contrib/ChangeLog-2011 b/contrib/ChangeLog-2011
deleted file mode 100644 (file)
index 87c1aa4..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-2011-12-01  Werner Koch  <wk@g10code.com>
-
-       NB: ChangeLog files are no longer manually maintained.  Starting
-       on December 1st, 2011 we put change information only in the GIT
-       commit log, and generate a top-level ChangeLog file from logs at
-       "make dist".  See doc/HACKING for details.
-
-2010-11-15  Marcus Brinkmann  <mb@g10code.com>
-
-       * conf-w32ce-msc/stdint.h: New file.
-       * conf-w32ce-msc/build.mk (conf_sources): Add stdint.h.
-
-2010-11-15  Werner Koch  <wk@g10code.com>
-
-       * conf-w32ce-msc/build.mk (clean): New.
-
-2010-11-02  Werner Koch  <wk@g10code.com>
-
-       * conf-w32ce-msc/build.mk: Change directory layout.  Provide
-       install target.
-
-2010-10-28  Werner Koch  <wk@g10code.com>
-
-       * contrib/conf-w32ce-msc/build.mk: New.
-       * contrib/conf-w32ce-msc/config.h: New.
index 46b4545..db34ba9 100644 (file)
@@ -33,7 +33,11 @@ YAT2M_OPTIONS = -I $(srcdir) \
        --release "Libgpg-error @PACKAGE_VERSION@" --source "GnuPG"
 
 myman_sources = gpgrt.texi
-myman_pages   = gpgrt-config.1
+if INSTALL_GPG_ERROR_CONFIG
+myman_pages   = gpg-error-config.1
+else
+myman_pages   =
+endif
 
 man_MANS = $(myman_pages)
 
index 96563d0..2d5029f 100644 (file)
@@ -114,14 +114,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/autobuild.m4 \
        $(top_srcdir)/m4/ax_cc_for_build.m4 \
        $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/estream.m4 \
        $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gnupg-misc.m4 \
-       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
-       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
-       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
-       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/readline.m4 \
-       $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/ltoptions.m4 \
+       $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+       $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/threadlib.m4 \
+       $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/version.texi \
@@ -361,8 +362,8 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -454,7 +455,8 @@ YAT2M_OPTIONS = -I $(srcdir) \
        --release "Libgpg-error @PACKAGE_VERSION@" --source "GnuPG"
 
 myman_sources = gpgrt.texi
-myman_pages = gpgrt-config.1
+@INSTALL_GPG_ERROR_CONFIG_FALSE@myman_pages = 
+@INSTALL_GPG_ERROR_CONFIG_TRUE@myman_pages = gpg-error-config.1
 man_MANS = $(myman_pages)
 @CROSS_COMPILING_FALSE@YAT2M_CMD = ./yat2m$(EXEEXT)
 @CROSS_COMPILING_TRUE@YAT2M_CMD = ./yat2m-for-build$(EXEEXT_FOR_BUILD)
index 0e7dfbe..caa97dd 100644 (file)
@@ -1,9 +1,9 @@
 This is gpgrt.info, produced by makeinfo version 6.5 from gpgrt.texi.
 
-This manual is for Libgpg-error (version 1.43, 7 December 2018), which
-is a library for code used by all GnuPG related packages.
+This manual is for Libgpg-error (version 1.46, 2 August 2022), which is
+a library for code used by all GnuPG related packages.
 
-Copyright (C) 2014 g10 Code GmbH
+Copyright (C) 2014, 2022 g10 Code GmbH
 
      Permission is granted to copy, distribute and/or modify this
      document under the terms of the GNU General Public License as
@@ -13,7 +13,7 @@ Copyright (C) 2014 g10 Code GmbH
      License".
 INFO-DIR-SECTION Libraries
 START-INFO-DIR-ENTRY
-* libgpg-error: (gnupg).   Error codes and common code for GnuPG.
+* libgpg-error: (gpgrt).   Error codes and common code for GnuPG.
 END-INFO-DIR-ENTRY
 
 \1f
@@ -22,10 +22,10 @@ File: gpgrt.info,  Node: Top,  Next: Introduction,  Up: (dir)
 The Libgpg-error Library
 ************************
 
-This manual is for Libgpg-error (version 1.43, 7 December 2018), which
-is a library for code used by all GnuPG related packages.
+This manual is for Libgpg-error (version 1.46, 2 August 2022), which is
+a library for code used by all GnuPG related packages.
 
-Copyright (C) 2014 g10 Code GmbH
+Copyright (C) 2014, 2022 g10 Code GmbH
 
      Permission is granted to copy, distribute and/or modify this
      document under the terms of the GNU General Public License as
@@ -126,11 +126,11 @@ File: gpgrt.info,  Node: Header,  Next: Building sources,  Up: Preparation
 ==========
 
 All interfaces (data types and functions) of the library are defined in
-the header file 'libgpg-error.h'.  You must include this in all source
+the header file 'gpg-error.h'.  You must include this in all source
 files using the library, either directly or through some other header
 file, like this:
 
-     #include <libgpg-error.h>
+     #include <gpg-error.h>
 
    Note well that the header file is platform specific and may only be
 used on the platform for which it has been build.
@@ -162,32 +162,41 @@ which the header file is located to the compilers include file search
 path (via the '-I' option).
 
    However, the path to the include file is determined at the time the
-source is configured.  To solve this problem, Libgpg-error ships with
-the small helper program 'gpgrt-config' which know the path to the
-include file and other configuration options.  The options that need to
-be added to the compiler invocation at compile time are output by the
-'--cflags' option to 'gpgrt-config' The following example shows how it
-can be used at the command line:
+source is configured.  To solve this problem, Libgpg-error ships with a
+pkg-config file: gpg-error.pc.
 
-     gcc -c foo.c $(gpgrt-config --cflags)
+   The options that need to be added to the compiler invocation at
+compile time are output by the '--cflags' option to 'pkg-config'.  The
+following example shows how it can be used at the command line:
 
-   Adding the output of 'gpgrt-config --cflags' to the compiler’s
-command line will ensure that the compiler can find the Libgpg-error
-header file.
+     gcc -c foo.c $(pkg-config --cflags gpg-error)
+
+   Adding the output of 'pkg-config --cflags gpg-error' to the
+compiler’s command line will ensure that the compiler can find the
+Libgpg-error header file.
 
    A similar problem occurs when linking the program with the library.
 Again, the compiler has to find the library files.  For this to work,
 the path to the library files has to be added to the library search path
-(via the '-L' option).  For this, the option '--libs' to 'gpgrt-config'
+(via the '-L' option).  For this, the option '--libs' to 'pkg-config'
 can be used.  The example shows how to link 'foo.o' with the
 Libgpg-error library to a program 'foo'.
 
-     gcc -o foo foo.o $(gpgrt-config --libs)
+     gcc -o foo foo.o $(pkg-config --libs gpg-error)
 
    Of course you can also combine both examples to a single command by
-specifying both options to 'gpgrt-config':
+specifying both options to 'pkg-config':
+
+     gcc -o foo foo.c $(pkg-config --cflags --libs gpg-error)
 
-     gcc -o foo foo.c $(gpgrt-config --cflags --libs)
+   For GnuPG and its friends, which are usually needed to be built
+earlier in a stage of OS bootstrap, Libgpg-error ships the small helper
+program 'gpgrt-config'.  This helper program is a sort of 'pkg-config'
+replacement for limited environment, supporting cross compilation, as
+well as multilib and multi-arch installation.  Note that 'gpgrt-config'
+is not for general use for other programs.  'gpgrt-config' requires
+invocation with the option '--lib=' so that it locates the appropriate
+path to 'gpg-error.pc'.
 
 \1f
 File: gpgrt.info,  Node: Building sources using Automake,  Next: Initializing the library,  Prev: Building sources,  Up: Preparation
@@ -197,8 +206,9 @@ File: gpgrt.info,  Node: Building sources using Automake,  Next: Initializing th
 
 It is much easier if you use GNU Automake instead of writing your own
 Makefiles.  If you do that, you do not have to worry about finding and
-invoking the 'gpgrt-config' script at all.  Libgpg-error provides an
-extension to Automake that does all the work for you.
+invoking the 'pkg-config' or 'gpgrt-config' script at all.  Libgpg-error
+provides an extension to Automake that does all the work for you.  That
+is offered by 'gpg-error.m4'.
 
  -- Macro: AM_PATH_GPG_ERROR ([MINIMUM-VERSION], [ACTION-IF-FOUND],
           [ACTION-IF-NOT-FOUND])
@@ -209,19 +219,9 @@ extension to Automake that does all the work for you.
      Additionally, the function defines 'GPG_ERROR_CFLAGS' to the flags
      needed for compilation of the program to find the 'gpg-error.h'
      header file, and 'GPG_ERROR_LIBS' to the linker flags needed to
-     link the program to the Libgpg-error library.  If the used helper
-     script does not match the target type you are building for a
-     warning is printed and the string 'libgpg-error' is appended to the
-     variable 'gpg_config_script_warn'.
-
-     This macro searches for 'gpgrt-config' along the PATH. If you are
-     cross-compiling, it is useful to set the environment variable
-     'SYSROOT' to the top directory of your target.  The macro will then
-     first look for the helper program in the 'bin' directory below that
-     top directory.  An absolute directory name must be used for
-     'SYSROOT'.  Finally, if the configure command line option
-     '--with-libgpg-error-prefix' is used, only its value is used for
-     the top directory below which the helper script is expected.
+     link the program to the Libgpg-error library.
+
+     This macro searches for 'gpgrt-config' along the PATH.
 
    You can use the defined Autoconf variables like this in your
 'Makefile.am':
@@ -279,20 +279,23 @@ File: gpgrt.info,  Node: Tools,  Next: Library Copying,  Prev: Generalities,  Up
 
 * Menu:
 
-* gpgrt-config::    Print required compiler flags
+* gpg-error-config::    Print required compiler flags
 
 \1f
-File: gpgrt.info,  Node: gpgrt-config,  Up: Tools
+File: gpgrt.info,  Node: gpg-error-config,  Up: Tools
 
 4.1 Print required compiler flags
 =================================
 
-'gpgrt-config' is a tool that is used to configure to determine the
+'gpg-error-config' is a tool that is used to configure to determine the
 compiler and linker flags that should be used to compile and link
-programs that use Libgpg-error.  It is also used internally to the '.m4'
-macros for GNU autoconf that are included with Libgpg-error.
+programs that use Libgpg-error.
+
+   This tool is now obsolete.  Instead, please use pkg-config with
+gpg-error.pc for your new program, or use gpg-error.m4 which uses
+gpgrt-config and gpg-error.pc internally.
 
-'gpgrt-config' accepts the following options:
+'gpg-error-config' accepts the following options:
 
 '--mt'
      Provide output appropriate for multithreaded programs.  '--mt' is
@@ -1233,30 +1236,30 @@ Function and Data Index
 * Menu:
 
 * AM_PATH_GPG_ERROR:                     Building sources using Automake.
-                                                               (line 11)
+                                                               (line 12)
 * gpgrt_check_version:                   Initializing the library.
                                                                (line 15)
 
 
 \1f
 Tag Table:
-Node: Top\7f729
-Node: Introduction\7f2103
-Node: Getting Started\7f2625
-Node: Features\7f2982
-Node: Overview\7f3111
-Node: Preparation\7f3307
-Node: Header\7f4108
-Node: Building sources\7f5193
-Node: Building sources using Automake\7f6924
-Node: Initializing the library\7f8861
-Node: Multi-Threading\7f10049
-Node: Generalities\7f10191
-Node: Tools\7f10378
-Node: gpgrt-config\7f10544
-Node: Library Copying\7f12111
-Node: Copying\7f40212
-Node: Concept Index\7f59382
-Node: Function and Data Index\7f59679
+Node: Top\7f733
+Node: Introduction\7f2111
+Node: Getting Started\7f2633
+Node: Features\7f2990
+Node: Overview\7f3119
+Node: Preparation\7f3315
+Node: Header\7f4116
+Node: Building sources\7f5195
+Node: Building sources using Automake\7f7393
+Node: Initializing the library\7f8695
+Node: Multi-Threading\7f9883
+Node: Generalities\7f10025
+Node: Tools\7f10212
+Node: gpg-error-config\7f10382
+Node: Library Copying\7f12035
+Node: Copying\7f40136
+Node: Concept Index\7f59306
+Node: Function and Data Index\7f59603
 \1f
 End Tag Table
index d4a3b41..2478366 100644 (file)
@@ -13,7 +13,7 @@ This manual is for Libgpg-error (version @value{VERSION},
 related packages.
 
 @noindent
-Copyright @copyright{} 2014 g10 Code GmbH
+Copyright @copyright{} 2014, 2022 g10 Code GmbH
 
 @quotation
 Permission is granted to copy, distribute and/or modify this document
@@ -26,7 +26,7 @@ section entitled ``GNU General Public License''.
 
 @dircategory Libraries
 @direntry
-* libgpg-error: (gnupg).   Error codes and common code for GnuPG.
+* libgpg-error: (gpgrt).   Error codes and common code for GnuPG.
 @end direntry
 
 @c A couple of macros with no effect on texinfo
@@ -170,12 +170,12 @@ of the library are verified.
 @section Header
 
 All interfaces (data types and functions) of the library are defined
-in the header file @file{libgpg-error.h}.  You must include this in all source
+in the header file @file{gpg-error.h}.  You must include this in all source
 files using the library, either directly or through some other header
 file, like this:
 
 @example
-#include <libgpg-error.h>
+#include <gpg-error.h>
 @end example
 
 Note well that the header file is platform specific and may only be
@@ -210,19 +210,18 @@ file search path (via the @option{-I} option).
 
 However, the path to the include file is determined at the time the
 source is configured.  To solve this problem, Libgpg-error ships with
-the small helper program @command{gpgrt-config}
-which know the path to the include file
-and other configuration options.  The options that need to be added to
-the compiler invocation at compile time are output by the
-@option{--cflags} option to @command{gpgrt-config}
-The following example shows how it can be
-used at the command line:
+a pkg-config file: gpg-error.pc.
+
+The options that need to be added to the compiler invocation at
+compile time are output by the @option{--cflags} option to
+@command{pkg-config}.  The following example shows how it can be used
+at the command line:
 
 @example
-gcc -c foo.c $(gpgrt-config --cflags)
+gcc -c foo.c $(pkg-config --cflags gpg-error)
 @end example
 
-Adding the output of @samp{gpgrt-config --cflags} to the
+Adding the output of @samp{pkg-config --cflags gpg-error} to the
 compiler’s command line will ensure that the compiler can find the
 Libgpg-error header file.
 
@@ -230,28 +229,40 @@ A similar problem occurs when linking the program with the library.
 Again, the compiler has to find the library files.  For this to work,
 the path to the library files has to be added to the library search
 path (via the @option{-L} option).  For this, the option
-@option{--libs} to @command{gpgrt-config} can be used.  The
-example shows how to link @file{foo.o} with the Libgpg-error library
-to a program @command{foo}.
+@option{--libs} to @command{pkg-config} can be used.  The example
+shows how to link @file{foo.o} with the Libgpg-error library to a
+program @command{foo}.
 
 @example
-gcc -o foo foo.o $(gpgrt-config --libs)
+gcc -o foo foo.o $(pkg-config --libs gpg-error)
 @end example
 
 Of course you can also combine both examples to a single command by
-specifying both options to @command{gpgrt-config}:
+specifying both options to @command{pkg-config}:
 
 @example
-gcc -o foo foo.c $(gpgrt-config --cflags --libs)
+gcc -o foo foo.c $(pkg-config --cflags --libs gpg-error)
 @end example
 
+For GnuPG and its friends, which are usually needed to be built
+earlier in a stage of OS bootstrap, Libgpg-error ships the small
+helper program @command{gpgrt-config}.  This helper program is a sort
+of @command{pkg-config} replacement for limited environment,
+supporting cross compilation, as well as multilib and multi-arch
+installation.  Note that @command{gpgrt-config} is not for general use
+for other programs.  @command{gpgrt-config} requires invocation with
+the option @option{--lib=} so that it locates the appropriate path to
+@file{gpg-error.pc}.
+
+
 @node Building sources using Automake
 @section Building sources using Automake
 
 It is much easier if you use GNU Automake instead of writing your own
 Makefiles.  If you do that, you do not have to worry about finding and
-invoking the @command{gpgrt-config} script at all.  Libgpg-error
-provides an extension to Automake that does all the work for you.
+invoking the @command{pkg-config} or @command{gpgrt-config} script at
+all.  Libgpg-error provides an extension to Automake that does all the
+work for you.  That is offered by @file{gpg-error.m4}.
 
 @c A simple macro for optional variables.
 @macro ovar{varname}
@@ -266,19 +277,9 @@ given.
 Additionally, the function defines @code{GPG_ERROR_CFLAGS} to the
 flags needed for compilation of the program to find the
 @file{gpg-error.h} header file, and @code{GPG_ERROR_LIBS} to the
-linker flags needed to link the program to the Libgpg-error library.  If
-the used helper script does not match the target type you are building
-for a warning is printed and the string @code{libgpg-error} is
-appended to the variable @code{gpg_config_script_warn}.
-
-This macro searches for @command{gpgrt-config} along the PATH.  If
-you are cross-compiling, it is useful to set the environment variable
-@code{SYSROOT} to the top directory of your target.  The macro will
-then first look for the helper program in the @file{bin} directory
-below that top directory.  An absolute directory name must be used for
-@code{SYSROOT}.  Finally, if the configure command line option
-@code{--with-libgpg-error-prefix} is used, only its value is used for
-the top directory below which the helper script is expected.
+linker flags needed to link the program to the Libgpg-error library.
+
+This macro searches for @command{gpgrt-config} along the PATH.
 
 @end defmac
 
@@ -340,35 +341,37 @@ TBD.  (Description of the error function may be taken from Libgcrypt.)
 @chapter Tools
 
 @menu
-* gpgrt-config::    Print required compiler flags
+* gpg-error-config::    Print required compiler flags
 @end menu
 
 @c The original version of this man page has been written for Debian and was
 @c contributed to libgpg-error by Daniel Kahn Gillmor <dkg@fifthhorseman.net>.
-@manpage gpgrt-config.1
-@node gpgrt-config
+@manpage gpg-error-config.1
+@node gpg-error-config
 @section Print required compiler flags
 @ifset manverb
-.B gpgrt-config
+.B gpg-error-config
 \- Script to get information about the installed version of libgpg-error
 @end ifset
 
 @mansect synopsis
 @ifset manverb
-.B  gpgrt-config
+.B  gpg-error-config
 .RI [ options ]
 @end ifset
 
 @mansect description
-@command{gpgrt-config} is a tool that is used to configure to
+@command{gpg-error-config} is a tool that is used to configure to
 determine the compiler and linker flags that should be used to compile
-and link programs that use Libgpg-error. It is also used
-internally to the @code{.m4} macros for GNU autoconf that are included
-with Libgpg-error.
+and link programs that use Libgpg-error.
+
+This tool is now obsolete.  Instead, please use pkg-config with
+gpg-error.pc for your new program, or use gpg-error.m4 which uses
+gpgrt-config and gpg-error.pc internally.
 
 @mansect options
 @noindent
-@command{gpgrt-config} accepts the following options:
+@command{gpg-error-config} accepts the following options:
 
 @table @gnupgtabopt
 
index e50742e..ba8846e 100644 (file)
@@ -1,4 +1,4 @@
-@set UPDATED 7 December 2018
-@set UPDATED-MONTH December 2018
-@set EDITION 1.43
-@set VERSION 1.43
+@set UPDATED 2 August 2022
+@set UPDATED-MONTH August 2022
+@set EDITION 1.46
+@set VERSION 1.46
index e50742e..ba8846e 100644 (file)
@@ -1,4 +1,4 @@
-@set UPDATED 7 December 2018
-@set UPDATED-MONTH December 2018
-@set EDITION 1.43
-@set VERSION 1.43
+@set UPDATED 2 August 2022
+@set UPDATED-MONTH August 2022
+@set EDITION 1.46
+@set VERSION 1.46
index 10e03ec..c2806e3 100644 (file)
 
 #if MY_GCC_VERSION >= 20500
 # define ATTR_PRINTF(f, a) __attribute__ ((format(printf,f,a)))
-# define ATTR_NR_PRINTF(f, a) __attribute__ ((noreturn, format(printf,f,a)))
+# define ATTR_NR_PRINTF(f, a) __attribute__ ((__noreturn__, format(printf,f,a)))
 #else
 # define ATTR_PRINTF(f, a)
 # define ATTR_NR_PRINTF(f, a)
@@ -1323,7 +1323,8 @@ finish_page (void)
     }
   else if (opt_store)
     {
-      inf ("writing '%s'", thepage.name );
+      if (verbose)
+        inf ("writing '%s'", thepage.name );
       fp = fopen ( thepage.name, "w" );
       if (!fp)
         die ("failed to create '%s': %s\n", thepage.name, strerror (errno));
index 76f5df3..baaa8fe 100644 (file)
@@ -112,14 +112,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/autobuild.m4 \
        $(top_srcdir)/m4/ax_cc_for_build.m4 \
        $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/estream.m4 \
        $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gnupg-misc.m4 \
-       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
-       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
-       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
-       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/readline.m4 \
-       $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/ltoptions.m4 \
+       $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+       $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/threadlib.m4 \
+       $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -290,8 +291,8 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
index f2736c0..6e34228 100644 (file)
@@ -113,14 +113,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/autobuild.m4 \
        $(top_srcdir)/m4/ax_cc_for_build.m4 \
        $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/estream.m4 \
        $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gnupg-misc.m4 \
-       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
-       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
-       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
-       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/readline.m4 \
-       $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/ltoptions.m4 \
+       $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+       $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/threadlib.m4 \
+       $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(dist_clfiles_DATA) \
@@ -262,8 +263,8 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
index d5ccb1c..07a00fd 100644 (file)
@@ -27,7 +27,7 @@
 (defsystem gpg-error
     :description "Common error values for all GnuPG components."
     :author "g10 Code GmbH"
-    :version "1.43"
+    :version "1.46"
     :licence "LGPL"
     :depends-on ("cffi")
     :components ((:file "gpg-error-package")
index 3ce4011..502ec61 100644 (file)
@@ -1,7 +1,7 @@
 # This is a template.  The dist target uses it to create the real file.
 Summary: libgpg-error
 Name: libgpg-error
-Version: 1.43
+Version: 1.46
 Release: 1
 URL: ftp://ftp.gnupg.org/gcrypt/alpha/libgpg-error/
 Source: ftp://ftp.gnupg.org/gcrypt/alpha/libgpg-error/%{name}-%{version}.tar.gz
index a82737d..b4579d9 100644 (file)
@@ -1,4 +1,5 @@
-EXTRA_DIST = inttypes-h.m4 lock.m4 visibility.m4 glibc2.m4 intmax.m4 longdouble.m4 longlong.m4 printf-posix.m4 signed.m4 size_max.m4 wchar_t.m4 wint_t.m4 xsize.m4 nls.m4 po.m4  codeset.m4 gettext.m4 glibc21.m4 iconv.m4 intdiv0.m4 inttypes.m4 inttypes_h.m4 inttypes-pri.m4 isc-posix.m4 lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4 stdint_h.m4 uintmax_t.m4 ulonglong.m4
+EXTRA_DIST = lock.m4 nls.m4 po.m4 codeset.m4 gettext.m4 iconv.m4 \
+             lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4
 
 EXTRA_DIST += ax_cc_for_build.m4
 
index 8c0d912..ed2023a 100644 (file)
@@ -93,14 +93,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/autobuild.m4 \
        $(top_srcdir)/m4/ax_cc_for_build.m4 \
        $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/estream.m4 \
        $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gnupg-misc.m4 \
-       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
-       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
-       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
-       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/readline.m4 \
-       $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/ltoptions.m4 \
+       $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+       $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/threadlib.m4 \
+       $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
@@ -211,8 +212,8 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -293,14 +294,10 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-EXTRA_DIST = inttypes-h.m4 lock.m4 visibility.m4 glibc2.m4 intmax.m4 \
-       longdouble.m4 longlong.m4 printf-posix.m4 signed.m4 \
-       size_max.m4 wchar_t.m4 wint_t.m4 xsize.m4 nls.m4 po.m4 \
-       codeset.m4 gettext.m4 glibc21.m4 iconv.m4 intdiv0.m4 \
-       inttypes.m4 inttypes_h.m4 inttypes-pri.m4 isc-posix.m4 \
-       lcmessage.m4 lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4 \
-       stdint_h.m4 uintmax_t.m4 ulonglong.m4 ax_cc_for_build.m4 \
-       autobuild.m4 estream.m4 readline.m4 gnupg-misc.m4
+EXTRA_DIST = lock.m4 nls.m4 po.m4 codeset.m4 gettext.m4 iconv.m4 \
+       lib-ld.m4 lib-link.m4 lib-prefix.m4 progtest.m4 \
+       ax_cc_for_build.m4 autobuild.m4 estream.m4 readline.m4 \
+       gnupg-misc.m4
 all: all-am
 
 .SUFFIXES:
index a6e67ec..629f4ee 100644 (file)
@@ -1,5 +1,6 @@
-# codeset.m4 serial AM1 (gettext-0.10.40)
-dnl Copyright (C) 2000-2002 Free Software Foundation, Inc.
+# codeset.m4 serial 5 (gettext-0.18.2)
+dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016, 2019-2021 Free Software
+dnl Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -8,14 +9,16 @@ dnl From Bruno Haible.
 
 AC_DEFUN([AM_LANGINFO_CODESET],
 [
-  AC_CACHE_CHECK([for nl_langinfo and CODESET], am_cv_langinfo_codeset,
-    [AC_TRY_LINK([#include <langinfo.h>],
-      [char* cs = nl_langinfo(CODESET);],
-      am_cv_langinfo_codeset=yes,
-      am_cv_langinfo_codeset=no)
+  AC_CACHE_CHECK([for nl_langinfo and CODESET], [am_cv_langinfo_codeset],
+    [AC_LINK_IFELSE(
+       [AC_LANG_PROGRAM(
+          [[#include <langinfo.h>]],
+          [[char* cs = nl_langinfo(CODESET); return !cs;]])],
+       [am_cv_langinfo_codeset=yes],
+       [am_cv_langinfo_codeset=no])
     ])
   if test $am_cv_langinfo_codeset = yes; then
-    AC_DEFINE(HAVE_LANGINFO_CODESET, 1,
+    AC_DEFINE([HAVE_LANGINFO_CODESET], [1],
       [Define if you have <langinfo.h> and nl_langinfo(CODESET).])
   fi
 ])
index be247bf..c7f5460 100644 (file)
@@ -1,16 +1,16 @@
-# gettext.m4 serial 66 (gettext-0.18.2)
-dnl Copyright (C) 1995-2014 Free Software Foundation, Inc.
+# gettext.m4 serial 71 (gettext-0.20.2)
+dnl Copyright (C) 1995-2014, 2016, 2018-2021 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
+dnl This file can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Lesser General Public
 dnl License but which still want to provide support for the GNU gettext
 dnl functionality.
 dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
+dnl by the GNU Lesser General Public License, and the rest of the GNU
+dnl gettext package is covered by the GNU General Public License.
 dnl They are *not* in the public domain.
 
 dnl Authors:
@@ -20,15 +20,13 @@ dnl   Bruno Haible <haible@clisp.cons.org>, 2000-2006, 2008-2010.
 dnl Macro to add for using GNU gettext.
 
 dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]).
-dnl INTLSYMBOL can be one of 'external', 'no-libtool', 'use-libtool'. The
-dnl    default (if it is not specified or empty) is 'no-libtool'.
-dnl    INTLSYMBOL should be 'external' for packages with no intl directory,
-dnl    and 'no-libtool' or 'use-libtool' for packages with an intl directory.
+dnl INTLSYMBOL must be one of 'external', 'use-libtool'.
+dnl    INTLSYMBOL should be 'external' for packages other than GNU gettext, and
+dnl    'use-libtool' for the packages 'gettext-runtime' and 'gettext-tools'.
 dnl    If INTLSYMBOL is 'use-libtool', then a libtool library
 dnl    $(top_builddir)/intl/libintl.la will be created (shared and/or static,
 dnl    depending on --{enable,disable}-{shared,static} and on the presence of
-dnl    AM-DISABLE-SHARED). If INTLSYMBOL is 'no-libtool', a static library
-dnl    $(top_builddir)/intl/libintl.a will be created.
+dnl    AM-DISABLE-SHARED).
 dnl If NEEDSYMBOL is specified and is 'need-ngettext', then GNU gettext
 dnl    implementations (in libc or libintl) without the ngettext() function
 dnl    will be ignored.  If NEEDSYMBOL is specified and is
@@ -57,19 +55,17 @@ dnl
 AC_DEFUN([AM_GNU_GETTEXT],
 [
   dnl Argument checking.
-  ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [no-libtool], , [ifelse([$1], [use-libtool], ,
+  ifelse([$1], [], , [ifelse([$1], [external], , [ifelse([$1], [use-libtool], ,
     [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT
-])])])])])
+])])])])
   ifelse(ifelse([$1], [], [old])[]ifelse([$1], [no-libtool], [old]), [old],
-    [AC_DIAGNOSE([obsolete], [Use of AM_GNU_GETTEXT without [external] argument is deprecated.])])
+    [errprint([ERROR: Use of AM_GNU_GETTEXT without [external] argument is no longer supported.
+])])
   ifelse([$2], [], , [ifelse([$2], [need-ngettext], , [ifelse([$2], [need-formatstring-macros], ,
     [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT
 ])])])])
   define([gt_included_intl],
-    ifelse([$1], [external],
-      ifdef([AM_GNU_GETTEXT_][INTL_SUBDIR], [yes], [no]),
-      [yes]))
-  define([gt_libtool_suffix_prefix], ifelse([$1], [use-libtool], [l], []))
+    ifelse([$1], [external], [no], [yes]))
   gt_NEEDS_INIT
   AM_GNU_GETTEXT_NEED([$2])
 
@@ -91,8 +87,7 @@ AC_DEFUN([AM_GNU_GETTEXT],
   dnl again, outside any 'if'. There are two solutions:
   dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'.
   dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE.
-  dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not
-  dnl documented, we avoid it.
+  dnl Since AC_PROVIDE_IFELSE is not documented, we avoid it.
   ifelse(gt_included_intl, yes, , [
     AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY])
   ])
@@ -161,13 +156,18 @@ changequote([,])dnl
             [AC_LANG_PROGRAM(
                [[
 #include <libintl.h>
-$gt_revision_test_code
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
 extern int _nl_msg_cat_cntr;
 extern int *_nl_domain_bindings;
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_domain_bindings)
+#else
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
+#endif
+$gt_revision_test_code
                ]],
                [[
 bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings
+return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
                ]])],
             [eval "$gt_func_gnugettext_libc=yes"],
             [eval "$gt_func_gnugettext_libc=no"])])
@@ -193,17 +193,22 @@ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_b
               [AC_LANG_PROGRAM(
                  [[
 #include <libintl.h>
-$gt_revision_test_code
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
 extern int _nl_msg_cat_cntr;
 extern
 #ifdef __cplusplus
 "C"
 #endif
 const char *_nl_expand_alias (const char *);
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (""))
+#else
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
+#endif
+$gt_revision_test_code
                  ]],
                  [[
 bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
                  ]])],
               [eval "$gt_func_gnugettext_libintl=yes"],
               [eval "$gt_func_gnugettext_libintl=no"])
@@ -214,17 +219,22 @@ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_a
                 [AC_LANG_PROGRAM(
                    [[
 #include <libintl.h>
-$gt_revision_test_code
+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION
 extern int _nl_msg_cat_cntr;
 extern
 #ifdef __cplusplus
 "C"
 #endif
 const char *_nl_expand_alias (const char *);
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION (_nl_msg_cat_cntr + *_nl_expand_alias (""))
+#else
+#define __GNU_GETTEXT_SYMBOL_EXPRESSION 0
+#endif
+$gt_revision_test_code
                    ]],
                    [[
 bindtextdomain ("", "");
-return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("")
+return * gettext ("")$gt_expression_test_code + __GNU_GETTEXT_SYMBOL_EXPRESSION
                    ]])],
                 [LIBINTL="$LIBINTL $LIBICONV"
                  LTLIBINTL="$LTLIBINTL $LTLIBICONV"
@@ -263,8 +273,8 @@ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_a
         dnl Mark actions used to generate GNU NLS library.
         BUILD_INCLUDED_LIBINTL=yes
         USE_INCLUDED_LIBINTL=yes
-        LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LIBICONV $LIBTHREAD"
-        LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.[]gt_libtool_suffix_prefix[]a $LTLIBICONV $LTLIBTHREAD"
+        LIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LIBICONV $LIBTHREAD"
+        LTLIBINTL="ifelse([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LTLIBICONV $LTLIBTHREAD"
         LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'`
       fi
 
@@ -332,43 +342,14 @@ return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_a
   fi
 
   ifelse(gt_included_intl, yes, [
-    dnl If this is used in GNU gettext we have to set BUILD_INCLUDED_LIBINTL
-    dnl to 'yes' because some of the testsuite requires it.
-    if test "$PACKAGE" = gettext-runtime || test "$PACKAGE" = gettext-tools; then
-      BUILD_INCLUDED_LIBINTL=yes
-    fi
+    dnl In GNU gettext we have to set BUILD_INCLUDED_LIBINTL to 'yes'
+    dnl because some of the testsuite requires it.
+    BUILD_INCLUDED_LIBINTL=yes
 
     dnl Make all variables we use known to autoconf.
     AC_SUBST([BUILD_INCLUDED_LIBINTL])
     AC_SUBST([USE_INCLUDED_LIBINTL])
     AC_SUBST([CATOBJEXT])
-
-    dnl For backward compatibility. Some configure.ins may be using this.
-    nls_cv_header_intl=
-    nls_cv_header_libgt=
-
-    dnl For backward compatibility. Some Makefiles may be using this.
-    DATADIRNAME=share
-    AC_SUBST([DATADIRNAME])
-
-    dnl For backward compatibility. Some Makefiles may be using this.
-    INSTOBJEXT=.mo
-    AC_SUBST([INSTOBJEXT])
-
-    dnl For backward compatibility. Some Makefiles may be using this.
-    GENCAT=gencat
-    AC_SUBST([GENCAT])
-
-    dnl For backward compatibility. Some Makefiles may be using this.
-    INTLOBJS=
-    if test "$USE_INCLUDED_LIBINTL" = yes; then
-      INTLOBJS="\$(GETTOBJS)"
-    fi
-    AC_SUBST([INTLOBJS])
-
-    dnl Enable libtool support if the surrounding package wishes it.
-    INTL_LIBTOOL_SUFFIX_PREFIX=gt_libtool_suffix_prefix
-    AC_SUBST([INTL_LIBTOOL_SUFFIX_PREFIX])
   ])
 
   dnl For backward compatibility. Some Makefiles may be using this.
@@ -399,3 +380,7 @@ AC_DEFUN([AM_GNU_GETTEXT_NEED],
 
 dnl Usage: AM_GNU_GETTEXT_VERSION([gettext-version])
 AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
+
+
+dnl Usage: AM_GNU_GETTEXT_REQUIRE_VERSION([gettext-version])
+AC_DEFUN([AM_GNU_GETTEXT_REQUIRE_VERSION], [])
diff --git a/m4/glibc2.m4 b/m4/glibc2.m4
deleted file mode 100644 (file)
index e8f5bfe..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-# glibc2.m4 serial 1
-dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-# Test for the GNU C Library, version 2.0 or newer.
-# From Bruno Haible.
-
-AC_DEFUN([gt_GLIBC2],
-  [
-    AC_CACHE_CHECK(whether we are using the GNU C Library 2 or newer,
-      ac_cv_gnu_library_2,
-      [AC_EGREP_CPP([Lucky GNU user],
-       [
-#include <features.h>
-#ifdef __GNU_LIBRARY__
- #if (__GLIBC__ >= 2)
-  Lucky GNU user
- #endif
-#endif
-       ],
-       ac_cv_gnu_library_2=yes,
-       ac_cv_gnu_library_2=no)
-      ]
-    )
-    AC_SUBST(GLIBC2)
-    GLIBC2="$ac_cv_gnu_library_2"
-  ]
-)
diff --git a/m4/glibc21.m4 b/m4/glibc21.m4
deleted file mode 100644 (file)
index d95fd98..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-# glibc21.m4 serial 3
-dnl Copyright (C) 2000-2002, 2004 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-# Test for the GNU C Library, version 2.1 or newer.
-# From Bruno Haible.
-
-AC_DEFUN([gl_GLIBC21],
-  [
-    AC_CACHE_CHECK(whether we are using the GNU C Library 2.1 or newer,
-      ac_cv_gnu_library_2_1,
-      [AC_EGREP_CPP([Lucky GNU user],
-       [
-#include <features.h>
-#ifdef __GNU_LIBRARY__
- #if (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 1) || (__GLIBC__ > 2)
-  Lucky GNU user
- #endif
-#endif
-       ],
-       ac_cv_gnu_library_2_1=yes,
-       ac_cv_gnu_library_2_1=no)
-      ]
-    )
-    AC_SUBST(GLIBC21)
-    GLIBC21="$ac_cv_gnu_library_2_1"
-  ]
-)
diff --git a/m4/host-cpu-c-abi.m4 b/m4/host-cpu-c-abi.m4
new file mode 100644 (file)
index 0000000..64e28b1
--- /dev/null
@@ -0,0 +1,675 @@
+# host-cpu-c-abi.m4 serial 14
+dnl Copyright (C) 2002-2021 Free Software Foundation, Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+
+dnl From Bruno Haible and Sam Steingold.
+
+dnl Sets the HOST_CPU variable to the canonical name of the CPU.
+dnl Sets the HOST_CPU_C_ABI variable to the canonical name of the CPU with its
+dnl C language ABI (application binary interface).
+dnl Also defines __${HOST_CPU}__ and __${HOST_CPU_C_ABI}__ as C macros in
+dnl config.h.
+dnl
+dnl This canonical name can be used to select a particular assembly language
+dnl source file that will interoperate with C code on the given host.
+dnl
+dnl For example:
+dnl * 'i386' and 'sparc' are different canonical names, because code for i386
+dnl   will not run on SPARC CPUs and vice versa. They have different
+dnl   instruction sets.
+dnl * 'sparc' and 'sparc64' are different canonical names, because code for
+dnl   'sparc' and code for 'sparc64' cannot be linked together: 'sparc' code
+dnl   contains 32-bit instructions, whereas 'sparc64' code contains 64-bit
+dnl   instructions. A process on a SPARC CPU can be in 32-bit mode or in 64-bit
+dnl   mode, but not both.
+dnl * 'mips' and 'mipsn32' are different canonical names, because they use
+dnl   different argument passing and return conventions for C functions, and
+dnl   although the instruction set of 'mips' is a large subset of the
+dnl   instruction set of 'mipsn32'.
+dnl * 'mipsn32' and 'mips64' are different canonical names, because they use
+dnl   different sizes for the C types like 'int' and 'void *', and although
+dnl   the instruction sets of 'mipsn32' and 'mips64' are the same.
+dnl * The same canonical name is used for different endiannesses. You can
+dnl   determine the endianness through preprocessor symbols:
+dnl   - 'arm': test __ARMEL__.
+dnl   - 'mips', 'mipsn32', 'mips64': test _MIPSEB vs. _MIPSEL.
+dnl   - 'powerpc64': test _BIG_ENDIAN vs. _LITTLE_ENDIAN.
+dnl * The same name 'i386' is used for CPUs of type i386, i486, i586
+dnl   (Pentium), AMD K7, Pentium II, Pentium IV, etc., because
+dnl   - Instructions that do not exist on all of these CPUs (cmpxchg,
+dnl     MMX, SSE, SSE2, 3DNow! etc.) are not frequently used. If your
+dnl     assembly language source files use such instructions, you will
+dnl     need to make the distinction.
+dnl   - Speed of execution of the common instruction set is reasonable across
+dnl     the entire family of CPUs. If you have assembly language source files
+dnl     that are optimized for particular CPU types (like GNU gmp has), you
+dnl     will need to make the distinction.
+dnl   See <https://en.wikipedia.org/wiki/X86_instruction_listings>.
+AC_DEFUN([gl_HOST_CPU_C_ABI],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_REQUIRE([gl_C_ASM])
+  AC_CACHE_CHECK([host CPU and C ABI], [gl_cv_host_cpu_c_abi],
+    [case "$host_cpu" in
+
+changequote(,)dnl
+       i[34567]86 )
+changequote([,])dnl
+         gl_cv_host_cpu_c_abi=i386
+         ;;
+
+       x86_64 )
+         # On x86_64 systems, the C compiler may be generating code in one of
+         # these ABIs:
+         # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
+         # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
+         #   with native Windows (mingw, MSVC).
+         # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
+         # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#if (defined __x86_64__ || defined __amd64__ \
+                     || defined _M_X64 || defined _M_AMD64)
+                 int ok;
+                #else
+                 error fail
+                #endif
+              ]])],
+           [AC_COMPILE_IFELSE(
+              [AC_LANG_SOURCE(
+                 [[#if defined __ILP32__ || defined _ILP32
+                    int ok;
+                   #else
+                    error fail
+                   #endif
+                 ]])],
+              [gl_cv_host_cpu_c_abi=x86_64-x32],
+              [gl_cv_host_cpu_c_abi=x86_64])],
+           [gl_cv_host_cpu_c_abi=i386])
+         ;;
+
+changequote(,)dnl
+       alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] )
+changequote([,])dnl
+         gl_cv_host_cpu_c_abi=alpha
+         ;;
+
+       arm* | aarch64 )
+         # Assume arm with EABI.
+         # On arm64 systems, the C compiler may be generating code in one of
+         # these ABIs:
+         # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
+         # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
+         # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#ifdef __aarch64__
+                 int ok;
+                #else
+                 error fail
+                #endif
+              ]])],
+           [AC_COMPILE_IFELSE(
+              [AC_LANG_SOURCE(
+                [[#if defined __ILP32__ || defined _ILP32
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+                ]])],
+              [gl_cv_host_cpu_c_abi=arm64-ilp32],
+              [gl_cv_host_cpu_c_abi=arm64])],
+           [# Don't distinguish little-endian and big-endian arm, since they
+            # don't require different machine code for simple operations and
+            # since the user can distinguish them through the preprocessor
+            # defines __ARMEL__ vs. __ARMEB__.
+            # But distinguish arm which passes floating-point arguments and
+            # return values in integer registers (r0, r1, ...) - this is
+            # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which
+            # passes them in float registers (s0, s1, ...) and double registers
+            # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer
+            # sets the preprocessor defines __ARM_PCS (for the first case) and
+            # __ARM_PCS_VFP (for the second case), but older GCC does not.
+            echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c
+            # Look for a reference to the register d0 in the .s file.
+            AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1
+            if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then
+              gl_cv_host_cpu_c_abi=armhf
+            else
+              gl_cv_host_cpu_c_abi=arm
+            fi
+            rm -f conftest*
+           ])
+         ;;
+
+       hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
+         # On hppa, the C compiler may be generating 32-bit code or 64-bit
+         # code. In the latter case, it defines _LP64 and __LP64__.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#ifdef __LP64__
+                 int ok;
+                #else
+                 error fail
+                #endif
+              ]])],
+           [gl_cv_host_cpu_c_abi=hppa64],
+           [gl_cv_host_cpu_c_abi=hppa])
+         ;;
+
+       ia64* )
+         # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
+         # 32-bit code. In the latter case, it defines _ILP32.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#ifdef _ILP32
+                 int ok;
+                #else
+                 error fail
+                #endif
+              ]])],
+           [gl_cv_host_cpu_c_abi=ia64-ilp32],
+           [gl_cv_host_cpu_c_abi=ia64])
+         ;;
+
+       mips* )
+         # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
+         # at 32.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
+                 int ok;
+                #else
+                 error fail
+                #endif
+              ]])],
+           [gl_cv_host_cpu_c_abi=mips64],
+           [# In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but
+            # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIN32.
+            # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but
+            # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIO32.
+            AC_COMPILE_IFELSE(
+              [AC_LANG_SOURCE(
+                 [[#if (_MIPS_SIM == _ABIN32)
+                    int ok;
+                   #else
+                    error fail
+                   #endif
+                 ]])],
+              [gl_cv_host_cpu_c_abi=mipsn32],
+              [gl_cv_host_cpu_c_abi=mips])])
+         ;;
+
+       powerpc* )
+         # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
+         # No need to distinguish them here; the caller may distinguish
+         # them based on the OS.
+         # On powerpc64 systems, the C compiler may still be generating
+         # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
+         # be generating 64-bit code.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#if defined __powerpc64__ || defined __LP64__
+                 int ok;
+                #else
+                 error fail
+                #endif
+              ]])],
+           [# On powerpc64, there are two ABIs on Linux: The AIX compatible
+            # one and the ELFv2 one. The latter defines _CALL_ELF=2.
+            AC_COMPILE_IFELSE(
+              [AC_LANG_SOURCE(
+                 [[#if defined _CALL_ELF && _CALL_ELF == 2
+                    int ok;
+                   #else
+                    error fail
+                   #endif
+                 ]])],
+              [gl_cv_host_cpu_c_abi=powerpc64-elfv2],
+              [gl_cv_host_cpu_c_abi=powerpc64])
+           ],
+           [gl_cv_host_cpu_c_abi=powerpc])
+         ;;
+
+       rs6000 )
+         gl_cv_host_cpu_c_abi=powerpc
+         ;;
+
+       riscv32 | riscv64 )
+         # There are 2 architectures (with variants): rv32* and rv64*.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#if __riscv_xlen == 64
+                  int ok;
+                #else
+                  error fail
+                #endif
+              ]])],
+           [cpu=riscv64],
+           [cpu=riscv32])
+         # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
+         # Size of 'long' and 'void *':
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#if defined __LP64__
+                  int ok;
+                #else
+                  error fail
+                #endif
+              ]])],
+           [main_abi=lp64],
+           [main_abi=ilp32])
+         # Float ABIs:
+         # __riscv_float_abi_double:
+         #   'float' and 'double' are passed in floating-point registers.
+         # __riscv_float_abi_single:
+         #   'float' are passed in floating-point registers.
+         # __riscv_float_abi_soft:
+         #   No values are passed in floating-point registers.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#if defined __riscv_float_abi_double
+                  int ok;
+                #else
+                  error fail
+                #endif
+              ]])],
+           [float_abi=d],
+           [AC_COMPILE_IFELSE(
+              [AC_LANG_SOURCE(
+                 [[#if defined __riscv_float_abi_single
+                     int ok;
+                   #else
+                     error fail
+                   #endif
+                 ]])],
+              [float_abi=f],
+              [float_abi=''])
+           ])
+         gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}"
+         ;;
+
+       s390* )
+         # On s390x, the C compiler may be generating 64-bit (= s390x) code
+         # or 31-bit (= s390) code.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#if defined __LP64__ || defined __s390x__
+                  int ok;
+                #else
+                  error fail
+                #endif
+              ]])],
+           [gl_cv_host_cpu_c_abi=s390x],
+           [gl_cv_host_cpu_c_abi=s390])
+         ;;
+
+       sparc | sparc64 )
+         # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
+         # C compiler still generates 32-bit code.
+         AC_COMPILE_IFELSE(
+           [AC_LANG_SOURCE(
+              [[#if defined __sparcv9 || defined __arch64__
+                 int ok;
+                #else
+                 error fail
+                #endif
+              ]])],
+           [gl_cv_host_cpu_c_abi=sparc64],
+           [gl_cv_host_cpu_c_abi=sparc])
+         ;;
+
+       *)
+         gl_cv_host_cpu_c_abi="$host_cpu"
+         ;;
+     esac
+    ])
+
+  dnl In most cases, $HOST_CPU and $HOST_CPU_C_ABI are the same.
+  HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'`
+  HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi"
+  AC_SUBST([HOST_CPU])
+  AC_SUBST([HOST_CPU_C_ABI])
+
+  # This was
+  #   AC_DEFINE_UNQUOTED([__${HOST_CPU}__])
+  #   AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__])
+  # earlier, but KAI C++ 3.2d doesn't like this.
+  sed -e 's/-/_/g' >> confdefs.h <<EOF
+#ifndef __${HOST_CPU}__
+#define __${HOST_CPU}__ 1
+#endif
+#ifndef __${HOST_CPU_C_ABI}__
+#define __${HOST_CPU_C_ABI}__ 1
+#endif
+EOF
+  AH_TOP([/* CPU and C ABI indicator */
+#ifndef __i386__
+#undef __i386__
+#endif
+#ifndef __x86_64_x32__
+#undef __x86_64_x32__
+#endif
+#ifndef __x86_64__
+#undef __x86_64__
+#endif
+#ifndef __alpha__
+#undef __alpha__
+#endif
+#ifndef __arm__
+#undef __arm__
+#endif
+#ifndef __armhf__
+#undef __armhf__
+#endif
+#ifndef __arm64_ilp32__
+#undef __arm64_ilp32__
+#endif
+#ifndef __arm64__
+#undef __arm64__
+#endif
+#ifndef __hppa__
+#undef __hppa__
+#endif
+#ifndef __hppa64__
+#undef __hppa64__
+#endif
+#ifndef __ia64_ilp32__
+#undef __ia64_ilp32__
+#endif
+#ifndef __ia64__
+#undef __ia64__
+#endif
+#ifndef __m68k__
+#undef __m68k__
+#endif
+#ifndef __mips__
+#undef __mips__
+#endif
+#ifndef __mipsn32__
+#undef __mipsn32__
+#endif
+#ifndef __mips64__
+#undef __mips64__
+#endif
+#ifndef __powerpc__
+#undef __powerpc__
+#endif
+#ifndef __powerpc64__
+#undef __powerpc64__
+#endif
+#ifndef __powerpc64_elfv2__
+#undef __powerpc64_elfv2__
+#endif
+#ifndef __riscv32__
+#undef __riscv32__
+#endif
+#ifndef __riscv64__
+#undef __riscv64__
+#endif
+#ifndef __riscv32_ilp32__
+#undef __riscv32_ilp32__
+#endif
+#ifndef __riscv32_ilp32f__
+#undef __riscv32_ilp32f__
+#endif
+#ifndef __riscv32_ilp32d__
+#undef __riscv32_ilp32d__
+#endif
+#ifndef __riscv64_ilp32__
+#undef __riscv64_ilp32__
+#endif
+#ifndef __riscv64_ilp32f__
+#undef __riscv64_ilp32f__
+#endif
+#ifndef __riscv64_ilp32d__
+#undef __riscv64_ilp32d__
+#endif
+#ifndef __riscv64_lp64__
+#undef __riscv64_lp64__
+#endif
+#ifndef __riscv64_lp64f__
+#undef __riscv64_lp64f__
+#endif
+#ifndef __riscv64_lp64d__
+#undef __riscv64_lp64d__
+#endif
+#ifndef __s390__
+#undef __s390__
+#endif
+#ifndef __s390x__
+#undef __s390x__
+#endif
+#ifndef __sh__
+#undef __sh__
+#endif
+#ifndef __sparc__
+#undef __sparc__
+#endif
+#ifndef __sparc64__
+#undef __sparc64__
+#endif
+])
+
+])
+
+
+dnl Sets the HOST_CPU_C_ABI_32BIT variable to 'yes' if the C language ABI
+dnl (application binary interface) is a 32-bit one, to 'no' if it is a 64-bit
+dnl one, or to 'unknown' if unknown.
+dnl This is a simplified variant of gl_HOST_CPU_C_ABI.
+AC_DEFUN([gl_HOST_CPU_C_ABI_32BIT],
+[
+  AC_REQUIRE([AC_CANONICAL_HOST])
+  AC_CACHE_CHECK([32-bit host C ABI], [gl_cv_host_cpu_c_abi_32bit],
+    [if test -n "$gl_cv_host_cpu_c_abi"; then
+       case "$gl_cv_host_cpu_c_abi" in
+         i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc)
+           gl_cv_host_cpu_c_abi_32bit=yes ;;
+         x86_64 | alpha | arm64 | hppa64 | ia64 | mips64 | powerpc64 | powerpc64-elfv2 | riscv*-lp64* | s390x | sparc64 )
+           gl_cv_host_cpu_c_abi_32bit=no ;;
+         *)
+           gl_cv_host_cpu_c_abi_32bit=unknown ;;
+       esac
+     else
+       case "$host_cpu" in
+
+         # CPUs that only support a 32-bit ABI.
+         arc \
+         | bfin \
+         | cris* \
+         | csky \
+         | epiphany \
+         | ft32 \
+         | h8300 \
+         | m68k \
+         | microblaze | microblazeel \
+         | nds32 | nds32le | nds32be \
+         | nios2 | nios2eb | nios2el \
+         | or1k* \
+         | or32 \
+         | sh | sh[1234] | sh[1234]e[lb] \
+         | tic6x \
+         | xtensa* )
+           gl_cv_host_cpu_c_abi_32bit=yes
+           ;;
+
+         # CPUs that only support a 64-bit ABI.
+changequote(,)dnl
+         alpha | alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] \
+         | mmix )
+changequote([,])dnl
+           gl_cv_host_cpu_c_abi_32bit=no
+           ;;
+
+changequote(,)dnl
+         i[34567]86 )
+changequote([,])dnl
+           gl_cv_host_cpu_c_abi_32bit=yes
+           ;;
+
+         x86_64 )
+           # On x86_64 systems, the C compiler may be generating code in one of
+           # these ABIs:
+           # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64.
+           # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64
+           #   with native Windows (mingw, MSVC).
+           # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32.
+           # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386.
+           AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE(
+                [[#if (defined __x86_64__ || defined __amd64__ \
+                       || defined _M_X64 || defined _M_AMD64) \
+                      && !(defined __ILP32__ || defined _ILP32)
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+                ]])],
+             [gl_cv_host_cpu_c_abi_32bit=no],
+             [gl_cv_host_cpu_c_abi_32bit=yes])
+           ;;
+
+         arm* | aarch64 )
+           # Assume arm with EABI.
+           # On arm64 systems, the C compiler may be generating code in one of
+           # these ABIs:
+           # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64.
+           # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32.
+           # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf.
+           AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE(
+                [[#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32)
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+                ]])],
+             [gl_cv_host_cpu_c_abi_32bit=no],
+             [gl_cv_host_cpu_c_abi_32bit=yes])
+           ;;
+
+         hppa1.0 | hppa1.1 | hppa2.0* | hppa64 )
+           # On hppa, the C compiler may be generating 32-bit code or 64-bit
+           # code. In the latter case, it defines _LP64 and __LP64__.
+           AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE(
+                [[#ifdef __LP64__
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+                ]])],
+             [gl_cv_host_cpu_c_abi_32bit=no],
+             [gl_cv_host_cpu_c_abi_32bit=yes])
+           ;;
+
+         ia64* )
+           # On ia64 on HP-UX, the C compiler may be generating 64-bit code or
+           # 32-bit code. In the latter case, it defines _ILP32.
+           AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE(
+                [[#ifdef _ILP32
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+                ]])],
+             [gl_cv_host_cpu_c_abi_32bit=yes],
+             [gl_cv_host_cpu_c_abi_32bit=no])
+           ;;
+
+         mips* )
+           # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this
+           # at 32.
+           AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE(
+                [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64)
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+                ]])],
+             [gl_cv_host_cpu_c_abi_32bit=no],
+             [gl_cv_host_cpu_c_abi_32bit=yes])
+           ;;
+
+         powerpc* )
+           # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD.
+           # No need to distinguish them here; the caller may distinguish
+           # them based on the OS.
+           # On powerpc64 systems, the C compiler may still be generating
+           # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may
+           # be generating 64-bit code.
+           AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE(
+                [[#if defined __powerpc64__ || defined __LP64__
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+                ]])],
+             [gl_cv_host_cpu_c_abi_32bit=no],
+             [gl_cv_host_cpu_c_abi_32bit=yes])
+           ;;
+
+         rs6000 )
+           gl_cv_host_cpu_c_abi_32bit=yes
+           ;;
+
+         riscv32 | riscv64 )
+           # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d.
+           # Size of 'long' and 'void *':
+           AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE(
+                [[#if defined __LP64__
+                    int ok;
+                  #else
+                    error fail
+                  #endif
+                ]])],
+             [gl_cv_host_cpu_c_abi_32bit=no],
+             [gl_cv_host_cpu_c_abi_32bit=yes])
+           ;;
+
+         s390* )
+           # On s390x, the C compiler may be generating 64-bit (= s390x) code
+           # or 31-bit (= s390) code.
+           AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE(
+                [[#if defined __LP64__ || defined __s390x__
+                    int ok;
+                  #else
+                    error fail
+                  #endif
+                ]])],
+             [gl_cv_host_cpu_c_abi_32bit=no],
+             [gl_cv_host_cpu_c_abi_32bit=yes])
+           ;;
+
+         sparc | sparc64 )
+           # UltraSPARCs running Linux have `uname -m` = "sparc64", but the
+           # C compiler still generates 32-bit code.
+           AC_COMPILE_IFELSE(
+             [AC_LANG_SOURCE(
+                [[#if defined __sparcv9 || defined __arch64__
+                   int ok;
+                  #else
+                   error fail
+                  #endif
+                ]])],
+             [gl_cv_host_cpu_c_abi_32bit=no],
+             [gl_cv_host_cpu_c_abi_32bit=yes])
+           ;;
+
+         *)
+           gl_cv_host_cpu_c_abi_32bit=unknown
+           ;;
+       esac
+     fi
+    ])
+
+  HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit"
+])
index a285e9d..d0e61de 100644 (file)
@@ -1,5 +1,5 @@
-# iconv.m4 serial 21
-dnl Copyright (C) 2000-2002, 2007-2014, 2016-2019 Free Software Foundation,
+# iconv.m4 serial 24
+dnl Copyright (C) 2000-2002, 2007-2014, 2016-2021 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -7,6 +7,12 @@ dnl with or without modifications, as long as this notice is preserved.
 
 dnl From Bruno Haible.
 
+AC_PREREQ([2.64])
+
+dnl Note: AM_ICONV is documented in the GNU gettext manual
+dnl <https://www.gnu.org/software/gettext/manual/html_node/AM_005fICONV.html>.
+dnl Don't make changes that are incompatible with that documentation!
+
 AC_DEFUN([AM_ICONV_LINKFLAGS_BODY],
 [
   dnl Prerequisites of AC_LIB_LINKFLAGS_BODY.
@@ -86,8 +92,9 @@ AC_DEFUN([AM_ICONV_LINK],
 #endif
              ]],
              [[int result = 0;
-  /* Test against AIX 5.1 bug: Failures are not distinguishable from successful
-     returns.  */
+  /* Test against AIX 5.1...7.2 bug: Failures are not distinguishable from
+     successful returns.  This is even documented in
+     <https://www.ibm.com/support/knowledgecenter/ssw_aix_72/i_bostechref/iconv.html> */
   {
     iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8");
     if (cd_utf8_to_88591 != (iconv_t)(-1))
@@ -225,8 +232,7 @@ AC_DEFUN([AM_ICONV_LINK],
   AC_SUBST([LTLIBICONV])
 ])
 
-dnl Define AM_ICONV using AC_DEFUN_ONCE for Autoconf >= 2.64, in order to
-dnl avoid warnings like
+dnl Define AM_ICONV using AC_DEFUN_ONCE, in order to avoid warnings like
 dnl "warning: AC_REQUIRE: `AM_ICONV' was expanded before it was required".
 dnl This is tricky because of the way 'aclocal' is implemented:
 dnl - It requires defining an auxiliary macro whose name ends in AC_DEFUN.
@@ -234,54 +240,43 @@ dnl   Otherwise aclocal's initial scan pass would miss the macro definition.
 dnl - It requires a line break inside the AC_DEFUN_ONCE and AC_DEFUN expansions.
 dnl   Otherwise aclocal would emit many "Use of uninitialized value $1"
 dnl   warnings.
-m4_define([gl_iconv_AC_DEFUN],
-  m4_version_prereq([2.64],
-    [[AC_DEFUN_ONCE(
-        [$1], [$2])]],
-    [m4_ifdef([gl_00GNULIB],
-       [[AC_DEFUN_ONCE(
-           [$1], [$2])]],
-       [[AC_DEFUN(
-           [$1], [$2])]])]))
-gl_iconv_AC_DEFUN([AM_ICONV],
+AC_DEFUN_ONCE([AM_ICONV],
 [
   AM_ICONV_LINK
   if test "$am_cv_func_iconv" = yes; then
-    AC_MSG_CHECKING([for iconv declaration])
-    AC_CACHE_VAL([am_cv_proto_iconv], [
-      AC_COMPILE_IFELSE(
-        [AC_LANG_PROGRAM(
-           [[
+    AC_CACHE_CHECK([whether iconv is compatible with its POSIX signature],
+      [gl_cv_iconv_nonconst],
+      [AC_COMPILE_IFELSE(
+         [AC_LANG_PROGRAM(
+            [[
 #include <stdlib.h>
 #include <iconv.h>
 extern
 #ifdef __cplusplus
 "C"
 #endif
-#if defined(__STDC__) || defined(_MSC_VER) || defined(__cplusplus)
 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
-#else
-size_t iconv();
-#endif
-           ]],
-           [[]])],
-        [am_cv_proto_iconv_arg1=""],
-        [am_cv_proto_iconv_arg1="const"])
-      am_cv_proto_iconv="extern size_t iconv (iconv_t cd, $am_cv_proto_iconv_arg1 char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);"])
-    am_cv_proto_iconv=`echo "[$]am_cv_proto_iconv" | tr -s ' ' | sed -e 's/( /(/'`
-    AC_MSG_RESULT([
-         $am_cv_proto_iconv])
+            ]],
+            [[]])],
+         [gl_cv_iconv_nonconst=yes],
+         [gl_cv_iconv_nonconst=no])
+      ])
   else
     dnl When compiling GNU libiconv on a system that does not have iconv yet,
     dnl pick the POSIX compliant declaration without 'const'.
-    am_cv_proto_iconv_arg1=""
+    gl_cv_iconv_nonconst=yes
+  fi
+  if test $gl_cv_iconv_nonconst = yes; then
+    iconv_arg1=""
+  else
+    iconv_arg1="const"
   fi
-  AC_DEFINE_UNQUOTED([ICONV_CONST], [$am_cv_proto_iconv_arg1],
+  AC_DEFINE_UNQUOTED([ICONV_CONST], [$iconv_arg1],
     [Define as const if the declaration of iconv() needs const.])
   dnl Also substitute ICONV_CONST in the gnulib generated <iconv.h>.
   m4_ifdef([gl_ICONV_H_DEFAULTS],
     [AC_REQUIRE([gl_ICONV_H_DEFAULTS])
-     if test -n "$am_cv_proto_iconv_arg1"; then
+     if test $gl_cv_iconv_nonconst != yes; then
        ICONV_CONST="const"
      fi
     ])
diff --git a/m4/intdiv0.m4 b/m4/intdiv0.m4
deleted file mode 100644 (file)
index b8d7817..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-# intdiv0.m4 serial 1 (gettext-0.11.3)
-dnl Copyright (C) 2002 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([gt_INTDIV0],
-[
-  AC_REQUIRE([AC_PROG_CC])dnl
-  AC_REQUIRE([AC_CANONICAL_HOST])dnl
-
-  AC_CACHE_CHECK([whether integer division by zero raises SIGFPE],
-    gt_cv_int_divbyzero_sigfpe,
-    [
-      AC_TRY_RUN([
-#include <stdlib.h>
-#include <signal.h>
-
-static void
-#ifdef __cplusplus
-sigfpe_handler (int sig)
-#else
-sigfpe_handler (sig) int sig;
-#endif
-{
-  /* Exit with code 0 if SIGFPE, with code 1 if any other signal.  */
-  exit (sig != SIGFPE);
-}
-
-int x = 1;
-int y = 0;
-int z;
-int nan;
-
-int main ()
-{
-  signal (SIGFPE, sigfpe_handler);
-/* IRIX and AIX (when "xlc -qcheck" is used) yield signal SIGTRAP.  */
-#if (defined (__sgi) || defined (_AIX)) && defined (SIGTRAP)
-  signal (SIGTRAP, sigfpe_handler);
-#endif
-/* Linux/SPARC yields signal SIGILL.  */
-#if defined (__sparc__) && defined (__linux__)
-  signal (SIGILL, sigfpe_handler);
-#endif
-
-  z = x / y;
-  nan = y / y;
-  exit (1);
-}
-], gt_cv_int_divbyzero_sigfpe=yes, gt_cv_int_divbyzero_sigfpe=no,
-        [
-          # Guess based on the CPU.
-          case "$host_cpu" in
-            alpha* | i[34567]86 | m68k | s390*)
-              gt_cv_int_divbyzero_sigfpe="guessing yes";;
-            *)
-              gt_cv_int_divbyzero_sigfpe="guessing no";;
-          esac
-        ])
-    ])
-  case "$gt_cv_int_divbyzero_sigfpe" in
-    *yes) value=1;;
-    *) value=0;;
-  esac
-  AC_DEFINE_UNQUOTED(INTDIV0_RAISES_SIGFPE, $value,
-    [Define if integer division by zero raises signal SIGFPE.])
-])
diff --git a/m4/intmax.m4 b/m4/intmax.m4
deleted file mode 100644 (file)
index d99c999..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-# intmax.m4 serial 2 (gettext-0.14.2)
-dnl Copyright (C) 2002-2005 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-dnl Test whether the system has the 'intmax_t' type, but don't attempt to
-dnl find a replacement if it is lacking.
-
-AC_DEFUN([gt_TYPE_INTMAX_T],
-[
-  AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
-  AC_REQUIRE([gl_AC_HEADER_STDINT_H])
-  AC_CACHE_CHECK(for intmax_t, gt_cv_c_intmax_t,
-    [AC_TRY_COMPILE([
-#include <stddef.h>
-#include <stdlib.h>
-#if HAVE_STDINT_H_WITH_UINTMAX
-#include <stdint.h>
-#endif
-#if HAVE_INTTYPES_H_WITH_UINTMAX
-#include <inttypes.h>
-#endif
-], [intmax_t x = -1;], gt_cv_c_intmax_t=yes, gt_cv_c_intmax_t=no)])
-  if test $gt_cv_c_intmax_t = yes; then
-    AC_DEFINE(HAVE_INTMAX_T, 1,
-      [Define if you have the 'intmax_t' type in <stdint.h> or <inttypes.h>.])
-  fi
-])
diff --git a/m4/inttypes-h.m4 b/m4/inttypes-h.m4
deleted file mode 100644 (file)
index d7ec94c..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-# inttypes-h.m4 serial 1 (gettext-0.15)
-dnl Copyright (C) 1997-2002, 2006 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Paul Eggert.
-
-# Define HAVE_INTTYPES_H if <inttypes.h> exists and doesn't clash with
-# <sys/types.h>.
-
-AC_DEFUN([gl_HEADER_INTTYPES_H],
-[
-  AC_CACHE_CHECK([for inttypes.h], gl_cv_header_inttypes_h,
-  [
-    AC_TRY_COMPILE(
-      [#include <sys/types.h>
-#include <inttypes.h>],
-      [], gl_cv_header_inttypes_h=yes, gl_cv_header_inttypes_h=no)
-  ])
-  if test $gl_cv_header_inttypes_h = yes; then
-    AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
-      [Define if <inttypes.h> exists and doesn't clash with <sys/types.h>.])
-  fi
-])
diff --git a/m4/inttypes-pri.m4 b/m4/inttypes-pri.m4
deleted file mode 100644 (file)
index ef00da7..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-# inttypes-pri.m4 serial 2 (gettext-0.15)
-dnl Copyright (C) 1997-2002, 2006 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-
-# Define PRI_MACROS_BROKEN if <inttypes.h> exists and defines the PRI*
-# macros to non-string values.  This is the case on AIX 4.3.3.
-
-AC_DEFUN([gt_INTTYPES_PRI],
-[
-  AC_REQUIRE([gl_HEADER_INTTYPES_H])
-  if test $gl_cv_header_inttypes_h = yes; then
-    AC_CACHE_CHECK([whether the inttypes.h PRIxNN macros are broken],
-      gt_cv_inttypes_pri_broken,
-      [
-        AC_TRY_COMPILE([#include <inttypes.h>
-#ifdef PRId32
-char *p = PRId32;
-#endif
-], [], gt_cv_inttypes_pri_broken=no, gt_cv_inttypes_pri_broken=yes)
-      ])
-  fi
-  if test "$gt_cv_inttypes_pri_broken" = yes; then
-    AC_DEFINE_UNQUOTED(PRI_MACROS_BROKEN, 1,
-      [Define if <inttypes.h> exists and defines unusable PRI* macros.])
-  fi
-])
diff --git a/m4/inttypes.m4 b/m4/inttypes.m4
deleted file mode 100644 (file)
index 779bcea..0000000
+++ /dev/null
@@ -1,25 +0,0 @@
-# inttypes.m4 serial 1 (gettext-0.11.4)
-dnl Copyright (C) 1997-2002 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Paul Eggert.
-
-# Define HAVE_INTTYPES_H if <inttypes.h> exists and doesn't clash with
-# <sys/types.h>.
-
-AC_DEFUN([gt_HEADER_INTTYPES_H],
-[
-  AC_CACHE_CHECK([for inttypes.h], gt_cv_header_inttypes_h,
-  [
-    AC_TRY_COMPILE(
-      [#include <sys/types.h>
-#include <inttypes.h>],
-      [], gt_cv_header_inttypes_h=yes, gt_cv_header_inttypes_h=no)
-  ])
-  if test $gt_cv_header_inttypes_h = yes; then
-    AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H, 1,
-      [Define if <inttypes.h> exists and doesn't clash with <sys/types.h>.])
-  fi
-])
diff --git a/m4/inttypes_h.m4 b/m4/inttypes_h.m4
deleted file mode 100644 (file)
index a5d075d..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-# inttypes_h.m4 serial 6
-dnl Copyright (C) 1997-2004 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Paul Eggert.
-
-# Define HAVE_INTTYPES_H_WITH_UINTMAX if <inttypes.h> exists,
-# doesn't clash with <sys/types.h>, and declares uintmax_t.
-
-AC_DEFUN([gl_AC_HEADER_INTTYPES_H],
-[
-  AC_CACHE_CHECK([for inttypes.h], gl_cv_header_inttypes_h,
-  [AC_TRY_COMPILE(
-    [#include <sys/types.h>
-#include <inttypes.h>],
-    [uintmax_t i = (uintmax_t) -1;],
-    gl_cv_header_inttypes_h=yes,
-    gl_cv_header_inttypes_h=no)])
-  if test $gl_cv_header_inttypes_h = yes; then
-    AC_DEFINE_UNQUOTED(HAVE_INTTYPES_H_WITH_UINTMAX, 1,
-      [Define if <inttypes.h> exists, doesn't clash with <sys/types.h>,
-       and declares uintmax_t. ])
-  fi
-])
diff --git a/m4/isc-posix.m4 b/m4/isc-posix.m4
deleted file mode 100644 (file)
index 74dc8f2..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-# isc-posix.m4 serial 2 (gettext-0.11.2)
-dnl Copyright (C) 1995-2002 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-# This file is not needed with autoconf-2.53 and newer.  Remove it in 2005.
-
-# This test replaces the one in autoconf.
-# Currently this macro should have the same name as the autoconf macro
-# because gettext's gettext.m4 (distributed in the automake package)
-# still uses it.  Otherwise, the use in gettext.m4 makes autoheader
-# give these diagnostics:
-#   configure.in:556: AC_TRY_COMPILE was called before AC_ISC_POSIX
-#   configure.in:556: AC_TRY_RUN was called before AC_ISC_POSIX
-
-undefine([AC_ISC_POSIX])
-
-AC_DEFUN([AC_ISC_POSIX],
-  [
-    dnl This test replaces the obsolescent AC_ISC_POSIX kludge.
-    AC_CHECK_LIB(cposix, strerror, [LIBS="$LIBS -lcposix"])
-  ]
-)
diff --git a/m4/lcmessage.m4 b/m4/lcmessage.m4
deleted file mode 100644 (file)
index 19aa77e..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-# lcmessage.m4 serial 4 (gettext-0.14.2)
-dnl Copyright (C) 1995-2002, 2004-2005 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
-dnl License but which still want to provide support for the GNU gettext
-dnl functionality.
-dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
-dnl They are *not* in the public domain.
-
-dnl Authors:
-dnl   Ulrich Drepper <drepper@cygnus.com>, 1995.
-
-# Check whether LC_MESSAGES is available in <locale.h>.
-
-AC_DEFUN([gt_LC_MESSAGES],
-[
-  AC_CACHE_CHECK([for LC_MESSAGES], gt_cv_val_LC_MESSAGES,
-    [AC_TRY_LINK([#include <locale.h>], [return LC_MESSAGES],
-       gt_cv_val_LC_MESSAGES=yes, gt_cv_val_LC_MESSAGES=no)])
-  if test $gt_cv_val_LC_MESSAGES = yes; then
-    AC_DEFINE(HAVE_LC_MESSAGES, 1,
-      [Define if your <locale.h> file defines LC_MESSAGES.])
-  fi
-])
index ddc569f..076358d 100644 (file)
@@ -1,5 +1,5 @@
-# lib-ld.m4 serial 6
-dnl Copyright (C) 1996-2003, 2009-2014 Free Software Foundation, Inc.
+# lib-ld.m4 serial 10
+dnl Copyright (C) 1996-2003, 2009-2021 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
@@ -47,73 +47,122 @@ if test "${PATH_SEPARATOR+set}" != set; then
        }
 fi
 
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
+if test -n "$LD"; then
+  AC_MSG_CHECKING([for ld])
+elif test "$GCC" = yes; then
   AC_MSG_CHECKING([for ld used by $CC])
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [[\\/]]* | ?:[[\\/]]*)
-      re_direlt='/[[^/]][[^/]]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`echo "$ac_prog"| sed 's%\\\\%/%g'`
-      while echo "$ac_prog" | grep "$re_direlt" > /dev/null 2>&1; do
-        ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
 elif test "$with_gnu_ld" = yes; then
   AC_MSG_CHECKING([for GNU ld])
 else
   AC_MSG_CHECKING([for non-GNU ld])
 fi
-AC_CACHE_VAL([acl_cv_path_LD],
-[if test -z "$LD"; then
-  acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$acl_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      acl_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-        test "$with_gnu_ld" != no && break
-        ;;
-      *)
-        test "$with_gnu_ld" != yes && break
-        ;;
+if test -n "$LD"; then
+  # Let the user override the test with a path.
+  :
+else
+  AC_CACHE_VAL([acl_cv_path_LD],
+  [
+    acl_cv_path_LD= # Final result of this test
+    ac_prog=ld # Program to search in $PATH
+    if test "$GCC" = yes; then
+      # Check if gcc -print-prog-name=ld gives a path.
+      case $host in
+        *-*-mingw*)
+          # gcc leaves a trailing carriage return which upsets mingw
+          acl_output=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
+        *)
+          acl_output=`($CC -print-prog-name=ld) 2>&5` ;;
+      esac
+      case $acl_output in
+        # Accept absolute paths.
+        [[\\/]]* | ?:[[\\/]]*)
+          re_direlt='/[[^/]][[^/]]*/\.\./'
+          # Canonicalize the pathname of ld
+          acl_output=`echo "$acl_output" | sed 's%\\\\%/%g'`
+          while echo "$acl_output" | grep "$re_direlt" > /dev/null 2>&1; do
+            acl_output=`echo $acl_output | sed "s%$re_direlt%/%"`
+          done
+          # Got the pathname. No search in PATH is needed.
+          acl_cv_path_LD="$acl_output"
+          ac_prog=
+          ;;
+        "")
+          # If it fails, then pretend we aren't using GCC.
+          ;;
+        *)
+          # If it is relative, then search for the first ld in PATH.
+          with_gnu_ld=unknown
+          ;;
       esac
     fi
-  done
-  IFS="$acl_save_ifs"
-else
-  acl_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$acl_cv_path_LD"
+    if test -n "$ac_prog"; then
+      # Search for $ac_prog in $PATH.
+      acl_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
+      for ac_dir in $PATH; do
+        IFS="$acl_save_ifs"
+        test -z "$ac_dir" && ac_dir=.
+        if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
+          acl_cv_path_LD="$ac_dir/$ac_prog"
+          # Check to see if the program is GNU ld.  I'd rather use --version,
+          # but apparently some variants of GNU ld only accept -v.
+          # Break only if it was the GNU/non-GNU ld that we prefer.
+          case `"$acl_cv_path_LD" -v 2>&1 </dev/null` in
+            *GNU* | *'with BFD'*)
+              test "$with_gnu_ld" != no && break
+              ;;
+            *)
+              test "$with_gnu_ld" != yes && break
+              ;;
+          esac
+        fi
+      done
+      IFS="$acl_save_ifs"
+    fi
+    case $host in
+      *-*-aix*)
+        AC_COMPILE_IFELSE(
+          [AC_LANG_SOURCE(
+             [[#if defined __powerpc64__ || defined __LP64__
+                int ok;
+               #else
+                error fail
+               #endif
+             ]])],
+          [# The compiler produces 64-bit code. Add option '-b64' so that the
+           # linker groks 64-bit object files.
+           case "$acl_cv_path_LD " in
+             *" -b64 "*) ;;
+             *) acl_cv_path_LD="$acl_cv_path_LD -b64" ;;
+           esac
+          ], [])
+        ;;
+      sparc64-*-netbsd*)
+        AC_COMPILE_IFELSE(
+          [AC_LANG_SOURCE(
+             [[#if defined __sparcv9 || defined __arch64__
+                int ok;
+               #else
+                error fail
+               #endif
+             ]])],
+          [],
+          [# The compiler produces 32-bit code. Add option '-m elf32_sparc'
+           # so that the linker groks 32-bit object files.
+           case "$acl_cv_path_LD " in
+             *" -m elf32_sparc "*) ;;
+             *) acl_cv_path_LD="$acl_cv_path_LD -m elf32_sparc" ;;
+           esac
+          ])
+        ;;
+    esac
+  ])
+  LD="$acl_cv_path_LD"
+fi
 if test -n "$LD"; then
   AC_MSG_RESULT([$LD])
 else
   AC_MSG_RESULT([no])
+  AC_MSG_ERROR([no acceptable ld found in \$PATH])
 fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
 AC_LIB_PROG_LD_GNU
 ])
index 3522d99..787efab 100644 (file)
@@ -1,12 +1,12 @@
-# lib-link.m4 serial 26 (gettext-0.18.2)
-dnl Copyright (C) 2001-2014 Free Software Foundation, Inc.
+# lib-link.m4 serial 32
+dnl Copyright (C) 2001-2021 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
 dnl From Bruno Haible.
 
-AC_PREREQ([2.54])
+AC_PREREQ([2.61])
 
 dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and
 dnl the libraries corresponding to explicit and implicit dependencies.
@@ -124,8 +124,8 @@ dnl   acl_hardcode_direct,
 dnl   acl_hardcode_minus_L.
 AC_DEFUN([AC_LIB_RPATH],
 [
-  dnl Tell automake >= 1.10 to complain if config.rpath is missing.
-  m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])])
+  dnl Complain if config.rpath is missing.
+  AC_REQUIRE_AUX_FILE([config.rpath])
   AC_REQUIRE([AC_PROG_CC])                dnl we use $CC, $GCC, $LDFLAGS
   AC_REQUIRE([AC_LIB_PROG_LD])            dnl we use $LD, $with_gnu_ld
   AC_REQUIRE([AC_CANONICAL_HOST])         dnl we use $host
@@ -187,17 +187,17 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
   pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-],
                                      [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])])
   pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])])
-  dnl Autoconf >= 2.61 supports dots in --with options.
-  pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)])
   dnl By default, look in $includedir and $libdir.
   use_additional=yes
   AC_LIB_WITH_FINAL_PREFIX([
     eval additional_includedir=\"$includedir\"
     eval additional_libdir=\"$libdir\"
+    eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
+    eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
   ])
-  AC_ARG_WITH(P_A_C_K[-prefix],
-[[  --with-]]P_A_C_K[[-prefix[=DIR]  search for ]PACKLIBS[ in DIR/include and DIR/lib
-  --without-]]P_A_C_K[[-prefix     don't search for ]PACKLIBS[ in includedir and libdir]],
+  AC_ARG_WITH(PACK[-prefix],
+[[  --with-]]PACK[[-prefix[=DIR]  search for ]PACKLIBS[ in DIR/include and DIR/lib
+  --without-]]PACK[[-prefix     don't search for ]PACKLIBS[ in includedir and libdir]],
 [
     if test "X$withval" = "Xno"; then
       use_additional=no
@@ -206,17 +206,23 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
         AC_LIB_WITH_FINAL_PREFIX([
           eval additional_includedir=\"$includedir\"
           eval additional_libdir=\"$libdir\"
+          eval additional_libdir2=\"$exec_prefix/$acl_libdirstem2\"
+          eval additional_libdir3=\"$exec_prefix/$acl_libdirstem3\"
         ])
       else
         additional_includedir="$withval/include"
         additional_libdir="$withval/$acl_libdirstem"
-        if test "$acl_libdirstem2" != "$acl_libdirstem" \
-           && ! test -d "$withval/$acl_libdirstem"; then
-          additional_libdir="$withval/$acl_libdirstem2"
-        fi
+        additional_libdir2="$withval/$acl_libdirstem2"
+        additional_libdir3="$withval/$acl_libdirstem3"
       fi
     fi
 ])
+  if test "X$additional_libdir2" = "X$additional_libdir"; then
+    additional_libdir2=
+  fi
+  if test "X$additional_libdir3" = "X$additional_libdir"; then
+    additional_libdir3=
+  fi
   dnl Search the library and its dependencies in $additional_libdir and
   dnl $LDFLAGS. Using breadth-first-seach.
   LIB[]NAME=
@@ -272,48 +278,54 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
             shrext=
           fi
           if test $use_additional = yes; then
-            dir="$additional_libdir"
-            dnl The same code as in the loop below:
-            dnl First look for a shared library.
-            if test -n "$acl_shlibext"; then
-              if test -f "$dir/$libname$shrext"; then
-                found_dir="$dir"
-                found_so="$dir/$libname$shrext"
-              else
-                if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
-                  ver=`(cd "$dir" && \
-                        for f in "$libname$shrext".*; do echo "$f"; done \
-                        | sed -e "s,^$libname$shrext\\\\.,," \
-                        | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
-                        | sed 1q ) 2>/dev/null`
-                  if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
-                    found_dir="$dir"
-                    found_so="$dir/$libname$shrext.$ver"
+            for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do
+              if test "X$found_dir" = "X"; then
+                eval dir=\$$additional_libdir_variable
+                if test -n "$dir"; then
+                  dnl The same code as in the loop below:
+                  dnl First look for a shared library.
+                  if test -n "$acl_shlibext"; then
+                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
+                      found_dir="$dir"
+                      found_so="$dir/$libname$shrext"
+                    else
+                      if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then
+                        ver=`(cd "$dir" && \
+                              for f in "$libname$shrext".*; do echo "$f"; done \
+                              | sed -e "s,^$libname$shrext\\\\.,," \
+                              | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
+                              | sed 1q ) 2>/dev/null`
+                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
+                          found_dir="$dir"
+                          found_so="$dir/$libname$shrext.$ver"
+                        fi
+                      else
+                        eval library_names=\"$acl_library_names_spec\"
+                        for f in $library_names; do
+                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
+                            found_dir="$dir"
+                            found_so="$dir/$f"
+                            break
+                          fi
+                        done
+                      fi
+                    fi
                   fi
-                else
-                  eval library_names=\"$acl_library_names_spec\"
-                  for f in $library_names; do
-                    if test -f "$dir/$f"; then
+                  dnl Then look for a static library.
+                  if test "X$found_dir" = "X"; then
+                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
                       found_dir="$dir"
-                      found_so="$dir/$f"
-                      break
+                      found_a="$dir/$libname.$acl_libext"
                     fi
-                  done
+                  fi
+                  if test "X$found_dir" != "X"; then
+                    if test -f "$dir/$libname.la"; then
+                      found_la="$dir/$libname.la"
+                    fi
+                  fi
                 fi
               fi
-            fi
-            dnl Then look for a static library.
-            if test "X$found_dir" = "X"; then
-              if test -f "$dir/$libname.$acl_libext"; then
-                found_dir="$dir"
-                found_a="$dir/$libname.$acl_libext"
-              fi
-            fi
-            if test "X$found_dir" != "X"; then
-              if test -f "$dir/$libname.la"; then
-                found_la="$dir/$libname.la"
-              fi
-            fi
+            done
           fi
           if test "X$found_dir" = "X"; then
             for x in $LDFLAGS $LTLIB[]NAME; do
@@ -323,7 +335,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
                   dir=`echo "X$x" | sed -e 's/^X-L//'`
                   dnl First look for a shared library.
                   if test -n "$acl_shlibext"; then
-                    if test -f "$dir/$libname$shrext"; then
+                    if test -f "$dir/$libname$shrext" && acl_is_expected_elfclass < "$dir/$libname$shrext"; then
                       found_dir="$dir"
                       found_so="$dir/$libname$shrext"
                     else
@@ -333,14 +345,14 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
                               | sed -e "s,^$libname$shrext\\\\.,," \
                               | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \
                               | sed 1q ) 2>/dev/null`
-                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then
+                        if test -n "$ver" && test -f "$dir/$libname$shrext.$ver" && acl_is_expected_elfclass < "$dir/$libname$shrext.$ver"; then
                           found_dir="$dir"
                           found_so="$dir/$libname$shrext.$ver"
                         fi
                       else
                         eval library_names=\"$acl_library_names_spec\"
                         for f in $library_names; do
-                          if test -f "$dir/$f"; then
+                          if test -f "$dir/$f" && acl_is_expected_elfclass < "$dir/$f"; then
                             found_dir="$dir"
                             found_so="$dir/$f"
                             break
@@ -351,7 +363,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
                   fi
                   dnl Then look for a static library.
                   if test "X$found_dir" = "X"; then
-                    if test -f "$dir/$libname.$acl_libext"; then
+                    if test -f "$dir/$libname.$acl_libext" && ${AR-ar} -p "$dir/$libname.$acl_libext" | acl_is_expected_elfclass; then
                       found_dir="$dir"
                       found_a="$dir/$libname.$acl_libext"
                     fi
@@ -377,7 +389,8 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
               dnl standard /usr/lib.
               if test "$enable_rpath" = no \
                  || test "X$found_dir" = "X/usr/$acl_libdirstem" \
-                 || test "X$found_dir" = "X/usr/$acl_libdirstem2"; then
+                 || test "X$found_dir" = "X/usr/$acl_libdirstem2" \
+                 || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then
                 dnl No hardcoding is needed.
                 LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so"
               else
@@ -477,6 +490,13 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
                 fi
                 additional_includedir="$basedir/include"
                 ;;
+              */$acl_libdirstem3 | */$acl_libdirstem3/)
+                basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem3/"'*$,,'`
+                if test "$name" = '$1'; then
+                  LIB[]NAME[]_PREFIX="$basedir"
+                fi
+                additional_includedir="$basedir/include"
+                ;;
             esac
             if test "X$additional_includedir" != "X"; then
               dnl Potentially add $additional_includedir to $INCNAME.
@@ -527,19 +547,21 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
               for dep in $dependency_libs; do
                 case "$dep" in
                   -L*)
-                    additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
-                    dnl Potentially add $additional_libdir to $LIBNAME and $LTLIBNAME.
+                    dependency_libdir=`echo "X$dep" | sed -e 's/^X-L//'`
+                    dnl Potentially add $dependency_libdir to $LIBNAME and $LTLIBNAME.
                     dnl But don't add it
                     dnl   1. if it's the standard /usr/lib,
                     dnl   2. if it's /usr/local/lib and we are using GCC on Linux,
                     dnl   3. if it's already present in $LDFLAGS or the already
                     dnl      constructed $LIBNAME,
                     dnl   4. if it doesn't exist as a directory.
-                    if test "X$additional_libdir" != "X/usr/$acl_libdirstem" \
-                       && test "X$additional_libdir" != "X/usr/$acl_libdirstem2"; then
+                    if test "X$dependency_libdir" != "X/usr/$acl_libdirstem" \
+                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem2" \
+                       && test "X$dependency_libdir" != "X/usr/$acl_libdirstem3"; then
                       haveit=
-                      if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem" \
-                         || test "X$additional_libdir" = "X/usr/local/$acl_libdirstem2"; then
+                      if test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem" \
+                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem2" \
+                         || test "X$dependency_libdir" = "X/usr/local/$acl_libdirstem3"; then
                         if test -n "$GCC"; then
                           case $host_os in
                             linux* | gnu* | k*bsd*-gnu) haveit=yes;;
@@ -550,29 +572,29 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
                         haveit=
                         for x in $LDFLAGS $LIB[]NAME; do
                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-                          if test "X$x" = "X-L$additional_libdir"; then
+                          if test "X$x" = "X-L$dependency_libdir"; then
                             haveit=yes
                             break
                           fi
                         done
                         if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                            dnl Really add $additional_libdir to $LIBNAME.
-                            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$additional_libdir"
+                          if test -d "$dependency_libdir"; then
+                            dnl Really add $dependency_libdir to $LIBNAME.
+                            LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$dependency_libdir"
                           fi
                         fi
                         haveit=
                         for x in $LDFLAGS $LTLIB[]NAME; do
                           AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"])
-                          if test "X$x" = "X-L$additional_libdir"; then
+                          if test "X$x" = "X-L$dependency_libdir"; then
                             haveit=yes
                             break
                           fi
                         done
                         if test -z "$haveit"; then
-                          if test -d "$additional_libdir"; then
-                            dnl Really add $additional_libdir to $LTLIBNAME.
-                            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$additional_libdir"
+                          if test -d "$dependency_libdir"; then
+                            dnl Really add $dependency_libdir to $LTLIBNAME.
+                            LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$dependency_libdir"
                           fi
                         fi
                       fi
@@ -609,7 +631,20 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
                     ;;
                   -l*)
                     dnl Handle this in the next round.
-                    names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'`
+                    dnl But on GNU systems, ignore -lc options, because
+                    dnl   - linking with libc is the default anyway,
+                    dnl   - linking with libc.a may produce an error
+                    dnl     "/usr/bin/ld: dynamic STT_GNU_IFUNC symbol `strcmp' with pointer equality in `/usr/lib/libc.a(strcmp.o)' can not be used when making an executable; recompile with -fPIE and relink with -pie"
+                    dnl     or may produce an executable that always crashes, see
+                    dnl     <https://lists.gnu.org/archive/html/grep-devel/2020-09/msg00052.html>.
+                    dep=`echo "X$dep" | sed -e 's/^X-l//'`
+                    if test "X$dep" != Xc \
+                       || case $host_os in
+                            linux* | gnu* | k*bsd*-gnu) false ;;
+                            *)                          true ;;
+                          esac; then
+                      names_next_round="$names_next_round $dep"
+                    fi
                     ;;
                   *.la)
                     dnl Handle this in the next round. Throw away the .la's
@@ -670,7 +705,6 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY],
       LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir"
     done
   fi
-  popdef([P_A_C_K])
   popdef([PACKLIBS])
   popdef([PACKUP])
   popdef([PACK])
@@ -721,7 +755,8 @@ AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
           dir="$next"
           dnl No need to hardcode the standard /usr/lib.
           if test "X$dir" != "X/usr/$acl_libdirstem" \
-             && test "X$dir" != "X/usr/$acl_libdirstem2"; then
+             && test "X$dir" != "X/usr/$acl_libdirstem2" \
+             && test "X$dir" != "X/usr/$acl_libdirstem3"; then
             rpathdirs="$rpathdirs $dir"
           fi
           next=
@@ -731,7 +766,8 @@ AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS],
             -L*) dir=`echo "X$opt" | sed -e 's,^X-L,,'`
                  dnl No need to hardcode the standard /usr/lib.
                  if test "X$dir" != "X/usr/$acl_libdirstem" \
-                    && test "X$dir" != "X/usr/$acl_libdirstem2"; then
+                    && test "X$dir" != "X/usr/$acl_libdirstem2" \
+                    && test "X$dir" != "X/usr/$acl_libdirstem3"; then
                    rpathdirs="$rpathdirs $dir"
                  fi
                  next= ;;
index 31f49e4..3c94db0 100644 (file)
@@ -1,18 +1,11 @@
-# lib-prefix.m4 serial 7 (gettext-0.18)
-dnl Copyright (C) 2001-2005, 2008-2014 Free Software Foundation, Inc.
+# lib-prefix.m4 serial 19
+dnl Copyright (C) 2001-2005, 2008-2021 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
 dnl From Bruno Haible.
 
-dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and
-dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't
-dnl require excessive bracketing.
-ifdef([AC_HELP_STRING],
-[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])],
-[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])])
-
 dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed
 dnl to access previously installed libraries. The basic assumption is that
 dnl a user will want packages to use other packages he previously installed
@@ -32,9 +25,9 @@ AC_DEFUN([AC_LIB_PREFIX],
     eval additional_includedir=\"$includedir\"
     eval additional_libdir=\"$libdir\"
   ])
-  AC_LIB_ARG_WITH([lib-prefix],
-[  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
-  --without-lib-prefix    don't search for libraries in includedir and libdir],
+  AC_ARG_WITH([lib-prefix],
+[[  --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib
+  --without-lib-prefix    don't search for libraries in includedir and libdir]],
 [
     if test "X$withval" = "Xno"; then
       use_additional=no
@@ -154,71 +147,177 @@ AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX],
 ])
 
 dnl AC_LIB_PREPARE_MULTILIB creates
-dnl - a variable acl_libdirstem, containing the basename of the libdir, either
-dnl   "lib" or "lib64" or "lib/64",
-dnl - a variable acl_libdirstem2, as a secondary possible value for
-dnl   acl_libdirstem, either the same as acl_libdirstem or "lib/sparcv9" or
-dnl   "lib/amd64".
+dnl - a function acl_is_expected_elfclass, that tests whether standard input
+dn;   has a 32-bit or 64-bit ELF header, depending on the host CPU ABI,
+dnl - 3 variables acl_libdirstem, acl_libdirstem2, acl_libdirstem3, containing
+dnl   the basename of the libdir to try in turn, either "lib" or "lib64" or
+dnl   "lib/64" or "lib32" or "lib/sparcv9" or "lib/amd64" or similar.
 AC_DEFUN([AC_LIB_PREPARE_MULTILIB],
 [
-  dnl There is no formal standard regarding lib and lib64.
-  dnl On glibc systems, the current practice is that on a system supporting
+  dnl There is no formal standard regarding lib, lib32, and lib64.
+  dnl On most glibc systems, the current practice is that on a system supporting
   dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
-  dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. We determine
-  dnl the compiler's default mode by looking at the compiler's library search
-  dnl path. If at least one of its elements ends in /lib64 or points to a
-  dnl directory whose absolute pathname ends in /lib64, we assume a 64-bit ABI.
-  dnl Otherwise we use the default, namely "lib".
+  dnl $prefix/lib64 and 32-bit libraries go under $prefix/lib. However, on
+  dnl Arch Linux based distributions, it's the opposite: 32-bit libraries go
+  dnl under $prefix/lib32 and 64-bit libraries go under $prefix/lib.
+  dnl We determine the compiler's default mode by looking at the compiler's
+  dnl library search path. If at least one of its elements ends in /lib64 or
+  dnl points to a directory whose absolute pathname ends in /lib64, we use that
+  dnl for 64-bit ABIs. Similarly for 32-bit ABIs. Otherwise we use the default,
+  dnl namely "lib".
   dnl On Solaris systems, the current practice is that on a system supporting
   dnl 32-bit and 64-bit instruction sets or ABIs, 64-bit libraries go under
   dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or
   dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib.
   AC_REQUIRE([AC_CANONICAL_HOST])
-  acl_libdirstem=lib
-  acl_libdirstem2=
-  case "$host_os" in
-    solaris*)
-      dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment
-      dnl <http://docs.sun.com/app/docs/doc/816-5138/dev-env?l=en&a=view>.
-      dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link."
-      dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the
-      dnl symlink is missing, so we set acl_libdirstem2 too.
-      AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit],
-        [AC_EGREP_CPP([sixtyfour bits], [
-#ifdef _LP64
-sixtyfour bits
-#endif
-           ], [gl_cv_solaris_64bit=yes], [gl_cv_solaris_64bit=no])
-        ])
-      if test $gl_cv_solaris_64bit = yes; then
-        acl_libdirstem=lib/64
-        case "$host_cpu" in
-          sparc*)        acl_libdirstem2=lib/sparcv9 ;;
-          i*86 | x86_64) acl_libdirstem2=lib/amd64 ;;
-        esac
-      fi
-      ;;
-    *)
-      searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
-      if test -n "$searchpath"; then
-        acl_save_IFS="${IFS=   }"; IFS=":"
-        for searchdir in $searchpath; do
-          if test -d "$searchdir"; then
-            case "$searchdir" in
-              */lib64/ | */lib64 ) acl_libdirstem=lib64 ;;
-              */../ | */.. )
-                # Better ignore directories of this form. They are misleading.
-                ;;
-              *) searchdir=`cd "$searchdir" && pwd`
-                 case "$searchdir" in
-                   */lib64 ) acl_libdirstem=lib64 ;;
-                 esac ;;
-            esac
-          fi
-        done
-        IFS="$acl_save_IFS"
-      fi
-      ;;
-  esac
-  test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
+  AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT])
+
+  AC_CACHE_CHECK([for ELF binary format], [gl_cv_elf],
+    [AC_EGREP_CPP([Extensible Linking Format],
+       [#ifdef __ELF__
+        Extensible Linking Format
+        #endif
+       ],
+       [gl_cv_elf=yes],
+       [gl_cv_elf=no])
+    ])
+  if test $gl_cv_elf = yes; then
+    # Extract the ELF class of a file (5th byte) in decimal.
+    # Cf. https://en.wikipedia.org/wiki/Executable_and_Linkable_Format#File_header
+    if od -A x < /dev/null >/dev/null 2>/dev/null; then
+      # Use POSIX od.
+      func_elfclass ()
+      {
+        od -A n -t d1 -j 4 -N 1
+      }
+    else
+      # Use BSD hexdump.
+      func_elfclass ()
+      {
+        dd bs=1 count=1 skip=4 2>/dev/null | hexdump -e '1/1 "%3d "'
+        echo
+      }
+    fi
+    # Use 'expr', not 'test', to compare the values of func_elfclass, because on
+    # Solaris 11 OpenIndiana and Solaris 11 OmniOS, the result is 001 or 002,
+    # not 1 or 2.
+changequote(,)dnl
+    case $HOST_CPU_C_ABI_32BIT in
+      yes)
+        # 32-bit ABI.
+        acl_is_expected_elfclass ()
+        {
+          expr "`func_elfclass | sed -e 's/[   ]//g'`" = 1 > /dev/null
+        }
+        ;;
+      no)
+        # 64-bit ABI.
+        acl_is_expected_elfclass ()
+        {
+          expr "`func_elfclass | sed -e 's/[   ]//g'`" = 2 > /dev/null
+        }
+        ;;
+      *)
+        # Unknown.
+        acl_is_expected_elfclass ()
+        {
+          :
+        }
+        ;;
+    esac
+changequote([,])dnl
+  else
+    acl_is_expected_elfclass ()
+    {
+      :
+    }
+  fi
+
+  dnl Allow the user to override the result by setting acl_cv_libdirstems.
+  AC_CACHE_CHECK([for the common suffixes of directories in the library search path],
+    [acl_cv_libdirstems],
+    [dnl Try 'lib' first, because that's the default for libdir in GNU, see
+     dnl <https://www.gnu.org/prep/standards/html_node/Directory-Variables.html>.
+     acl_libdirstem=lib
+     acl_libdirstem2=
+     acl_libdirstem3=
+     case "$host_os" in
+       solaris*)
+         dnl See Solaris 10 Software Developer Collection > Solaris 64-bit Developer's Guide > The Development Environment
+         dnl <https://docs.oracle.com/cd/E19253-01/816-5138/dev-env/index.html>.
+         dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link."
+         dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the
+         dnl symlink is missing, so we set acl_libdirstem2 too.
+         if test $HOST_CPU_C_ABI_32BIT = no; then
+           acl_libdirstem2=lib/64
+           case "$host_cpu" in
+             sparc*)        acl_libdirstem3=lib/sparcv9 ;;
+             i*86 | x86_64) acl_libdirstem3=lib/amd64 ;;
+           esac
+         fi
+         ;;
+       *)
+         dnl If $CC generates code for a 32-bit ABI, the libraries are
+         dnl surely under $prefix/lib or $prefix/lib32, not $prefix/lib64.
+         dnl Similarly, if $CC generates code for a 64-bit ABI, the libraries
+         dnl are surely under $prefix/lib or $prefix/lib64, not $prefix/lib32.
+         dnl Find the compiler's search path. However, non-system compilers
+         dnl sometimes have odd library search paths. But we can't simply invoke
+         dnl '/usr/bin/gcc -print-search-dirs' because that would not take into
+         dnl account the -m32/-m31 or -m64 options from the $CC or $CFLAGS.
+         searchpath=`(LC_ALL=C $CC $CPPFLAGS $CFLAGS -print-search-dirs) 2>/dev/null \
+                     | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'`
+         if test $HOST_CPU_C_ABI_32BIT != no; then
+           # 32-bit or unknown ABI.
+           if test -d /usr/lib32; then
+             acl_libdirstem2=lib32
+           fi
+         fi
+         if test $HOST_CPU_C_ABI_32BIT != yes; then
+           # 64-bit or unknown ABI.
+           if test -d /usr/lib64; then
+             acl_libdirstem3=lib64
+           fi
+         fi
+         if test -n "$searchpath"; then
+           acl_save_IFS="${IFS=        }"; IFS=":"
+           for searchdir in $searchpath; do
+             if test -d "$searchdir"; then
+               case "$searchdir" in
+                 */lib32/ | */lib32 ) acl_libdirstem2=lib32 ;;
+                 */lib64/ | */lib64 ) acl_libdirstem3=lib64 ;;
+                 */../ | */.. )
+                   # Better ignore directories of this form. They are misleading.
+                   ;;
+                 *) searchdir=`cd "$searchdir" && pwd`
+                    case "$searchdir" in
+                      */lib32 ) acl_libdirstem2=lib32 ;;
+                      */lib64 ) acl_libdirstem3=lib64 ;;
+                    esac ;;
+               esac
+             fi
+           done
+           IFS="$acl_save_IFS"
+           if test $HOST_CPU_C_ABI_32BIT = yes; then
+             # 32-bit ABI.
+             acl_libdirstem3=
+           fi
+           if test $HOST_CPU_C_ABI_32BIT = no; then
+             # 64-bit ABI.
+             acl_libdirstem2=
+           fi
+         fi
+         ;;
+     esac
+     test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem"
+     test -n "$acl_libdirstem3" || acl_libdirstem3="$acl_libdirstem"
+     acl_cv_libdirstems="$acl_libdirstem,$acl_libdirstem2,$acl_libdirstem3"
+    ])
+  dnl Decompose acl_cv_libdirstems into acl_libdirstem, acl_libdirstem2, and
+  dnl acl_libdirstem3.
+changequote(,)dnl
+  acl_libdirstem=`echo "$acl_cv_libdirstems" | sed -e 's/,.*//'`
+  acl_libdirstem2=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,//' -e 's/,.*//'`
+  acl_libdirstem3=`echo "$acl_cv_libdirstems" | sed -e 's/^[^,]*,[^,]*,//' -e 's/,.*//'`
+changequote([,])dnl
 ])
diff --git a/m4/longdouble.m4 b/m4/longdouble.m4
deleted file mode 100644 (file)
index 25590f4..0000000
+++ /dev/null
@@ -1,31 +0,0 @@
-# longdouble.m4 serial 2 (gettext-0.15)
-dnl Copyright (C) 2002-2003, 2006 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-dnl Test whether the compiler supports the 'long double' type.
-dnl Prerequisite: AC_PROG_CC
-
-dnl This file is only needed in autoconf <= 2.59.  Newer versions of autoconf
-dnl have a macro AC_TYPE_LONG_DOUBLE with identical semantics.
-
-AC_DEFUN([gt_TYPE_LONGDOUBLE],
-[
-  AC_CACHE_CHECK([for long double], gt_cv_c_long_double,
-    [if test "$GCC" = yes; then
-       gt_cv_c_long_double=yes
-     else
-       AC_TRY_COMPILE([
-         /* The Stardent Vistra knows sizeof(long double), but does not support it.  */
-         long double foo = 0.0;
-         /* On Ultrix 4.3 cc, long double is 4 and double is 8.  */
-         int array [2*(sizeof(long double) >= sizeof(double)) - 1];
-         ], ,
-         gt_cv_c_long_double=yes, gt_cv_c_long_double=no)
-     fi])
-  if test $gt_cv_c_long_double = yes; then
-    AC_DEFINE(HAVE_LONG_DOUBLE, 1, [Define if you have the 'long double' type.])
-  fi
-])
diff --git a/m4/longlong.m4 b/m4/longlong.m4
deleted file mode 100644 (file)
index 7b399e0..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-# longlong.m4 serial 5
-dnl Copyright (C) 1999-2004 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Paul Eggert.
-
-# Define HAVE_LONG_LONG if 'long long' works.
-
-AC_DEFUN([gl_AC_TYPE_LONG_LONG],
-[
-  AC_CACHE_CHECK([for long long], ac_cv_type_long_long,
-  [AC_TRY_LINK([long long ll = 1LL; int i = 63;],
-    [long long llmax = (long long) -1;
-     return ll << i | ll >> i | llmax / ll | llmax % ll;],
-    ac_cv_type_long_long=yes,
-    ac_cv_type_long_long=no)])
-  if test $ac_cv_type_long_long = yes; then
-    AC_DEFINE(HAVE_LONG_LONG, 1,
-      [Define if you have the 'long long' type.])
-  fi
-])
index 53cdc8b..f4f6b80 100644 (file)
--- a/m4/nls.m4
+++ b/m4/nls.m4
@@ -1,17 +1,17 @@
-# nls.m4 serial 5 (gettext-0.18)
-dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014 Free Software Foundation,
-dnl Inc.
+# nls.m4 serial 6 (gettext-0.20.2)
+dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019-2021 Free
+dnl Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
+dnl This file can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Lesser General Public
 dnl License but which still want to provide support for the GNU gettext
 dnl functionality.
 dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
+dnl by the GNU Lesser General Public License, and the rest of the GNU
+dnl gettext package is covered by the GNU General Public License.
 dnl They are *not* in the public domain.
 
 dnl Authors:
index 84659ea..66bea3e 100644 (file)
--- a/m4/po.m4
+++ b/m4/po.m4
@@ -1,16 +1,16 @@
-# po.m4 serial 22 (gettext-0.19)
-dnl Copyright (C) 1995-2014 Free Software Foundation, Inc.
+# po.m4 serial 31 (gettext-0.20.2)
+dnl Copyright (C) 1995-2014, 2016, 2018-2021 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
+dnl This file can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Lesser General Public
 dnl License but which still want to provide support for the GNU gettext
 dnl functionality.
 dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
+dnl by the GNU Lesser General Public License, and the rest of the GNU
+dnl gettext package is covered by the GNU General Public License.
 dnl They are *not* in the public domain.
 
 dnl Authors:
@@ -30,7 +30,7 @@ AC_DEFUN([AM_PO_SUBDIRS],
 
   dnl Release version of the gettext macros. This is used to ensure that
   dnl the gettext macros and po/Makefile.in.in are in sync.
-  AC_SUBST([GETTEXT_MACRO_VERSION], [0.19])
+  AC_SUBST([GETTEXT_MACRO_VERSION], [0.20])
 
   dnl Perform the following tests also if --disable-nls has been given,
   dnl because they are needed for "make dist" to work.
@@ -46,13 +46,6 @@ AC_DEFUN([AM_PO_SUBDIRS],
 
   dnl Test whether it is GNU msgfmt >= 0.15.
 changequote(,)dnl
-  case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
-    '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;;
-    *) MSGFMT_015=$MSGFMT ;;
-  esac
-changequote([,])dnl
-  AC_SUBST([MSGFMT_015])
-changequote(,)dnl
   case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in
     '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;;
     *) GMSGFMT_015=$GMSGFMT ;;
@@ -83,11 +76,21 @@ changequote([,])dnl
   AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge,
     [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :)
 
-  dnl Installation directories.
-  dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we
-  dnl have to define it here, so that it can be used in po/Makefile.
-  test -n "$localedir" || localedir='${datadir}/locale'
-  AC_SUBST([localedir])
+  dnl Test whether it is GNU msgmerge >= 0.20.
+  if LC_ALL=C $MSGMERGE --help | grep ' --for-msgfmt ' >/dev/null; then
+    MSGMERGE_FOR_MSGFMT_OPTION='--for-msgfmt'
+  else
+    dnl Test whether it is GNU msgmerge >= 0.12.
+    if LC_ALL=C $MSGMERGE --help | grep ' --no-fuzzy-matching ' >/dev/null; then
+      MSGMERGE_FOR_MSGFMT_OPTION='--no-fuzzy-matching --no-location --quiet'
+    else
+      dnl With these old versions, $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) is
+      dnl slow. But this is not a big problem, as such old gettext versions are
+      dnl hardly in use any more.
+      MSGMERGE_FOR_MSGFMT_OPTION='--no-location --quiet'
+    fi
+  fi
+  AC_SUBST([MSGMERGE_FOR_MSGFMT_OPTION])
 
   dnl Support for AM_XGETTEXT_OPTION.
   test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS=
@@ -130,14 +133,11 @@ changequote([,])dnl
             if test -n "$OBSOLETE_ALL_LINGUAS"; then
               test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete"
             fi
-            ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
-            # Hide the ALL_LINGUAS assignment from automake < 1.5.
-            eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
+            ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
             POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
           else
             # The set of available languages was given in configure.in.
-            # Hide the ALL_LINGUAS assignment from automake < 1.5.
-            eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS'
+            ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS
           fi
           # Compute POFILES
           # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
@@ -208,9 +208,8 @@ changequote([,])dnl
       esac
     done]],
    [# Capture the value of obsolete ALL_LINGUAS because we need it to compute
-    # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it
-    # from automake < 1.5.
-    eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"'
+    # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS.
+    OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS"
     # Capture the value of LINGUAS because we need it to compute CATALOGS.
     LINGUAS="${LINGUAS-%UNSET%}"
    ])
@@ -311,15 +310,13 @@ changequote([,])dnl
   fi
   if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then
     # The LINGUAS file contains the set of available languages.
-    ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
+    ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"`
     POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS"
   else
     # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS.
     sed_x_LINGUAS=`$gt_echo "$sed_x_variable" | sed -e '/^ *#/d' -e 's/VARIABLE/LINGUAS/g'`
-    ALL_LINGUAS_=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
+    ALL_LINGUAS=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"`
   fi
-  # Hide the ALL_LINGUAS assignment from automake < 1.5.
-  eval 'ALL_LINGUAS''=$ALL_LINGUAS_'
   # Compute POFILES
   # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po)
   # Compute UPDATEPOFILES
@@ -329,9 +326,9 @@ changequote([,])dnl
   # Compute GMOFILES
   # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo)
   # Compute PROPERTIESFILES
-  # as      $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).properties)
+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).properties)
   # Compute CLASSFILES
-  # as      $(foreach lang, $(ALL_LINGUAS), $(top_srcdir)/$(DOMAIN)_$(lang).class)
+  # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(DOMAIN)_$(lang).class)
   # Compute QMFILES
   # as      $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).qm)
   # Compute MSGFILES
@@ -356,8 +353,8 @@ changequote([,])dnl
     UPDATEPOFILES="$UPDATEPOFILES $lang.po-update"
     DUMMYPOFILES="$DUMMYPOFILES $lang.nop"
     GMOFILES="$GMOFILES $srcdirpre$lang.gmo"
-    PROPERTIESFILES="$PROPERTIESFILES \$(top_srcdir)/\$(DOMAIN)_$lang.properties"
-    CLASSFILES="$CLASSFILES \$(top_srcdir)/\$(DOMAIN)_$lang.class"
+    PROPERTIESFILES="$PROPERTIESFILES \$(srcdir)/\$(DOMAIN)_$lang.properties"
+    CLASSFILES="$CLASSFILES \$(srcdir)/\$(DOMAIN)_$lang.class"
     QMFILES="$QMFILES $srcdirpre$lang.qm"
     frobbedlang=`echo $lang | sed -e 's/\..*$//' -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/'`
     MSGFILES="$MSGFILES $srcdirpre$frobbedlang.msg"
diff --git a/m4/printf-posix.m4 b/m4/printf-posix.m4
deleted file mode 100644 (file)
index af10170..0000000
+++ /dev/null
@@ -1,44 +0,0 @@
-# printf-posix.m4 serial 2 (gettext-0.13.1)
-dnl Copyright (C) 2003 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-dnl Test whether the printf() function supports POSIX/XSI format strings with
-dnl positions.
-
-AC_DEFUN([gt_PRINTF_POSIX],
-[
-  AC_REQUIRE([AC_PROG_CC])
-  AC_CACHE_CHECK([whether printf() supports POSIX/XSI format strings],
-    gt_cv_func_printf_posix,
-    [
-      AC_TRY_RUN([
-#include <stdio.h>
-#include <string.h>
-/* The string "%2$d %1$d", with dollar characters protected from the shell's
-   dollar expansion (possibly an autoconf bug).  */
-static char format[] = { '%', '2', '$', 'd', ' ', '%', '1', '$', 'd', '\0' };
-static char buf[100];
-int main ()
-{
-  sprintf (buf, format, 33, 55);
-  return (strcmp (buf, "55 33") != 0);
-}], gt_cv_func_printf_posix=yes, gt_cv_func_printf_posix=no,
-      [
-        AC_EGREP_CPP(notposix, [
-#if defined __NetBSD__ || defined _MSC_VER || defined __MINGW32__ || defined __CYGWIN__
-  notposix
-#endif
-        ], gt_cv_func_printf_posix="guessing no",
-           gt_cv_func_printf_posix="guessing yes")
-      ])
-    ])
-  case $gt_cv_func_printf_posix in
-    *yes)
-      AC_DEFINE(HAVE_POSIX_PRINTF, 1,
-        [Define if your printf() function supports format strings with positions.])
-      ;;
-  esac
-])
index b499f79..9e8823c 100644 (file)
@@ -1,22 +1,22 @@
-# progtest.m4 serial 7 (gettext-0.18.2)
-dnl Copyright (C) 1996-2003, 2005, 2008-2014 Free Software Foundation, Inc.
+# progtest.m4 serial 9 (gettext-0.21.1)
+dnl Copyright (C) 1996-2003, 2005, 2008-2021 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 dnl
-dnl This file can can be used in projects which are not available under
-dnl the GNU General Public License or the GNU Library General Public
+dnl This file can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Lesser General Public
 dnl License but which still want to provide support for the GNU gettext
 dnl functionality.
 dnl Please note that the actual code of the GNU gettext library is covered
-dnl by the GNU Library General Public License, and the rest of the GNU
-dnl gettext package package is covered by the GNU General Public License.
+dnl by the GNU Lesser General Public License, and the rest of the GNU
+dnl gettext package is covered by the GNU General Public License.
 dnl They are *not* in the public domain.
 
 dnl Authors:
 dnl   Ulrich Drepper <drepper@cygnus.com>, 1996.
 
-AC_PREREQ([2.50])
+AC_PREREQ([2.53])
 
 # Search path for a program which passes the given test.
 
@@ -61,7 +61,7 @@ AC_CACHE_VAL([ac_cv_path_$1],
     ;;
   *)
     ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in ifelse([$5], , $PATH, [$5]); do
+    for ac_dir in m4_if([$5], , $PATH, [$5]); do
       IFS="$ac_save_IFS"
       test -z "$ac_dir" && ac_dir=.
       for ac_exec_ext in '' $ac_executable_extensions; do
@@ -77,12 +77,12 @@ AC_CACHE_VAL([ac_cv_path_$1],
     IFS="$ac_save_IFS"
 dnl If no 4th arg is given, leave the cache variable unset,
 dnl so AC_PATH_PROGS will keep looking.
-ifelse([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
+m4_if([$4], , , [  test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4"
 ])dnl
     ;;
 esac])dnl
 $1="$ac_cv_path_$1"
-if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
+if test m4_if([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then
   AC_MSG_RESULT([$][$1])
 else
   AC_MSG_RESULT([no])
diff --git a/m4/signed.m4 b/m4/signed.m4
deleted file mode 100644 (file)
index 048f593..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-# signed.m4 serial 1 (gettext-0.10.40)
-dnl Copyright (C) 2001-2002 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([bh_C_SIGNED],
-[
-  AC_CACHE_CHECK([for signed], bh_cv_c_signed,
-   [AC_TRY_COMPILE(, [signed char x;], bh_cv_c_signed=yes, bh_cv_c_signed=no)])
-  if test $bh_cv_c_signed = no; then
-    AC_DEFINE(signed, ,
-              [Define to empty if the C compiler doesn't support this keyword.])
-  fi
-])
diff --git a/m4/size_max.m4 b/m4/size_max.m4
deleted file mode 100644 (file)
index 029e471..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-# size_max.m4 serial 4
-dnl Copyright (C) 2003, 2005-2006 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-
-AC_DEFUN([gl_SIZE_MAX],
-[
-  AC_CHECK_HEADERS(stdint.h)
-  dnl First test whether the system already has SIZE_MAX.
-  AC_MSG_CHECKING([for SIZE_MAX])
-  result=
-  AC_EGREP_CPP([Found it], [
-#include <limits.h>
-#if HAVE_STDINT_H
-#include <stdint.h>
-#endif
-#ifdef SIZE_MAX
-Found it
-#endif
-], result=yes)
-  if test -z "$result"; then
-    dnl Define it ourselves. Here we assume that the type 'size_t' is not wider
-    dnl than the type 'unsigned long'. Try hard to find a definition that can
-    dnl be used in a preprocessor #if, i.e. doesn't contain a cast.
-    _AC_COMPUTE_INT([sizeof (size_t) * CHAR_BIT - 1], size_t_bits_minus_1,
-      [#include <stddef.h>
-#include <limits.h>], size_t_bits_minus_1=)
-    _AC_COMPUTE_INT([sizeof (size_t) <= sizeof (unsigned int)], fits_in_uint,
-      [#include <stddef.h>], fits_in_uint=)
-    if test -n "$size_t_bits_minus_1" && test -n "$fits_in_uint"; then
-      if test $fits_in_uint = 1; then
-        dnl Even though SIZE_MAX fits in an unsigned int, it must be of type
-        dnl 'unsigned long' if the type 'size_t' is the same as 'unsigned long'.
-        AC_TRY_COMPILE([#include <stddef.h>
-          extern size_t foo;
-          extern unsigned long foo;
-          ], [], fits_in_uint=0)
-      fi
-      dnl We cannot use 'expr' to simplify this expression, because 'expr'
-      dnl works only with 'long' integers in the host environment, while we
-      dnl might be cross-compiling from a 32-bit platform to a 64-bit platform.
-      if test $fits_in_uint = 1; then
-        result="(((1U << $size_t_bits_minus_1) - 1) * 2 + 1)"
-      else
-        result="(((1UL << $size_t_bits_minus_1) - 1) * 2 + 1)"
-      fi
-    else
-      dnl Shouldn't happen, but who knows...
-      result='((size_t)~(size_t)0)'
-    fi
-  fi
-  AC_MSG_RESULT([$result])
-  if test "$result" != yes; then
-    AC_DEFINE_UNQUOTED([SIZE_MAX], [$result],
-      [Define as the maximum value of type 'size_t', if the system doesn't define it.])
-  fi
-])
diff --git a/m4/stdint_h.m4 b/m4/stdint_h.m4
deleted file mode 100644 (file)
index 3355f35..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-# stdint_h.m4 serial 5
-dnl Copyright (C) 1997-2004 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Paul Eggert.
-
-# Define HAVE_STDINT_H_WITH_UINTMAX if <stdint.h> exists,
-# doesn't clash with <sys/types.h>, and declares uintmax_t.
-
-AC_DEFUN([gl_AC_HEADER_STDINT_H],
-[
-  AC_CACHE_CHECK([for stdint.h], gl_cv_header_stdint_h,
-  [AC_TRY_COMPILE(
-    [#include <sys/types.h>
-#include <stdint.h>],
-    [uintmax_t i = (uintmax_t) -1;],
-    gl_cv_header_stdint_h=yes,
-    gl_cv_header_stdint_h=no)])
-  if test $gl_cv_header_stdint_h = yes; then
-    AC_DEFINE_UNQUOTED(HAVE_STDINT_H_WITH_UINTMAX, 1,
-      [Define if <stdint.h> exists, doesn't clash with <sys/types.h>,
-       and declares uintmax_t. ])
-  fi
-])
diff --git a/m4/uintmax_t.m4 b/m4/uintmax_t.m4
deleted file mode 100644 (file)
index bf83ed7..0000000
+++ /dev/null
@@ -1,30 +0,0 @@
-# uintmax_t.m4 serial 9
-dnl Copyright (C) 1997-2004 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Paul Eggert.
-
-AC_PREREQ(2.13)
-
-# Define uintmax_t to 'unsigned long' or 'unsigned long long'
-# if it is not already defined in <stdint.h> or <inttypes.h>.
-
-AC_DEFUN([gl_AC_TYPE_UINTMAX_T],
-[
-  AC_REQUIRE([gl_AC_HEADER_INTTYPES_H])
-  AC_REQUIRE([gl_AC_HEADER_STDINT_H])
-  if test $gl_cv_header_inttypes_h = no && test $gl_cv_header_stdint_h = no; then
-    AC_REQUIRE([gl_AC_TYPE_UNSIGNED_LONG_LONG])
-    test $ac_cv_type_unsigned_long_long = yes \
-      && ac_type='unsigned long long' \
-      || ac_type='unsigned long'
-    AC_DEFINE_UNQUOTED(uintmax_t, $ac_type,
-      [Define to unsigned long or unsigned long long
-       if <stdint.h> and <inttypes.h> don't define.])
-  else
-    AC_DEFINE(HAVE_UINTMAX_T, 1,
-      [Define if you have the 'uintmax_t' type in <stdint.h> or <inttypes.h>.])
-  fi
-])
diff --git a/m4/ulonglong.m4 b/m4/ulonglong.m4
deleted file mode 100644 (file)
index dee10cc..0000000
+++ /dev/null
@@ -1,23 +0,0 @@
-# ulonglong.m4 serial 4
-dnl Copyright (C) 1999-2004 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Paul Eggert.
-
-# Define HAVE_UNSIGNED_LONG_LONG if 'unsigned long long' works.
-
-AC_DEFUN([gl_AC_TYPE_UNSIGNED_LONG_LONG],
-[
-  AC_CACHE_CHECK([for unsigned long long], ac_cv_type_unsigned_long_long,
-  [AC_TRY_LINK([unsigned long long ull = 1ULL; int i = 63;],
-    [unsigned long long ullmax = (unsigned long long) -1;
-     return ull << i | ull >> i | ullmax / ull | ullmax % ull;],
-    ac_cv_type_unsigned_long_long=yes,
-    ac_cv_type_unsigned_long_long=no)])
-  if test $ac_cv_type_unsigned_long_long = yes; then
-    AC_DEFINE(HAVE_UNSIGNED_LONG_LONG, 1,
-      [Define if you have the 'unsigned long long' type.])
-  fi
-])
diff --git a/m4/visibility.m4 b/m4/visibility.m4
deleted file mode 100644 (file)
index 2ff6330..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-# visibility.m4 serial 1 (gettext-0.15)
-dnl Copyright (C) 2005 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-
-dnl Tests whether the compiler supports the command-line option
-dnl -fvisibility=hidden and the function and variable attributes
-dnl __attribute__((__visibility__("hidden"))) and
-dnl __attribute__((__visibility__("default"))).
-dnl Does *not* test for __visibility__("protected") - which has tricky
-dnl semantics (see the 'vismain' test in glibc) and does not exist e.g. on
-dnl MacOS X.
-dnl Does *not* test for __visibility__("internal") - which has processor
-dnl dependent semantics.
-dnl Does *not* test for #pragma GCC visibility push(hidden) - which is
-dnl "really only recommended for legacy code".
-dnl Set the variable CFLAG_VISIBILITY.
-dnl Defines and sets the variable HAVE_VISIBILITY.
-
-AC_DEFUN([gl_VISIBILITY],
-[
-  AC_REQUIRE([AC_PROG_CC])
-  CFLAG_VISIBILITY=
-  HAVE_VISIBILITY=0
-  if test -n "$GCC"; then
-    AC_MSG_CHECKING([for simple visibility declarations])
-    AC_CACHE_VAL(gl_cv_cc_visibility, [
-      gl_save_CFLAGS="$CFLAGS"
-      CFLAGS="$CFLAGS -fvisibility=hidden"
-      AC_TRY_COMPILE(
-        [extern __attribute__((__visibility__("hidden"))) int hiddenvar;
-         extern __attribute__((__visibility__("default"))) int exportedvar;
-         extern __attribute__((__visibility__("hidden"))) int hiddenfunc (void);
-         extern __attribute__((__visibility__("default"))) int exportedfunc (void);],
-        [],
-        gl_cv_cc_visibility=yes,
-        gl_cv_cc_visibility=no)
-      CFLAGS="$gl_save_CFLAGS"])
-    AC_MSG_RESULT([$gl_cv_cc_visibility])
-    if test $gl_cv_cc_visibility = yes; then
-      CFLAG_VISIBILITY="-fvisibility=hidden"
-      HAVE_VISIBILITY=1
-    fi
-  fi
-  AC_SUBST([CFLAG_VISIBILITY])
-  AC_SUBST([HAVE_VISIBILITY])
-  AC_DEFINE_UNQUOTED([HAVE_VISIBILITY], [$HAVE_VISIBILITY],
-    [Define to 1 or 0, depending whether the compiler supports simple visibility declarations.])
-])
diff --git a/m4/wchar_t.m4 b/m4/wchar_t.m4
deleted file mode 100644 (file)
index cde2129..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-# wchar_t.m4 serial 1 (gettext-0.12)
-dnl Copyright (C) 2002-2003 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-dnl Test whether <stddef.h> has the 'wchar_t' type.
-dnl Prerequisite: AC_PROG_CC
-
-AC_DEFUN([gt_TYPE_WCHAR_T],
-[
-  AC_CACHE_CHECK([for wchar_t], gt_cv_c_wchar_t,
-    [AC_TRY_COMPILE([#include <stddef.h>
-       wchar_t foo = (wchar_t)'\0';], ,
-       gt_cv_c_wchar_t=yes, gt_cv_c_wchar_t=no)])
-  if test $gt_cv_c_wchar_t = yes; then
-    AC_DEFINE(HAVE_WCHAR_T, 1, [Define if you have the 'wchar_t' type.])
-  fi
-])
diff --git a/m4/wint_t.m4 b/m4/wint_t.m4
deleted file mode 100644 (file)
index b8fff9c..0000000
+++ /dev/null
@@ -1,20 +0,0 @@
-# wint_t.m4 serial 1 (gettext-0.12)
-dnl Copyright (C) 2003 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-dnl From Bruno Haible.
-dnl Test whether <wchar.h> has the 'wint_t' type.
-dnl Prerequisite: AC_PROG_CC
-
-AC_DEFUN([gt_TYPE_WINT_T],
-[
-  AC_CACHE_CHECK([for wint_t], gt_cv_c_wint_t,
-    [AC_TRY_COMPILE([#include <wchar.h>
-       wint_t foo = (wchar_t)'\0';], ,
-       gt_cv_c_wint_t=yes, gt_cv_c_wint_t=no)])
-  if test $gt_cv_c_wint_t = yes; then
-    AC_DEFINE(HAVE_WINT_T, 1, [Define if you have the 'wint_t' type.])
-  fi
-])
diff --git a/m4/xsize.m4 b/m4/xsize.m4
deleted file mode 100644 (file)
index 85bb721..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-# xsize.m4 serial 3
-dnl Copyright (C) 2003-2004 Free Software Foundation, Inc.
-dnl This file is free software; the Free Software Foundation
-dnl gives unlimited permission to copy and/or distribute it,
-dnl with or without modifications, as long as this notice is preserved.
-
-AC_DEFUN([gl_XSIZE],
-[
-  dnl Prerequisites of lib/xsize.h.
-  AC_REQUIRE([gl_SIZE_MAX])
-  AC_REQUIRE([AC_C_INLINE])
-  AC_CHECK_HEADERS(stdint.h)
-])
index 33a80b7..76f0a4e 100644 (file)
@@ -15,6 +15,7 @@ ro
 ru
 sr
 sv
+tr
 uk
 vi
 zh_CN
index 65184f6..6b25f0d 100644 (file)
@@ -1,15 +1,14 @@
 # Makefile for PO directory in any package using GNU gettext.
-# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+# Copyright (C) 1995-2000 Ulrich Drepper <drepper@gnu.ai.mit.edu>
+# Copyright (C) 2000-2020 Free Software Foundation, Inc.
 #
-# This file can be copied and used freely without restrictions.  It can
-# be used in projects which are not available under the GNU General Public
-# License but which still want to provide support for the GNU gettext
-# functionality.
-# Please note that the actual code of GNU gettext is covered by the GNU
-# General Public License and is *not* in the public domain.
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved.  This file is offered as-is,
+# without any warranty.
 #
-# Origin: gettext-0.19
-GETTEXT_MACRO_VERSION = 0.19
+# Origin: gettext-0.21
+GETTEXT_MACRO_VERSION = 0.20
 
 PACKAGE = @PACKAGE@
 VERSION = @VERSION@
@@ -45,20 +44,22 @@ install_sh = $(SHELL) @install_sh@
 MKDIR_P = @MKDIR_P@
 mkdir_p = @mkdir_p@
 
+# When building gettext-tools, we prefer to use the built programs
+# rather than installed programs.  However, we can't do that when we
+# are cross compiling.
+CROSS_COMPILING = @CROSS_COMPILING@
+
 GMSGFMT_ = @GMSGFMT@
 GMSGFMT_no = @GMSGFMT@
 GMSGFMT_yes = @GMSGFMT_015@
 GMSGFMT = $(GMSGFMT_$(USE_MSGCTXT))
-MSGFMT_ = @MSGFMT@
-MSGFMT_no = @MSGFMT@
-MSGFMT_yes = @MSGFMT_015@
-MSGFMT = $(MSGFMT_$(USE_MSGCTXT))
 XGETTEXT_ = @XGETTEXT@
 XGETTEXT_no = @XGETTEXT@
 XGETTEXT_yes = @XGETTEXT_015@
 XGETTEXT = $(XGETTEXT_$(USE_MSGCTXT))
-MSGMERGE = msgmerge
+MSGMERGE = @MSGMERGE@
 MSGMERGE_UPDATE = @MSGMERGE@ --update
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 MSGINIT = msginit
 MSGCONV = msgconv
 MSGFILTER = msgfilter
@@ -89,27 +90,44 @@ DISTFILESDEPS = $(DISTFILESDEPS_$(DIST_DEPENDS_ON_UPDATE_PO))
 
 # Makevars gets inserted here. (Don't remove this line!)
 
-.SUFFIXES:
-.SUFFIXES: .po .gmo .mo .sed .sin .nop .po-create .po-update
+all: all-@USE_NLS@
 
-.po.mo:
-       @echo "$(MSGFMT) -c -o $@ $<"; \
-       $(MSGFMT) -c -o t-$@ $< && mv t-$@ $@
 
+.SUFFIXES:
+.SUFFIXES: .po .gmo .sed .sin .nop .po-create .po-update
+
+# The .pot file, stamp-po, .po files, and .gmo files appear in release tarballs.
+# The GNU Coding Standards say in
+# <https://www.gnu.org/prep/standards/html_node/Makefile-Basics.html>:
+#   "GNU distributions usually contain some files which are not source files
+#    ... . Since these files normally appear in the source directory, they
+#    should always appear in the source directory, not in the build directory.
+#    So Makefile rules to update them should put the updated files in the
+#    source directory."
+# Therefore we put these files in the source directory, not the build directory.
+
+# During .po -> .gmo conversion, take into account the most recent changes to
+# the .pot file. This eliminates the need to update the .po files when the
+# .pot file has changed, which would be troublesome if the .po files are put
+# under version control.
+$(GMOFILES): $(srcdir)/$(DOMAIN).pot
 .po.gmo:
        @lang=`echo $* | sed -e 's,.*/,,'`; \
        test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
-       echo "$${cdcmd}rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.po"; \
-       cd $(srcdir) && rm -f $${lang}.gmo && $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.po && mv t-$${lang}.gmo $${lang}.gmo
+       echo "$${cdcmd}rm -f $${lang}.gmo && $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && $(GMSGFMT) -c --statistics --verbose -o $${lang}.gmo $${lang}.1po && rm -f $${lang}.1po"; \
+       cd $(srcdir) && \
+       rm -f $${lang}.gmo && \
+       $(MSGMERGE) $(MSGMERGE_FOR_MSGFMT_OPTION) -o $${lang}.1po $${lang}.po $(DOMAIN).pot && \
+       $(GMSGFMT) -c --statistics --verbose -o t-$${lang}.gmo $${lang}.1po && \
+       mv t-$${lang}.gmo $${lang}.gmo && \
+       rm -f $${lang}.1po
 
 .sin.sed:
        sed -e '/^#/d' $< > t-$@
        mv t-$@ $@
 
 
-all: all-@USE_NLS@
-
-all-yes: stamp-po
+all-yes: $(srcdir)/stamp-po
 all-no:
 
 # Ensure that the gettext macros and this Makefile.in.in are in sync.
@@ -123,24 +141,24 @@ CHECK_MACRO_VERSION = \
 # internationalized messages, no $(srcdir)/$(DOMAIN).pot is created (because
 # we don't want to bother translators with empty POT files). We assume that
 # LINGUAS is empty in this case, i.e. $(POFILES) and $(GMOFILES) are empty.
-# In this case, stamp-po is a nop (i.e. a phony target).
-
-# stamp-po is a timestamp denoting the last time at which the CATALOGS have
-# been loosely updated. Its purpose is that when a developer or translator
-# checks out the package via CVS, and the $(DOMAIN).pot file is not in CVS,
-# "make" will update the $(DOMAIN).pot and the $(CATALOGS), but subsequent
-# invocations of "make" will do nothing. This timestamp would not be necessary
-# if updating the $(CATALOGS) would always touch them; however, the rule for
-# $(POFILES) has been designed to not touch files that don't need to be
-# changed.
-stamp-po: $(srcdir)/$(DOMAIN).pot
+# In this case, $(srcdir)/stamp-po is a nop (i.e. a phony target).
+
+# $(srcdir)/stamp-po is a timestamp denoting the last time at which the CATALOGS
+# have been loosely updated. Its purpose is that when a developer or translator
+# checks out the package from a version control system, and the $(DOMAIN).pot
+# file is not under version control, "make" will update the $(DOMAIN).pot and
+# the $(CATALOGS), but subsequent invocations of "make" will do nothing. This
+# timestamp would not be necessary if updating the $(CATALOGS) would always
+# touch them; however, the rule for $(POFILES) has been designed to not touch
+# files that don't need to be changed.
+$(srcdir)/stamp-po: $(srcdir)/$(DOMAIN).pot
        @$(CHECK_MACRO_VERSION)
        test ! -f $(srcdir)/$(DOMAIN).pot || \
          test -z "$(GMOFILES)" || $(MAKE) $(GMOFILES)
        @test ! -f $(srcdir)/$(DOMAIN).pot || { \
-         echo "touch stamp-po" && \
-         echo timestamp > stamp-poT && \
-         mv stamp-poT stamp-po; \
+         echo "touch $(srcdir)/stamp-po" && \
+         echo timestamp > $(srcdir)/stamp-poT && \
+         mv $(srcdir)/stamp-poT $(srcdir)/stamp-po; \
        }
 
 # Note: Target 'all' must not depend on target '$(DOMAIN).pot-update',
@@ -156,11 +174,9 @@ $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
        package_gnu="$(PACKAGE_GNU)"; \
        test -n "$$package_gnu" || { \
          if { if (LC_ALL=C find --version) 2>/dev/null | grep GNU >/dev/null; then \
-                LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f \
-                              -size -10000000c -exec grep 'GNU @PACKAGE@' \
-                              /dev/null '{}' ';' 2>/dev/null; \
+                LC_ALL=C find -L $(top_srcdir) -maxdepth 1 -type f -size -10000000c -exec grep -i 'GNU @PACKAGE@' /dev/null '{}' ';' 2>/dev/null; \
               else \
-                LC_ALL=C grep 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \
+                LC_ALL=C grep -i 'GNU @PACKAGE@' $(top_srcdir)/* 2>/dev/null; \
               fi; \
             } | grep -v 'libtool:' >/dev/null; then \
             package_gnu=yes; \
@@ -181,22 +197,30 @@ $(DOMAIN).pot-update: $(POTFILES) $(srcdir)/POTFILES.in remove-potcdate.sed
        case `$(XGETTEXT) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
          '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].* | 0.16 | 0.16.[0-1]*) \
            $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
-             --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
+             --add-comments=TRANSLATORS: \
              --files-from=$(srcdir)/POTFILES.in \
              --copyright-holder='$(COPYRIGHT_HOLDER)' \
              --msgid-bugs-address="$$msgid_bugs_address" \
+             $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
            ;; \
          *) \
            $(XGETTEXT) --default-domain=$(DOMAIN) --directory=$(top_srcdir) \
-             --add-comments=TRANSLATORS: $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
+             --add-comments=TRANSLATORS: \
              --files-from=$(srcdir)/POTFILES.in \
              --copyright-holder='$(COPYRIGHT_HOLDER)' \
              --package-name="$${package_prefix}@PACKAGE@" \
              --package-version='@VERSION@' \
              --msgid-bugs-address="$$msgid_bugs_address" \
+             $(XGETTEXT_OPTIONS) @XGETTEXT_EXTRA_OPTIONS@ \
            ;; \
        esac
        test ! -f $(DOMAIN).po || { \
+         if test -f $(srcdir)/$(DOMAIN).pot-header; then \
+           sed -e '1,/^#$$/d' < $(DOMAIN).po > $(DOMAIN).1po && \
+           cat $(srcdir)/$(DOMAIN).pot-header $(DOMAIN).1po > $(DOMAIN).po && \
+           rm -f $(DOMAIN).1po \
+           || exit 1; \
+         fi; \
          if test -f $(srcdir)/$(DOMAIN).pot; then \
            sed -f remove-potcdate.sed < $(srcdir)/$(DOMAIN).pot > $(DOMAIN).1po && \
            sed -f remove-potcdate.sed < $(DOMAIN).po > $(DOMAIN).2po && \
@@ -220,17 +244,19 @@ $(srcdir)/$(DOMAIN).pot:
 # This target rebuilds a PO file if $(DOMAIN).pot has changed.
 # Note that a PO file is not touched if it doesn't need to be changed.
 $(POFILES): $(POFILESDEPS)
+       @test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot
        @lang=`echo $@ | sed -e 's,.*/,,' -e 's/\.po$$//'`; \
        if test -f "$(srcdir)/$${lang}.po"; then \
-         test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot; \
          test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
-         echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \
+         echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \
          cd $(srcdir) \
            && { case `$(MSGMERGE_UPDATE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
-                  '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
+                  '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \
                     $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \
+                  0.1[6-7] | 0.1[6-7].*) \
+                    $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \
                   *) \
-                    $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \
+                    $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \
                 esac; \
               }; \
        else \
@@ -365,34 +391,41 @@ check: all
 
 info dvi ps pdf html tags TAGS ctags CTAGS ID:
 
+install-dvi install-ps install-pdf install-html:
+
 mostlyclean:
        rm -f remove-potcdate.sed
-       rm -f stamp-poT
+       rm -f $(srcdir)/stamp-poT
        rm -f core core.* $(DOMAIN).po $(DOMAIN).1po $(DOMAIN).2po *.new.po
        rm -fr *.o
 
 clean: mostlyclean
 
 distclean: clean
-       rm -f Makefile Makefile.in POTFILES *.mo
+       rm -f Makefile Makefile.in POTFILES
 
 maintainer-clean: distclean
        @echo "This command is intended for maintainers to use;"
        @echo "it deletes files that may require special tools to rebuild."
-       rm -f stamp-po $(GMOFILES)
+       rm -f $(srcdir)/$(DOMAIN).pot $(srcdir)/stamp-po $(GMOFILES)
 
 distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
 dist distdir:
        test -z "$(DISTFILESDEPS)" || $(MAKE) $(DISTFILESDEPS)
        @$(MAKE) dist2
 # This is a separate target because 'update-po' must be executed before.
-dist2: stamp-po $(DISTFILES)
-       dists="$(DISTFILES)"; \
+dist2: $(srcdir)/stamp-po $(DISTFILES)
+       @dists="$(DISTFILES)"; \
        if test "$(PACKAGE)" = "gettext-tools"; then \
          dists="$$dists Makevars.template"; \
        fi; \
        if test -f $(srcdir)/$(DOMAIN).pot; then \
          dists="$$dists $(DOMAIN).pot stamp-po"; \
+       else \
+         case $(XGETTEXT) in \
+           :) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because a suitable 'xgettext' program was not found in PATH." 1>&2;; \
+           *) echo "Warning: Creating a tarball without '$(DOMAIN).pot', because 'xgettext' found no strings to extract. Check the contents of the POTFILES.in file and the XGETTEXT_OPTIONS in the Makevars file." 1>&2;; \
+         esac; \
        fi; \
        if test -f $(srcdir)/ChangeLog; then \
          dists="$$dists ChangeLog"; \
@@ -427,17 +460,19 @@ update-po: Makefile
 
 .nop.po-update:
        @lang=`echo $@ | sed -e 's/\.po-update$$//'`; \
-       if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; fi; \
+       if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; fi; \
        tmpdir=`pwd`; \
        echo "$$lang:"; \
        test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \
-       echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
+       echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \
        cd $(srcdir); \
        if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \
-              '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \
+              '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \
                 $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
+              0.1[6-7] | 0.1[6-7].*) \
+                $(MSGMERGE) $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
               *) \
-                $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
+                $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \
             esac; \
           }; then \
          if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
index 7585237..979d184 100644 (file)
@@ -1,4 +1,8 @@
 # Makefile variables for PO directory in any package using GNU gettext.
+#
+# Copyright (C) 2003-2019 Free Software Foundation, Inc.
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to use, copy, distribute, and modify it.
 
 # Usually the message domain is the same as the package name.
 DOMAIN = $(PACKAGE)
@@ -43,7 +47,6 @@ PACKAGE_GNU = no
 # which the translators can contact you.
 MSGID_BUGS_ADDRESS = translations@gnupg.org
 
-
 # This is the list of locale categories, beyond LC_MESSAGES, for which the
 # message catalogs shall be used.  It is usually empty.
 EXTRA_LOCALE_CATEGORIES =
index 9dc9630..18c024b 100644 (file)
@@ -1,5 +1,9 @@
-# This file, Rules-quot, can be copied and used freely without restrictions.
 # Special Makefile rules for English message catalogs with quotation marks.
+#
+# Copyright (C) 2001-2017 Free Software Foundation, Inc.
+# This file, Rules-quot, and its auxiliary files (listed under
+# DISTFILES.common.extra1) are free software; the Free Software Foundation
+# gives unlimited permission to use, copy, distribute, and modify them.
 
 DISTFILES.common.extra1 = quot.sed boldquot.sed en@quot.header en@boldquot.header insert-header.sin Rules-quot
 
@@ -15,7 +19,7 @@ en@boldquot.po-update: en@boldquot.po-update-en
 
 .insert-header.po-update-en:
        @lang=`echo $@ | sed -e 's/\.po-update-en$$//'`; \
-       if test "$(PACKAGE)" = "gettext-tools"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
+       if test "$(PACKAGE)" = "gettext-tools" && test "$(CROSS_COMPILING)" != "yes"; then PATH=`pwd`/../src:$$PATH; GETTEXTLIBDIR=`cd $(top_srcdir)/src && pwd`; export GETTEXTLIBDIR; fi; \
        tmpdir=`pwd`; \
        echo "$$lang:"; \
        ll=`echo $$lang | sed -e 's/@.*//'`; \
index 6a4232e..55b040d 100644 (file)
--- a/po/cs.po
+++ b/po/cs.po
@@ -14,7 +14,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error 1.42\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-10-15 21:07+02:00\n"
 "Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n"
 "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n"
@@ -1966,22 +1966,22 @@ msgstr "příkaz „%.50s“ není jednoznačný\n"
 msgid "invalid option \"%.50s\"\n"
 msgstr "neplatná volba „%.50s“\n"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr "Poznámka: žádný výchozí soubor s volbami „%s“\n"
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr "volby se čtou z „%s“\n"
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr "soubor s volbami „%s“: %s\n"
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr "Poznámka: přepínač „--%s“ se ignoruje kvůli globální konfiguraci\n"
index 9aaa164..6e13e72 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -10,7 +10,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error 1.10\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-03-22 10:24+0100\n"
 "Last-Translator: Joe Hansen <joedalton2@yahoo.dk>\n"
 "Language-Team: Danish <debian-l10n-danish@lists.debian.org>\n"
@@ -2138,22 +2138,22 @@ msgstr "kommando »%.50s« er tvetydig\n"
 msgid "invalid option \"%.50s\"\n"
 msgstr "ugyldigt tilvalg »%.50s«\n"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr ""
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr ""
index 773e2f1..2f1fe73 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error-1.19\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-03-22 10:25+0100\n"
 "Last-Translator: Werner Koch <wk@gnupg.org>\n"
 "Language-Team: none\n"
@@ -1964,22 +1964,22 @@ msgstr "Befehl \"%.50s\" ist mehrdeutig\n"
 msgid "invalid option \"%.50s\"\n"
 msgstr "Ungültige Option \"%.50s\"\n"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr "Hinweis: Keine voreingestellte Optionendatei '%s' vorhanden\n"
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr "Optionen werden aus '%s' gelesen\n"
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr "Optionendatei '%s': %s\n"
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr ""
index 12a0110..beca913 100644 (file)
--- a/po/eo.po
+++ b/po/eo.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error 1.7\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-03-22 10:25+0100\n"
 "Last-Translator: Felipe Castro <fefcas@gmail.com>\n"
 "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n"
@@ -2198,22 +2198,22 @@ msgstr ""
 msgid "invalid option \"%.50s\"\n"
 msgstr "nevalida kiraso"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr ""
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr ""
index 9e871f8..ab24750 100644 (file)
--- a/po/es.po
+++ b/po/es.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error 1.30-beta4\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-03-22 10:25+0100\n"
 "Last-Translator: Tails translators <amnesia@boum.org>\n"
 "Language-Team: es <LL@li.org>\n"
@@ -1984,22 +1984,22 @@ msgstr "la orden \"%.50s\" es ambigua\n"
 msgid "invalid option \"%.50s\"\n"
 msgstr "opción inválida \"%.50s\"\n"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr ""
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr ""
index 1f38786..20f6dc1 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error-1.17\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-03-22 10:26+0100\n"
 "Last-Translator: David Prévot <david@tilapin.org>\n"
 "Language-Team: French <traduc@traduc.org>\n"
@@ -2132,22 +2132,22 @@ msgstr "la commande « %.50s » est ambiguë\n"
 msgid "invalid option \"%.50s\"\n"
 msgstr "option « %.50s » incorrecte\n"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr ""
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr ""
index 76126a4..54eb68e 100644 (file)
--- a/po/hu.po
+++ b/po/hu.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error-1.7\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-03-22 10:26+0100\n"
 "Last-Translator: Balázs Úr <urbalazs@gmail.com>\n"
 "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n"
@@ -2196,22 +2196,22 @@ msgstr ""
 msgid "invalid option \"%.50s\"\n"
 msgstr "Érvénytelen import opciók!\n"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr ""
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr ""
index b26de01..ceeebb9 100644 (file)
@@ -1,5 +1,10 @@
 # Sed script that inserts the file called HEADER before the header entry.
 #
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Written by Bruno Haible <bruno@clisp.org>, 2001.
+# This file is free software; the Free Software Foundation gives
+# unlimited permission to use, copy, distribute, and modify it.
+#
 # At each occurrence of a line starting with "msgid ", we execute the following
 # commands. At the first occurrence, insert the file. At the following
 # occurrences, do nothing. The distinction between the first and the following
index 34077dc..10e3f84 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-03-22 10:26+0100\n"
 "Last-Translator: Milo Casagrande <milo@milo.name>\n"
 "Language-Team: Italian <tp@lists.linux.it>\n"
@@ -2140,22 +2140,22 @@ msgstr ""
 msgid "invalid option \"%.50s\"\n"
 msgstr "opzioni di importazione non valide\n"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr ""
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr ""
index 2dbac29..ea583fc 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error 1.39\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-03-22 10:26+0100\n"
 "Last-Translator: NIIBE Yutaka <gniibe@fsij.org>\n"
 "Language-Team: none\n"
@@ -1957,22 +1957,22 @@ msgstr "コマンド\"%.50s\"はあいまいです\n"
 msgid "invalid option \"%.50s\"\n"
 msgstr "無効なオプション \"%.50s\"\n"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr "注: デフォルトオプションファイル '%s' がありません\n"
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr "オプションを'%s'から読みます\n"
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr "オプションファイル '%s': %s\n"
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr "注: グローバルコンフィグのため、オプション \"--%s\" を無視します\n"
index 52a1e39..632d276 100644 (file)
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: libgpg-error 1.43\n"
+"Project-Id-Version: libgpg-error 1.46\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1956,22 +1956,22 @@ msgstr ""
 msgid "invalid option \"%.50s\"\n"
 msgstr ""
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr ""
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr ""
index 5b8546b..4a23640 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error 1.10\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-03-22 10:27+0100\n"
 "Last-Translator: Freek de Kruijf <f.de.kruijf@gmail.com>\n"
 "Language-Team: Dutch <vertaling@vrijschrift.org>\n"
@@ -2148,22 +2148,22 @@ msgstr ""
 msgid "invalid option \"%.50s\"\n"
 msgstr "Ongeldige bewerkingscode"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr ""
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr ""
index a7ce38a..865de70 100644 (file)
--- a/po/pl.po
+++ b/po/pl.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error 1.38\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-03-22 10:42+0100\n"
 "Last-Translator: Jakub Bogusz <qboosh@pld-linux.org>\n"
 "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n"
@@ -1956,22 +1956,22 @@ msgstr "polecenie ,,%.50s'' jest niejednoznaczne\n"
 msgid "invalid option \"%.50s\"\n"
 msgstr "błędna opcja ,,%.50s''\n"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr "Uwaga: brak domyślnego pliku opcji ,,%s''\n"
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr "odczyt opcji z ,,%s''\n"
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr "plik opcji ,,%s'': %s\n"
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr ""
index cc09dc7..dd04de9 100644 (file)
--- a/po/pt.po
+++ b/po/pt.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error 1.17\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-03-22 10:42+0100\n"
 "Last-Translator: Paulo Tomé <paulo.jorge.tome@gmail.com>\n"
 "Language-Team: Portuguese <traduz@debian.pt.org>\n"
@@ -2140,22 +2140,22 @@ msgstr ""
 msgid "invalid option \"%.50s\"\n"
 msgstr "opções de importação inválidas\n"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr ""
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr ""
index 2436c49..8c70dfb 100644 (file)
@@ -1,6 +1,12 @@
-# Sed script that remove the POT-Creation-Date line in the header entry
+# Sed script that removes the POT-Creation-Date line in the header entry
 # from a POT file.
 #
+# Copyright (C) 2002 Free Software Foundation, Inc.
+# Copying and distribution of this file, with or without modification,
+# are permitted in any medium without royalty provided the copyright
+# notice and this notice are preserved.  This file is offered as-is,
+# without any warranty.
+#
 # The distinction between the first and the following occurrences of the
 # pattern is achieved by looking at the hold space.
 /^"POT-Creation-Date: .*"$/{
index 2dc6c9d..2c7a129 100644 (file)
--- a/po/ro.po
+++ b/po/ro.po
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error 1.1\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-03-22 10:42+0100\n"
 "Last-Translator: Laurentiu Buzdugan <lbuz@rolix.org>\n"
 "Language-Team: Romanian <translation-team-ro@lists.sourceforge.net>\n"
@@ -2189,22 +2189,22 @@ msgstr ""
 msgid "invalid option \"%.50s\"\n"
 msgstr "opţiuni enumerare invalide\n"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr ""
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr ""
index 23f404b..ed231dc 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-10-12 10:43+0100\n"
 "Last-Translator: Ineiev <ineiev@gnu.org>\n"
 "Language-Team: Russian <gnupg-ru@gnupg.org>\n"
@@ -1975,22 +1975,22 @@ msgstr "команда \"%.50s\" неоднозначна\n"
 msgid "invalid option \"%.50s\"\n"
 msgstr "недопустимый параметр \"%.50s\"\n"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr "Замечание: нет файла параметров по умолчанию '%s'\n"
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr "чтение параметров из '%s'\n"
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr "файл параметров '%s': %s\n"
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr ""
index c25d23a..f2f7be2 100644 (file)
--- a/po/sr.po
+++ b/po/sr.po
@@ -6,7 +6,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error-1.7\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-03-22 10:43+0100\n"
 "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n"
 "Language-Team: Serbian <(nothing)>\n"
@@ -2203,22 +2203,22 @@ msgstr ""
 msgid "invalid option \"%.50s\"\n"
 msgstr "Неисправна шифра радње"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr ""
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr ""
index 95b35a5..0429e59 100644 (file)
--- a/po/sv.po
+++ b/po/sv.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error 1.7\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-03-22 10:43+0100\n"
 "Last-Translator: Daniel Nylander <po@danielnylander.se>\n"
 "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n"
@@ -2176,22 +2176,22 @@ msgstr "kommandot \"%.50s\" är tvetydigt\n"
 msgid "invalid option \"%.50s\"\n"
 msgstr "ogiltig flagga \"%.50s\"\n"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr ""
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr ""
diff --git a/po/tr.gmo b/po/tr.gmo
new file mode 100644 (file)
index 0000000..f735c9d
Binary files /dev/null and b/po/tr.gmo differ
diff --git a/po/tr.po b/po/tr.po
new file mode 100644 (file)
index 0000000..a76af4f
--- /dev/null
+++ b/po/tr.po
@@ -0,0 +1,1985 @@
+# Turkish translations for libgpg-error messages.
+# Emir SARI <emir_sari@icloud.com>, 2022
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: libgpg-error\n"
+"Report-Msgid-Bugs-To: translations@gnupg.org\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
+"PO-Revision-Date: 2022-01-13 20:00+0100\n"
+"Last-Translator: Emir SARI <emir_sari@icloud.com>\n"
+"Language-Team: Turkish\n"
+"Language: tr\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"X-Generator: KBabel 1.11.4\n"
+
+#: src/err-sources.h:28
+msgid "Unspecified source"
+msgstr "Tanımlanmamış kaynak"
+
+#: src/err-sources.h:29
+msgid "gcrypt"
+msgstr "gcrypt"
+
+#: src/err-sources.h:30
+msgid "GnuPG"
+msgstr "GnuPG"
+
+#: src/err-sources.h:31
+msgid "GpgSM"
+msgstr "GpgSM"
+
+#: src/err-sources.h:32
+msgid "GPG Agent"
+msgstr "GPG Aracısı"
+
+#: src/err-sources.h:33
+msgid "Pinentry"
+msgstr "Parola girişi"
+
+#: src/err-sources.h:34
+msgid "SCD"
+msgstr "SCD"
+
+#: src/err-sources.h:35
+msgid "GPGME"
+msgstr "GPGME"
+
+#: src/err-sources.h:36
+msgid "Keybox"
+msgstr "Keybox"
+
+#: src/err-sources.h:37
+msgid "KSBA"
+msgstr "KSBA"
+
+#: src/err-sources.h:38
+msgid "Dirmngr"
+msgstr "Dirmngr"
+
+#: src/err-sources.h:39
+msgid "GSTI"
+msgstr "GSTI"
+
+#: src/err-sources.h:40
+msgid "GPA"
+msgstr "GPA"
+
+#: src/err-sources.h:41
+msgid "Kleopatra"
+msgstr "Kleopatra"
+
+#: src/err-sources.h:42
+msgid "G13"
+msgstr "G13"
+
+#: src/err-sources.h:43
+msgid "Assuan"
+msgstr "Assuan"
+
+#: src/err-sources.h:44
+msgid "TPM2d"
+msgstr "TPM2d"
+
+#: src/err-sources.h:45
+msgid "TLS"
+msgstr "TLS"
+
+#: src/err-sources.h:46
+msgid "Any source"
+msgstr "Herhangi bir kaynak"
+
+#: src/err-sources.h:47
+msgid "User defined source 1"
+msgstr "Kullanıcı tanımlı kaynak 1"
+
+#: src/err-sources.h:48
+msgid "User defined source 2"
+msgstr "Kullanıcı tanımlı kaynak 2"
+
+#: src/err-sources.h:49
+msgid "User defined source 3"
+msgstr "Kullanıcı tanımlı kaynak 3"
+
+#: src/err-sources.h:50
+msgid "User defined source 4"
+msgstr "Kullanıcı tanımlı kaynak 4"
+
+#: src/err-sources.h:51
+msgid "Unknown source"
+msgstr "Bilinmeyen kaynak"
+
+#: src/err-codes.h:28
+msgid "Success"
+msgstr "Başarılı"
+
+#: src/err-codes.h:29
+msgid "General error"
+msgstr "Genel hata"
+
+#: src/err-codes.h:30
+msgid "Unknown packet"
+msgstr "Bilinmeyen paket"
+
+#: src/err-codes.h:31
+msgid "Unknown version in packet"
+msgstr "Pakette bilinmeyen sürüm"
+
+#: src/err-codes.h:32
+msgid "Invalid public key algorithm"
+msgstr "Bilinmeyen genel anahtar algoritması"
+
+#: src/err-codes.h:33
+msgid "Invalid digest algorithm"
+msgstr "Bilinmeyen özet algoritması"
+
+#: src/err-codes.h:34
+msgid "Bad public key"
+msgstr "Kötü genel anahtar"
+
+#: src/err-codes.h:35
+msgid "Bad secret key"
+msgstr "Kötü özel anahtar"
+
+#: src/err-codes.h:36
+msgid "Bad signature"
+msgstr "Kötü imza"
+
+#: src/err-codes.h:37
+msgid "No public key"
+msgstr "Genel anahtar yok"
+
+#: src/err-codes.h:38
+msgid "Checksum error"
+msgstr "Sağlama toplamı hatası"
+
+#: src/err-codes.h:39
+msgid "Bad passphrase"
+msgstr "Kötü parola"
+
+#: src/err-codes.h:40
+msgid "Invalid cipher algorithm"
+msgstr "Bilinmeyen şifre algoritması"
+
+#: src/err-codes.h:41
+msgid "Cannot open keyring"
+msgstr "Anahtar zinciri açılamıyor"
+
+#: src/err-codes.h:42
+msgid "Invalid packet"
+msgstr "Geçersiz paket"
+
+#: src/err-codes.h:43
+msgid "Invalid armor"
+msgstr "Geçersiz zırh"
+
+#: src/err-codes.h:44
+msgid "No user ID"
+msgstr "Kullanıcı kimliği yok"
+
+#: src/err-codes.h:45
+msgid "No secret key"
+msgstr "Gizli anahtar yok"
+
+#: src/err-codes.h:46
+msgid "Wrong secret key used"
+msgstr "Yanlış gizli anahtar kullanıldı"
+
+#: src/err-codes.h:47
+msgid "Bad session key"
+msgstr "Kötü oturum anahtarı"
+
+#: src/err-codes.h:48
+msgid "Unknown compression algorithm"
+msgstr "Bilinmeyen sıkıştırma algoritması"
+
+#: src/err-codes.h:49
+msgid "Number is not prime"
+msgstr "Sayı asal değil"
+
+#: src/err-codes.h:50
+msgid "Invalid encoding method"
+msgstr "Geçersiz kodlama yöntemi"
+
+#: src/err-codes.h:51
+msgid "Invalid encryption scheme"
+msgstr "Geçersiz şifreleme şeması"
+
+#: src/err-codes.h:52
+msgid "Invalid signature scheme"
+msgstr "Geçersiz imza şeması"
+
+#: src/err-codes.h:53
+msgid "Invalid attribute"
+msgstr "Geçersiz öznitelik"
+
+#: src/err-codes.h:54
+msgid "No value"
+msgstr "Değer yok"
+
+#: src/err-codes.h:55
+msgid "Not found"
+msgstr "Bulunamadı"
+
+#: src/err-codes.h:56
+msgid "Value not found"
+msgstr "Değer bulunamadı"
+
+#: src/err-codes.h:57
+msgid "Syntax error"
+msgstr "Sözdizim hatası"
+
+#: src/err-codes.h:58
+msgid "Bad MPI value"
+msgstr "Kötü MPI değeri"
+
+#: src/err-codes.h:59
+msgid "Invalid passphrase"
+msgstr "Geçersiz parola"
+
+#: src/err-codes.h:60
+msgid "Invalid signature class"
+msgstr "Geçersiz imza sınıfı"
+
+#: src/err-codes.h:61
+msgid "Resources exhausted"
+msgstr "Özkaynaklar tüketildi"
+
+#: src/err-codes.h:62
+msgid "Invalid keyring"
+msgstr "Geçersiz anahtar zinciri"
+
+#: src/err-codes.h:63
+msgid "Trust DB error"
+msgstr "Güvence veritabanı hatası"
+
+#: src/err-codes.h:64
+msgid "Bad certificate"
+msgstr "Kötü sertifika"
+
+#: src/err-codes.h:65
+msgid "Invalid user ID"
+msgstr "Geçersiz kullanıcı kimliği"
+
+#: src/err-codes.h:66
+msgid "Unexpected error"
+msgstr "Bilinmeyen hata"
+
+#: src/err-codes.h:67
+msgid "Time conflict"
+msgstr "Zaman çakışması"
+
+#: src/err-codes.h:68
+msgid "Keyserver error"
+msgstr "Anahtar sunucusu hatası"
+
+#: src/err-codes.h:69
+msgid "Wrong public key algorithm"
+msgstr "Yanlış genel anahtar algoritması"
+
+#: src/err-codes.h:70
+msgid "Tribute to D. A."
+msgstr "D. A.'ya teşekkürlerimizle"
+
+#: src/err-codes.h:71
+msgid "Weak encryption key"
+msgstr "Zayıf şifreleme anahtarı"
+
+#: src/err-codes.h:72
+msgid "Invalid key length"
+msgstr "Geçersiz anahtar uzunluğu"
+
+#: src/err-codes.h:73
+msgid "Invalid argument"
+msgstr "Geçersiz argüman"
+
+#: src/err-codes.h:74
+msgid "Syntax error in URI"
+msgstr "URI içinde sözdizim hatası"
+
+#: src/err-codes.h:75
+msgid "Invalid URI"
+msgstr "Geçersiz URI"
+
+#: src/err-codes.h:76
+msgid "Network error"
+msgstr "Ağ hatası"
+
+#: src/err-codes.h:77
+msgid "Unknown host"
+msgstr "Bilinmeyen makine"
+
+#: src/err-codes.h:78
+msgid "Selftest failed"
+msgstr "Öz denetim başarısız"
+
+#: src/err-codes.h:79
+msgid "Data not encrypted"
+msgstr "Veri şifrelenmemiş"
+
+#: src/err-codes.h:80
+msgid "Data not processed"
+msgstr "Veri işlenmemiş"
+
+#: src/err-codes.h:81
+msgid "Unusable public key"
+msgstr "Kullanılamayacak genel anahtar"
+
+#: src/err-codes.h:82
+msgid "Unusable secret key"
+msgstr "Kullanılamayacak özel anahtar"
+
+#: src/err-codes.h:83
+msgid "Invalid value"
+msgstr "Geçersiz değer"
+
+#: src/err-codes.h:84
+msgid "Bad certificate chain"
+msgstr "Kötü sertifika zinciri"
+
+#: src/err-codes.h:85
+msgid "Missing certificate"
+msgstr "Sertifika eksik"
+
+#: src/err-codes.h:86
+msgid "No data"
+msgstr "Veri yok"
+
+#: src/err-codes.h:87
+msgid "Bug"
+msgstr "Hata"
+
+#: src/err-codes.h:88
+msgid "Not supported"
+msgstr "Desteklenmiyor"
+
+#: src/err-codes.h:89
+msgid "Invalid operation code"
+msgstr "Geçersiz işlem kodu"
+
+#: src/err-codes.h:90
+msgid "Timeout"
+msgstr "Zaman aşımı"
+
+#: src/err-codes.h:91
+msgid "Internal error"
+msgstr "İçsel hata"
+
+#: src/err-codes.h:92
+msgid "EOF (gcrypt)"
+msgstr "Dosya sonu (gcrypt)"
+
+#: src/err-codes.h:93
+msgid "Invalid object"
+msgstr "Geçersiz nesne"
+
+#: src/err-codes.h:94
+msgid "Provided object is too short"
+msgstr "Sağlanan nesne pek kısa"
+
+#: src/err-codes.h:95
+msgid "Provided object is too large"
+msgstr "Sağlanan nesne pek büyük"
+
+#: src/err-codes.h:96
+msgid "Missing item in object"
+msgstr "Nesnede eksik öge"
+
+#: src/err-codes.h:97
+msgid "Not implemented"
+msgstr "Özellik mevcut değil"
+
+#: src/err-codes.h:98
+msgid "Conflicting use"
+msgstr "Çakışan kullanım"
+
+#: src/err-codes.h:99
+msgid "Invalid cipher mode"
+msgstr "Geçersiz şifre kipi"
+
+#: src/err-codes.h:100
+msgid "Invalid flag"
+msgstr "Geçersiz bayrak"
+
+#: src/err-codes.h:101
+msgid "Invalid handle"
+msgstr "Geçersiz tutaç"
+
+#: src/err-codes.h:102
+msgid "Result truncated"
+msgstr "Sonuç kısaltıldı"
+
+#: src/err-codes.h:103
+msgid "Incomplete line"
+msgstr "Tam olmayan satır"
+
+#: src/err-codes.h:104
+msgid "Invalid response"
+msgstr "Geçersiz yanıt"
+
+#: src/err-codes.h:105
+msgid "No agent running"
+msgstr "Çalışan aracı yok"
+
+#: src/err-codes.h:106
+msgid "Agent error"
+msgstr "Aracı hatası"
+
+#: src/err-codes.h:107
+msgid "Invalid data"
+msgstr "Geçersiz tarih"
+
+#: src/err-codes.h:108
+msgid "Unspecific Assuan server fault"
+msgstr "Belirsiz Assuan sunucu hatası"
+
+#: src/err-codes.h:109
+msgid "General Assuan error"
+msgstr "Genel Assuan hatası"
+
+#: src/err-codes.h:110
+msgid "Invalid session key"
+msgstr "Geçersiz oturum anahtarı"
+
+#: src/err-codes.h:111
+msgid "Invalid S-expression"
+msgstr "Geçersiz sembolik ifade"
+
+#: src/err-codes.h:112
+msgid "Unsupported algorithm"
+msgstr "Desteklenmeyen algoritma"
+
+#: src/err-codes.h:113
+msgid "No pinentry"
+msgstr "Parola girişi yok"
+
+#: src/err-codes.h:114
+msgid "pinentry error"
+msgstr "Parola girişi hatası"
+
+#: src/err-codes.h:115
+msgid "Bad PIN"
+msgstr "Kötü PIN"
+
+#: src/err-codes.h:116
+msgid "Invalid name"
+msgstr "Geçersiz ad"
+
+#: src/err-codes.h:117
+msgid "Bad data"
+msgstr "Kötü veri"
+
+#: src/err-codes.h:118
+msgid "Invalid parameter"
+msgstr "Geçersiz parametre"
+
+#: src/err-codes.h:119
+msgid "Wrong card"
+msgstr "Yanlış kart"
+
+#: src/err-codes.h:120
+msgid "No dirmngr"
+msgstr "dirmngr yok"
+
+#: src/err-codes.h:121
+msgid "dirmngr error"
+msgstr "dirmngr hatası"
+
+#: src/err-codes.h:122
+msgid "Certificate revoked"
+msgstr "Sertifika yürürlükten kaldırıldı"
+
+#: src/err-codes.h:123
+msgid "No CRL known"
+msgstr "Bilinen yürürlükten kaldırılmış sertifikalar listesi yok"
+
+#: src/err-codes.h:124
+msgid "CRL too old"
+msgstr "Yürürlükten kaldırılmış sertifikalar listesi pek eski"
+
+#: src/err-codes.h:125
+msgid "Line too long"
+msgstr "Satır pek uzun"
+
+#: src/err-codes.h:126
+msgid "Not trusted"
+msgstr "Güvenilmiyor"
+
+#: src/err-codes.h:127
+msgid "Operation cancelled"
+msgstr "İşlem iptal edildi"
+
+#: src/err-codes.h:128
+msgid "Bad CA certificate"
+msgstr "Hatalı CA sertifikası"
+
+#: src/err-codes.h:129
+msgid "Certificate expired"
+msgstr "Sertifika süresi doldu"
+
+#: src/err-codes.h:130
+msgid "Certificate too young"
+msgstr "Sertifika pek yeni"
+
+#: src/err-codes.h:131
+msgid "Unsupported certificate"
+msgstr "Desteklenmeyen sertifika"
+
+#: src/err-codes.h:132
+msgid "Unknown S-expression"
+msgstr "Bilinmeyen sembolik ifade"
+
+#: src/err-codes.h:133
+msgid "Unsupported protection"
+msgstr "Desteklenmeyen koruma"
+
+#: src/err-codes.h:134
+msgid "Corrupted protection"
+msgstr "Hasar görmüş koruma"
+
+#: src/err-codes.h:135
+msgid "Ambiguous name"
+msgstr "Belirsiz ad"
+
+#: src/err-codes.h:136
+msgid "Card error"
+msgstr "Kart hatası"
+
+#: src/err-codes.h:137
+msgid "Card reset required"
+msgstr "Kart sıfırlaması gerekiyor"
+
+#: src/err-codes.h:138
+msgid "Card removed"
+msgstr "Kart çıkarıldı"
+
+#: src/err-codes.h:139
+msgid "Invalid card"
+msgstr "Geçersiz kart"
+
+#: src/err-codes.h:140
+msgid "Card not present"
+msgstr "Kart mevcut değil"
+
+#: src/err-codes.h:141
+msgid "No PKCS15 application"
+msgstr "PKCS15 uygulaması yok"
+
+#: src/err-codes.h:142
+msgid "Not confirmed"
+msgstr "Onaylanmadı"
+
+#: src/err-codes.h:143
+msgid "Configuration error"
+msgstr "Yapılandırma hatası"
+
+#: src/err-codes.h:144
+msgid "No policy match"
+msgstr "Poliçe eşleşmesi yok"
+
+#: src/err-codes.h:145
+msgid "Invalid index"
+msgstr "Geçersiz indeks"
+
+#: src/err-codes.h:146
+msgid "Invalid ID"
+msgstr "Geçersiz kimlik"
+
+#: src/err-codes.h:147
+msgid "No SmartCard daemon"
+msgstr "SmartCard ardalan süreci yok"
+
+#: src/err-codes.h:148
+msgid "SmartCard daemon error"
+msgstr "SmartCard ardalan süreci hatası"
+
+#: src/err-codes.h:149
+msgid "Unsupported protocol"
+msgstr "Desteklenmeyen protokol"
+
+#: src/err-codes.h:150
+msgid "Bad PIN method"
+msgstr "Kötü PIN yöntemi"
+
+#: src/err-codes.h:151
+msgid "Card not initialized"
+msgstr "Kart ilklendirilmemiş"
+
+#: src/err-codes.h:152
+msgid "Unsupported operation"
+msgstr "Desteklenmeyen işlem"
+
+#: src/err-codes.h:153
+msgid "Wrong key usage"
+msgstr "Yanlış anahtar kullanımı"
+
+#: src/err-codes.h:154
+msgid "Nothing found"
+msgstr "Bir şey bulunmadı"
+
+#: src/err-codes.h:155
+msgid "Wrong blob type"
+msgstr "Yanlış geniş ikili nesne türü"
+
+#: src/err-codes.h:156
+msgid "Missing value"
+msgstr "Değer eksik"
+
+#: src/err-codes.h:157
+msgid "Hardware problem"
+msgstr "Donanım sorunu"
+
+#: src/err-codes.h:158
+msgid "PIN blocked"
+msgstr "PIN bloke oldu"
+
+#: src/err-codes.h:159
+msgid "Conditions of use not satisfied"
+msgstr "Kullanım koşulları yerine getirilmedi"
+
+#: src/err-codes.h:160
+msgid "PINs are not synced"
+msgstr "PIN'ler eşitlenmemiş"
+
+#: src/err-codes.h:161
+msgid "Invalid CRL"
+msgstr "Geçersiz yürürlükten kaldırılan sertifikalar listesi"
+
+#: src/err-codes.h:162
+msgid "BER error"
+msgstr "BER hatası"
+
+#: src/err-codes.h:163
+msgid "Invalid BER"
+msgstr "Geçersiz BER"
+
+#: src/err-codes.h:164
+msgid "Element not found"
+msgstr "Öge bulunamadı"
+
+#: src/err-codes.h:165
+msgid "Identifier not found"
+msgstr "Tanımlayıcı bulunamadı"
+
+#: src/err-codes.h:166
+msgid "Invalid tag"
+msgstr "Geçersiz etiket"
+
+#: src/err-codes.h:167
+msgid "Invalid length"
+msgstr "Geçersiz uzunluk"
+
+#: src/err-codes.h:168
+msgid "Invalid key info"
+msgstr "Geçersiz anahtar bilgisi"
+
+#: src/err-codes.h:169
+msgid "Unexpected tag"
+msgstr "Beklenmedik etiket"
+
+#: src/err-codes.h:170
+msgid "Not DER encoded"
+msgstr "DER'e göre kodlanmamış"
+
+#: src/err-codes.h:171
+msgid "No CMS object"
+msgstr "CMS nesnesi yok"
+
+#: src/err-codes.h:172
+msgid "Invalid CMS object"
+msgstr "Geçersiz CMS nesnesi"
+
+#: src/err-codes.h:173
+msgid "Unknown CMS object"
+msgstr "Bilinmeyen CMS nesnesi"
+
+#: src/err-codes.h:174
+msgid "Unsupported CMS object"
+msgstr "CMS nesnesi desteklenmiyor"
+
+#: src/err-codes.h:175
+msgid "Unsupported encoding"
+msgstr "Desteklenmeyen kodlama"
+
+#: src/err-codes.h:176
+msgid "Unsupported CMS version"
+msgstr "Desteklenmeyen CMS sürümü"
+
+#: src/err-codes.h:177
+msgid "Unknown algorithm"
+msgstr "Bilinmeyen algoritma"
+
+#: src/err-codes.h:178
+msgid "Invalid crypto engine"
+msgstr "Geçersiz kripto işletkesi"
+
+#: src/err-codes.h:179
+msgid "Public key not trusted"
+msgstr "Güvenilmeyen genel anahtar"
+
+#: src/err-codes.h:180
+msgid "Decryption failed"
+msgstr "Kod çözümü başarısız"
+
+#: src/err-codes.h:181
+msgid "Key expired"
+msgstr "Anahtar süresi doldu"
+
+#: src/err-codes.h:182
+msgid "Signature expired"
+msgstr "İmza süresi doldu"
+
+#: src/err-codes.h:183
+msgid "Encoding problem"
+msgstr "Kodlama sorunu"
+
+#: src/err-codes.h:184
+msgid "Invalid state"
+msgstr "Geçersiz durum"
+
+#: src/err-codes.h:185
+msgid "Duplicated value"
+msgstr "Yinelenmiş değer"
+
+#: src/err-codes.h:186
+msgid "Missing action"
+msgstr "Eylem eksik"
+
+#: src/err-codes.h:187
+msgid "ASN.1 module not found"
+msgstr "ASN.1 modülü bulunamadı"
+
+#: src/err-codes.h:188
+msgid "Invalid OID string"
+msgstr "Geçersiz OID dizisi"
+
+#: src/err-codes.h:189
+msgid "Invalid time"
+msgstr "Geçersiz zaman"
+
+#: src/err-codes.h:190
+msgid "Invalid CRL object"
+msgstr "Geçersiz yürürlükten kaldırılan sertifikalar listesi nesnesi"
+
+#: src/err-codes.h:191
+msgid "Unsupported CRL version"
+msgstr "Desteklenmeyen yürürlükten kaldırılan sertifikalar listesi sürümü"
+
+#: src/err-codes.h:192
+msgid "Invalid certificate object"
+msgstr "Geçersiz sertifika nesnesi"
+
+#: src/err-codes.h:193
+msgid "Unknown name"
+msgstr "Bilinmeyen ad"
+
+#: src/err-codes.h:194
+msgid "A locale function failed"
+msgstr "Bir yerelleştirme işlevi başarısız"
+
+#: src/err-codes.h:195
+msgid "Not locked"
+msgstr "Kilitli değil"
+
+#: src/err-codes.h:196
+msgid "Protocol violation"
+msgstr "Protokol kural ihlali"
+
+#: src/err-codes.h:197
+msgid "Invalid MAC"
+msgstr "Geçersiz MAC"
+
+#: src/err-codes.h:198
+msgid "Invalid request"
+msgstr "Geçersiz istek"
+
+#: src/err-codes.h:199
+msgid "Unknown extension"
+msgstr "Bilinmeyen uzantı"
+
+#: src/err-codes.h:200
+msgid "Unknown critical extension"
+msgstr "Bilinmeyen kritik uzantı"
+
+#: src/err-codes.h:201
+msgid "Locked"
+msgstr "Kilitli"
+
+#: src/err-codes.h:202
+msgid "Unknown option"
+msgstr "Bilinmeyen seçenek"
+
+#: src/err-codes.h:203
+msgid "Unknown command"
+msgstr "Bilinmeyen komut"
+
+#: src/err-codes.h:204
+msgid "Not operational"
+msgstr "Çalışmıyor"
+
+#: src/err-codes.h:205
+msgid "No passphrase given"
+msgstr "Anahtar parolası verilmedi"
+
+#: src/err-codes.h:206
+msgid "No PIN given"
+msgstr "PIN verilmedi"
+
+#: src/err-codes.h:207
+msgid "Not enabled"
+msgstr "Etkin değil"
+
+#: src/err-codes.h:208
+msgid "No crypto engine"
+msgstr "Kripto işletkesi yok"
+
+#: src/err-codes.h:209
+msgid "Missing key"
+msgstr "Anahtar eksik"
+
+#: src/err-codes.h:210
+msgid "Too many objects"
+msgstr "Pek fazla nesne"
+
+#: src/err-codes.h:211
+msgid "Limit reached"
+msgstr "Limite ulaşıldı"
+
+#: src/err-codes.h:212
+msgid "Not initialized"
+msgstr "İlklendirilmemiş"
+
+#: src/err-codes.h:213
+msgid "Missing issuer certificate"
+msgstr "Veren sertifikası eksik"
+
+#: src/err-codes.h:214
+msgid "No keyserver available"
+msgstr "Anahtar sunucusu yok"
+
+#: src/err-codes.h:215
+msgid "Invalid elliptic curve"
+msgstr "Geçersiz eliptik eğri"
+
+#: src/err-codes.h:216
+msgid "Unknown elliptic curve"
+msgstr "Bilinmeyen eliptik eğri"
+
+#: src/err-codes.h:217
+msgid "Duplicated key"
+msgstr "Yinelenmiş anahtar"
+
+#: src/err-codes.h:218
+msgid "Ambiguous result"
+msgstr "Belirsiz sonuç"
+
+#: src/err-codes.h:219
+msgid "No crypto context"
+msgstr "Kripto bağlamı yok"
+
+#: src/err-codes.h:220
+msgid "Wrong crypto context"
+msgstr "Yanlış kripto bağlamı"
+
+#: src/err-codes.h:221
+msgid "Bad crypto context"
+msgstr "Kötü kripto bağlamı"
+
+#: src/err-codes.h:222
+msgid "Conflict in the crypto context"
+msgstr "Kripto bağlamında çakışma"
+
+#: src/err-codes.h:223
+msgid "Broken public key"
+msgstr "Bozuk genel anahtar"
+
+#: src/err-codes.h:224
+msgid "Broken secret key"
+msgstr "Bozuk özel anahtar"
+
+#: src/err-codes.h:225
+msgid "Invalid MAC algorithm"
+msgstr "Geçersiz MAC algoritması"
+
+#: src/err-codes.h:226
+msgid "Operation fully cancelled"
+msgstr "İşlem tümüyle iptal edildi"
+
+#: src/err-codes.h:227
+msgid "Operation not yet finished"
+msgstr "İşlem henüz bitmedi"
+
+#: src/err-codes.h:228
+msgid "Buffer too short"
+msgstr "Arabellek pek kısa"
+
+#: src/err-codes.h:229
+msgid "Invalid length specifier in S-expression"
+msgstr "Sembolik ifadede geçersiz uzunluk belirteci"
+
+#: src/err-codes.h:230
+msgid "String too long in S-expression"
+msgstr "Sembolik ifadede dizi pek uzun"
+
+#: src/err-codes.h:231
+msgid "Unmatched parentheses in S-expression"
+msgstr "Sembolik ifadede eşleşmeyen parantezler"
+
+#: src/err-codes.h:232
+msgid "S-expression not canonical"
+msgstr "Sembolik ifade kurallara uygun değil"
+
+#: src/err-codes.h:233
+msgid "Bad character in S-expression"
+msgstr "Sembolik ifadede kötü karakter"
+
+#: src/err-codes.h:234
+msgid "Bad quotation in S-expression"
+msgstr "Sembolik ifadede kötü tırnak kullanımı"
+
+#: src/err-codes.h:235
+msgid "Zero prefix in S-expression"
+msgstr "Sembolik ifadede sıfır öneki"
+
+#: src/err-codes.h:236
+msgid "Nested display hints in S-expression"
+msgstr "Sembolik ifadede iç içe geçmiş görüntü ipuçları"
+
+#: src/err-codes.h:237
+msgid "Unmatched display hints"
+msgstr "Eşleşmeyen görüntü ipuçları"
+
+#: src/err-codes.h:238
+msgid "Unexpected reserved punctuation in S-expression"
+msgstr "Sembolik ifadede beklenmedik rezerve noktalama"
+
+#: src/err-codes.h:239
+msgid "Bad hexadecimal character in S-expression"
+msgstr "Sembolik ifadede kötü onaltılık karakter"
+
+#: src/err-codes.h:240
+msgid "Odd hexadecimal numbers in S-expression"
+msgstr "Sembolik ifadede tek onaltılık sayı"
+
+#: src/err-codes.h:241
+msgid "Bad octal character in S-expression"
+msgstr "Sembolik ifadede kötü sekizlik karakter"
+
+#: src/err-codes.h:242
+msgid "All subkeys are expired or revoked"
+msgstr "Tüm yardımcı anahtarlar yürürlükten kaldırılmış/süresi dolmuş"
+
+#: src/err-codes.h:243
+msgid "Database is corrupted"
+msgstr "Veritabanı hasar görmüş"
+
+#: src/err-codes.h:244
+msgid "Server indicated a failure"
+msgstr "Sunucu bir başarısızlık bildirdi"
+
+#: src/err-codes.h:245
+msgid "No name"
+msgstr "Ad yok"
+
+#: src/err-codes.h:246
+msgid "No key"
+msgstr "Anahtar yok"
+
+#: src/err-codes.h:247
+msgid "Legacy key"
+msgstr "Eski anahtar"
+
+#: src/err-codes.h:248
+msgid "Request too short"
+msgstr "İstek pek kısa"
+
+#: src/err-codes.h:249
+msgid "Request too long"
+msgstr "İstek pek uzun"
+
+#: src/err-codes.h:250
+msgid "Object is in termination state"
+msgstr "Nesne sonlandırılma durumunda"
+
+#: src/err-codes.h:251
+msgid "No certificate chain"
+msgstr "Sertifika zinciri yok"
+
+#: src/err-codes.h:252
+msgid "Certificate is too large"
+msgstr "Sertifika pek büyük"
+
+#: src/err-codes.h:253
+msgid "Invalid record"
+msgstr "Geçersiz kayıt"
+
+#: src/err-codes.h:254
+msgid "The MAC does not verify"
+msgstr "MAC doğrulamıyor"
+
+#: src/err-codes.h:255
+msgid "Unexpected message"
+msgstr "Beklenmedik ileti"
+
+#: src/err-codes.h:256
+msgid "Compression or decompression failed"
+msgstr "Sıkıştırma veya sıkıştırmayı açma başarısız"
+
+#: src/err-codes.h:257
+msgid "A counter would wrap"
+msgstr "Sayaç taşacak"
+
+#: src/err-codes.h:258
+msgid "Fatal alert message received"
+msgstr "Onulmaz uyarı iletisi alındı"
+
+#: src/err-codes.h:259
+msgid "No cipher algorithm"
+msgstr "Şifre algoritması yok"
+
+#: src/err-codes.h:260
+msgid "Missing client certificate"
+msgstr "İstemci sertifikası eksik"
+
+#: src/err-codes.h:261
+msgid "Close notification received"
+msgstr "Kapatma bildirimi alındı"
+
+#: src/err-codes.h:262
+msgid "Ticket expired"
+msgstr "Bilet süresi doldu"
+
+#: src/err-codes.h:263
+msgid "Bad ticket"
+msgstr "Kötü bilet"
+
+#: src/err-codes.h:264
+msgid "Unknown identity"
+msgstr "Bilinmeyen kimlik"
+
+#: src/err-codes.h:265
+msgid "Bad certificate message in handshake"
+msgstr "El sıkışmada kötü sertifika iletisi"
+
+#: src/err-codes.h:266
+msgid "Bad certificate request message in handshake"
+msgstr "El sıkışmada kötü sertifika istek iletisi"
+
+#: src/err-codes.h:267
+msgid "Bad certificate verify message in handshake"
+msgstr "El sıkışmada kötü sertifika doğrulama iletisi"
+
+#: src/err-codes.h:268
+msgid "Bad change cipher message in handshake"
+msgstr "El sıkışmada kötü şifre değiştirme iletisi"
+
+#: src/err-codes.h:269
+msgid "Bad client hello message in handshake"
+msgstr "El sıkışmada kötü istemci selamlaşma iletisi"
+
+#: src/err-codes.h:270
+msgid "Bad server hello message in handshake"
+msgstr "El sıkışmada kötü sunucu selamlaşma iletisi"
+
+#: src/err-codes.h:271
+msgid "Bad server hello done message in handshake"
+msgstr "El sıkışmada kötü sunucu selamlaşma tamamlandı iletisi"
+
+#: src/err-codes.h:272
+msgid "Bad finished message in handshake"
+msgstr "El sıkışmada kötü biten ileti"
+
+#: src/err-codes.h:273
+msgid "Bad server key exchange message in handshake"
+msgstr "El sıkışmada kötü sunucu anahtar değişimi iletisi"
+
+#: src/err-codes.h:274
+msgid "Bad client key exchange message in handshake"
+msgstr "El sıkışmada kötü istemci anahtar değişim iletisi"
+
+#: src/err-codes.h:275
+msgid "Bogus string"
+msgstr "Düzmece dizi"
+
+#: src/err-codes.h:276
+msgid "Forbidden"
+msgstr "Yasaklı"
+
+#: src/err-codes.h:277
+msgid "Key disabled"
+msgstr "Anahtar devre dışı"
+
+#: src/err-codes.h:278
+msgid "Not possible with a card based key"
+msgstr "Kart tabanlı bir anahtarla olanaklı değil"
+
+#: src/err-codes.h:279
+msgid "Invalid lock object"
+msgstr "Geçersiz kilit nesnesi"
+
+#: src/err-codes.h:280
+msgid "True"
+msgstr "Doğru"
+
+#: src/err-codes.h:281
+msgid "False"
+msgstr "Yanlış"
+
+#: src/err-codes.h:282
+msgid "General IPC error"
+msgstr "Genel IPC hatası"
+
+#: src/err-codes.h:283
+msgid "IPC accept call failed"
+msgstr "IPC çağrısı kabulü başarısız"
+
+#: src/err-codes.h:284
+msgid "IPC connect call failed"
+msgstr "IPC çağrısı bağlantısı başarısız"
+
+#: src/err-codes.h:285
+msgid "Invalid IPC response"
+msgstr "Geçersiz IPC yanıtı"
+
+#: src/err-codes.h:286
+msgid "Invalid value passed to IPC"
+msgstr "IPC'ye geçirilen değer geçersiz"
+
+#: src/err-codes.h:287
+msgid "Incomplete line passed to IPC"
+msgstr "IPC'ye geçirilen satır tam değil"
+
+#: src/err-codes.h:288
+msgid "Line passed to IPC too long"
+msgstr "IPC'ye geçirilen satır pek uzun"
+
+#: src/err-codes.h:289
+msgid "Nested IPC commands"
+msgstr "İç içe geçmiş IPC komutları"
+
+#: src/err-codes.h:290
+msgid "No data callback in IPC"
+msgstr "IPC içinde veri geri çağrısı yok"
+
+#: src/err-codes.h:291
+msgid "No inquire callback in IPC"
+msgstr "IPC içinde sorgu geri çağrısı yok"
+
+#: src/err-codes.h:292
+msgid "Not an IPC server"
+msgstr "Bir IPC sunucusu değil"
+
+#: src/err-codes.h:293
+msgid "Not an IPC client"
+msgstr "Bir IPC istemcisi değil"
+
+#: src/err-codes.h:294
+msgid "Problem starting IPC server"
+msgstr "IPC sunucusu başlatmada sorun"
+
+#: src/err-codes.h:295
+msgid "IPC read error"
+msgstr "IPC okuma hatası"
+
+#: src/err-codes.h:296
+msgid "IPC write error"
+msgstr "IPC yazma hatası"
+
+#: src/err-codes.h:297
+msgid "Too much data for IPC layer"
+msgstr "IPC katmanı için çok fazla veri"
+
+#: src/err-codes.h:298
+msgid "Unexpected IPC command"
+msgstr "Beklenmedik IPC komutu"
+
+#: src/err-codes.h:299
+msgid "Unknown IPC command"
+msgstr "Bilinmeyen IPC komutu"
+
+#: src/err-codes.h:300
+msgid "IPC syntax error"
+msgstr "IPC sözdizim hatası"
+
+#: src/err-codes.h:301
+msgid "IPC call has been cancelled"
+msgstr "IPC çağrısı iptal edildi"
+
+#: src/err-codes.h:302
+msgid "No input source for IPC"
+msgstr "IPC için bir girdi kaynağı yok"
+
+#: src/err-codes.h:303
+msgid "No output source for IPC"
+msgstr "IPC için bir çıktı kaynağı yok"
+
+#: src/err-codes.h:304
+msgid "IPC parameter error"
+msgstr "IPC parametre hatası"
+
+#: src/err-codes.h:305
+msgid "Unknown IPC inquire"
+msgstr "Bilinmeyen IPC sorgusu"
+
+#: src/err-codes.h:306
+msgid "Crypto engine too old"
+msgstr "Kripto işletkesi pek eski"
+
+#: src/err-codes.h:307
+msgid "Screen or window too small"
+msgstr "Ekran veya pencere pek küçük"
+
+#: src/err-codes.h:308
+msgid "Screen or window too large"
+msgstr "Ekran veya pencere pek büyük"
+
+#: src/err-codes.h:309
+msgid "Required environment variable not set"
+msgstr "Gerekli ortam değişkeni ayarlanmamış"
+
+#: src/err-codes.h:310
+msgid "User ID already exists"
+msgstr "Kullanıcı kimliği halihazırda mevcut"
+
+#: src/err-codes.h:311
+msgid "Name already exists"
+msgstr "Ad halihazırda mevcut"
+
+#: src/err-codes.h:312
+msgid "Duplicated name"
+msgstr "Yinelenmiş ad"
+
+#: src/err-codes.h:313
+msgid "Object is too young"
+msgstr "Nesne pek genç"
+
+#: src/err-codes.h:314
+msgid "Object is too old"
+msgstr "Nesne pek yaşlı"
+
+#: src/err-codes.h:315
+msgid "Unknown flag"
+msgstr "Bilinmeyen bayrak"
+
+#: src/err-codes.h:316
+msgid "Invalid execution order"
+msgstr "Geçersiz çalıştırma buyruğu"
+
+#: src/err-codes.h:317
+msgid "Already fetched"
+msgstr "Zaten getirilmiş"
+
+#: src/err-codes.h:318
+msgid "Try again later"
+msgstr "Daha sonra yeniden deneyin"
+
+#: src/err-codes.h:319
+msgid "Wrong name"
+msgstr "Yanlış ad"
+
+#: src/err-codes.h:320
+msgid "Not authenticated"
+msgstr "Kimlik doğrulanmamış"
+
+#: src/err-codes.h:321
+msgid "Bad authentication"
+msgstr "Kötü kimlik doğrulama"
+
+#: src/err-codes.h:322
+msgid "No Keybox daemon running"
+msgstr "Bir Keybox ardalan süreci çalışmıyor"
+
+#: src/err-codes.h:323
+msgid "Keybox daemon error"
+msgstr "Keybox ardalan süreci hatası"
+
+#: src/err-codes.h:324
+msgid "Service is not running"
+msgstr "Servis çalışmıyor"
+
+#: src/err-codes.h:325
+msgid "Service error"
+msgstr "Servis hatası"
+
+#: src/err-codes.h:326
+msgid "System bug detected"
+msgstr "Sistem hatası algılandı"
+
+#: src/err-codes.h:327
+msgid "Unknown DNS error"
+msgstr "Bilinmeyen DNS hatası"
+
+#: src/err-codes.h:328
+msgid "Invalid DNS section"
+msgstr "Geçersiz DNS bölümü"
+
+#: src/err-codes.h:329
+msgid "Invalid textual address form"
+msgstr "Geçersiz metin adres biçimi"
+
+#: src/err-codes.h:330
+msgid "Missing DNS query packet"
+msgstr "DNS sorgu paketi eksik"
+
+#: src/err-codes.h:331
+msgid "Missing DNS answer packet"
+msgstr "DNS yanıt paketi eksik"
+
+#: src/err-codes.h:332
+msgid "Connection closed in DNS"
+msgstr "DNS içindeki bağlantı kapatıldı"
+
+#: src/err-codes.h:333
+msgid "Verification failed in DNS"
+msgstr "DNS içindeki doğrulama başarısız"
+
+#: src/err-codes.h:334
+msgid "DNS Timeout"
+msgstr "DNS zaman aşımı"
+
+#: src/err-codes.h:335
+msgid "General LDAP error"
+msgstr "Genel LDAP hatası"
+
+#: src/err-codes.h:336
+msgid "General LDAP attribute error"
+msgstr "Genel LDAP öznitelik hatası"
+
+#: src/err-codes.h:337
+msgid "General LDAP name error"
+msgstr "Genel LDAP ad hatası"
+
+#: src/err-codes.h:338
+msgid "General LDAP security error"
+msgstr "Genel LDAP güvenlik hatası"
+
+#: src/err-codes.h:339
+msgid "General LDAP service error"
+msgstr "Genel LDAP servis hatası"
+
+#: src/err-codes.h:340
+msgid "General LDAP update error"
+msgstr "Genel LDAP güncelleme hatası"
+
+#: src/err-codes.h:341
+msgid "Experimental LDAP error code"
+msgstr "Deneysel LDAP hata kodu"
+
+#: src/err-codes.h:342
+msgid "Private LDAP error code"
+msgstr "Özel LDAP hata kodu"
+
+#: src/err-codes.h:343
+msgid "Other general LDAP error"
+msgstr "Diğer genel LDAP hatası"
+
+#: src/err-codes.h:344
+msgid "LDAP connecting failed (X)"
+msgstr "LDAP bağlantısı başarısız (X)"
+
+#: src/err-codes.h:345
+msgid "LDAP referral limit exceeded"
+msgstr "LDAP başvuru limiti aşıldı"
+
+#: src/err-codes.h:346
+msgid "LDAP client loop"
+msgstr "LDAP istemci döngüsü"
+
+#: src/err-codes.h:347
+msgid "No LDAP results returned"
+msgstr "Bir LDAP sonucu döndürülmedi"
+
+#: src/err-codes.h:348
+msgid "LDAP control not found"
+msgstr "LDAP denetimi bulunamadı"
+
+#: src/err-codes.h:349
+msgid "Not supported by LDAP"
+msgstr "LDAP tarafından desteklenmiyor"
+
+#: src/err-codes.h:350
+msgid "LDAP connect error"
+msgstr "LDAP bağlantı hatası"
+
+#: src/err-codes.h:351
+msgid "Out of memory in LDAP"
+msgstr "LDAP'ta bellek yetersiz"
+
+#: src/err-codes.h:352
+msgid "Bad parameter to an LDAP routine"
+msgstr "LDAP rutininde kötü parametre"
+
+#: src/err-codes.h:353
+msgid "User cancelled LDAP operation"
+msgstr "Kullanıcı, LDAP işlemini iptal etti"
+
+#: src/err-codes.h:354
+msgid "Bad LDAP search filter"
+msgstr "Kötü LDAP arama süzgeci"
+
+#: src/err-codes.h:355
+msgid "Unknown LDAP authentication method"
+msgstr "Bilinmeyen LDAP kimlik doğrulama yöntemi"
+
+#: src/err-codes.h:356
+msgid "Timeout in LDAP"
+msgstr "LDAP'ta zaman aşımı"
+
+#: src/err-codes.h:357
+msgid "LDAP decoding error"
+msgstr "LDAP kod çözüm hatası"
+
+#: src/err-codes.h:358
+msgid "LDAP encoding error"
+msgstr "LDAP kodlama hatası"
+
+#: src/err-codes.h:359
+msgid "LDAP local error"
+msgstr "LDAP yerel hatası"
+
+#: src/err-codes.h:360
+msgid "Cannot contact LDAP server"
+msgstr "LDAP sunucusu ile iletişim kurulamıyor"
+
+#: src/err-codes.h:361
+msgid "LDAP success"
+msgstr "LDAP başarılı"
+
+#: src/err-codes.h:362
+msgid "LDAP operations error"
+msgstr "LDAP işlem hatası"
+
+#: src/err-codes.h:363
+msgid "LDAP protocol error"
+msgstr "LDAP protokol hatası"
+
+#: src/err-codes.h:364
+msgid "Time limit exceeded in LDAP"
+msgstr "LDAP'ta zaman limiti aşıldı"
+
+#: src/err-codes.h:365
+msgid "Size limit exceeded in LDAP"
+msgstr "LDAP'ta boyut limiti aşıldı"
+
+#: src/err-codes.h:366
+msgid "LDAP compare false"
+msgstr "LDAP karşılaştırması yanlış"
+
+#: src/err-codes.h:367
+msgid "LDAP compare true"
+msgstr "LDAP karşılaştırması doğru"
+
+#: src/err-codes.h:368
+msgid "LDAP authentication method not supported"
+msgstr "LDAP kimlik doğrulama yöntemi desteklenmiyor"
+
+#: src/err-codes.h:369
+msgid "Strong(er) LDAP authentication required"
+msgstr "(Daha) güçlü LDAP kimlik doğrulaması gerekiyor"
+
+#: src/err-codes.h:370
+msgid "Partial LDAP results+referral received"
+msgstr "Kısımsal LDAP sonuçları/başvurusu alındı"
+
+#: src/err-codes.h:371
+msgid "LDAP referral"
+msgstr "LDAP başvurusu"
+
+#: src/err-codes.h:372
+msgid "Administrative LDAP limit exceeded"
+msgstr "Yönetimsel LDAP limiti aşıldı"
+
+#: src/err-codes.h:373
+msgid "Critical LDAP extension is unavailable"
+msgstr "Kritik LDAP uzantısı kullanılamıyor"
+
+#: src/err-codes.h:374
+msgid "Confidentiality required by LDAP"
+msgstr "LDAP tarafından gereken gizlilik"
+
+#: src/err-codes.h:375
+msgid "LDAP SASL bind in progress"
+msgstr "LDAP SASL garantisi ilerliyor"
+
+#: src/err-codes.h:376
+msgid "No such LDAP attribute"
+msgstr "Böyle bir LDAP özniteliği yok"
+
+#: src/err-codes.h:377
+msgid "Undefined LDAP attribute type"
+msgstr "Bilinmeyen LDAP öznitelik türü"
+
+#: src/err-codes.h:378
+msgid "Inappropriate matching in LDAP"
+msgstr "LDAP'ta uygun olmayan eşleşme"
+
+#: src/err-codes.h:379
+msgid "Constraint violation in LDAP"
+msgstr "LDAP'ta kısıtlama ihlali"
+
+#: src/err-codes.h:380
+msgid "LDAP type or value exists"
+msgstr "LDAP türü veya değeri mevcut"
+
+#: src/err-codes.h:381
+msgid "Invalid syntax in LDAP"
+msgstr "LDAP'ta geçersiz sözdizim"
+
+#: src/err-codes.h:382
+msgid "No such LDAP object"
+msgstr "Böyle bir LDAP nesnesi yok"
+
+#: src/err-codes.h:383
+msgid "LDAP alias problem"
+msgstr "LDAP arma sorunu"
+
+#: src/err-codes.h:384
+msgid "Invalid DN syntax in LDAP"
+msgstr "LDAP'ta geçersiz DN sözdizimi"
+
+#: src/err-codes.h:385
+msgid "LDAP entry is a leaf"
+msgstr "LDAP girdisi bir yaprak"
+
+#: src/err-codes.h:386
+msgid "LDAP alias dereferencing problem"
+msgstr "LDAP arma başvuru kaldırma sorunu"
+
+#: src/err-codes.h:387
+msgid "LDAP proxy authorization failure (X)"
+msgstr "LDAP vekil kimlik doğrulama sorunu (X)"
+
+#: src/err-codes.h:388
+msgid "Inappropriate LDAP authentication"
+msgstr "Uygun olmayan LDAP kimlik doğrulaması"
+
+#: src/err-codes.h:389
+msgid "Invalid LDAP credentials"
+msgstr "Geçersiz LDAP kimlik doğrulama bilgileri"
+
+#: src/err-codes.h:390
+msgid "Insufficient access for LDAP"
+msgstr "LDAP için yetersiz erişim"
+
+#: src/err-codes.h:391
+msgid "LDAP server is busy"
+msgstr "LDAP sunucusu meşgul"
+
+#: src/err-codes.h:392
+msgid "LDAP server is unavailable"
+msgstr "LDAP sunucusu kullanılamıyor"
+
+#: src/err-codes.h:393
+msgid "LDAP server is unwilling to perform"
+msgstr "LDAP sunucusu gerçekleştirmek istemiyor"
+
+#: src/err-codes.h:394
+msgid "Loop detected by LDAP"
+msgstr "LDAP tarafından döngü algılandı"
+
+#: src/err-codes.h:395
+msgid "LDAP naming violation"
+msgstr "LDAP adlandırma ihlali"
+
+#: src/err-codes.h:396
+msgid "LDAP object class violation"
+msgstr "LDAP nesne veya sınıf ihlali"
+
+#: src/err-codes.h:397
+msgid "LDAP operation not allowed on non-leaf"
+msgstr "LDAP işlemine yaprak olmayan ögeler üzerinde izin verilmiyor"
+
+#: src/err-codes.h:398
+msgid "LDAP operation not allowed on RDN"
+msgstr "LDAP işlemine RDN üzerinde izin verilmiyor"
+
+#: src/err-codes.h:399
+msgid "Already exists (LDAP)"
+msgstr "Halihazırda mevcut (LDAP)"
+
+#: src/err-codes.h:400
+msgid "Cannot modify LDAP object class"
+msgstr "LDAP nesne sınıfı değiştirilmiyor"
+
+#: src/err-codes.h:401
+msgid "LDAP results too large"
+msgstr "LDAP sonuçları pek büyük"
+
+#: src/err-codes.h:402
+msgid "LDAP operation affects multiple DSAs"
+msgstr "LDAP işlemi birden çok DSA'yı etkiliyor"
+
+#: src/err-codes.h:403
+msgid "Virtual LDAP list view error"
+msgstr "Sanal LDAP liste görünümü hatası"
+
+#: src/err-codes.h:404
+msgid "Other LDAP error"
+msgstr "Diğer LDAP hatası"
+
+#: src/err-codes.h:405
+msgid "Resources exhausted in LCUP"
+msgstr "LCUP'taki özkaynaklar tüketildi"
+
+#: src/err-codes.h:406
+msgid "Security violation in LCUP"
+msgstr "LCUP'ta güvenlik ihlali"
+
+#: src/err-codes.h:407
+msgid "Invalid data in LCUP"
+msgstr "LCUP'ta geçersiz veri"
+
+#: src/err-codes.h:408
+msgid "Unsupported scheme in LCUP"
+msgstr "LCUP'ta desteklenmeyen şema"
+
+#: src/err-codes.h:409
+msgid "Reload required in LCUP"
+msgstr "LCUP'ta yeniden yükleme gerekiyor"
+
+#: src/err-codes.h:410
+msgid "LDAP cancelled"
+msgstr "LDAP iptal edildi"
+
+#: src/err-codes.h:411
+msgid "No LDAP operation to cancel"
+msgstr "İptal edilecek bir LDAP işlemi yok"
+
+#: src/err-codes.h:412
+msgid "Too late to cancel LDAP"
+msgstr "LDAP'i iptal etmek için pek geç"
+
+#: src/err-codes.h:413
+msgid "Cannot cancel LDAP"
+msgstr "LDAP iptal edilemiyor"
+
+#: src/err-codes.h:414
+msgid "LDAP assertion failed"
+msgstr "LDAP teyidi başarısız"
+
+#: src/err-codes.h:415
+msgid "Proxied authorization denied by LDAP"
+msgstr "Vekil üzerinden kimlik doğrulama LDAP tarafından reddedildi"
+
+#: src/err-codes.h:416
+msgid "User defined error code 1"
+msgstr "Kullanıcı tanımlı hata kodu 1"
+
+#: src/err-codes.h:417
+msgid "User defined error code 2"
+msgstr "Kullanıcı tanımlı hata kodu 2"
+
+#: src/err-codes.h:418
+msgid "User defined error code 3"
+msgstr "Kullanıcı tanımlı hata kodu 3"
+
+#: src/err-codes.h:419
+msgid "User defined error code 4"
+msgstr "Kullanıcı tanımlı hata kodu 4"
+
+#: src/err-codes.h:420
+msgid "User defined error code 5"
+msgstr "Kullanıcı tanımlı hata kodu 5"
+
+#: src/err-codes.h:421
+msgid "User defined error code 6"
+msgstr "Kullanıcı tanımlı hata kodu 6"
+
+#: src/err-codes.h:422
+msgid "User defined error code 7"
+msgstr "Kullanıcı tanımlı hata kodu 7"
+
+#: src/err-codes.h:423
+msgid "User defined error code 8"
+msgstr "Kullanıcı tanımlı hata kodu 8"
+
+#: src/err-codes.h:424
+msgid "User defined error code 9"
+msgstr "Kullanıcı tanımlı hata kodu 9"
+
+#: src/err-codes.h:425
+msgid "User defined error code 10"
+msgstr "Kullanıcı tanımlı hata kodu 10"
+
+#: src/err-codes.h:426
+msgid "User defined error code 11"
+msgstr "Kullanıcı tanımlı hata kodu 11"
+
+#: src/err-codes.h:427
+msgid "User defined error code 12"
+msgstr "Kullanıcı tanımlı hata kodu 12"
+
+#: src/err-codes.h:428
+msgid "User defined error code 13"
+msgstr "Kullanıcı tanımlı hata kodu 13"
+
+#: src/err-codes.h:429
+msgid "User defined error code 14"
+msgstr "Kullanıcı tanımlı hata kodu 14"
+
+#: src/err-codes.h:430
+msgid "User defined error code 15"
+msgstr "Kullanıcı tanımlı hata kodu 15"
+
+#: src/err-codes.h:431
+msgid "User defined error code 16"
+msgstr "Kullanıcı tanımlı hata kodu 16"
+
+#: src/err-codes.h:432
+msgid "SQL success"
+msgstr "SQL başarılı"
+
+#: src/err-codes.h:433
+msgid "SQL error"
+msgstr "SQL hatası"
+
+#: src/err-codes.h:434
+msgid "Internal logic error in SQL library"
+msgstr "SQL kitaplığında iç mantık hatası"
+
+#: src/err-codes.h:435
+msgid "Access permission denied (SQL)"
+msgstr "Erişim izni reddedildi (SQL)"
+
+#: src/err-codes.h:436
+msgid "SQL abort was requested"
+msgstr "SQL iptali istendi"
+
+#: src/err-codes.h:437
+msgid "SQL database file is locked"
+msgstr "SQL veritabanı dosyası kilitli"
+
+#: src/err-codes.h:438
+msgid "An SQL table in the database is locked"
+msgstr "Veritabanındaki bir SQL tablosu kilitli"
+
+#: src/err-codes.h:439
+msgid "SQL library ran out of core"
+msgstr "SQL kitaplığında çekirdek kalmadı"
+
+#: src/err-codes.h:440
+msgid "Attempt to write a readonly SQL database"
+msgstr "Saltokunur bir SQL veritabanına yazmaya çalışılıyor"
+
+#: src/err-codes.h:441
+msgid "SQL operation terminated by interrupt"
+msgstr "SQL işlemi yarıda kesme tarafından sonlandırıldı"
+
+#: src/err-codes.h:442
+msgid "I/O error during SQL operation"
+msgstr "SQL işlemi sırasında girdi-çıktı hatası"
+
+#: src/err-codes.h:443
+msgid "SQL database disk image is malformed"
+msgstr "SQL veritabanı disk kalıbı hatalı oluşturulmuş"
+
+#: src/err-codes.h:444
+msgid "Unknown opcode in SQL file control"
+msgstr "SQL dosya denetiminde bilinmeyen işlem kodu"
+
+#: src/err-codes.h:445
+msgid "Insertion failed because SQL database is full"
+msgstr "Ekleme başarısız; çünkü SQL veritabanı dolu"
+
+#: src/err-codes.h:446
+msgid "Unable to open the SQL database file"
+msgstr "SQL veritabanı dosyası açılamıyor"
+
+#: src/err-codes.h:447
+msgid "SQL database lock protocol error"
+msgstr "SQL veritabanı kilit protokol hatası"
+
+#: src/err-codes.h:448
+msgid "(internal SQL code: empty)"
+msgstr "(iç SQL kodu: boş)"
+
+#: src/err-codes.h:449
+msgid "SQL database schema changed"
+msgstr "SQL veritabanı şeması değiştirildi"
+
+#: src/err-codes.h:450
+msgid "String or blob exceeds size limit (SQL)"
+msgstr "Dizi veya geniş ikili nesne boyut limitini aşıyor (SQL)"
+
+#: src/err-codes.h:451
+msgid "SQL abort due to constraint violation"
+msgstr "Kısıtlama ihlali dolayısıyla SQL iptali"
+
+#: src/err-codes.h:452
+msgid "Data type mismatch (SQL)"
+msgstr "Veri türü uyuşmazlığı (SQL)"
+
+#: src/err-codes.h:453
+msgid "SQL library used incorrectly"
+msgstr "SQL kitaplığı yanlış bir biçimde kullanıldı"
+
+#: src/err-codes.h:454
+msgid "SQL library uses unsupported OS features"
+msgstr "SQL kitaplığı desteklenmeyen işletim sistemi özelliklerini kullanıyor"
+
+#: src/err-codes.h:455
+msgid "Authorization denied (SQL)"
+msgstr "Kimlik doğrulama reddedildi (SQL)"
+
+#: src/err-codes.h:456
+msgid "(unused SQL code: format)"
+msgstr "(kullanılmayan SQL kodu: format)"
+
+#: src/err-codes.h:457
+msgid "SQL bind parameter out of range"
+msgstr "SQL garanti parametresi erim dışında"
+
+#: src/err-codes.h:458
+msgid "File opened that is not an SQL database file"
+msgstr "Bir SQL veritabanı dosyası olmayan bir dosya açıldı"
+
+#: src/err-codes.h:459
+msgid "Notifications from SQL logger"
+msgstr "SQL günlükleyicisinden bildirimler"
+
+#: src/err-codes.h:460
+msgid "Warnings from SQL logger"
+msgstr "SQL günlükleyicisinden uyarılar"
+
+#: src/err-codes.h:461
+msgid "SQL has another row ready"
+msgstr "SQL'de başka bir satır var"
+
+#: src/err-codes.h:462
+msgid "SQL has finished executing"
+msgstr "SQL çalıştırmayı bitirdi"
+
+#: src/err-codes.h:463
+msgid "System error w/o errno"
+msgstr "Hata numarası olmayan sistem hatası"
+
+#: src/err-codes.h:464
+msgid "Unknown system error"
+msgstr "Bilinmeyen sistem hatası"
+
+#: src/err-codes.h:465
+msgid "End of file"
+msgstr "Dosya sonu"
+
+#: src/err-codes.h:466
+msgid "Unknown error code"
+msgstr "Bilinmeyen hata kodu"
+
+#: src/argparse.c:494
+msgid "argument not expected"
+msgstr "Argüman beklenmiyordu"
+
+#: src/argparse.c:496
+msgid "read error"
+msgstr "Okuma hatası"
+
+#: src/argparse.c:498
+msgid "keyword too long"
+msgstr "Anahtar sözcük pek uzun"
+
+#: src/argparse.c:500
+msgid "missing argument"
+msgstr "Argüman eksik"
+
+#: src/argparse.c:502
+msgid "invalid argument"
+msgstr "Geçersiz argüman"
+
+#: src/argparse.c:504
+msgid "invalid command"
+msgstr "Geçersiz komut"
+
+#: src/argparse.c:506
+msgid "invalid alias definition"
+msgstr "Geçersiz arma tanımı"
+
+#: src/argparse.c:508 src/argparse.c:545
+msgid "permission error"
+msgstr "İzin hatası"
+
+#: src/argparse.c:510 src/argparse.c:543
+msgid "out of core"
+msgstr "Çekirdek kalmadı"
+
+#: src/argparse.c:514 src/argparse.c:549
+msgid "invalid meta command"
+msgstr "Geçersiz meta komutu"
+
+#: src/argparse.c:516 src/argparse.c:551
+msgid "unknown meta command"
+msgstr "Bilinmeyen meta komutu"
+
+#: src/argparse.c:518 src/argparse.c:553
+msgid "unexpected meta command"
+msgstr "Beklenmedik meta komutu"
+
+#: src/argparse.c:520
+msgid "invalid option"
+msgstr "Geçersiz seçenek"
+
+#: src/argparse.c:530
+#, c-format
+msgid "missing argument for option \"%.50s\"\n"
+msgstr "\"%.50s\" seçeneği için argüman eksik\n"
+
+#: src/argparse.c:532
+#, c-format
+msgid "invalid argument for option \"%.50s\"\n"
+msgstr "\"%.50s\" seçeneği için geçersiz argüman\n"
+
+#: src/argparse.c:534
+#, c-format
+msgid "option \"%.50s\" does not expect an argument\n"
+msgstr "\"%.50s\" seçeneği bir argüman beklemiyor\n"
+
+#: src/argparse.c:537
+#, c-format
+msgid "invalid command \"%.50s\"\n"
+msgstr "Geçersiz komut \"%.50s\"\n"
+
+#: src/argparse.c:539
+#, c-format
+msgid "option \"%.50s\" is ambiguous\n"
+msgstr "\"%.50s\" seçeneği belirsiz\n"
+
+#: src/argparse.c:541
+#, c-format
+msgid "command \"%.50s\" is ambiguous\n"
+msgstr "\"%.50s\" komutu belirsiz\n"
+
+#: src/argparse.c:555
+#, c-format
+msgid "invalid option \"%.50s\"\n"
+msgstr "Geçersiz seçenek \"%.50s\"\n"
+
+#: src/argparse.c:2297 src/argparse.c:2393
+#, c-format
+msgid "Note: no default option file '%s'\n"
+msgstr "Not: Öntanımlı seçenek dosyası '%s' yok\n"
+
+#: src/argparse.c:2307 src/argparse.c:2400
+#, c-format
+msgid "reading options from '%s'\n"
+msgstr "'%s' konumundan seçenekler okunuyor\n"
+
+#: src/argparse.c:2385
+#, c-format
+msgid "option file '%s': %s\n"
+msgstr "Seçenek dosyası '%s': %s\n"
+
+#: src/argparse.c:2823
+#, c-format
+msgid "Note: ignoring option \"--%s\" due to global config\n"
+msgstr "Not: Global yapılandırma dolayısıyla \"--%s\" seçeneği yok sayılıyor\n"
+
+#: src/gpg-error.c:522
+msgid "Please report bugs to <https://bugs.gnupg.org>.\n"
+msgstr "Hataları lütfen <https://bugs.gnupg.org> adresine bildirin.\n"
+
+#: src/gpg-error.c:762
+#, c-format
+msgid "warning: could not recognize %s\n"
+msgstr "Uyarı: %s tanımlanamıyor\n"
index 208a13d..3a70a7c 100644 (file)
--- a/po/uk.po
+++ b/po/uk.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error 1.7\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-03-22 10:44+0100\n"
 "Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
 "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n"
@@ -1974,22 +1974,22 @@ msgstr "команда «%.50s» є неоднозначною\n"
 msgid "invalid option \"%.50s\"\n"
 msgstr "некоректний параметр «%.50s»\n"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr ""
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr ""
index 0d5401d..8317887 100644 (file)
--- a/po/vi.po
+++ b/po/vi.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error 1.7\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-03-22 10:44+0100\n"
 "Last-Translator: Clytie Siddall <clytie@riverland.net.au>\n"
 "Language-Team: Vietnamese <vi-VN@googlegroups.com>\n"
@@ -2192,22 +2192,22 @@ msgstr ""
 msgid "invalid option \"%.50s\"\n"
 msgstr "Mã thao tác không hợp lệ"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr ""
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr ""
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr ""
index 590a4a4..0290fe9 100644 (file)
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error 1.39\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-03-22 10:44+0100\n"
 "Last-Translator: bobwxc <bobwxc@yeah.net>\n"
 "Language-Team: none\n"
@@ -1966,22 +1966,22 @@ msgstr "命令 \"%.50s\" 不明确\n"
 msgid "invalid option \"%.50s\"\n"
 msgstr "无效的选项 \"%.50s\"\n"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr "注意:文件 '%s' 中无默认选项\n"
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr "从 '%s' 中读取选项\n"
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr "选项文件 '%s': %s\n"
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr "注意: 由于整体配置,选项 \"--%s\" 被忽视\n"
index 8c2075b..901309c 100644 (file)
@@ -9,7 +9,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: libgpg-error 1.39\n"
 "Report-Msgid-Bugs-To: translations@gnupg.org\n"
-"POT-Creation-Date: 2021-11-03 15:01+0100\n"
+"POT-Creation-Date: 2022-10-07 11:24+0200\n"
 "PO-Revision-Date: 2021-03-22 10:45+0100\n"
 "Last-Translator: bobwxc <bobwxc@yeah.net>\n"
 "Language-Team: None\n"
@@ -1961,22 +1961,22 @@ msgstr "\"%.50s\" 指令不明確\n"
 msgid "invalid option \"%.50s\"\n"
 msgstr "無效的選項 \"%.50s\"\n"
 
-#: src/argparse.c:2286 src/argparse.c:2382
+#: src/argparse.c:2297 src/argparse.c:2393
 #, c-format
 msgid "Note: no default option file '%s'\n"
 msgstr "注意:文件 '%s' 中無缺省選項\n"
 
-#: src/argparse.c:2296 src/argparse.c:2389
+#: src/argparse.c:2307 src/argparse.c:2400
 #, c-format
 msgid "reading options from '%s'\n"
 msgstr "從 '%s' 中讀取選項\n"
 
-#: src/argparse.c:2374
+#: src/argparse.c:2385
 #, c-format
 msgid "option file '%s': %s\n"
 msgstr "選項文件 '%s': %s\n"
 
-#: src/argparse.c:2812
+#: src/argparse.c:2823
 #, c-format
 msgid "Note: ignoring option \"--%s\" due to global config\n"
 msgstr "注意: 由於整體設定,選項 \"--%s\" 被忽視\n"
diff --git a/potomo b/potomo
deleted file mode 100755 (executable)
index 2061728..0000000
--- a/potomo
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/bin/sh
-# potomo - Convert a .po file to an utf-8 encoded .mo file.
-# Copyright 2008 g10 Code GmbH
-# Copyright 2010 Free Software Foundation, Inc.
-#
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-#
-# This file is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# This script is used to create the mo files for applications using
-# the simple gettext implementation provided by libgpg-error.  That
-# gettext can only cope with utf-8 encoded mo files; thus we make this
-# sure while creating the mo.  A conversion is not done if the source
-# file does not exist or if it is not newer than the mo file.
-
-if [ "$1" = "--get-linguas" -a $# -eq 2 ]; then
-   if [ ! -f "$2/LINGUAS" ]; then
-       echo "potomo: directory '$2' has no LINGUAS file" >&2
-       exit 1
-   fi
-   echo $(sed -e "/^#/d" -e "s/#.*//" "$2"/LINGUAS)
-   exit 0
-fi
-
-if [ $# -ne 2 ]; then
-  echo "usage: potomo INFILE.PO OUTFILE.MO" >&2
-  echo "       potomo --get-linguas DIR"    >&2
-  exit 1
-fi
-infile="$1"
-outfile="$2"
-
-if [ ! -f "$infile" ]; then
-  echo "potomo: '$infile' not found - ignored" 2>&1
-  exit 0
-fi
-
-if [ "$outfile" -nt "$infile" ]; then
-  echo "potomo: '$outfile' is newer than source - keeping" 2>&1
-  exit 0
-fi
-  
-# Note that we could use the newer msgconv.  However this tool was not
-# widely available back in 2008.
-
-fromset=`sed -n '/^"Content-Type:/ s/.*charset=\([a-zA-Z0-9_-]*\).*/\1/p' \
-         "$infile"`
-
-case "$fromset" in 
-    utf8|utf-8|UTF8|UTF-8) 
-        echo "potomo: '$infile' keeping $fromset" >&2 
-        msgfmt --output-file="$outfile" "$infile"
-        ;;   
-    *)
-        echo "potomo: '$infile' converting from $fromset to utf-8" >&2
-        iconv --silent --from-code=$fromset --to-code=utf-8 < "$infile" |\
-            sed "/^\"Content-Type:/ s/charset=[a-zA-Z0-9_-]*/charset=utf-8/"|\
-            msgfmt --output-file="$outfile" -
-        ;;
-esac
index fc3acc3..c61adde 100644 (file)
 # depend on the configuration anyway.
 #
 
-if HAVE_W32CE_SYSTEM
-gpg_extra_headers = gpg-extra/errno.h
-extra_cppflags = -idirafter gpg-extra
-else
-gpg_extra_headers =
-extra_cppflags =
-endif
-
 localedir = $(datadir)/locale
 
 bin_PROGRAMS = gpg-error
@@ -86,8 +78,12 @@ lock_obj_pub = \
 
 lib_LTLIBRARIES = libgpg-error.la
 nodist_include_HEADERS = gpg-error.h gpgrt.h
-dist_bin_SCRIPTS = gpgrt-config
-bin_SCRIPTS = gpg-error-config
+if INSTALL_GPG_ERROR_CONFIG
+bin_SCRIPTS = gpgrt-config gpg-error-config
+else
+bin_SCRIPTS = gpgrt-config
+noinst_SCRIPTS = gpg-error-config
+endif
 m4datadir = $(datadir)/aclocal
 m4data_DATA = gpg-error.m4 gpgrt.m4
 
@@ -97,25 +93,26 @@ pkgconfig_DATA = gpg-error.pc
 EXTRA_DIST = mkstrtable.awk err-sources.h.in err-codes.h.in \
        mkerrnos.awk errnos.in README \
        mkerrcodes.awk mkerrcodes1.awk mkerrcodes2.awk mkerrcodes.c \
-       mkheader.c gpg-error.h.in mkw32errmap.c w32-add.h w32ce-add.h \
+       mkheader.c gpg-error.h.in w32-add.h \
        err-sources.h err-codes.h gpg-error-config.in gpg-error.m4 gpgrt.m4 \
        gpg-error.vers gpg-error.def.in \
         versioninfo.rc.in gpg-error.w32-manifest.in \
-       gpg-error-config-test.sh gpg-error.pc.in \
+       gpgrt-config.in gpg-error-config-test.sh.in gpg-error.pc.in \
        gen-lock-obj.sh $(lock_obj_pub)
 
 BUILT_SOURCES = $(srcdir)/err-sources.h $(srcdir)/err-codes.h \
        code-to-errno.h code-from-errno.h \
        err-sources-sym.h err-codes-sym.h errnos-sym.h gpg-error.h gpgrt.h \
-       gpg-error.def mkw32errmap.map.c
+       gpg-error.def
 
-tmp_files = _mkerrcodes.h _gpg-error.def.h mkw32errmap.tab.h mkw32errmap.map.c
+tmp_files = _mkerrcodes.h _gpg-error.def.h
 
 CLEANFILES = code-to-errno.h code-from-errno.h \
        gpg-error.h gpgrt.h \
-        mkerrcodes$(EXEEXT_FOR_BUILD) mkerrcodes.h gpg-error.def mkw32errmap.tab.h \
-       mkw32errmap.map.c err-sources-sym.h err-codes-sym.h errnos-sym.h \
+        mkerrcodes$(EXEEXT_FOR_BUILD) mkerrcodes.h gpg-error.def \
+       err-sources-sym.h err-codes-sym.h errnos-sym.h \
        gpg-extra/errno.h mkheader$(EXEEXT_FOR_BUILD) \
+       gpgrt-config gpg-error-config-old gpg-error-config-test.sh \
        gpg-error-config gpg-error-config-test.log \
        $(tmp_files) lock-obj-pub.native.h
 
@@ -130,7 +127,7 @@ if HAVE_W32_SYSTEM
 arch_sources = w32-gettext.c w32-lock.c w32-lock-obj.h w32-thread.c \
               w32-iconv.c w32-estream.c w32-reg.c spawn-w32.c
 RCCOMPILE = $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-            -DLOCALEDIR=\"$(localedir)\" $(AM_CPPFLAGS) $(CPPFLAGS)
+            $(libgpg_error_la_CPPFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS)
 LTRCCOMPILE = $(LIBTOOL) --mode=compile --tag=RC $(RCCOMPILE)
 
 SUFFIXES = .rc .lo
@@ -211,15 +208,12 @@ nodist_libgpg_error_la_SOURCES = gpg-error.h
 # libgpg_error_la_DEPENDENCIES = \
 #        $(srcdir)/gpg-error.vers
 
-# Note that RCCOMPILE needs the same defines as ..._la_CPPFLAGS but
-# without the extra_cppflags because they may include am -idirafter
-# which is not supported by the RC compiler.
-libgpg_error_la_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\" $(extra_cppflags)
+libgpg_error_la_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\"
 libgpg_error_la_LIBADD = $(gpg_error_res) $(intllibs) $(socklibs) $(LIBTHREAD)
 
 gpg_error_SOURCES = strsource-sym.c strerror-sym.c gpg-error.c
 gpg_error_CPPFLAGS = -DPKGDATADIR=\"$(pkgdatadir)\" \
-                     -DLOCALEDIR=\"$(localedir)\" $(extra_cppflags)
+                     -DLOCALEDIR=\"$(localedir)\"
 gpg_error_LDADD = libgpg-error.la $(LTLIBINTL)
 
 # We build err-sources.h and err-codes.h in the source directory.
@@ -247,32 +241,17 @@ code-to-errno.h: Makefile mkerrnos.awk errnos.in
        $(AWK) -f $(srcdir)/mkerrnos.awk $(srcdir)/errnos.in >$@
 
 # It is correct to use $(CPP).  We want the host's idea of the error codes.
-mkerrcodes.h: Makefile mkerrcodes.awk $(gpg_extra_headers)
+mkerrcodes.h: Makefile mkerrcodes.awk
        $(AWK) -f $(srcdir)/mkerrcodes1.awk $(srcdir)/errnos.in >_$@
-       $(CPP) $(CPPFLAGS) $(extra_cppflags) -P _$@ | grep GPG_ERR_ | \
+       $(CPP) $(CPPFLAGS) -P _$@ | grep GPG_ERR_ | \
                $(AWK) -f $(srcdir)/mkerrcodes.awk >$@
        -rm _$@
 
-if HAVE_W32CE_SYSTEM
-# It is correct to use $(CPP).  We want the host's idea of the error codes.
-mkw32errmap.tab.h: Makefile mkw32errmap.c
-       $(CPP) -DRESOLVE_MACROS $(srcdir)/mkw32errmap.c | \
-             grep '{&mkw32errmap_marker' >$@
-mkw32errmap.map.c: mkw32errmap$(EXEEXT_FOR_BUILD)
-       ./mkw32errmap$(EXEEXT_FOR_BUILD) --map > $@
-gpg-extra/errno.h: mkw32errmap$(EXEEXT_FOR_BUILD)
-       -$(MKDIR_P) gpg-extra
-       ./mkw32errmap$(EXEEXT_FOR_BUILD) > $@
-else
-mkw32errmap.map.c:
-       echo "/*dummy*/" > $@
-endif
-
 # We use CC proper for preprocessing thus we have to convince it that
 # the data is really to be preprocessed.
 gpg-error.def: Makefile gpg-error.def.in
        cat $(srcdir)/gpg-error.def.in >_$@.h
-       $(CPP) $(DEFAULT_INCLUDES) $(INCLUDES) $(extra_cppflags) _$@.h | \
+       $(CPP) $(DEFAULT_INCLUDES) $(INCLUDES) _$@.h | \
          grep -v '^#' >$@
        -rm _$@.h
 
@@ -282,14 +261,6 @@ mkerrcodes$(EXEEXT_FOR_BUILD): mkerrcodes.c mkerrcodes.h Makefile
        $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) \
        $(CPPFLAGS_FOR_BUILD) -I. -I$(srcdir) -o $@ $(srcdir)/mkerrcodes.c
 
-if HAVE_W32CE_SYSTEM
-# It is correct to use $(CC_FOR_BUILD) here.  We want to run the
-# program at build time.
-mkw32errmap$(EXEEXT_FOR_BUILD): mkw32errmap.c mkw32errmap.tab.h Makefile
-       $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) \
-       $(CPPFLAGS_FOR_BUILD) -I. -I$(srcdir) -o $@ $(srcdir)/mkw32errmap.c
-endif
-
 code-from-errno.h: mkerrcodes$(EXEEXT_FOR_BUILD) Makefile
        ./mkerrcodes$(EXEEXT_FOR_BUILD) | $(AWK) -f $(srcdir)/mkerrcodes2.awk >$@
 
@@ -309,7 +280,6 @@ parts_of_gpg_error_h =              \
        err-codes.h.in          \
        errnos.in               \
        w32-add.h               \
-       w32ce-add.h             \
        $(lock_obj_pub)
 
 # If we are cross-compiling or building on Windows we better make sure
@@ -346,7 +316,7 @@ gpg-error.h: Makefile mkheader$(EXEEXT_FOR_BUILD) $(parts_of_gpg_error_h) \
 gpgrt.h: gpg-error.h
        cp gpg-error.h gpgrt.h
 
-gpg-error-config: gpgrt-config gpg-error-config-old
+gpg-error-config: gpgrt-config gpg-error-config-old gpg-error-config-test.sh
        @echo $(ECHO_N) "Confirm gpg-error-config works... $(ECHO_C)"
        @if ./gpg-error-config-test.sh --old-new; then \
          echo "good";                                         \
@@ -356,12 +326,3 @@ gpg-error-config: gpgrt-config gpg-error-config-old
          exit 1; \
        fi
        cp gpg-error-config-old $@
-
-install-data-local:
-if HAVE_W32CE_SYSTEM
-       -$(MKDIR_P) "$(DESTDIR)$(includedir)/gpg-extra"
-       $(INSTALL_DATA) gpg-extra/errno.h \
-                         "$(DESTDIR)$(includedir)/gpg-extra/errno.h"
-else
-        :
-endif
index 8a6f1b4..343c309 100644 (file)
@@ -133,18 +133,18 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/autobuild.m4 \
        $(top_srcdir)/m4/ax_cc_for_build.m4 \
        $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/estream.m4 \
        $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gnupg-misc.m4 \
-       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
-       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
-       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
-       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/readline.m4 \
-       $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/ltoptions.m4 \
+       $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+       $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/threadlib.m4 \
+       $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
-DIST_COMMON = $(srcdir)/Makefile.am $(dist_bin_SCRIPTS) \
-       $(am__DIST_COMMON)
+DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON)
 mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES = versioninfo.rc gpg-error.w32-manifest \
@@ -152,9 +152,8 @@ CONFIG_CLEAN_FILES = versioninfo.rc gpg-error.w32-manifest \
        gpg-error-config-test.sh
 CONFIG_CLEAN_VPATH_FILES =
 am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" \
-       "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" \
-       "$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgconfigdir)" \
-       "$(DESTDIR)$(includedir)"
+       "$(DESTDIR)$(bindir)" "$(DESTDIR)$(m4datadir)" \
+       "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)"
 PROGRAMS = $(bin_PROGRAMS) $(noinst_PROGRAMS)
 am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
 am__vpath_adj = case $$p in \
@@ -236,7 +235,7 @@ am_gpg_error_OBJECTS = gpg_error-strsource-sym.$(OBJEXT) \
        gpg_error-strerror-sym.$(OBJEXT) gpg_error-gpg-error.$(OBJEXT)
 gpg_error_OBJECTS = $(am_gpg_error_OBJECTS)
 gpg_error_DEPENDENCIES = libgpg-error.la $(am__DEPENDENCIES_2)
-SCRIPTS = $(bin_SCRIPTS) $(dist_bin_SCRIPTS)
+SCRIPTS = $(bin_SCRIPTS) $(noinst_SCRIPTS)
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
 am__v_P_0 = false
@@ -442,8 +441,8 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -524,10 +523,6 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-@HAVE_W32CE_SYSTEM_FALSE@gpg_extra_headers = 
-@HAVE_W32CE_SYSTEM_TRUE@gpg_extra_headers = gpg-extra/errno.h
-@HAVE_W32CE_SYSTEM_FALSE@extra_cppflags = 
-@HAVE_W32CE_SYSTEM_TRUE@extra_cppflags = -idirafter gpg-extra
 
 # Distributed lock object definitions for cross compilation.
 lock_obj_pub = \
@@ -572,8 +567,9 @@ lock_obj_pub = \
 
 lib_LTLIBRARIES = libgpg-error.la
 nodist_include_HEADERS = gpg-error.h gpgrt.h
-dist_bin_SCRIPTS = gpgrt-config
-bin_SCRIPTS = gpg-error-config
+@INSTALL_GPG_ERROR_CONFIG_FALSE@bin_SCRIPTS = gpgrt-config
+@INSTALL_GPG_ERROR_CONFIG_TRUE@bin_SCRIPTS = gpgrt-config gpg-error-config
+@INSTALL_GPG_ERROR_CONFIG_FALSE@noinst_SCRIPTS = gpg-error-config
 m4datadir = $(datadir)/aclocal
 m4data_DATA = gpg-error.m4 gpgrt.m4
 pkgconfigdir = $(libdir)/pkgconfig
@@ -581,24 +577,25 @@ pkgconfig_DATA = gpg-error.pc
 EXTRA_DIST = mkstrtable.awk err-sources.h.in err-codes.h.in \
        mkerrnos.awk errnos.in README \
        mkerrcodes.awk mkerrcodes1.awk mkerrcodes2.awk mkerrcodes.c \
-       mkheader.c gpg-error.h.in mkw32errmap.c w32-add.h w32ce-add.h \
+       mkheader.c gpg-error.h.in w32-add.h \
        err-sources.h err-codes.h gpg-error-config.in gpg-error.m4 gpgrt.m4 \
        gpg-error.vers gpg-error.def.in \
         versioninfo.rc.in gpg-error.w32-manifest.in \
-       gpg-error-config-test.sh gpg-error.pc.in \
+       gpgrt-config.in gpg-error-config-test.sh.in gpg-error.pc.in \
        gen-lock-obj.sh $(lock_obj_pub)
 
 BUILT_SOURCES = $(srcdir)/err-sources.h $(srcdir)/err-codes.h \
        code-to-errno.h code-from-errno.h \
        err-sources-sym.h err-codes-sym.h errnos-sym.h gpg-error.h gpgrt.h \
-       gpg-error.def mkw32errmap.map.c
+       gpg-error.def
 
-tmp_files = _mkerrcodes.h _gpg-error.def.h mkw32errmap.tab.h mkw32errmap.map.c
+tmp_files = _mkerrcodes.h _gpg-error.def.h
 CLEANFILES = code-to-errno.h code-from-errno.h \
        gpg-error.h gpgrt.h \
-        mkerrcodes$(EXEEXT_FOR_BUILD) mkerrcodes.h gpg-error.def mkw32errmap.tab.h \
-       mkw32errmap.map.c err-sources-sym.h err-codes-sym.h errnos-sym.h \
+        mkerrcodes$(EXEEXT_FOR_BUILD) mkerrcodes.h gpg-error.def \
+       err-sources-sym.h err-codes-sym.h errnos-sym.h \
        gpg-extra/errno.h mkheader$(EXEEXT_FOR_BUILD) \
+       gpgrt-config gpg-error-config-old gpg-error-config-test.sh \
        gpg-error-config gpg-error-config-test.log \
        $(tmp_files) lock-obj-pub.native.h
 
@@ -620,7 +617,7 @@ TESTS = gpg-error-config-test.sh
 @HAVE_W32_SYSTEM_TRUE@        w32-iconv.c w32-estream.c w32-reg.c spawn-w32.c
 
 @HAVE_W32_SYSTEM_TRUE@RCCOMPILE = $(RC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
-@HAVE_W32_SYSTEM_TRUE@            -DLOCALEDIR=\"$(localedir)\" $(AM_CPPFLAGS) $(CPPFLAGS)
+@HAVE_W32_SYSTEM_TRUE@            $(libgpg_error_la_CPPFLAGS) $(AM_CPPFLAGS) $(CPPFLAGS)
 
 @HAVE_W32_SYSTEM_TRUE@LTRCCOMPILE = $(LIBTOOL) --mode=compile --tag=RC $(RCCOMPILE)
 @HAVE_W32_SYSTEM_TRUE@SUFFIXES = .rc .lo
@@ -665,20 +662,16 @@ nodist_libgpg_error_la_SOURCES = gpg-error.h
 
 # libgpg_error_la_DEPENDENCIES = \
 #        $(srcdir)/gpg-error.vers
-
-# Note that RCCOMPILE needs the same defines as ..._la_CPPFLAGS but
-# without the extra_cppflags because they may include am -idirafter
-# which is not supported by the RC compiler.
-libgpg_error_la_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\" $(extra_cppflags)
+libgpg_error_la_CPPFLAGS = -DLOCALEDIR=\"$(localedir)\"
 libgpg_error_la_LIBADD = $(gpg_error_res) $(intllibs) $(socklibs) $(LIBTHREAD)
 gpg_error_SOURCES = strsource-sym.c strerror-sym.c gpg-error.c
 gpg_error_CPPFLAGS = -DPKGDATADIR=\"$(pkgdatadir)\" \
-                     -DLOCALEDIR=\"$(localedir)\" $(extra_cppflags)
+                     -DLOCALEDIR=\"$(localedir)\"
 
 gpg_error_LDADD = libgpg-error.la $(LTLIBINTL)
 parts_of_gpg_error_h = gpg-error.h.in err-sources.h.in err-codes.h.in \
-       errnos.in w32-add.h w32ce-add.h $(lock_obj_pub) \
-       $(am__append_1) $(am__append_2)
+       errnos.in w32-add.h $(lock_obj_pub) $(am__append_1) \
+       $(am__append_2)
 @FORCE_USE_SYSCFG_FALSE@@HAVE_GENERATED_LOCK_OBJ_H_FALSE@pre_mkheader_cmds = :
 # lock-obj-pub.native.h is generated at configure time
 @FORCE_USE_SYSCFG_FALSE@@HAVE_GENERATED_LOCK_OBJ_H_TRUE@pre_mkheader_cmds = :
@@ -880,41 +873,6 @@ uninstall-binSCRIPTS:
        files=`for p in $$list; do echo "$$p"; done | \
               sed -e 's,.*/,,;$(transform)'`; \
        dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
-install-dist_binSCRIPTS: $(dist_bin_SCRIPTS)
-       @$(NORMAL_INSTALL)
-       @list='$(dist_bin_SCRIPTS)'; test -n "$(bindir)" || list=; \
-       if test -n "$$list"; then \
-         echo " $(MKDIR_P) '$(DESTDIR)$(bindir)'"; \
-         $(MKDIR_P) "$(DESTDIR)$(bindir)" || exit 1; \
-       fi; \
-       for p in $$list; do \
-         if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
-         if test -f "$$d$$p"; then echo "$$d$$p"; echo "$$p"; else :; fi; \
-       done | \
-       sed -e 'p;s,.*/,,;n' \
-           -e 'h;s|.*|.|' \
-           -e 'p;x;s,.*/,,;$(transform)' | sed 'N;N;N;s,\n, ,g' | \
-       $(AWK) 'BEGIN { files["."] = ""; dirs["."] = 1; } \
-         { d=$$3; if (dirs[d] != 1) { print "d", d; dirs[d] = 1 } \
-           if ($$2 == $$4) { files[d] = files[d] " " $$1; \
-             if (++n[d] == $(am__install_max)) { \
-               print "f", d, files[d]; n[d] = 0; files[d] = "" } } \
-           else { print "f", d "/" $$4, $$1 } } \
-         END { for (d in files) print "f", d, files[d] }' | \
-       while read type dir files; do \
-            if test "$$dir" = .; then dir=; else dir=/$$dir; fi; \
-            test -z "$$files" || { \
-              echo " $(INSTALL_SCRIPT) $$files '$(DESTDIR)$(bindir)$$dir'"; \
-              $(INSTALL_SCRIPT) $$files "$(DESTDIR)$(bindir)$$dir" || exit $$?; \
-            } \
-       ; done
-
-uninstall-dist_binSCRIPTS:
-       @$(NORMAL_UNINSTALL)
-       @list='$(dist_bin_SCRIPTS)'; test -n "$(bindir)" || exit 0; \
-       files=`for p in $$list; do echo "$$p"; done | \
-              sed -e 's,.*/,,;$(transform)'`; \
-       dir='$(DESTDIR)$(bindir)'; $(am__uninstall_files_from_dir)
 
 mostlyclean-compile:
        -rm -f *.$(OBJEXT)
@@ -1461,7 +1419,7 @@ all-am: Makefile $(PROGRAMS) $(LTLIBRARIES) $(SCRIPTS) $(DATA) \
 install-binPROGRAMS: install-libLTLIBRARIES
 
 installdirs:
-       for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)"; do \
+       for dir in "$(DESTDIR)$(bindir)" "$(DESTDIR)$(libdir)" "$(DESTDIR)$(bindir)" "$(DESTDIR)$(m4datadir)" "$(DESTDIR)$(pkgconfigdir)" "$(DESTDIR)$(includedir)"; do \
          test -z "$$dir" || $(MKDIR_P) "$$dir"; \
        done
 install: $(BUILT_SOURCES)
@@ -1552,15 +1510,15 @@ info: info-am
 
 info-am:
 
-install-data-am: install-data-local install-m4dataDATA \
-       install-nodist_includeHEADERS install-pkgconfigDATA
+install-data-am: install-m4dataDATA install-nodist_includeHEADERS \
+       install-pkgconfigDATA
 
 install-dvi: install-dvi-am
 
 install-dvi-am:
 
 install-exec-am: install-binPROGRAMS install-binSCRIPTS \
-       install-dist_binSCRIPTS install-libLTLIBRARIES
+       install-libLTLIBRARIES
 
 install-html: install-html-am
 
@@ -1631,9 +1589,8 @@ ps: ps-am
 ps-am:
 
 uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
-       uninstall-dist_binSCRIPTS uninstall-libLTLIBRARIES \
-       uninstall-m4dataDATA uninstall-nodist_includeHEADERS \
-       uninstall-pkgconfigDATA
+       uninstall-libLTLIBRARIES uninstall-m4dataDATA \
+       uninstall-nodist_includeHEADERS uninstall-pkgconfigDATA
 
 .MAKE: all check check-am install install-am install-exec \
        install-strip
@@ -1645,17 +1602,16 @@ uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
        distclean-generic distclean-libtool distclean-tags distdir dvi \
        dvi-am html html-am info info-am install install-am \
        install-binPROGRAMS install-binSCRIPTS install-data \
-       install-data-am install-data-local install-dist_binSCRIPTS \
-       install-dvi install-dvi-am install-exec install-exec-am \
-       install-html install-html-am install-info install-info-am \
-       install-libLTLIBRARIES install-m4dataDATA install-man \
-       install-nodist_includeHEADERS install-pdf install-pdf-am \
-       install-pkgconfigDATA install-ps install-ps-am install-strip \
-       installcheck installcheck-am installdirs maintainer-clean \
-       maintainer-clean-generic mostlyclean mostlyclean-compile \
-       mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
-       tags tags-am uninstall uninstall-am uninstall-binPROGRAMS \
-       uninstall-binSCRIPTS uninstall-dist_binSCRIPTS \
+       install-data-am install-dvi install-dvi-am install-exec \
+       install-exec-am install-html install-html-am install-info \
+       install-info-am install-libLTLIBRARIES install-m4dataDATA \
+       install-man install-nodist_includeHEADERS install-pdf \
+       install-pdf-am install-pkgconfigDATA install-ps install-ps-am \
+       install-strip installcheck installcheck-am installdirs \
+       maintainer-clean maintainer-clean-generic mostlyclean \
+       mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
+       pdf pdf-am ps ps-am tags tags-am uninstall uninstall-am \
+       uninstall-binPROGRAMS uninstall-binSCRIPTS \
        uninstall-libLTLIBRARIES uninstall-m4dataDATA \
        uninstall-nodist_includeHEADERS uninstall-pkgconfigDATA
 
@@ -1702,29 +1658,17 @@ code-to-errno.h: Makefile mkerrnos.awk errnos.in
        $(AWK) -f $(srcdir)/mkerrnos.awk $(srcdir)/errnos.in >$@
 
 # It is correct to use $(CPP).  We want the host's idea of the error codes.
-mkerrcodes.h: Makefile mkerrcodes.awk $(gpg_extra_headers)
+mkerrcodes.h: Makefile mkerrcodes.awk
        $(AWK) -f $(srcdir)/mkerrcodes1.awk $(srcdir)/errnos.in >_$@
-       $(CPP) $(CPPFLAGS) $(extra_cppflags) -P _$@ | grep GPG_ERR_ | \
+       $(CPP) $(CPPFLAGS) -P _$@ | grep GPG_ERR_ | \
                $(AWK) -f $(srcdir)/mkerrcodes.awk >$@
        -rm _$@
 
-# It is correct to use $(CPP).  We want the host's idea of the error codes.
-@HAVE_W32CE_SYSTEM_TRUE@mkw32errmap.tab.h: Makefile mkw32errmap.c
-@HAVE_W32CE_SYSTEM_TRUE@       $(CPP) -DRESOLVE_MACROS $(srcdir)/mkw32errmap.c | \
-@HAVE_W32CE_SYSTEM_TRUE@             grep '{&mkw32errmap_marker' >$@
-@HAVE_W32CE_SYSTEM_TRUE@mkw32errmap.map.c: mkw32errmap$(EXEEXT_FOR_BUILD)
-@HAVE_W32CE_SYSTEM_TRUE@       ./mkw32errmap$(EXEEXT_FOR_BUILD) --map > $@
-@HAVE_W32CE_SYSTEM_TRUE@gpg-extra/errno.h: mkw32errmap$(EXEEXT_FOR_BUILD)
-@HAVE_W32CE_SYSTEM_TRUE@       -$(MKDIR_P) gpg-extra
-@HAVE_W32CE_SYSTEM_TRUE@       ./mkw32errmap$(EXEEXT_FOR_BUILD) > $@
-@HAVE_W32CE_SYSTEM_FALSE@mkw32errmap.map.c:
-@HAVE_W32CE_SYSTEM_FALSE@      echo "/*dummy*/" > $@
-
 # We use CC proper for preprocessing thus we have to convince it that
 # the data is really to be preprocessed.
 gpg-error.def: Makefile gpg-error.def.in
        cat $(srcdir)/gpg-error.def.in >_$@.h
-       $(CPP) $(DEFAULT_INCLUDES) $(INCLUDES) $(extra_cppflags) _$@.h | \
+       $(CPP) $(DEFAULT_INCLUDES) $(INCLUDES) _$@.h | \
          grep -v '^#' >$@
        -rm _$@.h
 
@@ -1734,12 +1678,6 @@ mkerrcodes$(EXEEXT_FOR_BUILD): mkerrcodes.c mkerrcodes.h Makefile
        $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) \
        $(CPPFLAGS_FOR_BUILD) -I. -I$(srcdir) -o $@ $(srcdir)/mkerrcodes.c
 
-# It is correct to use $(CC_FOR_BUILD) here.  We want to run the
-# program at build time.
-@HAVE_W32CE_SYSTEM_TRUE@mkw32errmap$(EXEEXT_FOR_BUILD): mkw32errmap.c mkw32errmap.tab.h Makefile
-@HAVE_W32CE_SYSTEM_TRUE@       $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) \
-@HAVE_W32CE_SYSTEM_TRUE@       $(CPPFLAGS_FOR_BUILD) -I. -I$(srcdir) -o $@ $(srcdir)/mkw32errmap.c
-
 code-from-errno.h: mkerrcodes$(EXEEXT_FOR_BUILD) Makefile
        ./mkerrcodes$(EXEEXT_FOR_BUILD) | $(AWK) -f $(srcdir)/mkerrcodes2.awk >$@
 
@@ -1767,7 +1705,7 @@ gpg-error.h: Makefile mkheader$(EXEEXT_FOR_BUILD) $(parts_of_gpg_error_h) \
 gpgrt.h: gpg-error.h
        cp gpg-error.h gpgrt.h
 
-gpg-error-config: gpgrt-config gpg-error-config-old
+gpg-error-config: gpgrt-config gpg-error-config-old gpg-error-config-test.sh
        @echo $(ECHO_N) "Confirm gpg-error-config works... $(ECHO_C)"
        @if ./gpg-error-config-test.sh --old-new; then \
          echo "good";                                         \
@@ -1778,12 +1716,6 @@ gpg-error-config: gpgrt-config gpg-error-config-old
        fi
        cp gpg-error-config-old $@
 
-install-data-local:
-@HAVE_W32CE_SYSTEM_TRUE@       -$(MKDIR_P) "$(DESTDIR)$(includedir)/gpg-extra"
-@HAVE_W32CE_SYSTEM_TRUE@       $(INSTALL_DATA) gpg-extra/errno.h \
-@HAVE_W32CE_SYSTEM_TRUE@                         "$(DESTDIR)$(includedir)/gpg-extra/errno.h"
-@HAVE_W32CE_SYSTEM_FALSE@        :
-
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
index a144881..ef0c161 100644 (file)
@@ -1874,6 +1874,17 @@ _gpgrt_argparse (estream_t fp, gpgrt_argparse_t *arg, gpgrt_opt_t *opts_orig)
                         xfree (buffer);
                       else
                         gpgrt_annotate_leaked_object (buffer);
+                      /* If the caller wants us to return the attributes or
+                       * ignored options, or these flags in. */
+                      if ((arg->flags & ARGPARSE_FLAG_WITHATTR))
+                        {
+                          if (opts[idx].ignore)
+                            arg->r_type |= ARGPARSE_ATTR_IGNORE;
+                          if (opts[idx].forced)
+                            arg->r_type |= ARGPARSE_ATTR_FORCE;
+                          if (set_ignore)
+                            arg->r_type |= ARGPARSE_OPT_IGNORE;
+                        }
                     }
                 }
               goto leave;
@@ -3127,7 +3138,7 @@ show_help (opttable_t *opts, unsigned int nopts, unsigned int flags)
 
 
 static void
-show_version ()
+show_version (void)
 {
   const char *s;
   int i;
index fe25657..831af55 100644 (file)
@@ -77,9 +77,6 @@
 
 #if defined(_WIN32) && !defined(HAVE_W32_SYSTEM)
 # define HAVE_W32_SYSTEM 1
-# if defined(__MINGW32CE__) && !defined (HAVE_W32CE_SYSTEM)
-#  define HAVE_W32CE_SYSTEM
-# endif
 #endif
 
 #include <stdio.h>
@@ -97,9 +94,6 @@
 #ifdef HAVE_LANGINFO_THOUSEP
 #include <langinfo.h>
 #endif
-#ifdef HAVE_W32CE_SYSTEM
-#include <gpg-error.h>  /* ERRNO replacement.  */
-#endif
 #ifdef _ESTREAM_PRINTF_EXTRA_INCLUDE
 # include _ESTREAM_PRINTF_EXTRA_INCLUDE
 #endif
 #endif
 
 /* A wrapper to set ERRNO.  */
-#ifdef HAVE_W32CE_SYSTEM
-# define _set_errno(a)  gpg_err_set_errno ((a))
-#else
-# define _set_errno(a)  do { errno = (a); } while (0)
-#endif
+#define _set_errno(a)  do { errno = (a); } while (0)
 
 
 /* Calculate array dimension.  */
index f75e052..17d599f 100644 (file)
 
 #if defined(_WIN32) && !defined(HAVE_W32_SYSTEM)
 # define HAVE_W32_SYSTEM 1
-# if defined(__MINGW32CE__) && !defined (HAVE_W32CE_SYSTEM)
-#  define HAVE_W32CE_SYSTEM
-# endif
 #endif
 
-#ifdef HAVE_SYS_SELECT_H
-# include <sys/select.h>
-#endif
 #ifdef HAVE_SYS_TIME_H
 # include <sys/time.h>
 #endif
 #else
 # ifdef HAVE_POLL_H
 #  include <poll.h>
+# else
+#  ifdef HAVE_SYS_SELECT_H
+#   include <sys/select.h>
+#  endif
 # endif
 #endif
 
 #endif
 
 
-#ifdef HAVE_W32CE_SYSTEM
-# define _set_errno(a)  gpg_err_set_errno ((a))
-/* Setmode is missing in cegcc but available since CE 5.0.  */
-int _setmode (int handle, int mode);
-# define setmode(a,b)   _setmode ((a),(b))
-#else
-# define _set_errno(a)  do { errno = (a); } while (0)
-#endif
+#define _set_errno(a)  do { errno = (a); } while (0)
 
 #define IS_INVALID_FD(a)    ((a) == -1)
 
@@ -361,6 +352,15 @@ _gpgrt_w32_set_errno (int ec)
 }
 
 
+gpg_err_code_t
+_gpgrt_w32_get_last_err_code (void)
+{
+  int ec = GetLastError ();
+  errno = map_w32_to_errno (ec);
+  return _gpg_err_code_from_errno (errno);
+}
+
+
 #endif /*HAVE_W32_SYSTEM*/
 
 /*
@@ -1187,12 +1187,214 @@ static struct cookie_io_functions_s estream_functions_fd =
   };
 
 
+\f
+#ifdef HAVE_W32_SYSTEM
+/*
+ * Implementation of SOCKET based I/O.
+ */
+
+/* Cookie for SOCKET objects.  */
+typedef struct estream_cookie_sock
+{
+  SOCKET sock;   /* The SOCKET we are using for actual output.  */
+  int no_close;  /* If set we won't close the file descriptor.  */
+  int nonblock;  /* Non-blocking mode is enabled.  */
+} *estream_cookie_sock_t;
+
+
+/*
+ * Create function for objects indentified by a libc file descriptor.
+ */
+static int
+func_sock_create (void **cookie, SOCKET sock,
+                  unsigned int modeflags, int no_close)
+{
+  estream_cookie_sock_t sock_cookie;
+  int err;
+
+  trace (("enter: sock=%d mf=%x nc=%d", (int)sock, modeflags, no_close));
+
+  sock_cookie = mem_alloc (sizeof (*sock_cookie));
+  if (! sock_cookie)
+    err = -1;
+  else
+    {
+      sock_cookie->sock = sock;
+      sock_cookie->no_close = no_close;
+      sock_cookie->nonblock = !!(modeflags & O_NONBLOCK);
+      *cookie = sock_cookie;
+      err = 0;
+    }
+
+  trace_errno (err, ("leave: cookie=%p err=%d", *cookie, err));
+  return err;
+}
+
+
+/*
+ * Read function for SOCKET objects.
+ */
+static gpgrt_ssize_t
+func_sock_read (void *cookie, void *buffer, size_t size)
+
+{
+  estream_cookie_sock_t file_cookie = cookie;
+  gpgrt_ssize_t bytes_read;
+
+  trace (("enter: cookie=%p buffer=%p size=%d", cookie, buffer, (int)size));
+
+  if (!size)
+    bytes_read = -1; /* We don't know whether anything is pending.  */
+  else if (IS_INVALID_FD (file_cookie->sock))
+    {
+      _gpgrt_yield ();
+      bytes_read = 0;
+    }
+  else
+    {
+      _gpgrt_pre_syscall ();
+      do
+        {
+          bytes_read = recv (file_cookie->sock, buffer, size, 0);
+        }
+      while (bytes_read == -1 && errno == EINTR);
+      _gpgrt_post_syscall ();
+    }
+
+  trace_errno (bytes_read == -1, ("leave: bytes_read=%d", (int)bytes_read));
+  return bytes_read;
+}
+
+
+/*
+ * Write function for SOCKET objects.
+ */
+static gpgrt_ssize_t
+func_sock_write (void *cookie, const void *buffer, size_t size)
+{
+  estream_cookie_sock_t file_cookie = cookie;
+  gpgrt_ssize_t bytes_written;
+
+  trace (("enter: cookie=%p buffer=%p size=%d", cookie, buffer, (int)size));
+
+  if (IS_INVALID_FD (file_cookie->sock))
+    {
+      _gpgrt_yield ();
+      bytes_written = size; /* Yeah:  Success writing to the bit bucket.  */
+    }
+  else if (buffer)
+    {
+      _gpgrt_pre_syscall ();
+      do
+        {
+          bytes_written = send (file_cookie->sock, buffer, size, 0);
+        }
+      while (bytes_written == -1 && errno == EINTR);
+      _gpgrt_post_syscall ();
+    }
+  else
+    bytes_written = size; /* Note that for a flush SIZE should be 0.  */
+
+  trace_errno (bytes_written == -1,
+               ("leave: bytes_written=%d", (int)bytes_written));
+  return bytes_written;
+}
+
+
+/*
+ * Seek function for SOCKET objects.
+ */
+static int
+func_sock_seek (void *cookie, gpgrt_off_t *offset, int whence)
+{
+  (void)cookie;
+  (void)offset;
+  (void)whence;
+  _set_errno (ESPIPE);
+  return -1;
+}
+
+
+/*
+ * The IOCTL function for SOCKET objects.
+ */
+static int
+func_sock_ioctl (void *cookie, int cmd, void *ptr, size_t *len)
+{
+  estream_cookie_sock_t sock_cookie = cookie;
+  int ret;
+
+  if (cmd == COOKIE_IOCTL_NONBLOCK && !len)
+    {
+      sock_cookie->nonblock = !!ptr;
+      if (IS_INVALID_FD (sock_cookie->sock))
+        {
+          _set_errno (EINVAL);
+          ret = -1;
+        }
+      else
+        {
+          u_long mode = 0;
+
+          if (sock_cookie->nonblock)
+            mode = 1;
 
+          ret = ioctlsocket (sock_cookie->sock, FIONBIO, &mode);
+        }
+    }
+  else
+    {
+      _set_errno (EINVAL);
+      ret = -1;
+    }
+
+  return ret;
+}
+
+/*
+ * The destroy function for SOCKET objects.
+ */
+static int
+func_sock_destroy (void *cookie)
+{
+  estream_cookie_sock_t sock_cookie = cookie;
+  int err;
+
+  trace (("enter: cookie=%p", cookie));
+
+  if (sock_cookie)
+    {
+      if (IS_INVALID_FD (sock_cookie->sock))
+        err = 0;
+      else
+        err = sock_cookie->no_close? 0 : closesocket (sock_cookie->sock);
+      mem_free (sock_cookie);
+    }
+  else
+    err = 0;
+
+  trace_errno (err,("leave: err=%d", err));
+  return err;
+}
+
+
+/*
+ * Access object for the fd functions.
+ */
+static struct cookie_io_functions_s estream_functions_sock =
+  {
+    {
+      func_sock_read,
+      func_sock_write,
+      func_sock_seek,
+      func_sock_destroy,
+    },
+    func_sock_ioctl,
+  };
 \f
 /*
  * Implementation of W32 handle based I/O.
  */
-#ifdef HAVE_W32_SYSTEM
 
 /* Cookie for fd objects.  */
 typedef struct estream_cookie_w32
@@ -1358,6 +1560,12 @@ func_w32_seek (void *cookie, gpgrt_off_t *offset, int whence)
       return -1;
     }
 
+  if (GetFileType (w32_cookie->hd) == FILE_TYPE_PIPE)
+    {
+      _set_errno (ESPIPE);
+      return -1;
+    }
+
   if (whence == SEEK_SET)
     {
       method = FILE_BEGIN;
@@ -1378,9 +1586,6 @@ func_w32_seek (void *cookie, gpgrt_off_t *offset, int whence)
       _set_errno (EINVAL);
       return -1;
     }
-#ifdef HAVE_W32CE_SYSTEM
-# warning need to use SetFilePointer
-#else
   if (!w32_cookie->no_syscall_clamp)
     _gpgrt_pre_syscall ();
   if (!SetFilePointerEx (w32_cookie->hd, distance, &newoff, method))
@@ -1391,7 +1596,6 @@ func_w32_seek (void *cookie, gpgrt_off_t *offset, int whence)
     }
   if (!w32_cookie->no_syscall_clamp)
     _gpgrt_post_syscall ();
-#endif
   /* Note that gpgrt_off_t is always 64 bit.  */
   *offset = (gpgrt_off_t)newoff.QuadPart;
   return 0;
@@ -1741,6 +1945,100 @@ func_file_create (void **cookie, int *filedes,
 }
 
 
+/* Create function for objects identified by a file name.  Windows
+ * version to use CreateFile.  */
+#ifdef HAVE_W32_SYSTEM
+static int
+func_file_create_w32 (void **cookie, HANDLE *rethd, const char *path,
+                      unsigned int modeflags, unsigned int cmode)
+{
+  estream_cookie_w32_t hd_cookie;
+  wchar_t *wpath = NULL;
+  int err = 0;
+  HANDLE hd;
+  DWORD desired_access;
+  DWORD share_mode;
+  DWORD creation_distribution;
+
+  (void)cmode;
+
+  hd_cookie = mem_alloc (sizeof *hd_cookie);
+  if (!hd_cookie)
+    {
+      err = -1;
+      goto leave;
+    }
+
+  wpath = _gpgrt_fname_to_wchar (path);
+  if (!wpath)
+    {
+      err = -1;
+      goto leave;
+    }
+
+  if ((modeflags & O_WRONLY))
+    {
+      desired_access = GENERIC_WRITE;
+      share_mode = FILE_SHARE_WRITE;
+    }
+  else if ((modeflags & O_RDWR))
+    {
+      desired_access = GENERIC_READ | GENERIC_WRITE;
+      share_mode = FILE_SHARE_READ | FILE_SHARE_WRITE;
+    }
+  else
+    {
+      desired_access = GENERIC_READ;
+      share_mode = FILE_SHARE_READ;
+    }
+
+
+  creation_distribution = 0;
+  if ((modeflags & (O_CREAT | O_EXCL)) == (O_CREAT | O_EXCL))
+     creation_distribution |= CREATE_NEW;
+  else if ((modeflags & O_TRUNC) == O_TRUNC)
+    {
+      if ((modeflags & O_CREAT) == O_CREAT)
+        creation_distribution |= CREATE_ALWAYS;
+      else if ((modeflags & O_RDONLY) != O_RDONLY)
+        creation_distribution |= TRUNCATE_EXISTING;
+    }
+  else if ((modeflags & O_APPEND) == O_APPEND)
+    creation_distribution |= OPEN_EXISTING;
+  else if ((modeflags & O_CREAT) == O_CREAT)
+    creation_distribution |= OPEN_ALWAYS;
+  else
+    creation_distribution |= OPEN_EXISTING;
+
+  hd = CreateFileW (wpath,
+                    desired_access,
+                    share_mode,
+                    NULL,  /* security attributes */
+                    creation_distribution,
+                    0,     /* flags and attributes  */
+                    NULL); /* template file  */
+  if (hd == INVALID_HANDLE_VALUE)
+    {
+      _set_errno (map_w32_to_errno (GetLastError ()));
+      err = -1;
+      goto leave;
+    }
+
+  hd_cookie->hd = hd;
+  hd_cookie->no_close = 0;
+  hd_cookie->no_syscall_clamp = 0;
+  *cookie = hd_cookie;
+  *rethd = hd;
+
+ leave:
+  _gpgrt_free_wchar (wpath);
+  if (err)
+    mem_free (hd_cookie);
+  return err;
+}
+#endif /*HAVE_W32_SYSTEM*/
+
+
 \f
 /* Flags used by parse_mode and friends.  */
 #define X_SAMETHREAD   (1 << 0)
@@ -1779,10 +2077,11 @@ func_file_create (void **cookie, int *filedes,
  *
  * sysopen
  *
- *    The object is opened in sysmode.  On POSIX this is a NOP but
- *    under Windows the direct W32 API functions (HANDLE) are used
- *    instead of their libc counterparts (fd).
- *    FIXME: The functionality is not yet implemented.
+ *    The object is opened in GPGRT_SYSHD_HANDLE mode.  On POSIX this
+ *    is a NOP but under Windows the direct W32 API functions (HANDLE)
+ *    are used instead of their libc counterparts (fd).  This flag
+ *    also allows to use file names longer than MAXPATH.  Note that
+ *    gpgrt_fileno does not not work for such a stream under Windows.
  *
  * pollable
  *
@@ -2180,7 +2479,7 @@ deinit_stream_obj (estream_t stream)
 
 /*
  * Create a new stream and initialize it.  On success the new stream
- * handle is tsored at R_STREAM.  On failure NULL is stored at
+ * handle is stored at R_STREAM.  On failure NULL is stored at
  * R_STREAM.
  */
 static int
@@ -3209,40 +3508,57 @@ _gpgrt_fopen (const char *_GPGRT__RESTRICT path,
               const char *_GPGRT__RESTRICT mode)
 {
   unsigned int modeflags, cmode, xmode;
-  int create_called;
-  estream_t stream;
-  void *cookie;
+  int create_called = 0;
+  estream_t stream = NULL;
+  void *cookie = NULL;
   int err;
-  int fd;
+  struct cookie_io_functions_s *functions;
   es_syshd_t syshd;
-
-  stream = NULL;
-  cookie = NULL;
-  create_called = 0;
+  int kind;
 
   err = parse_mode (mode, &modeflags, &xmode, &cmode);
   if (err)
-    goto out;
+    goto leave;
+
+  /* Convenience hack so that we can use /dev/null on Windows.  */
+#ifdef HAVE_W32_SYSTEM
+  if (path && !strcmp (path, "/dev/null"))
+    path = "nul";
+#endif
 
-  err = func_file_create (&cookie, &fd, path, modeflags, cmode);
+#ifdef HAVE_W32_SYSTEM
+  if ((xmode & X_SYSOPEN))
+    {
+      kind = BACKEND_W32;
+      functions = &estream_functions_w32;
+      syshd.type = ES_SYSHD_HANDLE;
+      err = func_file_create_w32 (&cookie, &syshd.u.handle,
+                                  path, modeflags, cmode);
+    }
+  else
+#endif /* W32 */
+    {
+      kind = BACKEND_FD;
+      functions = &estream_functions_fd;
+      syshd.type = ES_SYSHD_FD;
+      err = func_file_create (&cookie, &syshd.u.fd,
+                              path, modeflags, cmode);
+    }
   if (err)
-    goto out;
+    goto leave;
 
-  syshd.type = ES_SYSHD_FD;
-  syshd.u.fd = fd;
   create_called = 1;
-  err = create_stream (&stream, cookie, &syshd, BACKEND_FD,
-                       estream_functions_fd, modeflags, xmode, 0);
+  err = create_stream (&stream, cookie, &syshd, kind,
+                       *functions, modeflags, xmode, 0);
   if (err)
-    goto out;
+    goto leave;
 
   if (stream && path)
     fname_set_internal (stream, path, 1);
 
- out:
-
+ leave:
   if (err && create_called)
-    (*estream_functions_fd.public.func_close) (cookie);
+    functions->public.func_close (cookie);
 
   return stream;
 }
@@ -3523,6 +3839,53 @@ _gpgrt_fpopen_nc (FILE *fp, const char *mode)
 
 \f
 #ifdef HAVE_W32_SYSTEM
+static estream_t
+do_sockopen (SOCKET sock, const char *mode, int no_close, int with_locked_list)
+{
+  int create_called = 0;
+  estream_t stream = NULL;
+  void *cookie = NULL;
+  unsigned int modeflags, xmode;
+  int err;
+  es_syshd_t syshd;
+
+  err = parse_mode (mode, &modeflags, &xmode, NULL);
+  if (err)
+    goto out;
+  if ((xmode & X_SYSOPEN))
+    {
+      /* Not allowed for sockopen.  */
+      _set_errno (EINVAL);
+      err = -1;
+      goto out;
+    }
+
+  err = func_sock_create (&cookie, sock, modeflags, no_close);
+  if (err)
+    goto out;
+
+  syshd.type = ES_SYSHD_SOCK;
+  syshd.u.sock = sock;
+  create_called = 1;
+  err = create_stream (&stream, cookie, &syshd,
+                       BACKEND_SOCK, estream_functions_sock,
+                       modeflags, xmode, with_locked_list);
+
+  if (!err && stream)
+    {
+      if ((modeflags & O_NONBLOCK))
+        err = stream->intern->func_ioctl (cookie, COOKIE_IOCTL_NONBLOCK,
+                                          "", NULL);
+    }
+
+ out:
+  if (err && create_called)
+    (*estream_functions_sock.public.func_close) (cookie);
+
+  return stream;
+}
+
+
 estream_t
 do_w32open (HANDLE hd, const char *mode,
             int no_close, int with_locked_list)
@@ -3541,7 +3904,7 @@ do_w32open (HANDLE hd, const char *mode,
 
   /* If we are pollable we create the function cookie with syscall
    * clamp disabled.  This is because functions are called from
-   * separatre reader and writer threads in w32-stream.  */
+   * separate reader and writer threads in w32-stream.  */
   err = func_w32_create (&cookie, hd, modeflags,
                          no_close, !!(xmode & X_POLLABLE));
   if (err)
@@ -3570,11 +3933,16 @@ do_sysopen (es_syshd_t *syshd, const char *mode, int no_close)
   switch (syshd->type)
     {
     case ES_SYSHD_FD:
+#ifndef HAVE_W32_SYSTEM
     case ES_SYSHD_SOCK:
+#endif
       stream = do_fdopen (syshd->u.fd, mode, no_close, 0);
       break;
 
 #ifdef HAVE_W32_SYSTEM
+    case ES_SYSHD_SOCK:
+      stream = do_sockopen (syshd->u.sock, mode, no_close, 0);
+      break;
     case ES_SYSHD_HANDLE:
       stream = do_w32open (syshd->u.handle, mode, no_close, 0);
       break;
@@ -3714,6 +4082,12 @@ _gpgrt_freopen (const char *_GPGRT__RESTRICT path,
       cookie = NULL;
       create_called = 0;
 
+  /* Convenience hack so that we can use /dev/null on Windows.  */
+#ifdef HAVE_W32_SYSTEM
+      if (!strcmp (path, "/dev/null"))
+        path = "nul";
+#endif
+
       xmode = stream->intern->samethread ? X_SAMETHREAD : 0;
 
       lock_stream (stream);
@@ -4642,15 +5016,9 @@ tmpfd (void)
 {
 #ifdef HAVE_W32_SYSTEM
   int attempts, n;
-#ifdef HAVE_W32CE_SYSTEM
-  wchar_t buffer[MAX_PATH+9+12+1];
-# define mystrlen(a) wcslen (a)
-  wchar_t *name, *p;
-#else
   char buffer[MAX_PATH+9+12+1];
 # define mystrlen(a) strlen (a)
   char *name, *p;
-#endif
   HANDLE file;
   int pid = GetCurrentProcessId ();
   unsigned int value;
@@ -4663,11 +5031,7 @@ tmpfd (void)
       return -1;
     }
   p = buffer + mystrlen (buffer);
-#ifdef HAVE_W32CE_SYSTEM
-  wcscpy (p, L"_estream");
-#else
   strcpy (p, "_estream");
-#endif
   p += 8;
   /* We try to create the directory but don't care about an error as
      it may already exist and the CreateFile would throw an error
@@ -4684,11 +5048,7 @@ tmpfd (void)
           *p++ = tohex (((value >> 28) & 0x0f));
           value <<= 4;
         }
-#ifdef HAVE_W32CE_SYSTEM
-      wcscpy (p, L".tmp");
-#else
       strcpy (p, ".tmp");
-#endif
       file = CreateFile (buffer,
                          GENERIC_READ | GENERIC_WRITE,
                          0,
@@ -4698,16 +5058,12 @@ tmpfd (void)
                          NULL);
       if (file != INVALID_HANDLE_VALUE)
         {
-#ifdef HAVE_W32CE_SYSTEM
-          int fd = (int)file;
-#else
           int fd = _open_osfhandle ((intptr_t)file, 0);
           if (fd == -1)
             {
               CloseHandle (file);
               return -1;
             }
-#endif
           return fd;
         }
       Sleep (1); /* One ms as this is the granularity of GetTickCount.  */
diff --git a/src/gpg-error-config-test.sh b/src/gpg-error-config-test.sh
deleted file mode 100755 (executable)
index 081358c..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-#!/bin/sh
-
-srcdir=${0%/*}
-
-PKG_CONFIG_PATH="."
-
-export PKG_CONFIG_PATH
-
-if [ "$1" = --old-new ]; then
-    PKG_CONFIG_CMD=./gpg-error-config-old
-    # Old gpg-error-config never supports PKG_CONFIG_SYSROOT_DIR
-    unset PKG_CONFIG_SYSROOT_DIR
-else
-    pkg_config_min_version=0.29
-    PKG_CONFIG_SYSROOT_DIR="/var/example-target"
-    export PKG_CONFIG_SYSROOT_DIR
-    PKG_CONFIG_CMD="pkg-config gpg-error"
-    check_ver=$( ($PKG_CONFIG_CMD --version; echo $pkg_config_min_version) | \
-                 sort -t '.' -n -k1,1 -k2,2 -k3,3 | sed 1q )
-    if [ $check_ver != $pkg_config_min_version ]; then
-       exit 77                 # Skip tests, because it's too old
-    fi
-    if ! $PKG_CONFIG_CMD --exists >/dev/null; then
-       exit 77                 # Skip tests
-    fi
-fi
-
-test_failed=""
-
-failure () {
-    (
-       echo "Test result: $*"
-       echo "====================: $PKG_CONFIG_CMD"
-       echo "$OUTPUT_OLD"
-       echo "====================: gpgrt-config"
-       echo "$OUTPUT_NEW"
-       echo "===================="
-    ) >> gpg-error-config-test.log
-    test_failed=yes
-}
-
-rm -f gpg-error-config-test.log
-
-OUTPUT_OLD=$(echo $($PKG_CONFIG_CMD --libs))
-OUTPUT_NEW=$($srcdir/gpgrt-config --libs)
-[ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --libs
-
-OUTPUT_OLD=$(echo $($PKG_CONFIG_CMD --cflags))
-OUTPUT_NEW=$($srcdir/gpgrt-config --cflags)
-[ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --cflags
-
-OUTPUT_OLD=$(echo $($PKG_CONFIG_CMD --cflags --libs))
-OUTPUT_NEW=$($srcdir/gpgrt-config --cflags --libs)
-[ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --cflags --libs
-
-if [ "$PKG_CONFIG_CMD" = ./gpg-error-config-old ]; then
-    OUTPUT_OLD=$(echo $($PKG_CONFIG_CMD --version))
-    OUTPUT_NEW=$($srcdir/gpgrt-config --version)
-    [ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --version
-
-    OUTPUT_OLD=$(echo $($PKG_CONFIG_CMD --mt --libs))
-    OUTPUT_NEW=$($srcdir/gpgrt-config --mt --libs)
-    [ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --mt --libs
-
-    OUTPUT_OLD=$(echo $($PKG_CONFIG_CMD --mt --cflags))
-    OUTPUT_NEW=$($srcdir/gpgrt-config --mt --cflags)
-    [ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --mt --cflags
-
-    OUTPUT_OLD=$(echo $($PKG_CONFIG_CMD --cflags --libs))
-    OUTPUT_NEW=$($srcdir/gpgrt-config --cflags --libs)
-    [ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --cflags --libs
-
-    OUTPUT_OLD=$(echo $($PKG_CONFIG_CMD --mt --cflags --libs))
-    OUTPUT_NEW=$($srcdir/gpgrt-config --mt --cflags --libs)
-    [ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --mt --cflags --libs
-
-    OUTPUT_OLD=$(echo $($PKG_CONFIG_CMD --variable=mtcflags))
-    OUTPUT_NEW=$($srcdir/gpgrt-config --variable=mtcflags)
-    [ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --variable=mtcflags
-
-    OUTPUT_OLD=$(echo $($PKG_CONFIG_CMD --variable=mtlibs))
-    OUTPUT_NEW=$($srcdir/gpgrt-config --variable=mtlibs)
-    [ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --variable=mtlibs
-
-    OUTPUT_OLD=$(echo $($PKG_CONFIG_CMD --variable=host))
-    OUTPUT_NEW=$($srcdir/gpgrt-config --variable=host)
-    [ "$OUTPUT_OLD" = "$OUTPUT_NEW" ] || failure --variable=host
-fi
-
-if [ -n "$test_failed" ]; then
-    OUTPUT_OLD=$($PKG_CONFIG_CMD --version)
-    OUTPUT_NEW=$($srcdir/gpgrt-config --version)
-    failure --version
-
-    exit 99
-fi
-
-exit 0
index b888aa2..cd4a7e3 100644 (file)
@@ -1,5 +1,9 @@
 #!@INSTALLSHELLPATH@
 
+# For this test, we clear PKG_CONFIG_LIBDIR, so that gpgrt-config
+# command can access ./gpg-error.pc
+unset PKG_CONFIG_LIBDIR
+
 srcdir=${0%/*}
 
 PKG_CONFIG_PATH="."
index 769be1b..28e9ef3 100644 (file)
@@ -34,10 +34,6 @@ EXPORTS
  /* @6 - Not anymore used.  */
  gpg_err_code_from_syserror   @7
  gpg_err_set_errno            @8
-#ifdef HAVE_W32CE_SYSTEM
-   _gpg_w32ce_get_errno       @9
-   _gpg_w32ce_strerror        @10
-#endif
 #ifdef HAVE_W32_SYSTEM
    _gpg_w32_bindtextdomain     @11
    _gpg_w32_textdomain         @12
@@ -242,4 +238,9 @@ EXPORTS
 
  gpgrt_access                 @183
 
+ gpgrt_free_wchar             @184
+ gpgrt_fname_to_wchar         @185
+ gpgrt_utf8_to_wchar          @186
+ gpgrt_wchar_to_utf8          @187
+
 ;; end of file with public symbols for Windows.
index d2c3b8d..ccacf35 100644 (file)
@@ -620,7 +620,7 @@ struct _gpgrt_syshd
   enum gpgrt_syshd_types type;
   union {
     int fd;
-    int sock;
+    @SOCKET_t@ sock;
     int rvid;
     void *handle;
   } u;
@@ -1190,7 +1190,8 @@ typedef struct
 #define ARGPARSE_FLAG_USER     2048  /* Use user config file.                */
 #define ARGPARSE_FLAG_VERBOSE  4096  /* Print additional argparser info.     */
 #define ARGPARSE_FLAG_USERVERS 8192  /* Try version-ed user config files.    */
-#define ARGPARSE_FLAG_WITHATTR 16384 /* Return attribute bits.               */
+#define ARGPARSE_FLAG_WITHATTR 16384 /* Return attribute bits.  (Make sure   */
+                                     /* to act upon ARGPARSE_OPT_IGNORE.)    */
 
 /* Constants for (gpgrt_argparse_t).err.  */
 #define ARGPARSE_PRINT_WARNING  1    /* Print a diagnostic.                  */
index 56a5d07..a975e53 100644 (file)
@@ -10,7 +10,7 @@
 # WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
 # implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 #
-# Last-changed: 2021-03-31
+# Last-changed: 2022-09-21
 
 
 dnl AM_PATH_GPG_ERROR([MINIMUM-VERSION,
@@ -120,6 +120,10 @@ AC_DEFUN([AM_PATH_GPG_ERROR],
         fi
         if test -n "$gpgrt_libdir"; then break; fi
       done
+      if test -z "$libdir_candidates"; then
+        # No valid pkgconfig dir in any of the system directories, fallback
+        gpgrt_libdir=${possible_libdir1}
+      fi
     else
       # When we cannot determine system libdir-format, use this:
       gpgrt_libdir=${possible_libdir1}
@@ -139,6 +143,7 @@ AC_DEFUN([AM_PATH_GPG_ERROR],
     fi
   elif test "$GPG_ERROR_CONFIG" != "no"; then
     gpg_error_config_version=`$GPG_ERROR_CONFIG --version`
+    unset GPGRT_CONFIG
   fi
   if test "$GPG_ERROR_CONFIG" != "no"; then
     req_major=`echo $min_gpg_error_version | \
diff --git a/src/gpgrt-config b/src/gpgrt-config
deleted file mode 100755 (executable)
index 36604d1..0000000
+++ /dev/null
@@ -1,647 +0,0 @@
-#!/bin/sh
-#                          -*- mode: shell-script; sh-shell: "/bin/sh" -*-
-# Copyright (C) 2018, 2021 g10 Code GmbH
-#
-# This file is free software; as a special exception the author gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-#
-# This file is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
-# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-# SPDX-License-Identifier: FSFULLR
-
-#### start of functions for this script
-
-#
-# Bourne shell functions for config file in pkg-config style, so that
-# we can share such a config file between pkg-config and script
-#
-
-#
-# get_var: Get the variable value of NAME
-#
-# Variables are recorded in the shell variables named "VAR_<NAME>"
-#
-get_var () {
-    ___name=$1
-
-    eval echo \$VAR_$___name
-}
-
-#
-# get_attr: Get the attribute value of KEY
-#
-# Attributes are recorded in the shell variables named "ATTR_<KEY>"
-#
-get_attr () {
-    ___name=$1
-
-    eval echo \$ATTR_$___name
-}
-
-# variant of get_attr for list (separated by ',')
-get_attr_l () {
-    (IFS=', '; echo "$(get_attr $1)")
-}
-
-# Remove ${varname} part in the beginning of a string.
-remove_var_expr () {
-    ___varname=$1
-    shift
-
-    expr "$*" : "\${$___varname}\\(.*\\)"
-}
-
-# Given a string, substitute variables.
-substitute_vars () {
-    __string="$1"
-    __varname=""
-    __result=""
-
-    while [ -n "$__string" ]; do
-       case "$__string" in
-           \$\$*)
-               __result="$__result\$"
-               __string="${__string#\$\$}"
-               ;;
-           \${*}*)
-               __varname="${__string#\$\{}"
-               __varname="${__varname%%\}*}"
-               __result="$__result$(get_var $__varname)"
-               __string=$(remove_var_expr $__varname $__string)
-               ;;
-           *)
-               __result="$__result$(printf %c "$__string")"
-               __string="${__string#$(printf %c "$__string")}"
-               ;;
-       esac
-    done
-
-    echo "$__result"
-}
-
-#
-# Read a config from stdin
-#
-# Variables:
-# For VAR=VALUE, value is stored in the shell variable VAR_*.
-#
-# Attributes:
-# For KEY: VALUE, value is stored in the shell variable ATTR_*.
-#
-read_config_from_stdin () {
-    _filename=$1
-    _line=""
-    _varname=""
-    _value=""
-    _key=""
-    _reading_attrs=""
-
-    while read _line; do
-       if [ -z "$_line" ]; then
-           _reading_attrs=yes
-           continue
-       elif [ -z "$_reading_attrs" ]; then
-           case "$_line" in
-               *=*)
-                   _varname="${_line%%=*}"
-                   _value="${_line#*=}"
-                   VAR_list="$VAR_list${VAR_list:+ }VAR_$_varname"
-                   read VAR_$_varname <<EOF1
-$(substitute_vars "$_value")
-EOF1
-                   continue
-                   ;;
-               *) _reading_attrs=yes ;;
-           esac
-       fi
-       if [ -n "$_reading_attrs" ]; then
-           case "$_line" in
-               *:\ *)
-                   _key="${_line%%:\ *}"
-                   _value="${_line#*:\ }"
-                   if expr "$_key" : ".*\..*" >/dev/null; then
-                       _key="${_key%.*}_${_key#*.}"
-                   fi
-                   ATTR_list="$ATTR_list${ATTR_list:+ }ATTR_$_key"
-                   read ATTR_$_key <<EOF2
-$(substitute_vars "$_value")
-EOF2
-                   ;;
-               *:|*:\ ) ;;
-               *)
-                   echo "Error reading $_filename: $_line" 1>&2
-                   exit 1
-                   ;;
-           esac
-       fi
-    done
-}
-
-
-find_file_in_path () {
-    _f=$1
-    _p=$2
-    _saved_IFS="$IFS"
-    _arg=""
-    IFS=":"            # On Windows it should be ";"???
-
-    for _arg in $_p; do
-       if [ -r $_arg/$_f ]; then
-           RESULT="$_arg/$_f"
-           IFS="$_saved_IFS"
-           return 0
-       fi
-    done
-    IFS="$_saved_IFS"
-    RESULT=""
-    return 1
-}
-
-read_config_file () {
-    if ! find_file_in_path $1.pc $2; then
-       if [ -z "$want_exists" ]; then
-           echo "Can't find $1.pc" 1>&2
-       fi
-       exit 1
-    fi
-    read_config_from_stdin $RESULT < $RESULT
-}
-
-cleanup_vars_attrs () {
-    eval unset $VAR_list VAR_list
-    eval unset $ATTR_list ATTR_list
-}
-
-not_listed_yet () {
-    ___m=$1
-    ___arg=""
-    shift
-
-    for ___arg; do
-       if [ $___m = $___arg ]; then
-           return 1
-       fi
-    done
-
-    return 0
-}
-
-list_only_once () {
-    __result=""
-    __arg=""
-
-    for __arg; do
-       if not_listed_yet $__arg $__result; then
-           __result="$__result${__result:+ }$__arg"
-       fi
-    done
-
-    echo $__result
-}
-
-list_only_once_for_libs () {
-    __result=""
-    __rev_list=""
-    __arg=""
-
-    # Scan the list and eliminate duplicates for non-"-lxxx"
-    # the resulted list is in reverse order
-    for __arg; do
-       case "$__arg" in
-           -l*)
-               # As-is
-               __rev_list="$__arg${__rev_list:+ }$__rev_list"
-               ;;
-           *)
-               if not_listed_yet $__arg $__rev_list; then
-                   __rev_list="$__arg${__rev_list:+ }$__rev_list"
-               fi
-               ;;
-       esac
-    done
-
-    # Scan again
-    for __arg in $__rev_list; do
-       case "$__arg" in
-           -l*)
-               if not_listed_yet $__arg $__result; then
-                   __result="$__arg${__result:+ }$__result"
-               fi
-               ;;
-           *)
-               # As-is
-               __result="$__arg${__result:+ }$__result"
-               ;;
-       esac
-    done
-
-    echo $__result
-}
-
-arg1_is_same () {
-    [ "$1" = "=" -o "$1" = ">=" -o "$1" = "<=" ]
-}
-
-arg1_is_less () {
-    [ "$1" = "!=" -o "$1" = "<" -o "$1" = "<=" ]
-}
-
-arg1_is_great () {
-    [ "$1" = "!=" -o "$1" = ">" -o "$1" = ">=" ]
-}
-
-#
-# Evaluate comparison between versions in RPM way
-#
-eval_compare_version () {
-    ___str1="$1"
-    ___cmp="$2"
-    ___str2="$3"
-    ___char1=""
-    ___char2=""
-    ___chunk1=""
-    ___chunk2=""
-
-    while [ -n "$___str1" -a -n "$___str2" ]; do
-       # Trim anything that's not alnum or tilde from the front
-       ___str1="$(expr "$___str1" : '[^0-9A-Za-z~]*\(.*\)')"
-       ___str2="$(expr "$___str2" : '[^0-9A-Za-z~]*\(.*\)')"
-
-       # Get the first character
-       ___char1=${___str1%${___str1#?}}
-       ___char2=${___str2%${___str2#?}}
-
-       if [ "$___char1" = ~ -o "$___char2" = ~ ]; then
-           if [ "$___char1" != ~ ]; then
-               arg1_is_great $___cmp
-               return
-           fi
-           if [ "$___char2" != ~ ]; then
-               arg1_is_less $___cmp
-               return
-           fi
-           ___str1=${___str1#~}
-           ___str2=${___str2#~}
-           continue
-       fi
-
-       if [ -z "$___char1" -o -z "$___char2" ]; then
-           break
-       fi
-
-       case "$___char1$___char2" in
-           [0-9][A-Za-z])
-               arg1_is_great $___cmp
-               return
-               ;;
-           [A-Za-z][0-9])
-               arg1_is_less $___cmp
-               return
-               ;;
-           [0-9][0-9])
-               ___chunk1="$(expr "$___str1" : '\([0-9]*\)')"
-               ___chunk2="$(expr "$___str2" : '\([0-9]*\)')"
-               ;;
-           [A-Za-z][A-Za-z])
-               ___chunk1="$(expr "$___str1" : '\([A-Za-z]*\)')"
-               ___chunk2="$(expr "$___str2" : '\([A-Za-z]*\)')"
-               ;;
-       esac
-
-       # Compare chunks numerically if digits, or lexicographically
-       if expr "$___chunk1" "!=" "$___chunk2" >/dev/null; then
-           if expr "$___chunk1" ">" "$___chunk2" >/dev/null; then
-               arg1_is_great $___cmp
-               return
-           else
-               arg1_is_less $___cmp
-               return
-           fi
-       fi
-
-       # Remove the chunk
-       ___str1="${___str1#$___chunk1}"
-       ___str2="${___str2#$___chunk2}"
-    done
-
-    # Either STR1, STR2 or both is empty here
-    if [ -n "$___str1" ]; then
-       case "$___str1" in
-           ~*) arg1_is_less $___cmp ;;
-           *)  arg1_is_great $___cmp ;;
-       esac
-    elif [ -n "$___str2" ]; then
-       case "$___str2" in
-           ~*) arg1_is_great $___cmp ;;
-           *)  arg1_is_less $___cmp ;;
-       esac
-    else
-       arg1_is_same $___cmp
-    fi
-}
-
-#
-# Recursively solve package dependencies
-#
-# Result is in the PKG_LIST variable
-#
-all_required_config_files () {
-    all_list=""
-    new_list=""
-    p=""
-    pkg=""
-    cmp=""
-
-    list=$*
-    while [ -n "$list" ]; do
-       for p in $list; do
-           if [ -z "$pkg" ]; then
-               pkg=$p
-           elif [ -z "$cmp" ]; then
-               case "$p" in
-                   "="|"!="|"<"|">"|"<="|">=") cmp=$p ;;
-                   *)
-                       read_config_file $pkg $PKG_CONFIG_PATH
-                       all_list="$all_list${all_list:+ }$pkg"
-                       new_list="$new_list${new_list:+ }$(get_attr_l Requires)"
-                       if [ -n "$enable_static" ]; then
-                           new_list="$new_list${new_list:+ }$(get_attr_l Requires_private)"
-                       fi
-                       cleanup_vars_attrs
-                       pkg=$p
-                       ;;
-               esac
-           else
-               read_config_file $pkg $PKG_CONFIG_PATH
-               if ! eval_compare_version "$(get_attr Version)" $cmp $p; then
-                   echo "Version mismatch for $pkg $cmp $p: $(get_attr Version)" 1>&2
-                   exit 1
-               fi
-               all_list="$all_list${all_list:+ }$pkg"
-               new_list="$new_list${new_list:+ }$(get_attr_l Requires)"
-               if [ -n "$enable_static" ]; then
-                   new_list="$new_list${new_list:+ }$(get_attr_l Requires_private)"
-               fi
-               cleanup_vars_attrs
-               pkg=""
-               cmp=""
-           fi
-       done
-       if [ -n "$cmp" ]; then
-           echo "No version after comparison operator ($cmp): $pkg" 1>&2
-           exit 1
-       elif [ -n "$pkg" ]; then
-           read_config_file $pkg $PKG_CONFIG_PATH
-           all_list="$all_list${all_list:+ }$pkg"
-           new_list="$new_list${new_list:+ }$(get_attr_l Requires)"
-           if [ -n "$enable_static" ]; then
-               new_list="$new_list${new_list:+ }$(get_attr_l Requires_private)"
-           fi
-           cleanup_vars_attrs
-       fi
-
-       list="$new_list"
-       new_list=""
-    done
-
-    PKG_LIST=$(list_only_once $all_list)
-}
-
-#
-# Modify -I or -L by PKG_CONFIG_SYSROOT_DIR variable
-#
-sysroot () {
-    _opt="$1"
-    _result=""
-    shift
-
-    while [ $# -gt 0 ]; do
-       if [ $1 = $_opt ]; then
-           _result="$_result${_result:+ }$_opt"
-           shift
-           _result="$_result $PKG_CONFIG_SYSROOT_DIR$1"
-       elif expr "x$1" : "^x$_opt" >/dev/null; then
-           _result="$_result${_result:+ }$_opt$PKG_CONFIG_SYSROOT_DIR$(expr "x$1" : "^x$_opt\(.*\)")"
-       else
-           _result="$_result${_result:+ }$1"
-       fi
-       shift
-    done
-    echo "$_result"
-}
-
-# Show usage
-usage () {
-    cat <<EOF
-Usage: gpgrt-config [--libdir=LIBDIR] [OPTIONS] MODULES
-Options:
-       [--exists]
-       [--modversion]
-       [--libs]
-       [--cflags]
-       [--static]
-       [--variable=VARNAME]
-EOF
-    exit $1
-}
-#### end of functions for this script
-
-myname=${0##*/}
-if [ $myname = gpgrt-config ]; then
-  default_module="gpg-error"
-else
-  default_module=${myname%-config}
-fi
-
-# First stage to process --libdir option
-
-libdir=""
-while test $# -gt 0; do
-    case $1 in
-       --libdir=*)
-           libdir=${1#--libdir=}
-           shift
-           ;;
-       *)
-           break
-           ;;
-    esac
-done
-
-if env | grep '^PKG_CONFIG_LIBDIR=$' >/dev/null 2>&1; then
-  # The variable set as empty, we use PKG_CONFIG_PATH in this case,
-  # ignoring --libdir option
-  if [ -z "$PKG_CONFIG_PATH"  ]; then
-    echo "Please have valid PKG_CONFIG_PATH if PKG_CONFIG_LIBDIR is empty" 1>&2
-    exit 1
-  fi
-else
-  if [ -n "$libdir" ]; then
-    # --libdir option is available, it overrides existing PKG_CONFIG_LIBDIR
-    PKG_CONFIG_LIBDIR=$libdir/pkgconfig
-  fi
-  if [ -z "$PKG_CONFIG_LIBDIR" ]; then
-    if [ -z "$PKG_CONFIG_PATH" ]; then
-      echo "Please use --libdir=LIBDIR option or set PKG_CONFIG_LIBDIR" 1>&2
-      echo "Or set PKG_CONFIG_PATH" 1>&2
-      exit 1
-    fi
-  else
-    # PKG_CONFIG_LIBDIR is available here
-    # Modify PKG_CONFIG_PATH, prepending PKG_CONFIG_LIBDIR
-    PKG_CONFIG_PATH="$PKG_CONFIG_LIBDIR${PKG_CONFIG_PATH:+:}$PKG_CONFIG_PATH"
-  fi
-fi
-# PKG_CONFIG_PATH is ready here
-
-#
-
-if test $# -eq 0; then
-    usage 1 1>&2
-fi
-
-
-# Second stage to do the main functionality
-
-module_list=""
-want_var=""
-want_attr=""
-want_cflags=""
-want_libs=""
-want_exists=""
-enable_static=""
-
-cflags=""
-libs=""
-mtcflags=""
-mtlibs=""
-
-output=""
-
-mt="no"
-
-VAR_list=VAR_pc_sysrootdir
-if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then
-    VAR_pc_sysrootdir="/"
-else
-    VAR_pc_sysrootdir="$PKG_CONFIG_SYSROOT_DIR"
-fi
-
-while test $# -gt 0; do
-    case $1 in
-       #### pkg-config incompatible options: begin
-       --prefix)
-           # In future, use --variable=prefix instead.
-           want_var=prefix
-           ;;
-       --exec-prefix)
-           # In future, use --variable=exec_prefix instead.
-           want_var=exec_prefix
-           ;;
-       --version)
-           # In future, use --modversion instead.
-           want_attr=Version
-           ;;
-       --api-version)
-           # In future, use --variable=api_version instead.
-           want_var=api_version
-           ;;
-       --host)
-           # In future, use --variable=host instead.
-           want_var=host
-           ;;
-       --mt)
-           # In future, use --variable=mtcflags or --variable=mtlibs.
-           mt=yes
-           ;;
-       #### pkg-config incompatible options: end
-       --modversion)
-           want_attr=Version
-           ;;
-       --exists)
-           want_exists=yes
-           ;;
-       --cflags)
-           want_cflags=yes
-           ;;
-       --libs)
-           want_libs=yes
-           ;;
-       --static)
-           enable_static=yes
-           ;;
-       --variable=*)
-           want_var=${1#*=}
-           ;;
-       --help)
-           usage 0
-           ;;
-       --*)
-           usage 1 1>&2
-           ;;
-       *)
-           # Modules
-           module_list="$module_list${module_list:+ }$1"
-           ;;
-    esac
-
-    shift
-done
-
-
-if [ -z "$module_list" ]; then
-    module_list=$default_module
-elif expr "$module_list" : "=\|!=\|<\|>\|<=\|>=" >/dev/null; then
-    module_list="$default_module $module_list"
-fi
-
-all_required_config_files $module_list
-
-for p in $PKG_LIST; do
-    read_config_file $p $PKG_CONFIG_PATH
-    # For want_var or want_attr, get it from the first package
-    if [ -n "$want_var" ]; then
-       output="$(get_var $want_var)"
-       break
-    elif [ -n "$want_attr" ]; then
-       output="$(get_attr $want_attr)"
-       break
-    else
-       cflags="$cflags${cflags:+ }$(get_attr Cflags)"
-       libs="$libs${libs:+ }$(get_attr Libs)"
-       if [ -n "$enable_static" ]; then
-           libs="$libs${libs:+ }$(get_attr Libs_private)"
-       fi
-
-       if [ $p = "gpg-error" ]; then
-           mtcflags="$(get_var mtcflags)"
-           mtlibs="$(get_var mtlibs)"
-       fi
-    fi
-    cleanup_vars_attrs
-done
-
-if [ -z "$want_var" -a -z "$want_attr" ]; then
-    if [ -n "$want_cflags" ]; then
-       output="$output${output:+ }$(sysroot -I $(list_only_once $cflags))"
-       # Backward compatibility to old gpg-error-config
-       if [ $mt = yes -a -n "$mtcflags" ]; then
-           output="$output${output:+ }$mtcflags"
-       fi
-    fi
-    if [ -n "$want_libs" ]; then
-       output="$output${output:+ }$(sysroot -L $(list_only_once_for_libs $libs))"
-       # Backward compatibility to old gpg-error-config
-       if [ $mt = yes -a -n "$mtlibs" ]; then
-           output="$output${output:+ }$mtlibs"
-       fi
-    fi
-fi
-
-if [ -z "$want_exists" ]; then
-  echo "$output"
-fi
-
-exit 0
index 3aaa243..85d21b4 100644 (file)
@@ -1,6 +1,6 @@
 #!@INSTALLSHELLPATH@
 #                          -*- mode: shell-script; sh-shell: "/bin/sh" -*-
-# Copyright (C) 2018, 2021 g10 Code GmbH
+# Copyright (C) 2018, 2021, 2022 g10 Code GmbH
 #
 # This file is free software; as a special exception the author gives
 # unlimited permission to copy and/or distribute it, with or without
@@ -193,9 +193,14 @@ list_only_once () {
     __arg=""
 
     for __arg; do
-       if not_listed_yet $__arg $__result; then
-           __result="$__result${__result:+ }$__arg"
-       fi
+       case "$__arg" in
+           -I/usr/include|-I/include) ;;
+           *)
+                if not_listed_yet $__arg $__result; then
+                   __result="$__result${__result:+ }$__arg"
+               fi
+                ;;
+       esac
     done
 
     echo $__result
@@ -210,6 +215,7 @@ list_only_once_for_libs () {
     # the resulted list is in reverse order
     for __arg; do
        case "$__arg" in
+           -L/usr/lib|-L/usr/lib64|-L/lib|-L/lib64) ;;
            -l*)
                # As-is
                __rev_list="$__arg${__rev_list:+ }$__rev_list"
index 8ca52c6..8df7901 100644 (file)
@@ -234,6 +234,7 @@ typedef enum
   {
     BACKEND_MEM,
     BACKEND_FD,
+    BACKEND_SOCK,
     BACKEND_W32,
     BACKEND_FP,
     BACKEND_USER,
@@ -561,7 +562,7 @@ void _gpgrt_log_flush (void);
 void _gpgrt_logv_printhex (const void *buffer, size_t length,
                            const char *fmt, va_list arg_ptr);
 void _gpgrt_log_printhex (const void *buffer, size_t length,
-                          const char *fmt, ...) GPGRT_ATTR_PRINTF(3,4);;
+                          const char *fmt, ...) GPGRT_ATTR_PRINTF(3,4);
 
 void _gpgrt_logv_clock (const char *fmt, va_list arg_ptr);
 void _gpgrt_log_clock (const char *fmt, ...) GPGRT_ATTR_PRINTF(1,2);
@@ -626,9 +627,9 @@ gpg_err_code_t _gpgrt_make_pipe (int filedes[2], estream_t *r_fp,
                                  int direction, int nonblock);
 
 /* Convenience macros to create a pipe.  */
-#define _gpgrt_create_pipe(a)              _gpgrt_make_pipe ((a),NULL, 0,    0);
-#define _gpgrt_create_inbound_pipe(a,b,c)  _gpgrt_make_pipe ((a), (b), -1, (c));
-#define _gpgrt_create_outbound_pipe(a,b,c) _gpgrt_make_pipe ((a), (b),  1, (c));
+#define _gpgrt_create_pipe(a)              _gpgrt_make_pipe ((a),NULL, 0,    0)
+#define _gpgrt_create_inbound_pipe(a,b,c)  _gpgrt_make_pipe ((a), (b), -1, (c))
+#define _gpgrt_create_outbound_pipe(a,b,c) _gpgrt_make_pipe ((a), (b),  1, (c))
 
 
 /* Fork and exec the program PGMNAME.
@@ -666,14 +667,14 @@ gpg_err_code_t _gpgrt_make_pipe (int filedes[2], estream_t *r_fp,
  *
  * GPGRT_SPAWN_DETACHED
  *        If set the process will be started as a background process.
- *        This flag is only useful under W32 (but not W32CE) systems,
- *        so that no new console is created and pops up a console
- *        window when starting the server.  Does not work on W32CE.
+ *        This flag is only useful under W32 systems, so that no new
+ *        console is created and pops up a console window when starting
+ *        the server.
  *
  * GPGRT_SPAWN_RUN_ASFW
- *        On W32 (but not on W32CE) run AllowSetForegroundWindow for
- *        the child.  Note that due to unknown problems this actually
- *        allows SetForegroundWindow for all children of this process.
+ *        On W32 run AllowSetForegroundWindow for the child.  Note that
+ *        due to unknown problems this actually allows
+ *        SetForegroundWindow for all children of this process.
  */
 gpg_err_code_t
 _gpgrt_spawn_process (const char *pgmname, const char *argv[],
@@ -822,6 +823,8 @@ char *_gpgrt_w32_reg_query_string (const char *root,
                                    const char *name);
 char *_gpgrt_w32_reg_get_string (const char *key);
 
+wchar_t *_gpgrt_fname_to_wchar (const char *fname);
+
 
 #endif /*HAVE_W32_SYSTEM*/
 
index 2d9f7ab..493e3ba 100644 (file)
 #include "gettext.h"
 #include "init.h"
 
-#ifdef HAVE_W32CE_SYSTEM
-# include "mkw32errmap.map.c"  /* Generated map_w32codes () */
-# ifndef TLS_OUT_OF_INDEXES
-#  define TLS_OUT_OF_INDEXES 0xFFFFFFFF
-# endif
-# ifndef __MINGW32CE__
-#  /* Replace the Mingw32CE provided abort function.  */
-#  define abort() do { TerminateProcess (GetCurrentProcess(), 8); } while (0)
-# endif
-#endif
-
 \f
 /* Locale directory support.  */
 
@@ -426,11 +415,7 @@ _gpgrt_free (void *a)
 void
 _gpg_err_set_errno (int err)
 {
-#ifdef HAVE_W32CE_SYSTEM
-  SetLastError (err);
-#else /*!HAVE_W32CE_SYSTEM*/
   errno = err;
-#endif /*!HAVE_W32CE_SYSTEM*/
 }
 
 
@@ -649,54 +634,6 @@ get_tls (void)
 }
 
 
-/* Return the value of the ERRNO variable.  This needs to be a
-   function so that we can have a per-thread ERRNO.  This is used only
-   on WindowsCE because that OS misses an errno.   */
-#ifdef HAVE_W32CE_SYSTEM
-int
-_gpg_w32ce_get_errno (void)
-{
-  return map_w32codes ( GetLastError () );
-}
-#endif /*HAVE_W32CE_SYSTEM*/
-
-
-/* Replacement strerror function for WindowsCE.  */
-#ifdef HAVE_W32CE_SYSTEM
-char *
-_gpg_w32ce_strerror (int err)
-{
-  struct tls_space_s *tls = get_tls ();
-  wchar_t tmpbuf[STRBUFFER_SIZE];
-  int n;
-
-  if (err == -1)
-    err = _gpg_w32ce_get_errno ();
-
-  /* Note: On a German HTC Touch Pro2 device I also tried
-     LOCALE_USER_DEFAULT and LOCALE_SYSTEM_DEFAULT - both returned
-     English messages.  */
-  if (FormatMessageW (FORMAT_MESSAGE_FROM_SYSTEM, NULL, err,
-                      MAKELANGID (LANG_NEUTRAL, SUBLANG_DEFAULT),
-                      tmpbuf, STRBUFFER_SIZE -1,
-                      NULL))
-    {
-      n = WideCharToMultiByte (CP_UTF8, 0, tmpbuf, -1,
-                               tls->strerror_buffer,
-                               sizeof tls->strerror_buffer -1,
-                               NULL, NULL);
-    }
-  else
-    n = -1;
-
-  if (n < 0)
-    snprintf (tls->strerror_buffer, sizeof tls->strerror_buffer -1,
-              "[w32err=%d]", err);
-  return tls->strerror_buffer;
-}
-#endif /*HAVE_W32CE_SYSTEM*/
-
-
 /* Entry point called by the DLL loader.  */
 #ifdef DLL_EXPORT
 int WINAPI
index 90a716a..ea7154d 100644 (file)
@@ -40,20 +40,11 @@ struct domainlist_s
 
 
 
-/* 119 bytes for an error message should be enough.  With this size we
-   can assume that the allocation does not take up more than 128 bytes
-   per thread.  Note that this is only used for W32CE.  */
-#define STRBUFFER_SIZE 120
-
 /* The TLS space definition. */
 struct tls_space_s
 {
   /* Flag used by w32-gettext.  */
   int gt_use_utf8;
-  
-#ifdef HAVE_W32CE_SYSTEM
-  char strerror_buffer[STRBUFFER_SIZE];
-#endif
 };
 
 /* Return the TLS.  */
index e4b7e40..96adce3 100644 (file)
 #endif
 
 
-#ifdef HAVE_W32CE_SYSTEM
-# define isatty(a)  (0)
-#endif
-
 #undef WITH_IPV6
 #if defined (AF_INET6) && defined(PF_INET) \
     && defined (INET6_ADDRSTRLEN) && defined(HAVE_INET_PTON)
@@ -144,9 +140,6 @@ struct fun_cookie_s
   int quiet;
   int want_socket;
   int is_socket;
-#ifdef HAVE_W32CE_SYSTEM
-  int use_writefile;
-#endif
   char name[1];
 };
 
@@ -209,9 +202,6 @@ fun_writer (void *cookie_arg, const void *buffer, size_t size)
 {
   struct fun_cookie_s *cookie = cookie_arg;
 
-  /* FIXME: Use only estream with a callback for socket writing.  This
-     avoids the ugly mix of fd and estream code.  */
-
   /* Note that we always try to reconnect to the socket but print
      error messages only the first time an error occurred.  If
      RUNNING_DETACHED is set we don't fall back to stderr and even do
@@ -415,15 +405,6 @@ fun_writer (void *cookie_arg, const void *buffer, size_t size)
   log_socket = cookie->fd;
   if (cookie->fd != -1)
     {
-#ifdef HAVE_W32CE_SYSTEM
-      if (cookie->use_writefile)
-        {
-          DWORD nwritten;
-
-          WriteFile ((HANDLE)cookie->fd, buffer, size, &nwritten, NULL);
-          return (gpgrt_ssize_t)size; /* Okay.  */
-        }
-#endif
       if (!writen (cookie->fd, buffer, size, cookie->is_socket))
         return (gpgrt_ssize_t)size; /* Okay. */
     }
@@ -469,9 +450,6 @@ set_file_fd (const char *name, int fd, estream_t stream)
 {
   estream_t fp;
   int want_socket = 0;
-#ifdef HAVE_W32CE_SYSTEM
-  int use_writefile = 0;
-#endif
   struct fun_cookie_s *cookie;
 
   /* Close an open log stream.  */
@@ -492,66 +470,41 @@ set_file_fd (const char *name, int fd, estream_t stream)
   /* Figure out what kind of logging we want.  */
   if (name && !strcmp (name, "-"))
     {
-      name = NULL;
-      fd = _gpgrt_fileno (es_stderr);
+      fp = es_stderr;
+      goto leave;
     }
-
-  if (name && !strncmp (name, "tcp://", 6) && name[6])
+  else if (name && !strncmp (name, "tcp://", 6) && name[6])
     want_socket = 1;
 #ifndef HAVE_W32_SYSTEM
   else if (name && !strncmp (name, "socket://", 9))
     want_socket = 2;
 #endif /*HAVE_W32_SYSTEM*/
-#ifdef HAVE_W32CE_SYSTEM
-  else if (name && !strcmp (name, "GPG2:"))
-    {
-      HANDLE hd;
-
-      ActivateDevice (L"Drivers\\"GNUPG_NAME"_Log", 0);
-      /* Ignore a filename and write the debug output to the GPG2:
-         device.  */
-      hd = CreateFile (L"GPG2:", GENERIC_WRITE,
-                       FILE_SHARE_READ | FILE_SHARE_WRITE,
-                       NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
-      fd = (hd == INVALID_HANDLE_VALUE)? -1 : (int)hd;
-      name = NULL;
-      force_prefixes = 1;
-      use_writefile = 1;
-    }
-#endif /*HAVE_W32CE_SYSTEM*/
 
   /* Setup a new stream.  */
 
-  cookie = _gpgrt_malloc (sizeof *cookie + (name? strlen (name):0));
-  if (!cookie)
-    return; /* oops */
-  strcpy (cookie->name, name? name:"");
-  cookie->quiet = 0;
-  cookie->is_socket = 0;
-  cookie->want_socket = want_socket;
-#ifdef HAVE_W32CE_SYSTEM
-  cookie->use_writefile = use_writefile;
-#endif
   if (!name)
-    cookie->fd = fd;
-  else if (want_socket)
-    cookie->fd = -1;
+    fp = _gpgrt_fdopen (fd, "w");
+  else if (!want_socket)
+    fp = _gpgrt_fopen (name, "a");
   else
     {
-      do
-        cookie->fd = open (name, O_WRONLY|O_APPEND|O_CREAT,
-                           (S_IRUSR|S_IRGRP|S_IROTH|S_IWUSR|S_IWGRP|S_IWOTH));
-      while (cookie->fd == -1 && errno == EINTR);
-    }
-  log_socket = cookie->fd;
+      es_cookie_io_functions_t io = { NULL };
 
-  {
-    es_cookie_io_functions_t io = { NULL };
-    io.func_write = fun_writer;
-    io.func_close = fun_closer;
+      cookie = _gpgrt_malloc (sizeof *cookie + (name? strlen (name):0));
+      if (!cookie)
+        return; /* oops */
+      strcpy (cookie->name, name? name:"");
+      cookie->quiet = 0;
+      cookie->is_socket = 0;
+      cookie->want_socket = want_socket;
+      cookie->fd = -1;
+      log_socket = cookie->fd;
 
-    fp = _gpgrt_fopencookie (cookie, "w", io);
-  }
+      io.func_write = fun_writer;
+      io.func_close = fun_closer;
+
+      fp = _gpgrt_fopencookie (cookie, "w", io);
+    }
 
   /* On error default to a stderr based estream.  */
   if (!fp)
@@ -680,13 +633,13 @@ _gpgrt_log_test_fd (int fd)
 }
 
 int
-_gpgrt_log_get_fd ()
+_gpgrt_log_get_fd (void)
 {
   return logstream? _gpgrt_fileno (logstream) : -1;
 }
 
 estream_t
-_gpgrt_log_get_stream ()
+_gpgrt_log_get_stream (void)
 {
   if (!logstream)
     {
index 1d2ea20..e05dafd 100644 (file)
@@ -563,6 +563,13 @@ write_special (const char *fname, int lnr, const char *tag)
       else
         fputs ("ssize_t", stdout);
     }
+  else if (!strcmp (tag, "SOCKET_t"))
+    {
+      if (have_w32_system)
+        fputs ("uintptr_t", stdout);
+      else
+        fputs ("int", stdout);
+    }
   else if (!strcmp (tag, "define:pid_t"))
     {
       if (have_sys_types_h)
@@ -607,11 +614,6 @@ write_special (const char *fname, int lnr, const char *tag)
         {
           include_file (fname, lnr, "w32-add.h", write_line);
         }
-      else if (!strcmp (host_os, "mingw32ce"))
-        {
-          include_file (fname, lnr, "w32-add.h", write_line);
-          include_file (fname, lnr, "w32ce-add.h", write_line);
-        }
     }
   else if (!strcmp (tag, "include:lock-obj"))
     {
diff --git a/src/mkw32errmap.c b/src/mkw32errmap.c
deleted file mode 100644 (file)
index 508a513..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-/* mkw32errmap.c - Generate mapping sources for Windows.
-   Copyright (C) 2010 g10 Code GmbH
-
-   This file is part of libgpg-error.
-
-   libgpg-error is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public License
-   as published by the Free Software Foundation; either version 2.1 of
-   the License, or (at your option) any later version.
-   libgpg-error is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-   You should have received a copy of the GNU Lesser General Public
-   License along with this program; if not, see <https://www.gnu.org/licenses/>.
- */
-
-#ifdef RESOLVE_MACROS
-# include <winerror.h>
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-
-static const char header_gpg_extra_errno_h[] =
-  "/* errno.h - WindowsCE errno.h substitute\n"
-  "   Copyright (C) 2010 g10 Code GmbH\n"
-  "\n"
-  "   This file is free software; as a special exception the author gives\n"
-  "   unlimited permission to copy and/or distribute it, with or without\n"
-  "   modifications, as long as this notice is preserved.\n"
-  "\n"
-  "   This file is distributed in the hope that it will be useful, but\n"
-  "   WITHOUT ANY WARRANTY, to the extent permitted by law; without even\n"
-  "   the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR\n"
-  "   PURPOSE.\n"
-  "\n"
-  "   +++ Do not edit!  File has been generated by mkw32errmap.c +++\n"
-  "\n"
-  "   This file is intended to be used with ming32ce-gcc to implement an\n"
-  "   errno substitute under WindowsCE.  It must be included via gcc's\n"
-  "   -idirafter option.  The gpg-error-config script emits the\n"
-  "   appropriate option snippet.  The actual implementation of the errno\n"
-  "   related functions are part of libgpg-error.  A separate header file\n"
-  "   is required because errno.h is often included before gpg-error.h.\n"
-  " */\n"
-  "\n"
-  "#ifndef _GPG_ERROR_EXTRA_ERRNO_H\n"
-  "#define _GPG_ERROR_EXTRA_ERRNO_H\n"
-  "\n"
-  "/* Due to peculiarities in W32 we can't implement ERRNO as an\n"
-  "   writable lvalue.  This also allows us to easily find places\n"
-  "   where ERRNO is being written to.  See also gpg_err_set_errno.  */\n"
-  "int _gpg_w32ce_get_errno (void);\n"
-  "#define errno (_gpg_w32ce_get_errno ())\n"
-  "\n";
-static const char footer_gpg_extra_errno_h[] =
-  "\n"
-  "#endif /*_GPG_ERROR_EXTRA_ERRNO_H*/\n";
-
-
-/* The table below is used in two modes.  First we run the host
-   preprocessor over it to generate a new include file.  This include
-   file has the same content but the Windows error macros are
-   resolved.  This is so that we don't need to include winerror.h into
-   the generated errno.h.  The mkw32errmap_marker variable is only
-   here to have something to grep for after preprocessing.  */
-static int mkw32errmap_marker;
-struct table_s
-{
-  int *dummy;
-  const char *name;
-  int w32code;
-  int w32code2;
-};
-
-struct table_s table[] = 
-  {
-#ifdef RESOLVE_MACROS
-#define X(a,b,c)                                 \
-    {&mkw32errmap_marker, (a), (b), (c)}
-   X( "EPERM", ERROR_CANNOT_MAKE               , 0 ), 
-   X( "ENOENT",        ERROR_FILE_NOT_FOUND            , ERROR_PATH_NOT_FOUND ),
-   X( "EINTR", ERROR_INVALID_AT_INTERRUPT_TIME , 0 ),
-   X( "EIO",   ERROR_IO_DEVICE                 , 0 ),
-   X( "ENXIO", ERROR_FILE_INVALID              , 0 ),
-   X( "EBADF", ERROR_INVALID_HANDLE            , 0 ),
-   X( "EAGAIN",        ERROR_MORE_DATA                 , WSAEWOULDBLOCK ),
-
-   X( "ENOMEM",        ERROR_NOT_ENOUGH_MEMORY         , 0 ),
-   X( "EACCES",        ERROR_ACCESS_DENIED             , 0 ),
-   X( "EFAULT",        ERROR_PROCESS_ABORTED           , 0 ),
-   X( "EBUSY", ERROR_BUSY                      , 0 ),
-   X( "EEXIST",        ERROR_FILE_EXISTS               , WSAEADDRINUSE  ),
-
-   X( "EXDEV", ERROR_NOT_SAME_DEVICE           , 0 ),
-   X( "ENODEV",        ERROR_BAD_DEVICE                , ERROR_DEV_NOT_EXIST ),
-
-   X( "ENOTDIR",ERROR_DIRECTORY                 , 0 ),
-   X( "EINVAL",        ERROR_INVALID_PARAMETER         , 0 ),
-   X( "ENFILE",        ERROR_NO_MORE_FILES             , 0 ),
-   X( "EMFILE",        ERROR_TOO_MANY_OPEN_FILES       , 0 ),
-   X( "ENOSPC",        ERROR_DISK_FULL                 , 0 ),
-   X( "EROFS", ERROR_WRITE_PROTECT             , 0 ),
-   X( "EPIPE", ERROR_BROKEN_PIPE               , 0 ),
-   X( "ERANGE",        ERROR_ARITHMETIC_OVERFLOW       , 0 ),
-   X( "EDEADLOCK",ERROR_POSSIBLE_DEADLOCK       , 0 ),
-   X( "ENAMETOOLONG", ERROR_FILENAME_EXCED_RANGE, 0 ),
-   X( "ENOLCK",        ERROR_SHARING_BUFFER_EXCEEDED   , 0 ),
-   X( "ENOSYS",        ERROR_NOT_SUPPORTED             , 0 ),
-   X( "ENOTEMPTY",ERROR_DIR_NOT_EMPTY           , 0 ),
-   X( "ESPIPE",  ERROR_SEEK_ON_DEVICE           , 0 ),
-#if 0 /* FIXME: Find appropriate mappings.  */
-   X( "EILSEQ",                ), 
-   X( "EDOM",          ), 
-   X( "EMLINK",                ), 
-   X( "ESRCH",         ), /* No such process */
-   X( "E2BIG",         ), /* Arg list too long */
-   X( "ENOEXEC",       ), /* Exec format error */
-   X( "ECHILD",                ), /* No child processes */
-   X( "EISDIR",                ), /* Is a directory */
-   X( "ENOTTY",                ), /* Inappropriate I/O control operation */
-   X( "EFBIG",         ), /* File too large */
-#endif
-#undef X
-#else /*!RESOLVE_MACROS*/
-# include "mkw32errmap.tab.h"   
-#endif /*!RESOLVE_MACROS*/
-   { NULL, 0 }
-  };
-
-
-
-static int
-compare_table (const void *a_v, const void *b_v)
-{
-  const struct table_s *a = a_v;
-  const struct table_s *b = b_v;
-
-  return (a->w32code - b->w32code);
-}     
-
-
-int
-main (int argc, char **argv)
-{
-  int idx;
-
-  for (idx=0; table[idx].name; idx++)
-    ;
-  qsort (table, idx, sizeof *table, compare_table);
-  
-  if (argc == 2 && !strcmp (argv[1], "--map"))
-    {
-      fputs ("static int\n"
-             "map_w32codes (int err)\n"
-             "{\n"
-             "  switch (err)\n"
-             "    {\n", stdout );
-      for (idx=0; table[idx].name; idx++)
-        if (table[idx].w32code2)
-          printf ("    case %d: return %d;\n",
-                  table[idx].w32code2, table[idx].w32code);
-      fputs ("    default: return err;\n"
-             "    }\n"
-             "}\n", stdout);
-    }
-  else
-    {
-      fputs (header_gpg_extra_errno_h, stdout);
-      for (idx=0; table[idx].name; idx++)
-        printf ("#define %-12s %5d\n", table[idx].name, table[idx].w32code);
-      fputs (footer_gpg_extra_errno_h, stdout);
-    }
-
-  return 0;
-}
index d0fd07a..85ec660 100644 (file)
 #  endif
 # endif /*!USE_POSIX_THREADS_WEAK*/
 # if PTHREAD_IN_USE_DETECTION_HARD
+#  if defined __FreeBSD__ || defined __DragonFly__                 /* FreeBSD */
+
+/* Test using pthread_key_create.  */
+
+static int
+use_pthread_p (void)
+{
+  static int tested;
+  static int result; /* 1: linked with -lpthread, 0: only with libc */
+
+  if (!tested)
+    {
+      pthread_key_t key;
+      int err = pthread_key_create (&key, NULL);
+
+      if (err == ENOSYS)
+        result = 0;
+      else
+        {
+          result = 1;
+          if (err == 0)
+            pthread_key_delete (key);
+        }
+      tested = 1;
+    }
+  return result;
+}
+
+#  else                                                     /* Solaris, HP-UX */
+
+/* Test using pthread_create.  */
+
 /* The function to be executed by a dummy thread.  */
 static void *
 dummy_thread_func (void *arg)
@@ -84,7 +116,7 @@ use_pthread_p (void)
     {
       pthread_t thread;
 
-      if (pthread_create (&thread, NULL, dummy_thread_func, NULL))
+      if (pthread_create (&thread, NULL, dummy_thread_func, NULL) != 0)
         result = 0; /* Thread creation failed.  */
       else
         {
@@ -102,6 +134,8 @@ use_pthread_p (void)
     }
   return result;
 }
+#  endif                                                     /* Solaris, HP-UX */
+
 # endif /*PTHREAD_IN_USE_DETECTION_HARD*/
 #endif /*USE_POSIX_THREADS*/
 
index 7cc3489..407caf6 100644 (file)
 wchar_t *_gpgrt_utf8_to_wchar (const char *string);
 void     _gpgrt_free_wchar (wchar_t *wstring);
 char    *_gpgrt_wchar_to_utf8 (const wchar_t *string, size_t length);
+
+/*-- estream.c --*/
 void     _gpgrt_w32_set_errno (int ec);
+gpg_err_code_t _gpgrt_w32_get_last_err_code (void);
 
 
 #endif /*_GPGRT_PROTOS_H*/
index d33bade..54a6a68 100644 (file)
@@ -23,7 +23,7 @@
 
 #include <config.h>
 
-#if defined(HAVE_W32_SYSTEM) || defined (HAVE_W32CE_SYSTEM)
+#if defined(HAVE_W32_SYSTEM)
 #error This code is only used on POSIX
 #endif
 
index 3ede1f2..90c0538 100644 (file)
@@ -23,7 +23,7 @@
 
 #include <config.h>
 
-#if !defined(HAVE_W32_SYSTEM) || defined (HAVE_W32CE_SYSTEM)
+#if !defined(HAVE_W32_SYSTEM)
 #error This code is only used on W32.
 #endif
 
  * long as the range of the value in the type HANDLE can be
  * represented by an int, it works.
  *
- * FIXME: Breaking ABI for pid_t will be needed when the value won't
- * fit within 32-bit range on 64-bit machine.
+ * FIXME with original MinGW: Breaking ABI for pid_t will be needed
+ * when the value won't fit within 32-bit range on 64-bit machine.
+ *
+ * Note that pid_t is 64-bit integer in sys/types.h with MinGW-w64.
+ * So, no problem with MinGW-w64.
  */
 #define pid_to_handle(a) ((HANDLE)(a))
-#define handle_to_pid(a) ((int)(a))
+#define handle_to_pid(a) ((pid_t)(a))
 
 
 /* Return the maximum number of currently allowed open file
@@ -421,7 +424,7 @@ _gpgrt_spawn_process (const char *pgmname, const char *argv[],
     *r_outfp = NULL;
   if (r_errfp)
     *r_errfp = NULL;
-  *pid = (pid_t)(-1); /* Always required.  */
+  *pid = (pid_t)INVALID_HANDLE_VALUE; /* Always required.  */
 
   if (r_infp)
     {
@@ -650,7 +653,7 @@ _gpgrt_spawn_process_fd (const char *pgmname, const char *argv[],
   HANDLE stdhd[3];
 
   /* Setup return values.  */
-  *pid = (pid_t)(-1);
+  *pid = (pid_t)INVALID_HANDLE_VALUE;
 
   /* Prepare security attributes.  */
   memset (&sec_attr, 0, sizeof sec_attr );
@@ -746,7 +749,7 @@ _gpgrt_wait_processes (const char **pgmnames, pid_t *pids, size_t count,
       if (r_exitcodes)
         r_exitcodes[i] = -1;
 
-      if (pids[i] == (pid_t)(-1))
+      if (pids[i] == (pid_t)INVALID_HANDLE_VALUE)
         return GPG_ERR_INV_VALUE;
 
       procs[i] = pid_to_handle (pids[i]);
@@ -896,7 +899,7 @@ _gpgrt_spawn_process_detached (const char *pgmname, const char *argv[],
 void
 _gpgrt_kill_process (pid_t pid)
 {
-  if (pid != (pid_t) INVALID_HANDLE_VALUE)
+  if (pid != (pid_t)INVALID_HANDLE_VALUE)
     {
       HANDLE process = (HANDLE) pid;
 
index 8f70a66..1251ed6 100644 (file)
 #include "gpgrt-int.h"
 
 
-#ifdef HAVE_W32_SYSTEM
-/* Return true if STRING has any 8 bit character.  */
-static int
-any8bitchar (const char *string)
-{
-  if (string)
-    for ( ; *string; string++)
-      if ((*string & 0x80))
-        return 1;
-  return 0;
-}
-#endif /*HAVE_W32_SYSTEM*/
-
-
 /* Return true if FD is valid.  */
 int
 _gpgrt_fd_valid_p (int fd)
@@ -238,6 +224,94 @@ _gpgrt_setenv (const char *name, const char *value, int overwrite)
 }
 
 
+#ifdef HAVE_W32_SYSTEM
+/* Convert an UTF-8 encode file name to wchar.  If the file name is
+ * close to the limit of MAXPATH the API functions will fail.  The
+ * method to overcome this API limitation is to use a prefix which
+ * bypasses the checking by CreateFile.  This also required to first
+ * convert the name to an absolute file name.  */
+wchar_t *
+_gpgrt_fname_to_wchar (const char *fname)
+{
+  wchar_t *wname;
+  wchar_t *wfullpath = NULL;
+  int success = 0;
+
+  wname = _gpgrt_utf8_to_wchar (fname);
+  if (!wname)
+    return NULL;
+
+  if (!strncmp (fname, "\\\\?\\", 4))
+    success = 1; /* Already translated.  */
+  else if (wcslen (wname) > 230)
+    {
+      int wlen = 1024;
+      int extralen;
+      DWORD res;
+      wchar_t *w;
+
+    try_again:
+      wfullpath = xtrymalloc (wlen * sizeof *wfullpath);
+      if (!wfullpath)
+        goto leave;
+
+      if (*fname == '\\' && fname[1] == '\\' && fname[2])
+        {
+          wcscpy (wfullpath, L"\\\\?\\UNC\\");
+          extralen = 8;
+        }
+      else
+        {
+          wcscpy (wfullpath, L"\\\\?\\");
+          extralen = 4;
+        }
+      res = GetFullPathNameW (wname, wlen-extralen, wfullpath+extralen, NULL);
+      if (!res)
+        {
+          _gpgrt_w32_set_errno (-1);
+          goto leave;
+        }
+      else if (res >= wlen - extralen)
+        {
+          /* Truncated - increase to the desired length.  */
+          if (wlen > 1024)
+            {
+              /* We should never get to here.  */
+              errno = ENAMETOOLONG;
+              goto leave;
+            }
+          /* GetFullPathNameW indicated the required buffer length.  */
+          _gpgrt_free_wchar (wfullpath);
+          wfullpath = NULL;
+          wlen = res + extralen;
+          goto try_again;
+        }
+      _gpgrt_free_wchar (wname);
+      wname = wfullpath;
+      wfullpath = NULL;
+      /* Need to make sure that all slashes are mapped. */
+      for (w = wname; *w; w++)
+        if (*w == L'/')
+          *w = L'\\';
+      success = 1;
+    }
+  else
+    success = 1;
+
+ leave:
+  _gpgrt_free_wchar (wfullpath);
+  if (!success)
+    {
+      _gpgrt_free_wchar (wname);
+      wname = NULL;
+    }
+  return wname;
+}
+
+#endif /*HAVE_W32_SYSTEM*/
+
+
+
 #ifndef HAVE_W32_SYSTEM
 static mode_t
 modestr_to_mode (const char *modestr)
@@ -296,9 +370,10 @@ _gpgrt_mkdir (const char *name, const char *modestr)
   (void)modestr;
 
   /* Note: Fixme: We should set appropriate permissions.  */
-  wname = _gpgrt_utf8_to_wchar (name);
+  wname = _gpgrt_fname_to_wchar (name);
   if (!wname)
     return _gpg_err_code_from_syserror ();
+
   if (!CreateDirectoryW (wname, NULL))
     {
       _gpgrt_w32_set_errno (-1);
@@ -306,8 +381,10 @@ _gpgrt_mkdir (const char *name, const char *modestr)
     }
   else
     ec = 0;
+
   _gpgrt_free_wchar (wname);
   return ec;
+
 #elif MKDIR_TAKES_ONE_ARG
   (void)modestr;
   if (mkdir (name))
@@ -322,9 +399,8 @@ _gpgrt_mkdir (const char *name, const char *modestr)
 
 
 /* A simple wrapper around chdir.  NAME is expected to be utf8
- * encoded.
- * Note that in addition to returning an gpg-error error code ERRNO is
- * also set by this function.  */
+ * encoded.  Note that in addition to returning an gpg-error error
+ * code ERRNO is also set by this function.  */
 gpg_err_code_t
 _gpgrt_chdir (const char *name)
 {
@@ -332,6 +408,8 @@ _gpgrt_chdir (const char *name)
   wchar_t *wname;
   gpg_err_code_t ec;
 
+  /* Note that the \\?\ trick does not work with SetCurrentDirectoryW
+   * Thus we use the plain conversion function.  */
   wname = _gpgrt_utf8_to_wchar (name);
   if (!wname)
     return _gpg_err_code_from_syserror ();
@@ -358,11 +436,7 @@ _gpgrt_chdir (const char *name)
 char *
 _gpgrt_getcwd (void)
 {
-#ifdef HAVE_W32CE_SYSTEM
-
-  return xtrystrdup ("/");
-
-#elif defined(HAVE_W32_SYSTEM)
+#if defined(HAVE_W32_SYSTEM)
   wchar_t wbuffer[MAX_PATH + sizeof(wchar_t)];
   DWORD wlen;
   char *buf, *p;
@@ -376,6 +450,8 @@ _gpgrt_getcwd (void)
     }
   else if (wlen > MAX_PATH)
     {
+      /* FWIW: I tried to use GetFullPathNameW (L".") but found no way
+       * to execute a test program at a too long cwd.  */
       _gpg_err_set_errno (ENAMETOOLONG);
       return NULL;
     }
@@ -417,28 +493,35 @@ _gpgrt_access (const char *fname, int mode)
   gpg_err_code_t ec;
 
 #ifdef HAVE_W32_SYSTEM
-  if (any8bitchar (fname))
-    {
-      wchar_t *wfname;
+  wchar_t *wfname;
+  DWORD attribs;
 
-      wfname = _gpgrt_utf8_to_wchar (fname);
-      if (!wfname)
-        ec = _gpg_err_code_from_syserror ();
-      else
+  wfname = _gpgrt_fname_to_wchar (fname);
+  if (!wfname)
+    return _gpg_err_code_from_syserror ();
+
+  attribs = GetFileAttributesW (wfname);
+  if (attribs == (DWORD)(-1))
+    ec = _gpgrt_w32_get_last_err_code ();
+  else
+    {
+      if ((mode & W_OK) && (attribs & FILE_ATTRIBUTE_READONLY))
         {
-          ec = _waccess (wfname, mode)? _gpg_err_code_from_syserror () : 0;
-          _gpgrt_free_wchar (wfname);
+          _gpg_err_set_errno (EACCES);
+          ec = _gpg_err_code_from_syserror ();
         }
+      else
+        ec = 0;
     }
-  else
-#endif /*HAVE_W32_SYSTEM*/
-    ec = access (fname, mode)? _gpg_err_code_from_syserror () : 0;
+  _gpgrt_free_wchar (wfname);
+#else /* Unix */
+  ec = access (fname, mode)? _gpg_err_code_from_syserror () : 0;
+#endif /* Unix */
 
   return ec;
 }
 
 
-
 /* Get the standard home directory for user NAME. If NAME is NULL the
  * directory for the current user is returned.  Caller must release
  * the returned string.  */
index c2b350d..54177cc 100644 (file)
@@ -39,7 +39,7 @@ cright_blurb (void)
   static const char blurb[] =
     "\n\n"
     "This is Libgpg-error " PACKAGE_VERSION " - A runtime library\n"
-    "Copyright 2001-2021 g10 Code GmbH\n"
+    "Copyright 2001-2022 g10 Code GmbH\n"
     "\n"
     "(" BUILD_REVISION " " BUILD_TIMESTAMP ")\n"
     "\n\n";
index d54210b..d617465 100644 (file)
@@ -40,7 +40,7 @@ BEGIN
             VALUE "FileDescription", "libgpg-error - Common error codes\0"
             VALUE "FileVersion", "@LIBGPG_ERROR_LT_CURRENT@.@LIBGPG_ERROR_LT_AGE@.@LIBGPG_ERROR_LT_REVISION@.@BUILD_REVISION@\0"
             VALUE "InternalName", "libgpg-error\0"
-            VALUE "LegalCopyright", "Copyright © 2021 g10 Code GmbH\0"
+            VALUE "LegalCopyright", "Copyright © 2022 g10 Code GmbH\0"
             VALUE "LegalTrademarks", "\0"
             VALUE "OriginalFilename", "libgpg-error.dll\0"
             VALUE "PrivateBuild", "\0"
index 03a6c45..fdf4805 100644 (file)
@@ -1241,6 +1241,31 @@ gpgrt_absfnameconcat (const char *first, ... )
  * specific function despite that they are technically not needed.  */
 #ifdef HAVE_W32_SYSTEM
 
+void
+gpgrt_free_wchar (wchar_t *wstring)
+{
+  if (wstring)
+    _gpgrt_free_wchar (wstring);
+}
+
+wchar_t *
+gpgrt_fname_to_wchar (const char *fname)
+{
+  return _gpgrt_fname_to_wchar (fname);
+}
+
+wchar_t *
+gpgrt_utf8_to_wchar (const char *string)
+{
+  return _gpgrt_utf8_to_wchar (string);
+}
+
+char *
+gpgrt_wchar_to_utf8 (const wchar_t *string)
+{
+  return _gpgrt_wchar_to_utf8 (string, (size_t)(-1));
+}
+
 char *
 gpgrt_w32_reg_query_string (const char *root, const char *dir, const char *name)
 {
index f9218b5..d0e4516 100644 (file)
@@ -164,7 +164,7 @@ MARK_VISIBLE (gpgrt_setenv)
 MARK_VISIBLE (gpgrt_mkdir)
 MARK_VISIBLE (gpgrt_chdir)
 MARK_VISIBLE (gpgrt_getcwd)
-MARK_VISIBLE (gpgrt_access);
+MARK_VISIBLE (gpgrt_access)
 
 MARK_VISIBLE (gpgrt_b64dec_start)
 MARK_VISIBLE (gpgrt_b64dec_proc)
@@ -215,14 +215,14 @@ MARK_VISIBLE (gpgrt_argparser)
 MARK_VISIBLE (gpgrt_usage)
 MARK_VISIBLE (gpgrt_strusage)
 MARK_VISIBLE (gpgrt_set_strusage)
-MARK_VISIBLE (gpgrt_set_fixed_string_mapper);
-MARK_VISIBLE (gpgrt_set_usage_outfnc);
-MARK_VISIBLE (gpgrt_set_confdir);
+MARK_VISIBLE (gpgrt_set_fixed_string_mapper)
+MARK_VISIBLE (gpgrt_set_usage_outfnc)
+MARK_VISIBLE (gpgrt_set_confdir)
 
-MARK_VISIBLE (gpgrt_cmp_version);
+MARK_VISIBLE (gpgrt_cmp_version)
 
-MARK_VISIBLE (gpgrt_fnameconcat);
-MARK_VISIBLE (gpgrt_absfnameconcat);
+MARK_VISIBLE (gpgrt_fnameconcat)
+MARK_VISIBLE (gpgrt_absfnameconcat)
 
 
 
@@ -411,6 +411,10 @@ MARK_VISIBLE (gpgrt_absfnameconcat);
 #define gpgrt_absfnameconcat        _gpgrt_USE_UNDERSCORED_FUNCTION
 
 /* Windows specific functions.  */
+#define gpgrt_free_wchar            _gpgrt_USE_UNDERSCORED_FUNCTION
+#define gpgrt_utf8_to_wchar         _gpgrt_USE_UNDERSCORED_FUNCTION
+#define gpgrt_wchar_to_utf8         _gpgrt_USE_UNDERSCORED_FUNCTION
+#define gpgrt_fname_to_wchar        _gpgrt_USE_UNDERSCORED_FUNCTION
 #define gpgrt_w32_reg_query_string  _gpgrt_USE_UNDERSCORED_FUNCTION
 
 
index 3428961..74696bd 100644 (file)
@@ -61,6 +61,22 @@ size_t  gpgrt_w32_iconv (gpgrt_w32_iconv_t cd,
 # define iconv(a,b,c,d,e) gpgrt_w32_iconv ((a),(b),(c),(d),(e))
 #endif /*GPGRT_ENABLE_W32_ICONV_MACROS*/
 
+/* Release a wchar_t * buffer.  */
+void gpgrt_free_wchar (wchar_t *wstring);
+
+/* Convert an UTF-8 encoded file name to wchar.
+ * Prepend a '\\?\' prefix if needed.  */
+wchar_t *gpgrt_fname_to_wchar (const char *fname);
+
+/* Convert an UTF8 string to a WCHAR string.  Caller should use
+ * gpgrt_free_wchar to release the result.
+ * Returns NULL on error and sets ERRNO. */
+wchar_t *gpgrt_utf8_to_wchar (const char *string);
+
+/* Convert a WCHAR string to UTF-8.  Caller should use gpgrt_free to
+ * release the result.   Returns NULL on error and sets ERRNO.  */
+char *gpgrt_wchar_to_utf8 (const wchar_t *wstring);
+
 /* Query a string in the registry.  */
 char *gpgrt_w32_reg_query_string (const char *root,
                                   const char *dir,
index 5bb1bcf..06851a5 100644 (file)
 #include <io.h>
 #include <windows.h>
 
+#ifndef EOPNOTSUPP
+# define EOPNOTSUPP ENOSYS
+#endif
+
 /* Enable tracing.  The value is the module name to be printed.  */
 /*#define ENABLE_TRACING "estream" */
 
@@ -164,8 +168,6 @@ reader (void *arg)
       if (nread < 0)
         {
           ctx->error_code = (int) errno;
-          /* NOTE (W32CE): Do not ignore ERROR_BUSY!  Check at
-             least stop_me if that happens.  */
           if (ctx->error_code == ERROR_BROKEN_PIPE)
             {
               ctx->eof = 1;
@@ -264,12 +266,7 @@ create_reader (estream_cookie_w32_pollable_t pcookie)
 
   InitializeCriticalSection (&ctx->mutex);
 
-#ifdef HAVE_W32CE_SYSTEM
-  ctx->thread_hd = CreateThread (&sec_attr, 64 * 1024, reader, ctx,
-                                STACK_SIZE_PARAM_IS_A_RESERVATION, &tid);
-#else
   ctx->thread_hd = CreateThread (&sec_attr, 0, reader, ctx, 0, &tid);
-#endif
 
   if (!ctx->thread_hd)
     {
@@ -310,22 +307,6 @@ destroy_reader (struct reader_context_s *ctx)
     SetEvent (ctx->have_space_ev);
   LeaveCriticalSection (&ctx->mutex);
 
-#ifdef HAVE_W32CE_SYSTEM
-  /* Scenario: We never create a full pipe, but already started
-     reading.  Then we need to unblock the reader in the pipe driver
-     to make our reader thread notice that we want it to go away.  */
-
-  if (ctx->file_hd != INVALID_HANDLE_VALUE)
-    {
-      if (!DeviceIoControl (ctx->file_hd, GPGCEDEV_IOCTL_UNBLOCK,
-                       NULL, 0, NULL, 0, NULL, NULL))
-       {
-         trace (("%p: unblock control call failed: ec=%d",
-                  ctx, (int)GetLastError ()));
-       }
-    }
-#endif
-
   /* XXX is it feasible to unblock the thread?  */
 
   /* After setting this event CTX is void. */
@@ -567,12 +548,7 @@ create_writer (estream_cookie_w32_pollable_t pcookie)
 
   InitializeCriticalSection (&ctx->mutex);
 
-#ifdef HAVE_W32CE_SYSTEM
-  ctx->thread_hd = CreateThread (&sec_attr, 64 * 1024, writer, ctx,
-                                STACK_SIZE_PARAM_IS_A_RESERVATION, &tid);
-#else
   ctx->thread_hd = CreateThread (&sec_attr, 0, writer, ctx, 0, &tid );
-#endif
 
   if (!ctx->thread_hd)
     {
@@ -617,20 +593,6 @@ destroy_writer (struct writer_context_s *ctx)
   /* Give the writer a chance to flush the buffer.  */
   WaitForSingleObject (ctx->is_empty, INFINITE);
 
-#ifdef HAVE_W32CE_SYSTEM
-  /* Scenario: We never create a full pipe, but already started
-     writing more than the pipe buffer.  Then we need to unblock the
-     writer in the pipe driver to make our writer thread notice that
-     we want it to go away.  */
-
-  if (!DeviceIoControl (ctx->file_hd, GPGCEDEV_IOCTL_UNBLOCK,
-                       NULL, 0, NULL, 0, NULL, NULL))
-    {
-      trace (("%p: unblock control call failed: ec=%d",
-              ctx, (int)GetLastError ()));
-    }
-#endif
-
   /* After setting this event CTX is void.  */
   trace (("%p: set close_ev", ctx));
   SetEvent (ctx->close_ev);
index 7c4c9b0..817c1ca 100644 (file)
@@ -1211,7 +1211,7 @@ load_domain (const char *filename)
   char *read_ptr;
 
   {
-    wchar_t *wfilename = _gpgrt_utf8_to_wchar (filename);
+    wchar_t *wfilename = _gpgrt_fname_to_wchar (filename);
 
     if (!wfilename)
       fh = INVALID_HANDLE_VALUE;
@@ -1322,7 +1322,7 @@ load_domain (const char *filename)
 /* Return a malloced wide char string from an UTF-8 encoded input
    string STRING.  Caller must free this value. On failure returns
    NULL.  The result of calling this function with STRING set to NULL
-   is not defined.  If LENGTH is zero and RETLEN NULL the fucntion
+   is not defined.  If LENGTH is zero and RETLEN NULL the function
    assumes that STRING is a nul-terminated string and returns a
    (wchar_t)0-terminated string.  */
 static wchar_t *
index d1d2ca6..b1134a5 100644 (file)
@@ -102,7 +102,6 @@ _gpgrt_w32_reg_query_string (const char *root, const char *dir,
     }
   result[nbytes] = 0; /* Make sure it is really a string.  */
 
-#ifndef HAVE_W32CE_SYSTEM /* (Windows CE has no environment.)  */
   if (type == REG_EXPAND_SZ && strchr (result, '%'))
     {
       char *tmp;
@@ -146,7 +145,21 @@ _gpgrt_w32_reg_query_string (const char *root, const char *dir,
           xfree (tmp);
         }
     }
-#endif
+  else if (type == REG_DWORD && nbytes == sizeof (DWORD))
+    {
+      char *tmp;
+      DWORD dummy;
+
+      memcpy (&dummy, result, nbytes);
+      tmp = _gpgrt_estream_bsprintf ("%u", (unsigned int)dummy);
+      if (tmp)
+        {
+          xfree (result);
+          result = tmp;
+        }
+      else
+        _gpgrt_log_info ("warning: malloc failed while reading registry key\n");
+    }
 
  leave:
   RegCloseKey (key_handle);
diff --git a/src/w32ce-add.h b/src/w32ce-add.h
deleted file mode 100644 (file)
index c6207bb..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-## w32ce-add.h - Snippet to be be included into gpg-error.h.
-## (Comments are indicated by a double hash mark)
-
-/* Substitute for strerror - this one is thread safe.  */
-char *_gpg_w32ce_strerror (int err);
-#ifdef GPG_ERR_ENABLE_ERRNO_MACROS
-# define strerror(a) _gpg_w32ce_strerror (a)
-#endif
index a8327d6..61453ea 100644 (file)
 
 ## Process this file with automake to produce Makefile.in
 
-if HAVE_W32CE_SYSTEM
-extra_includes = -idirafter $(top_builddir)/src/gpg-extra
-else
-extra_includes =
-endif
-
 EXTRA_DIST = t-argparse.conf etc/t-argparse.conf
 
 gpg_error_lib = ../src/libgpg-error.la
@@ -32,12 +26,11 @@ gpg_error_lib = ../src/libgpg-error.la
 TESTS = t-version t-strerror t-syserror t-lock t-printf t-poll t-b64 \
        t-argparse t-logging t-stringutils t-malloc
 
-if HAVE_W32_SYSTEM
-else
+if HAVE_LOCK_OPTIMIZATION
 TESTS += t-lock-single-posix
 endif
 
-AM_CPPFLAGS = -I$(top_builddir)/src $(extra_includes)
+AM_CPPFLAGS = -I$(top_builddir)/src
 
 AM_LDFLAGS = -no-install
 LDADD = $(gpg_error_lib) @LDADD_FOR_TESTS_KLUDGE@
index 7dcc89b..41fb388 100644 (file)
@@ -112,7 +112,7 @@ TESTS = t-version$(EXEEXT) t-strerror$(EXEEXT) t-syserror$(EXEEXT) \
        t-lock$(EXEEXT) t-printf$(EXEEXT) t-poll$(EXEEXT) \
        t-b64$(EXEEXT) t-argparse$(EXEEXT) t-logging$(EXEEXT) \
        t-stringutils$(EXEEXT) t-malloc$(EXEEXT) $(am__EXEEXT_1)
-@HAVE_W32_SYSTEM_FALSE@am__append_1 = t-lock-single-posix
+@HAVE_LOCK_OPTIMIZATION_TRUE@am__append_1 = t-lock-single-posix
 noinst_PROGRAMS = $(am__EXEEXT_2)
 subdir = tests
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -120,14 +120,15 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/autobuild.m4 \
        $(top_srcdir)/m4/ax_cc_for_build.m4 \
        $(top_srcdir)/m4/codeset.m4 $(top_srcdir)/m4/estream.m4 \
        $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gnupg-misc.m4 \
-       $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/lib-ld.m4 \
-       $(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
-       $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/lock.m4 \
-       $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
-       $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
-       $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \
-       $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/m4/readline.m4 \
-       $(top_srcdir)/m4/threadlib.m4 $(top_srcdir)/configure.ac
+       $(top_srcdir)/m4/host-cpu-c-abi.m4 $(top_srcdir)/m4/iconv.m4 \
+       $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+       $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \
+       $(top_srcdir)/m4/lock.m4 $(top_srcdir)/m4/ltoptions.m4 \
+       $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+       $(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
+       $(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+       $(top_srcdir)/m4/readline.m4 $(top_srcdir)/m4/threadlib.m4 \
+       $(top_srcdir)/configure.ac
 am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
        $(ACLOCAL_M4)
 DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \
@@ -136,7 +137,8 @@ mkinstalldirs = $(install_sh) -d
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-@HAVE_W32_SYSTEM_FALSE@am__EXEEXT_1 = t-lock-single-posix$(EXEEXT)
+@HAVE_LOCK_OPTIMIZATION_TRUE@am__EXEEXT_1 =  \
+@HAVE_LOCK_OPTIMIZATION_TRUE@  t-lock-single-posix$(EXEEXT)
 am__EXEEXT_2 = t-version$(EXEEXT) t-strerror$(EXEEXT) \
        t-syserror$(EXEEXT) t-lock$(EXEEXT) t-printf$(EXEEXT) \
        t-poll$(EXEEXT) t-b64$(EXEEXT) t-argparse$(EXEEXT) \
@@ -372,8 +374,8 @@ MAKEINFO = @MAKEINFO@
 MANIFEST_TOOL = @MANIFEST_TOOL@
 MKDIR_P = @MKDIR_P@
 MSGFMT = @MSGFMT@
-MSGFMT_015 = @MSGFMT_015@
 MSGMERGE = @MSGMERGE@
+MSGMERGE_FOR_MSGFMT_OPTION = @MSGMERGE_FOR_MSGFMT_OPTION@
 NM = @NM@
 NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
@@ -454,11 +456,9 @@ target_alias = @target_alias@
 top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
-@HAVE_W32CE_SYSTEM_FALSE@extra_includes = 
-@HAVE_W32CE_SYSTEM_TRUE@extra_includes = -idirafter $(top_builddir)/src/gpg-extra
 EXTRA_DIST = t-argparse.conf etc/t-argparse.conf
 gpg_error_lib = ../src/libgpg-error.la
-AM_CPPFLAGS = -I$(top_builddir)/src $(extra_includes)
+AM_CPPFLAGS = -I$(top_builddir)/src
 AM_LDFLAGS = -no-install
 LDADD = $(gpg_error_lib) @LDADD_FOR_TESTS_KLUDGE@
 noinst_HEADERS = t-common.h
index ec79416..11e6d51 100644 (file)
@@ -177,28 +177,45 @@ static void
 create_pipe (estream_t *r_in, estream_t *r_out)
 {
   gpg_error_t err;
+#ifdef _WIN32
+  HANDLE pipe_r;
+  HANDLE pipe_w;
+#else
   int filedes[2];
+#endif
+  es_syshd_t syshd[2];
 
 #ifdef _WIN32
-  if (_pipe (filedes, 512, 0) == -1)
+  if (CreatePipe (&pipe_r, &pipe_w, NULL, 512) == 0)
+    die ("error creating a pipe: rc=%d\n", (int)GetLastError ());
+
+  syshd[0].type = syshd[1].type = ES_SYSHD_HANDLE;
+  syshd[0].u.handle = pipe_r;
+  syshd[1].u.handle = pipe_w;
+
+  show ("created pipe [%p, %p]\n", pipe_r, pipe_w);
 #else
   if (pipe (filedes) == -1)
-#endif
     {
       err = gpg_error_from_syserror ();
       die ("error creating a pipe: %s\n", gpg_strerror (err));
     }
 
+  syshd[0].type = syshd[1].type = ES_SYSHD_FD;
+  syshd[0].u.fd = filedes[0];
+  syshd[1].u.fd = filedes[1];
+
   show ("created pipe [%d, %d]\n", filedes[0], filedes[1]);
+#endif
 
-  *r_in = es_fdopen (filedes[0], "r,pollable");
+  *r_in = es_sysopen (&syshd[0], "r,pollable");
   if (!*r_in)
     {
       err = gpg_error_from_syserror ();
       die ("error creating a stream for a pipe: %s\n", gpg_strerror (err));
     }
 
-  *r_out = es_fdopen (filedes[1], "w,pollable");
+  *r_out = es_sysopen (&syshd[1], "w,pollable");
   if (!*r_out)
     {
       err = gpg_error_from_syserror ();