summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDariusz Michaluk <d.michaluk@samsung.com>2023-01-17 10:11:52 +0100
committerDariusz Michaluk <d.michaluk@samsung.com>2023-01-17 10:44:29 +0100
commit2cb185d6dc94e99319b5b4491764c24860b166b5 (patch)
tree5ac3eff1005e6a154869410e1bb1557e74f5dc1f
parentb665fafd35af4421ac43c723ce54aeb7efcd83b7 (diff)
parent271dd294788018e36d221dd3f0d5114913117dc2 (diff)
downloadlibgpg-error-2cb185d6dc94e99319b5b4491764c24860b166b5.tar.gz
libgpg-error-2cb185d6dc94e99319b5b4491764c24860b166b5.tar.bz2
libgpg-error-2cb185d6dc94e99319b5b4491764c24860b166b5.zip
Change-Id: I0940ba0e798dda602b80991153af292da3bfb3b7
-rw-r--r--AUTHORS3
-rw-r--r--ChangeLog357
-rw-r--r--Makefile.am52
-rw-r--r--Makefile.in72
-rw-r--r--NEWS76
-rw-r--r--VERSION2
-rw-r--r--aclocal.m41
-rwxr-xr-xautogen.sh20
-rwxr-xr-xbuild-aux/config.guess1440
-rwxr-xr-xbuild-aux/config.rpath2
-rwxr-xr-xbuild-aux/config.sub708
-rw-r--r--config.h.in12
-rwxr-xr-xconfigure1304
-rw-r--r--configure.ac86
-rw-r--r--contrib/ChangeLog-201125
-rw-r--r--doc/Makefile.am6
-rw-r--r--doc/Makefile.in22
-rw-r--r--doc/gpgrt.info129
-rw-r--r--doc/gpgrt.texi91
-rw-r--r--doc/stamp-vti8
-rw-r--r--doc/version.texi8
-rw-r--r--doc/yat2m.c5
-rw-r--r--lang/Makefile.in19
-rw-r--r--lang/cl/Makefile.in19
-rw-r--r--lang/cl/gpg-error.asd2
-rw-r--r--libgpg-error.spec2
-rw-r--r--m4/Makefile.am3
-rw-r--r--m4/Makefile.in31
-rw-r--r--m4/codeset.m419
-rw-r--r--m4/gettext.m4107
-rw-r--r--m4/glibc2.m430
-rw-r--r--m4/glibc21.m430
-rw-r--r--m4/host-cpu-c-abi.m4675
-rw-r--r--m4/iconv.m467
-rw-r--r--m4/intdiv0.m470
-rw-r--r--m4/intmax.m430
-rw-r--r--m4/inttypes-h.m425
-rw-r--r--m4/inttypes-pri.m430
-rw-r--r--m4/inttypes.m425
-rw-r--r--m4/inttypes_h.m426
-rw-r--r--m4/isc-posix.m424
-rw-r--r--m4/lcmessage.m430
-rw-r--r--m4/lib-ld.m4163
-rw-r--r--m4/lib-link.m4184
-rw-r--r--m4/lib-prefix.m4241
-rw-r--r--m4/longdouble.m431
-rw-r--r--m4/longlong.m423
-rw-r--r--m4/nls.m414
-rw-r--r--m4/po.m467
-rw-r--r--m4/printf-posix.m444
-rw-r--r--m4/progtest.m420
-rw-r--r--m4/signed.m417
-rw-r--r--m4/size_max.m460
-rw-r--r--m4/stdint_h.m426
-rw-r--r--m4/uintmax_t.m430
-rw-r--r--m4/ulonglong.m423
-rw-r--r--m4/visibility.m452
-rw-r--r--m4/wchar_t.m420
-rw-r--r--m4/wint_t.m420
-rw-r--r--m4/xsize.m413
-rw-r--r--packaging/libgpg-error.spec7
-rw-r--r--po/LINGUAS1
-rw-r--r--po/Makefile.in.in149
-rw-r--r--po/Makevars5
-rw-r--r--po/Rules-quot8
-rw-r--r--po/cs.po10
-rw-r--r--po/da.po10
-rw-r--r--po/de.po10
-rw-r--r--po/eo.po10
-rw-r--r--po/es.po10
-rw-r--r--po/fr.po10
-rw-r--r--po/hu.po10
-rw-r--r--po/insert-header.sin5
-rw-r--r--po/it.po10
-rw-r--r--po/ja.po10
-rw-r--r--po/libgpg-error.pot12
-rw-r--r--po/nl.po10
-rw-r--r--po/pl.po10
-rw-r--r--po/pt.po10
-rw-r--r--po/remove-potcdate.sin8
-rw-r--r--po/ro.po10
-rw-r--r--po/ru.po10
-rw-r--r--po/sr.po10
-rw-r--r--po/sv.po10
-rw-r--r--po/tr.gmobin0 -> 34653 bytes
-rw-r--r--po/tr.po1985
-rw-r--r--po/uk.po10
-rw-r--r--po/vi.po10
-rw-r--r--po/zh_CN.po10
-rw-r--r--po/zh_TW.po10
-rwxr-xr-xpotomo64
-rw-r--r--src/Makefile.am79
-rw-r--r--src/Makefile.in166
-rw-r--r--src/argparse.c13
-rw-r--r--src/estream-printf.c12
-rw-r--r--src/estream.c480
-rwxr-xr-xsrc/gpg-error-config-test.sh98
-rw-r--r--src/gpg-error-config-test.sh.in4
-rw-r--r--src/gpg-error.def.in9
-rw-r--r--src/gpg-error.h.in5
-rw-r--r--src/gpg-error.m47
-rwxr-xr-xsrc/gpgrt-config647
-rw-r--r--src/gpgrt-config.in14
-rw-r--r--src/gpgrt-int.h23
-rw-r--r--src/init.c63
-rw-r--r--src/init.h9
-rw-r--r--src/logging.c93
-rw-r--r--src/mkheader.c12
-rw-r--r--src/mkw32errmap.c178
-rw-r--r--src/posix-lock.c36
-rw-r--r--src/protos.h3
-rw-r--r--src/spawn-posix.c2
-rw-r--r--src/spawn-w32.c19
-rw-r--r--src/sysutils.c155
-rw-r--r--src/version.c2
-rw-r--r--src/versioninfo.rc.in2
-rw-r--r--src/visibility.c25
-rw-r--r--src/visibility.h18
-rw-r--r--src/w32-add.h16
-rw-r--r--src/w32-estream.c46
-rw-r--r--src/w32-gettext.c4
-rw-r--r--src/w32-reg.c17
-rw-r--r--src/w32ce-add.h8
-rw-r--r--tests/Makefile.am11
-rw-r--r--tests/Makefile.in28
-rw-r--r--tests/t-poll.c25
126 files changed, 7060 insertions, 4454 deletions
diff --git a/AUTHORS b/AUTHORS
index 71dd5d3..6aba44a 100644
--- 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>
diff --git a/ChangeLog b/ChangeLog
index 782dd6a..b573a46 100644
--- 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.
diff --git a/Makefile.am b/Makefile.am
index b67a276..8897f17 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -17,14 +17,14 @@
# 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 ' */' ;\
diff --git a/Makefile.in b/Makefile.in
index 6eb3f31..f6df404 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -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
--- 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
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.43
+1.46
diff --git a/aclocal.m4 b/aclocal.m4
index 86f4cbe..8d2cbf8 100644
--- a/aclocal.m4
+++ b/aclocal.m4
@@ -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])
diff --git a/autogen.sh b/autogen.sh
index 9b36158..9ea0612 100755
--- a/autogen.sh
+++ b/autogen.sh
@@ -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"
diff --git a/build-aux/config.guess b/build-aux/config.guess
index b33c9e8..7f76b62 100755
--- a/build-aux/config.guess
+++ b/build-aux/config.guess
@@ -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
diff --git a/build-aux/config.rpath b/build-aux/config.rpath
index b625621..24be79c 100755
--- a/build-aux/config.rpath
+++ b/build-aux/config.rpath
@@ -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
#
diff --git a/build-aux/config.sub b/build-aux/config.sub
index b51fb8c..dba16e8 100755
--- a/build-aux/config.sub
+++ b/build-aux/config.sub
@@ -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:
diff --git a/config.h.in b/config.h.in
index 35725f4..7f2c728 100644
--- a/config.h.in
+++ b/config.h.in
@@ -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
@@ -191,9 +194,6 @@
/* 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
@@ -259,9 +259,6 @@
/* 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
@@ -274,9 +271,6 @@
/* 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
diff --git a/configure b/configure
index f2908f5..bd218bd 100755
--- 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
;;
@@ -13074,6 +13074,22 @@ fi
+# 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
@@ -13208,12 +13224,7 @@ fi
- 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 :
@@ -13545,67 +13623,415 @@ fi
- 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=
@@ -13707,45 +14141,51 @@ fi
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 $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
@@ -13772,14 +14212,14 @@ fi
| 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=
@@ -13890,6 +14331,13 @@ fi
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
@@ -13935,12 +14383,14 @@ fi
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;;
@@ -13959,14 +14409,14 @@ fi
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=
@@ -13980,14 +14430,14 @@ fi
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
@@ -14019,7 +14469,14 @@ 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=
@@ -14612,45 +15080,51 @@ fi
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
@@ -14677,14 +15151,14 @@ fi
| 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=
@@ -14795,6 +15270,13 @@ fi
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
@@ -14840,12 +15322,14 @@ fi
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;;
@@ -14864,14 +15348,14 @@ fi
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=
@@ -14885,14 +15369,14 @@ fi
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
@@ -14924,7 +15408,14 @@ 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
diff --git a/configure.ac b/configure.ac
index e0d4c42..5bbec88 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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
index 87c1aa4..0000000
--- a/contrib/ChangeLog-2011
+++ /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.
diff --git a/doc/Makefile.am b/doc/Makefile.am
index 46b4545..db34ba9 100644
--- a/doc/Makefile.am
+++ b/doc/Makefile.am
@@ -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)
diff --git a/doc/Makefile.in b/doc/Makefile.in
index 96563d0..2d5029f 100644
--- a/doc/Makefile.in
+++ b/doc/Makefile.in
@@ -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)
diff --git a/doc/gpgrt.info b/doc/gpgrt.info
index 0e7dfbe..caa97dd 100644
--- a/doc/gpgrt.info
+++ b/doc/gpgrt.info
@@ -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

@@ -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'.

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

-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)

Tag Table:
-Node: Top729
-Node: Introduction2103
-Node: Getting Started2625
-Node: Features2982
-Node: Overview3111
-Node: Preparation3307
-Node: Header4108
-Node: Building sources5193
-Node: Building sources using Automake6924
-Node: Initializing the library8861
-Node: Multi-Threading10049
-Node: Generalities10191
-Node: Tools10378
-Node: gpgrt-config10544
-Node: Library Copying12111
-Node: Copying40212
-Node: Concept Index59382
-Node: Function and Data Index59679
+Node: Top733
+Node: Introduction2111
+Node: Getting Started2633
+Node: Features2990
+Node: Overview3119
+Node: Preparation3315
+Node: Header4116
+Node: Building sources5195
+Node: Building sources using Automake7393
+Node: Initializing the library8695
+Node: Multi-Threading9883
+Node: Generalities10025
+Node: Tools10212
+Node: gpg-error-config10382
+Node: Library Copying12035
+Node: Copying40136
+Node: Concept Index59306
+Node: Function and Data Index59603

End Tag Table
diff --git a/doc/gpgrt.texi b/doc/gpgrt.texi
index d4a3b41..2478366 100644
--- a/doc/gpgrt.texi
+++ b/doc/gpgrt.texi
@@ -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
diff --git a/doc/stamp-vti b/doc/stamp-vti
index e50742e..ba8846e 100644
--- a/doc/stamp-vti
+++ b/doc/stamp-vti
@@ -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
diff --git a/doc/version.texi b/doc/version.texi
index e50742e..ba8846e 100644
--- a/doc/version.texi
+++ b/doc/version.texi
@@ -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
diff --git a/doc/yat2m.c b/doc/yat2m.c
index 10e03ec..c2806e3 100644
--- a/doc/yat2m.c
+++ b/doc/yat2m.c
@@ -114,7 +114,7 @@
#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));
diff --git a/lang/Makefile.in b/lang/Makefile.in
index 76f5df3..baaa8fe 100644
--- a/lang/Makefile.in
+++ b/lang/Makefile.in
@@ -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@
diff --git a/lang/cl/Makefile.in b/lang/cl/Makefile.in
index f2736c0..6e34228 100644
--- a/lang/cl/Makefile.in
+++ b/lang/cl/Makefile.in
@@ -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@
diff --git a/lang/cl/gpg-error.asd b/lang/cl/gpg-error.asd
index d5ccb1c..07a00fd 100644
--- a/lang/cl/gpg-error.asd
+++ b/lang/cl/gpg-error.asd
@@ -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")
diff --git a/libgpg-error.spec b/libgpg-error.spec
index 3ce4011..502ec61 100644
--- a/libgpg-error.spec
+++ b/libgpg-error.spec
@@ -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
diff --git a/m4/Makefile.am b/m4/Makefile.am
index a82737d..b4579d9 100644
--- a/m4/Makefile.am
+++ b/m4/Makefile.am
@@ -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
diff --git a/m4/Makefile.in b/m4/Makefile.in
index 8c0d912..ed2023a 100644
--- a/m4/Makefile.in
+++ b/m4/Makefile.in
@@ -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:
diff --git a/m4/codeset.m4 b/m4/codeset.m4
index a6e67ec..629f4ee 100644
--- a/m4/codeset.m4
+++ b/m4/codeset.m4
@@ -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
])
diff --git a/m4/gettext.m4 b/m4/gettext.m4
index be247bf..c7f5460 100644
--- a/m4/gettext.m4
+++ b/m4/gettext.m4
@@ -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
index e8f5bfe..0000000
--- a/m4/glibc2.m4
+++ /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
index d95fd98..0000000
--- a/m4/glibc21.m4
+++ /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
index 0000000..64e28b1
--- /dev/null
+++ b/m4/host-cpu-c-abi.m4
@@ -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"
+])
diff --git a/m4/iconv.m4 b/m4/iconv.m4
index a285e9d..d0e61de 100644
--- a/m4/iconv.m4
+++ b/m4/iconv.m4
@@ -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
index b8d7817..0000000
--- a/m4/intdiv0.m4
+++ /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
index d99c999..0000000
--- a/m4/intmax.m4
+++ /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
index d7ec94c..0000000
--- a/m4/inttypes-h.m4
+++ /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
index ef00da7..0000000
--- a/m4/inttypes-pri.m4
+++ /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
index 779bcea..0000000
--- a/m4/inttypes.m4
+++ /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
index a5d075d..0000000
--- a/m4/inttypes_h.m4
+++ /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
index 74dc8f2..0000000
--- a/m4/isc-posix.m4
+++ /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
index 19aa77e..0000000
--- a/m4/lcmessage.m4
+++ /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
-])
diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4
index ddc569f..076358d 100644
--- a/m4/lib-ld.m4
+++ b/m4/lib-ld.m4
@@ -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
])
diff --git a/m4/lib-link.m4 b/m4/lib-link.m4
index 3522d99..787efab 100644
--- a/m4/lib-link.m4
+++ b/m4/lib-link.m4
@@ -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= ;;
diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4
index 31f49e4..3c94db0 100644
--- a/m4/lib-prefix.m4
+++ b/m4/lib-prefix.m4
@@ -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
index 25590f4..0000000
--- a/m4/longdouble.m4
+++ /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
index 7b399e0..0000000
--- a/m4/longlong.m4
+++ /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
-])
diff --git a/m4/nls.m4 b/m4/nls.m4
index 53cdc8b..f4f6b80 100644
--- 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:
diff --git a/m4/po.m4 b/m4/po.m4
index 84659ea..66bea3e 100644
--- 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
index af10170..0000000
--- a/m4/printf-posix.m4
+++ /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
-])
diff --git a/m4/progtest.m4 b/m4/progtest.m4
index b499f79..9e8823c 100644
--- a/m4/progtest.m4
+++ b/m4/progtest.m4
@@ -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
index 048f593..0000000
--- a/m4/signed.m4
+++ /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
index 029e471..0000000
--- a/m4/size_max.m4
+++ /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
index 3355f35..0000000
--- a/m4/stdint_h.m4
+++ /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
index bf83ed7..0000000
--- a/m4/uintmax_t.m4
+++ /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
index dee10cc..0000000
--- a/m4/ulonglong.m4
+++ /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
index 2ff6330..0000000
--- a/m4/visibility.m4
+++ /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
index cde2129..0000000
--- a/m4/wchar_t.m4
+++ /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
index b8fff9c..0000000
--- a/m4/wint_t.m4
+++ /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
index 85bb721..0000000
--- a/m4/xsize.m4
+++ /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)
-])
diff --git a/packaging/libgpg-error.spec b/packaging/libgpg-error.spec
index 8765c36..fbede3d 100644
--- a/packaging/libgpg-error.spec
+++ b/packaging/libgpg-error.spec
@@ -1,5 +1,5 @@
Name: libgpg-error
-Version: 1.43
+Version: 1.46
Release: 0
License: LGPL-2.1+
Summary: Library That Defines Common Error Values for All GnuPG Components
@@ -33,7 +33,7 @@ cp %{SOURCE1001} .
%build
export CPPFLAGS+=" -P"
autoreconf -fiv
-%configure --disable-static --with-pic
+%configure --disable-static --with-pic --disable-doc
make %{?_smp_mflags}
%install
@@ -64,8 +64,5 @@ rm -r %{buildroot}%{_datadir}/common-lisp
%{_bindir}/*
%{_libdir}/libgpg-error*.so
%{_libdir}/pkgconfig/gpg-error.pc
-%{_infodir}/*
-%{_datarootdir}/libgpg-error/*
-%{_mandir}/man1/*
%changelog
diff --git a/po/LINGUAS b/po/LINGUAS
index 33a80b7..76f0a4e 100644
--- a/po/LINGUAS
+++ b/po/LINGUAS
@@ -15,6 +15,7 @@ ro
ru
sr
sv
+tr
uk
vi
zh_CN
diff --git a/po/Makefile.in.in b/po/Makefile.in.in
index 65184f6..6b25f0d 100644
--- a/po/Makefile.in.in
+++ b/po/Makefile.in.in
@@ -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 \
diff --git a/po/Makevars b/po/Makevars
index 7585237..979d184 100644
--- a/po/Makevars
+++ b/po/Makevars
@@ -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 =
diff --git a/po/Rules-quot b/po/Rules-quot
index 9dc9630..18c024b 100644
--- a/po/Rules-quot
+++ b/po/Rules-quot
@@ -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/@.*//'`; \
diff --git a/po/cs.po b/po/cs.po
index 6a4232e..55b040d 100644
--- 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"
diff --git a/po/da.po b/po/da.po
index 9aaa164..6e13e72 100644
--- 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 ""
diff --git a/po/de.po b/po/de.po
index 773e2f1..2f1fe73 100644
--- 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 ""
diff --git a/po/eo.po b/po/eo.po
index 12a0110..beca913 100644
--- 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 ""
diff --git a/po/es.po b/po/es.po
index 9e871f8..ab24750 100644
--- 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 ""
diff --git a/po/fr.po b/po/fr.po
index 1f38786..20f6dc1 100644
--- 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 ""
diff --git a/po/hu.po b/po/hu.po
index 76126a4..54eb68e 100644
--- 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 ""
diff --git a/po/insert-header.sin b/po/insert-header.sin
index b26de01..ceeebb9 100644
--- a/po/insert-header.sin
+++ b/po/insert-header.sin
@@ -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
diff --git a/po/it.po b/po/it.po
index 34077dc..10e3f84 100644
--- 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 ""
diff --git a/po/ja.po b/po/ja.po
index 2dbac29..ea583fc 100644
--- 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"
diff --git a/po/libgpg-error.pot b/po/libgpg-error.pot
index 52a1e39..632d276 100644
--- a/po/libgpg-error.pot
+++ b/po/libgpg-error.pot
@@ -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 ""
diff --git a/po/nl.po b/po/nl.po
index 5b8546b..4a23640 100644
--- 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 ""
diff --git a/po/pl.po b/po/pl.po
index a7ce38a..865de70 100644
--- 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 ""
diff --git a/po/pt.po b/po/pt.po
index cc09dc7..dd04de9 100644
--- 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 ""
diff --git a/po/remove-potcdate.sin b/po/remove-potcdate.sin
index 2436c49..8c70dfb 100644
--- a/po/remove-potcdate.sin
+++ b/po/remove-potcdate.sin
@@ -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: .*"$/{
diff --git a/po/ro.po b/po/ro.po
index 2dc6c9d..2c7a129 100644
--- 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 ""
diff --git a/po/ru.po b/po/ru.po
index 23f404b..ed231dc 100644
--- 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 ""
diff --git a/po/sr.po b/po/sr.po
index c25d23a..f2f7be2 100644
--- 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 ""
diff --git a/po/sv.po b/po/sv.po
index 95b35a5..0429e59 100644
--- 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
index 0000000..f735c9d
--- /dev/null
+++ b/po/tr.gmo
Binary files differ
diff --git a/po/tr.po b/po/tr.po
new file mode 100644
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"
diff --git a/po/uk.po b/po/uk.po
index 208a13d..3a70a7c 100644
--- 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 ""
diff --git a/po/vi.po b/po/vi.po
index 0d5401d..8317887 100644
--- 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 ""
diff --git a/po/zh_CN.po b/po/zh_CN.po
index 590a4a4..0290fe9 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -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"
diff --git a/po/zh_TW.po b/po/zh_TW.po
index 8c2075b..901309c 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -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
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
diff --git a/src/Makefile.am b/src/Makefile.am
index fc3acc3..c61adde 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -24,14 +24,6 @@
# 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
diff --git a/src/Makefile.in b/src/Makefile.in
index 8a6f1b4..343c309 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -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:
diff --git a/src/argparse.c b/src/argparse.c
index a144881..ef0c161 100644
--- a/src/argparse.c
+++ b/src/argparse.c
@@ -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;
diff --git a/src/estream-printf.c b/src/estream-printf.c
index fe25657..831af55 100644
--- a/src/estream-printf.c
+++ b/src/estream-printf.c
@@ -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
@@ -116,11 +110,7 @@
#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. */
diff --git a/src/estream.c b/src/estream.c
index f75e052..17d599f 100644
--- a/src/estream.c
+++ b/src/estream.c
@@ -62,14 +62,8 @@
#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
@@ -92,6 +86,10 @@
#else
# ifdef HAVE_POLL_H
# include <poll.h>
+# else
+# ifdef HAVE_SYS_SELECT_H
+# include <sys/select.h>
+# endif
# endif
#endif
@@ -145,14 +143,7 @@
#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 =
};
+
+#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,
+ };
/*
* 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*/
+
+
/* 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)
#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
index 081358c..0000000
--- a/src/gpg-error-config-test.sh
+++ /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
diff --git a/src/gpg-error-config-test.sh.in b/src/gpg-error-config-test.sh.in
index b888aa2..cd4a7e3 100644
--- a/src/gpg-error-config-test.sh.in
+++ b/src/gpg-error-config-test.sh.in
@@ -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="."
diff --git a/src/gpg-error.def.in b/src/gpg-error.def.in
index 769be1b..28e9ef3 100644
--- a/src/gpg-error.def.in
+++ b/src/gpg-error.def.in
@@ -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.
diff --git a/src/gpg-error.h.in b/src/gpg-error.h.in
index d2c3b8d..ccacf35 100644
--- a/src/gpg-error.h.in
+++ b/src/gpg-error.h.in
@@ -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. */
diff --git a/src/gpg-error.m4 b/src/gpg-error.m4
index 56a5d07..a975e53 100644
--- a/src/gpg-error.m4
+++ b/src/gpg-error.m4
@@ -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
index 36604d1..0000000
--- a/src/gpgrt-config
+++ /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
diff --git a/src/gpgrt-config.in b/src/gpgrt-config.in
index 3aaa243..85d21b4 100644
--- a/src/gpgrt-config.in
+++ b/src/gpgrt-config.in
@@ -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"
diff --git a/src/gpgrt-int.h b/src/gpgrt-int.h
index 8ca52c6..8df7901 100644
--- a/src/gpgrt-int.h
+++ b/src/gpgrt-int.h
@@ -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*/
diff --git a/src/init.c b/src/init.c
index 2d9f7ab..493e3ba 100644
--- a/src/init.c
+++ b/src/init.c
@@ -30,17 +30,6 @@
#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
-
/* 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
diff --git a/src/init.h b/src/init.h
index 90a716a..ea7154d 100644
--- a/src/init.h
+++ b/src/init.h
@@ -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. */
diff --git a/src/logging.c b/src/logging.c
index e4b7e40..96adce3 100644
--- a/src/logging.c
+++ b/src/logging.c
@@ -64,10 +64,6 @@
#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)
{
diff --git a/src/mkheader.c b/src/mkheader.c
index 1d2ea20..e05dafd 100644
--- a/src/mkheader.c
+++ b/src/mkheader.c
@@ -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
index 508a513..0000000
--- a/src/mkw32errmap.c
+++ /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;
-}
diff --git a/src/posix-lock.c b/src/posix-lock.c
index d0fd07a..85ec660 100644
--- a/src/posix-lock.c
+++ b/src/posix-lock.c
@@ -67,6 +67,38 @@
# 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*/
diff --git a/src/protos.h b/src/protos.h
index 7cc3489..407caf6 100644
--- a/src/protos.h
+++ b/src/protos.h
@@ -25,7 +25,10 @@
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*/
diff --git a/src/spawn-posix.c b/src/spawn-posix.c
index d33bade..54a6a68 100644
--- a/src/spawn-posix.c
+++ b/src/spawn-posix.c
@@ -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
diff --git a/src/spawn-w32.c b/src/spawn-w32.c
index 3ede1f2..90c0538 100644
--- a/src/spawn-w32.c
+++ b/src/spawn-w32.c
@@ -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
@@ -74,11 +74,14 @@
* 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;
diff --git a/src/sysutils.c b/src/sysutils.c
index 8f70a66..1251ed6 100644
--- a/src/sysutils.c
+++ b/src/sysutils.c
@@ -39,20 +39,6 @@
#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. */
diff --git a/src/version.c b/src/version.c
index c2b350d..54177cc 100644
--- a/src/version.c
+++ b/src/version.c
@@ -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";
diff --git a/src/versioninfo.rc.in b/src/versioninfo.rc.in
index d54210b..d617465 100644
--- a/src/versioninfo.rc.in
+++ b/src/versioninfo.rc.in
@@ -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"
diff --git a/src/visibility.c b/src/visibility.c
index 03a6c45..fdf4805 100644
--- a/src/visibility.c
+++ b/src/visibility.c
@@ -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)
{
diff --git a/src/visibility.h b/src/visibility.h
index f9218b5..d0e4516 100644
--- a/src/visibility.h
+++ b/src/visibility.h
@@ -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
diff --git a/src/w32-add.h b/src/w32-add.h
index 3428961..74696bd 100644
--- a/src/w32-add.h
+++ b/src/w32-add.h
@@ -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,
diff --git a/src/w32-estream.c b/src/w32-estream.c
index 5bb1bcf..06851a5 100644
--- a/src/w32-estream.c
+++ b/src/w32-estream.c
@@ -39,6 +39,10 @@
#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);
diff --git a/src/w32-gettext.c b/src/w32-gettext.c
index 7c4c9b0..817c1ca 100644
--- a/src/w32-gettext.c
+++ b/src/w32-gettext.c
@@ -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 *
diff --git a/src/w32-reg.c b/src/w32-reg.c
index d1d2ca6..b1134a5 100644
--- a/src/w32-reg.c
+++ b/src/w32-reg.c
@@ -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
index c6207bb..0000000
--- a/src/w32ce-add.h
+++ /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
diff --git a/tests/Makefile.am b/tests/Makefile.am
index a8327d6..61453ea 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -19,12 +19,6 @@
## 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@
diff --git a/tests/Makefile.in b/tests/Makefile.in
index 7dcc89b..41fb388 100644
--- a/tests/Makefile.in
+++ b/tests/Makefile.in
@@ -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
diff --git a/tests/t-poll.c b/tests/t-poll.c
index ec79416..11e6d51 100644
--- a/tests/t-poll.c
+++ b/tests/t-poll.c
@@ -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 ();