From 1dc8960b914085519815362fc76e6f01c3629aee Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 20 May 2025 15:02:26 +0100 Subject: [PATCH] Rebase to libguestfs 1.55.13 related: RHEL-81733 Add e2fsck forceno flag resolves: RHEL-92599 --- ...upported-remote-drive-protocols-RHBZ.patch | 4 +- ...required-to-make-AM_GNU_GETTEXT-work.patch | 3434 ----------------- ...of-libguestfs-winsupport-features-ex.patch | 2 +- ...nit-Run-depmod-a-to-rebuild-kernel-m.patch | 2 +- libguestfs.spec | 13 +- sources | 4 +- 6 files changed, 13 insertions(+), 3446 deletions(-) rename 0002-RHEL-Disable-unsupported-remote-drive-protocols-RHBZ.patch => 0001-RHEL-Disable-unsupported-remote-drive-protocols-RHBZ.patch (99%) delete mode 100644 0001-m4-Add-junk-required-to-make-AM_GNU_GETTEXT-work.patch rename 0003-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch => 0002-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch (97%) rename 0004-RHEL-appliance-init-Run-depmod-a-to-rebuild-kernel-m.patch => 0003-RHEL-appliance-init-Run-depmod-a-to-rebuild-kernel-m.patch (90%) diff --git a/0002-RHEL-Disable-unsupported-remote-drive-protocols-RHBZ.patch b/0001-RHEL-Disable-unsupported-remote-drive-protocols-RHBZ.patch similarity index 99% rename from 0002-RHEL-Disable-unsupported-remote-drive-protocols-RHBZ.patch rename to 0001-RHEL-Disable-unsupported-remote-drive-protocols-RHBZ.patch index 99bafb0..63721b7 100644 --- a/0002-RHEL-Disable-unsupported-remote-drive-protocols-RHBZ.patch +++ b/0001-RHEL-Disable-unsupported-remote-drive-protocols-RHBZ.patch @@ -1,4 +1,4 @@ -From 575246780a0f3bbea399ac72c5feba31bc4c3748 Mon Sep 17 00:00:00 2001 +From b0fc7db87d8df6116e720e3b1b1b46959c33b5e5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Mon, 29 Jul 2013 14:47:56 +0100 Subject: [PATCH] RHEL: Disable unsupported remote drive protocols @@ -180,7 +180,7 @@ index e4e1021db..8419ce78a 100755 rm test-add-uri.out rm test-add-uri.img diff --git a/generator/actions_core.ml b/generator/actions_core.ml -index 2cb8cc430..388366b69 100644 +index 0f39fd509..acf5ae5fa 100644 --- a/generator/actions_core.ml +++ b/generator/actions_core.ml @@ -350,22 +350,6 @@ F is interpreted as a local file or device. diff --git a/0001-m4-Add-junk-required-to-make-AM_GNU_GETTEXT-work.patch b/0001-m4-Add-junk-required-to-make-AM_GNU_GETTEXT-work.patch deleted file mode 100644 index c4a8002..0000000 --- a/0001-m4-Add-junk-required-to-make-AM_GNU_GETTEXT-work.patch +++ /dev/null @@ -1,3434 +0,0 @@ -From b9f75ca5b8d091c91187720cd52210117718c693 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -Date: Mon, 19 May 2025 15:53:29 +0100 -Subject: [PATCH] m4: Add junk required to make 'AM_GNU_GETTEXT' work - -Run gettextize, revert most of its changes, but add the m4/* files -that might be required. - -This is a short term fix. A better / longer-term fix is described by -Dan here: - -https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/2AZNWQQ6CBRFZCAADVYQHU5UN5J2JT2F/ ---- - build-aux/config.rpath | 93 ++++- - m4/build-to-host.m4 | 274 ++++++++++++++ - m4/gettext.m4 | 393 ++++++++++++++++++++ - m4/host-cpu-c-abi.m4 | 532 +++++++++++++++++++++++++++ - m4/iconv.m4 | 324 ++++++++++++++++ - m4/intlmacosx.m4 | 71 ++++ - m4/lib-ld.m4 | 170 +++++++++ - m4/lib-link.m4 | 815 +++++++++++++++++++++++++++++++++++++++++ - m4/lib-prefix.m4 | 334 +++++++++++++++++ - m4/nls.m4 | 33 ++ - m4/po.m4 | 157 ++++++++ - m4/progtest.m4 | 93 +++++ - 12 files changed, 3276 insertions(+), 13 deletions(-) - create mode 100644 m4/build-to-host.m4 - create mode 100644 m4/gettext.m4 - create mode 100644 m4/host-cpu-c-abi.m4 - create mode 100644 m4/iconv.m4 - create mode 100644 m4/intlmacosx.m4 - create mode 100644 m4/lib-ld.m4 - create mode 100644 m4/lib-link.m4 - create mode 100644 m4/lib-prefix.m4 - create mode 100644 m4/nls.m4 - create mode 100644 m4/po.m4 - create mode 100644 m4/progtest.m4 - -diff --git a/build-aux/config.rpath b/build-aux/config.rpath -index 29aae9764..e42a98cb6 100755 ---- a/build-aux/config.rpath -+++ b/build-aux/config.rpath -@@ -1,23 +1,15 @@ - #!/usr/bin/sh - # Output a system dependent set of variables, describing how to set the --# run time search path of shared libraries in an executable. -+# run time search path of shared libraries in a binary (executable or -+# shared library). - # --# Copyright 1996-2019 Free Software Foundation, Inc. -+# Copyright 1996-2025 Free Software Foundation, Inc. - # Taken from GNU libtool, 2001 - # Originally by Gordon Matzigkeit , 1996 - # - # This file is free software; the Free Software Foundation gives - # unlimited permission to copy and/or distribute it, with or without - # modifications, as long as this notice is preserved. --# --# The first argument passed to this file is the canonical host specification, --# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM --# or --# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM --# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld --# should be set by the caller. --# --# The set of defined variables is at the end of this script. - - # Known limitations: - # - On IRIX 6.5 with CC="cc", the run time search patch must not be longer -@@ -25,6 +17,81 @@ - # known workaround is to choose shorter directory names for the build - # directory and/or the installation directory. - -+# func_usage -+# outputs to stdout the --help usage message. -+func_usage () -+{ -+ echo "\ -+Usage: config.rpath [OPTION] HOST -+ -+Prints shell variable assignments that describe how to hardcode a directory -+for the lookup of shared libraries into a binary (executable or shared library). -+ -+The first argument passed to this file is the canonical host specification, -+ CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -+or -+ CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -+ -+The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld -+should be set by the caller. -+ -+The set of defined variables is at the end of this script. -+ -+Options: -+ --help print this help and exit -+ --version print version information and exit -+ -+Send patches and bug reports to ." -+} -+ -+# func_version -+# outputs to stdout the --version message. -+func_version () -+{ -+ echo "config.rpath (GNU gnulib, module havelib)" -+ echo "Copyright (C) 2025 Free Software Foundation, Inc. -+License: All-Permissive. -+This is free software: you are free to change and redistribute it. -+There is NO WARRANTY, to the extent permitted by law." -+ echo -+ printf 'Written by %s.\n' "Bruno Haible" -+} -+ -+# func_fatal_error message -+# outputs to stderr a fatal error message, and terminates the program. -+func_fatal_error () -+{ -+ echo "config.rpath: *** $1" 1>&2 -+ echo "config.rpath: *** Stop." 1>&2 -+ exit 1 -+} -+ -+# Command-line option processing. -+while test $# -gt 0; do -+ case "$1" in -+ --help | --hel | --he | --h ) -+ func_usage -+ exit 0 ;; -+ --version | --versio | --versi | --vers | --ver | --ve | --v ) -+ func_version -+ exit 0 ;; -+ -- ) # Stop option processing -+ shift; break ;; -+ -* ) -+ func_fatal_error "unrecognized option: $1" -+ ;; -+ * ) -+ break ;; -+ esac -+done -+ -+if test $# -gt 1; then -+ func_fatal_error "too many arguments" -+fi -+if test $# -lt 1; then -+ func_fatal_error "too few arguments" -+fi -+ - # All known linkers require a '.a' archive for static linking (except MSVC, - # which needs '.lib'). - libext=a -@@ -371,7 +438,7 @@ else - hardcode_direct=yes - hardcode_minus_L=yes - ;; -- freebsd* | dragonfly*) -+ freebsd* | dragonfly* | midnightbsd*) - hardcode_libdir_flag_spec='-R$libdir' - hardcode_direct=yes - ;; -@@ -547,7 +614,7 @@ case "$host_os" in - freebsd[23].*) - library_names_spec='$libname$shrext$versuffix' - ;; -- freebsd* | dragonfly*) -+ freebsd* | dragonfly* | midnightbsd*) - library_names_spec='$libname$shrext' - ;; - gnu*) -diff --git a/m4/build-to-host.m4 b/m4/build-to-host.m4 -new file mode 100644 -index 000000000..01bff8f34 ---- /dev/null -+++ b/m4/build-to-host.m4 -@@ -0,0 +1,274 @@ -+# build-to-host.m4 -+# serial 5 -+dnl Copyright (C) 2023-2025 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 This file is offered as-is, without any warranty. -+ -+dnl Written by Bruno Haible. -+ -+dnl When the build environment ($build_os) is different from the target runtime -+dnl environment ($host_os), file names may need to be converted from the build -+dnl environment syntax to the target runtime environment syntax. This is -+dnl because the Makefiles are executed (mostly) by build environment tools and -+dnl therefore expect file names in build environment syntax, whereas the runtime -+dnl expects file names in target runtime environment syntax. -+dnl -+dnl For example, if $build_os = cygwin and $host_os = mingw32, filenames need -+dnl be converted from Cygwin syntax to native Windows syntax: -+dnl /cygdrive/c/foo/bar -> C:\foo\bar -+dnl /usr/local/share -> C:\cygwin64\usr\local\share -+dnl -+dnl gl_BUILD_TO_HOST([somedir]) -+dnl This macro takes as input an AC_SUBSTed variable 'somedir', which must -+dnl already have its final value assigned, and produces two additional -+dnl AC_SUBSTed variables 'somedir_c' and 'somedir_c_make', that designate the -+dnl same file name value, just in different syntax: -+dnl - somedir_c is the file name in target runtime environment syntax, -+dnl as a C string (starting and ending with a double-quote, -+dnl and with escaped backslashes and double-quotes in -+dnl between). -+dnl - somedir_c_make is the same thing, escaped for use in a Makefile. -+ -+AC_DEFUN([gl_BUILD_TO_HOST], -+[ -+ AC_REQUIRE([AC_CANONICAL_BUILD]) -+ AC_REQUIRE([AC_CANONICAL_HOST]) -+ AC_REQUIRE([gl_BUILD_TO_HOST_INIT]) -+ -+ dnl Define somedir_c. -+ gl_final_[$1]="$[$1]" -+ dnl Translate it from build syntax to host syntax. -+ case "$build_os" in -+ cygwin*) -+ case "$host_os" in -+ mingw* | windows*) -+ gl_final_[$1]=`cygpath -w "$gl_final_[$1]"` ;; -+ esac -+ ;; -+ esac -+ dnl Convert it to C string syntax. -+ [$1]_c=`printf '%s\n' "$gl_final_[$1]" | sed -e "$gl_sed_double_backslashes" -e "$gl_sed_escape_doublequotes" | tr -d "$gl_tr_cr"` -+ [$1]_c='"'"$[$1]_c"'"' -+ AC_SUBST([$1_c]) -+ -+ dnl Define somedir_c_make. -+ [$1]_c_make=`printf '%s\n' "$[$1]_c" | sed -e "$gl_sed_escape_for_make_1" -e "$gl_sed_escape_for_make_2" | tr -d "$gl_tr_cr"` -+ dnl Use the substituted somedir variable, when possible, so that the user -+ dnl may adjust somedir a posteriori when there are no special characters. -+ if test "$[$1]_c_make" = '\"'"${gl_final_[$1]}"'\"'; then -+ [$1]_c_make='\"$([$1])\"' -+ fi -+ AC_SUBST([$1_c_make]) -+]) -+ -+dnl Some initializations for gl_BUILD_TO_HOST. -+AC_DEFUN([gl_BUILD_TO_HOST_INIT], -+[ -+ gl_sed_double_backslashes='s/\\/\\\\/g' -+ gl_sed_escape_doublequotes='s/"/\\"/g' -+changequote(,)dnl -+ gl_sed_escape_for_make_1="s,\\([ \"&'();<>\\\\\`|]\\),\\\\\\1,g" -+changequote([,])dnl -+ gl_sed_escape_for_make_2='s,\$,\\$$,g' -+ dnl Find out how to remove carriage returns from output. Solaris /usr/ucb/tr -+ dnl does not understand '\r'. -+ case `echo r | tr -d '\r'` in -+ '') gl_tr_cr='\015' ;; -+ *) gl_tr_cr='\r' ;; -+ esac -+]) -+ -+ -+dnl The following macros are convenience invocations of gl_BUILD_TO_HOST -+dnl for some of the variables that are defined by Autoconf. -+dnl To do so for _all_ the possible variables, use the module 'configmake'. -+ -+dnl Defines bindir_c and bindir_c_make. -+AC_DEFUN_ONCE([gl_BUILD_TO_HOST_BINDIR], -+[ -+ dnl Find the final value of bindir. -+ gl_saved_prefix="${prefix}" -+ gl_saved_exec_prefix="${exec_prefix}" -+ gl_saved_bindir="${bindir}" -+ dnl Unfortunately, prefix and exec_prefix get only finally determined -+ dnl at the end of configure. -+ if test "X$prefix" = "XNONE"; then -+ prefix="$ac_default_prefix" -+ fi -+ if test "X$exec_prefix" = "XNONE"; then -+ exec_prefix='${prefix}' -+ fi -+ eval exec_prefix="$exec_prefix" -+ eval bindir="$bindir" -+ gl_BUILD_TO_HOST([bindir]) -+ bindir="${gl_saved_bindir}" -+ exec_prefix="${gl_saved_exec_prefix}" -+ prefix="${gl_saved_prefix}" -+]) -+ -+dnl Defines datadir_c and datadir_c_make, -+dnl where datadir = $(datarootdir) -+AC_DEFUN_ONCE([gl_BUILD_TO_HOST_DATADIR], -+[ -+ dnl Find the final value of datadir. -+ gl_saved_prefix="${prefix}" -+ gl_saved_datarootdir="${datarootdir}" -+ gl_saved_datadir="${datadir}" -+ dnl Unfortunately, prefix gets only finally determined at the end of -+ dnl configure. -+ if test "X$prefix" = "XNONE"; then -+ prefix="$ac_default_prefix" -+ fi -+ eval datarootdir="$datarootdir" -+ eval datadir="$datadir" -+ gl_BUILD_TO_HOST([datadir]) -+ datadir="${gl_saved_datadir}" -+ datarootdir="${gl_saved_datarootdir}" -+ prefix="${gl_saved_prefix}" -+]) -+ -+dnl Defines libdir_c and libdir_c_make. -+AC_DEFUN_ONCE([gl_BUILD_TO_HOST_LIBDIR], -+[ -+ dnl Find the final value of libdir. -+ gl_saved_prefix="${prefix}" -+ gl_saved_exec_prefix="${exec_prefix}" -+ gl_saved_libdir="${libdir}" -+ dnl Unfortunately, prefix and exec_prefix get only finally determined -+ dnl at the end of configure. -+ if test "X$prefix" = "XNONE"; then -+ prefix="$ac_default_prefix" -+ fi -+ if test "X$exec_prefix" = "XNONE"; then -+ exec_prefix='${prefix}' -+ fi -+ eval exec_prefix="$exec_prefix" -+ eval libdir="$libdir" -+ gl_BUILD_TO_HOST([libdir]) -+ libdir="${gl_saved_libdir}" -+ exec_prefix="${gl_saved_exec_prefix}" -+ prefix="${gl_saved_prefix}" -+]) -+ -+dnl Defines libexecdir_c and libexecdir_c_make. -+AC_DEFUN_ONCE([gl_BUILD_TO_HOST_LIBEXECDIR], -+[ -+ dnl Find the final value of libexecdir. -+ gl_saved_prefix="${prefix}" -+ gl_saved_exec_prefix="${exec_prefix}" -+ gl_saved_libexecdir="${libexecdir}" -+ dnl Unfortunately, prefix and exec_prefix get only finally determined -+ dnl at the end of configure. -+ if test "X$prefix" = "XNONE"; then -+ prefix="$ac_default_prefix" -+ fi -+ if test "X$exec_prefix" = "XNONE"; then -+ exec_prefix='${prefix}' -+ fi -+ eval exec_prefix="$exec_prefix" -+ eval libexecdir="$libexecdir" -+ gl_BUILD_TO_HOST([libexecdir]) -+ libexecdir="${gl_saved_libexecdir}" -+ exec_prefix="${gl_saved_exec_prefix}" -+ prefix="${gl_saved_prefix}" -+]) -+ -+dnl Defines localedir_c and localedir_c_make. -+AC_DEFUN_ONCE([gl_BUILD_TO_HOST_LOCALEDIR], -+[ -+ dnl Find the final value of localedir. -+ gl_saved_prefix="${prefix}" -+ gl_saved_datarootdir="${datarootdir}" -+ gl_saved_localedir="${localedir}" -+ dnl Unfortunately, prefix gets only finally determined at the end of -+ dnl configure. -+ if test "X$prefix" = "XNONE"; then -+ prefix="$ac_default_prefix" -+ fi -+ eval datarootdir="$datarootdir" -+ eval localedir="$localedir" -+ gl_BUILD_TO_HOST([localedir]) -+ localedir="${gl_saved_localedir}" -+ datarootdir="${gl_saved_datarootdir}" -+ prefix="${gl_saved_prefix}" -+]) -+ -+dnl Defines pkgdatadir_c and pkgdatadir_c_make, -+dnl where pkgdatadir = $(datadir)/$(PACKAGE) -+AC_DEFUN_ONCE([gl_BUILD_TO_HOST_PKGDATADIR], -+[ -+ dnl Find the final value of pkgdatadir. -+ gl_saved_prefix="${prefix}" -+ gl_saved_datarootdir="${datarootdir}" -+ gl_saved_datadir="${datadir}" -+ gl_saved_pkgdatadir="${pkgdatadir}" -+ dnl Unfortunately, prefix gets only finally determined at the end of -+ dnl configure. -+ if test "X$prefix" = "XNONE"; then -+ prefix="$ac_default_prefix" -+ fi -+ eval datarootdir="$datarootdir" -+ eval datadir="$datadir" -+ eval pkgdatadir="$pkgdatadir" -+ gl_BUILD_TO_HOST([pkgdatadir]) -+ pkgdatadir="${gl_saved_pkgdatadir}" -+ datadir="${gl_saved_datadir}" -+ datarootdir="${gl_saved_datarootdir}" -+ prefix="${gl_saved_prefix}" -+]) -+ -+dnl Defines pkglibdir_c and pkglibdir_c_make, -+dnl where pkglibdir = $(libdir)/$(PACKAGE) -+AC_DEFUN_ONCE([gl_BUILD_TO_HOST_PKGLIBDIR], -+[ -+ dnl Find the final value of pkglibdir. -+ gl_saved_prefix="${prefix}" -+ gl_saved_exec_prefix="${exec_prefix}" -+ gl_saved_libdir="${libdir}" -+ gl_saved_pkglibdir="${pkglibdir}" -+ dnl Unfortunately, prefix and exec_prefix get only finally determined -+ dnl at the end of configure. -+ if test "X$prefix" = "XNONE"; then -+ prefix="$ac_default_prefix" -+ fi -+ if test "X$exec_prefix" = "XNONE"; then -+ exec_prefix='${prefix}' -+ fi -+ eval exec_prefix="$exec_prefix" -+ eval libdir="$libdir" -+ eval pkglibdir="$pkglibdir" -+ gl_BUILD_TO_HOST([pkglibdir]) -+ pkglibdir="${gl_saved_pkglibdir}" -+ libdir="${gl_saved_libdir}" -+ exec_prefix="${gl_saved_exec_prefix}" -+ prefix="${gl_saved_prefix}" -+]) -+ -+dnl Defines pkglibexecdir_c and pkglibexecdir_c_make, -+dnl where pkglibexecdir = $(libexecdir)/$(PACKAGE) -+AC_DEFUN_ONCE([gl_BUILD_TO_HOST_PKGLIBEXECDIR], -+[ -+ dnl Find the final value of pkglibexecdir. -+ gl_saved_prefix="${prefix}" -+ gl_saved_exec_prefix="${exec_prefix}" -+ gl_saved_libexecdir="${libexecdir}" -+ gl_saved_pkglibexecdir="${pkglibexecdir}" -+ dnl Unfortunately, prefix and exec_prefix get only finally determined -+ dnl at the end of configure. -+ if test "X$prefix" = "XNONE"; then -+ prefix="$ac_default_prefix" -+ fi -+ if test "X$exec_prefix" = "XNONE"; then -+ exec_prefix='${prefix}' -+ fi -+ eval exec_prefix="$exec_prefix" -+ eval libexecdir="$libexecdir" -+ eval pkglibexecdir="$pkglibexecdir" -+ gl_BUILD_TO_HOST([pkglibexecdir]) -+ pkglibexecdir="${gl_saved_pkglibexecdir}" -+ libexecdir="${gl_saved_libexecdir}" -+ exec_prefix="${gl_saved_exec_prefix}" -+ prefix="${gl_saved_prefix}" -+]) -diff --git a/m4/gettext.m4 b/m4/gettext.m4 -new file mode 100644 -index 000000000..7de17f99c ---- /dev/null -+++ b/m4/gettext.m4 -@@ -0,0 +1,393 @@ -+# gettext.m4 -+# serial 81 (gettext-0.24) -+dnl Copyright (C) 1995-2025 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 This file is offered as-is, without any warranty. -+dnl -+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 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 , 1995-2000. -+dnl Bruno Haible , 2000-2024. -+ -+dnl Macro to add for using GNU gettext. -+ -+dnl Usage: AM_GNU_GETTEXT([INTLSYMBOL], [NEEDSYMBOL], [INTLDIR]). -+dnl INTLSYMBOL must be one of 'external', 'use-libtool', 'here'. -+dnl INTLSYMBOL should be 'external' for packages other than GNU gettext. -+dnl It should be 'use-libtool' for the packages 'gettext-runtime' and -+dnl 'gettext-tools'. -+dnl It should be 'here' for the package 'gettext-runtime/intl'. -+dnl If INTLSYMBOL is 'here', then a libtool library -+dnl $(top_builddir)/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). -+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 -+dnl 'need-formatstring-macros', then GNU gettext implementations that don't -+dnl support the ISO C 99 formatstring macros will be ignored. -+dnl INTLDIR is used to find the intl libraries. If empty, -+dnl the value '$(top_builddir)/intl/' is used. -+dnl -+dnl The result of the configuration is one of three cases: -+dnl 1) GNU gettext, as included in the intl subdirectory, will be compiled -+dnl and used. -+dnl Catalog format: GNU --> install in $(datadir) -+dnl Catalog extension: .mo after installation, .gmo in source tree -+dnl 2) GNU gettext has been found in the system's C library. -+dnl Catalog format: GNU --> install in $(datadir) -+dnl Catalog extension: .mo after installation, .gmo in source tree -+dnl 3) No internationalization, always use English msgid. -+dnl Catalog format: none -+dnl Catalog extension: none -+dnl If INTLSYMBOL is 'external', only cases 2 and 3 can occur. -+dnl The use of .gmo is historical (it was needed to avoid overwriting the -+dnl GNU format catalogs when building on a platform with an X/Open gettext), -+dnl but we keep it in order not to force irrelevant filename changes on the -+dnl maintainers. -+dnl -+AC_DEFUN([AM_GNU_GETTEXT], -+[ -+ dnl Argument checking. -+ m4_if([$1], [], , [m4_if([$1], [external], , [m4_if([$1], [use-libtool], , [m4_if([$1], [here], , -+ [errprint([ERROR: invalid first argument to AM_GNU_GETTEXT -+])])])])]) -+ m4_if(m4_if([$1], [], [old])[]m4_if([$1], [no-libtool], [old]), [old], -+ [errprint([ERROR: Use of AM_GNU_GETTEXT without [external] argument is no longer supported. -+])]) -+ m4_if([$2], [], , [m4_if([$2], [need-ngettext], , [m4_if([$2], [need-formatstring-macros], , -+ [errprint([ERROR: invalid second argument to AM_GNU_GETTEXT -+])])])]) -+ define([gt_building_libintl_in_same_build_tree], -+ m4_if([$1], [use-libtool], [yes], [m4_if([$1], [here], [yes], [no])])) -+ gt_NEEDS_INIT -+ AM_GNU_GETTEXT_NEED([$2]) -+ -+ AC_REQUIRE([AM_PO_SUBDIRS])dnl -+ -+ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. -+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) -+ AC_REQUIRE([AC_LIB_RPATH]) -+ -+ dnl Sometimes libintl requires libiconv, so first search for libiconv. -+ dnl Ideally we would do this search only after the -+ dnl if test "$USE_NLS" = "yes"; then -+ dnl if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then -+ dnl tests. But if configure.ac invokes AM_ICONV after AM_GNU_GETTEXT -+ dnl the configure script would need to contain the same shell code -+ 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 not documented, we avoid it. -+ m4_if(gt_building_libintl_in_same_build_tree, yes, , [ -+ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) -+ ]) -+ -+ dnl Sometimes, on Mac OS X, libintl requires linking with CoreFoundation. -+ gt_INTL_MACOSX -+ -+ dnl Set USE_NLS. -+ AC_REQUIRE([AM_NLS]) -+ -+ m4_if(gt_building_libintl_in_same_build_tree, yes, [ -+ USE_INCLUDED_LIBINTL=no -+ ]) -+ LIBINTL= -+ LTLIBINTL= -+ POSUB= -+ -+ dnl Add a version number to the cache macros. -+ case " $gt_needs " in -+ *" need-formatstring-macros "*) gt_api_version=3 ;; -+ *" need-ngettext "*) gt_api_version=2 ;; -+ *) gt_api_version=1 ;; -+ esac -+ gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" -+ gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" -+ -+ dnl If we use NLS figure out what method -+ if test "$USE_NLS" = "yes"; then -+ gt_use_preinstalled_gnugettext=no -+ m4_if(gt_building_libintl_in_same_build_tree, yes, [ -+ AC_MSG_CHECKING([whether included gettext is requested]) -+ AC_ARG_WITH([included-gettext], -+ [ --with-included-gettext use the GNU gettext library included here], -+ nls_cv_force_use_gnu_gettext=$withval, -+ nls_cv_force_use_gnu_gettext=no) -+ AC_MSG_RESULT([$nls_cv_force_use_gnu_gettext]) -+ -+ nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext" -+ if test "$nls_cv_force_use_gnu_gettext" != "yes"; then -+ ]) -+ dnl User does not insist on using GNU NLS library. Figure out what -+ dnl to use. If GNU gettext is available we use this. Else we have -+ dnl to fall back to GNU NLS library. -+ -+ if test $gt_api_version -ge 3; then -+ gt_revision_test_code=' -+#ifndef __GNU_GETTEXT_SUPPORTED_REVISION -+#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) -+#endif -+changequote(,)dnl -+typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; -+changequote([,])dnl -+' -+ else -+ gt_revision_test_code= -+ fi -+ if test $gt_api_version -ge 2; then -+ gt_expression_test_code=' + * ngettext ("", "", 0)' -+ else -+ gt_expression_test_code= -+ fi -+ -+ AC_CACHE_CHECK([for GNU gettext in libc], [$gt_func_gnugettext_libc], -+ [AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM( -+ [[ -+#include -+#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 + __GNU_GETTEXT_SYMBOL_EXPRESSION -+ ]])], -+ [eval "$gt_func_gnugettext_libc=yes"], -+ [eval "$gt_func_gnugettext_libc=no"])]) -+ -+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then -+ dnl Sometimes libintl requires libiconv, so first search for libiconv. -+ m4_if(gt_building_libintl_in_same_build_tree, yes, , [ -+ AM_ICONV_LINK -+ ]) -+ dnl Search for libintl and define LIBINTL, LTLIBINTL and INCINTL -+ dnl accordingly. Don't use AC_LIB_LINKFLAGS_BODY([intl],[iconv]) -+ dnl because that would add "-liconv" to LIBINTL and LTLIBINTL -+ dnl even if libiconv doesn't exist. -+ AC_LIB_LINKFLAGS_BODY([intl]) -+ AC_CACHE_CHECK([for GNU gettext in libintl], -+ [$gt_func_gnugettext_libintl], -+ [gt_saved_CPPFLAGS="$CPPFLAGS" -+ CPPFLAGS="$CPPFLAGS $INCINTL" -+ gt_saved_LIBS="$LIBS" -+ LIBS="$LIBS $LIBINTL" -+ dnl Now see whether libintl exists and does not depend on libiconv. -+ AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM( -+ [[ -+#include -+#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 + __GNU_GETTEXT_SYMBOL_EXPRESSION -+ ]])], -+ [eval "$gt_func_gnugettext_libintl=yes"], -+ [eval "$gt_func_gnugettext_libintl=no"]) -+ dnl Now see whether libintl exists and depends on libiconv or other -+ dnl OS dependent libraries, specifically on macOS and AIX. -+ gt_LIBINTL_EXTRA="$INTL_MACOSX_LIBS" -+ AC_REQUIRE([AC_CANONICAL_HOST]) -+ case "$host_os" in -+ aix*) gt_LIBINTL_EXTRA="-lpthread" ;; -+ esac -+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } \ -+ && { test -n "$LIBICONV" || test -n "$gt_LIBINTL_EXTRA"; }; then -+ LIBS="$LIBS $LIBICONV $gt_LIBINTL_EXTRA" -+ AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM( -+ [[ -+#include -+#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 + __GNU_GETTEXT_SYMBOL_EXPRESSION -+ ]])], -+ [LIBINTL="$LIBINTL $LIBICONV $gt_LIBINTL_EXTRA" -+ LTLIBINTL="$LTLIBINTL $LTLIBICONV $gt_LIBINTL_EXTRA" -+ eval "$gt_func_gnugettext_libintl=yes" -+ ]) -+ fi -+ CPPFLAGS="$gt_saved_CPPFLAGS" -+ LIBS="$gt_saved_LIBS"]) -+ fi -+ -+ dnl If an already present or preinstalled GNU gettext() is found, -+ dnl use it. But if this macro is used in GNU gettext, and GNU -+ dnl gettext is already preinstalled in libintl, we update this -+ dnl libintl. (Cf. the install rule in intl/Makefile.in.) -+ if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ -+ || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ -+ && test "$PACKAGE" != gettext-runtime \ -+ && test "$PACKAGE" != gettext-tools \ -+ && test "$PACKAGE" != libintl; }; then -+ gt_use_preinstalled_gnugettext=yes -+ else -+ dnl Reset the values set by searching for libintl. -+ LIBINTL= -+ LTLIBINTL= -+ INCINTL= -+ fi -+ -+ m4_if(gt_building_libintl_in_same_build_tree, yes, [ -+ if test "$gt_use_preinstalled_gnugettext" != "yes"; then -+ dnl GNU gettext is not found in the C library. -+ dnl Fall back on included GNU gettext library. -+ nls_cv_use_gnu_gettext=yes -+ fi -+ fi -+ -+ if test "$nls_cv_use_gnu_gettext" = "yes"; then -+ dnl Mark actions used to generate GNU NLS library. -+ USE_INCLUDED_LIBINTL=yes -+ LIBINTL="m4_if([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LIBICONV $LIBTHREAD" -+ LTLIBINTL="m4_if([$3],[],\${top_builddir}/intl,[$3])/libintl.la $LTLIBICONV $LTLIBTHREAD" -+ LIBS=`echo " $LIBS " | sed -e 's/ -lintl / /' -e 's/^ //' -e 's/ $//'` -+ fi -+ -+ CATOBJEXT= -+ if test "$gt_use_preinstalled_gnugettext" = "yes" \ -+ || test "$nls_cv_use_gnu_gettext" = "yes"; then -+ dnl Mark actions to use GNU gettext tools. -+ CATOBJEXT=.gmo -+ fi -+ ]) -+ -+ if test -n "$INTL_MACOSX_LIBS"; then -+ if test "$gt_use_preinstalled_gnugettext" = "yes" \ -+ || test "$nls_cv_use_gnu_gettext" = "yes"; then -+ dnl Some extra flags are needed during linking. -+ LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" -+ LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" -+ fi -+ fi -+ -+ if test "$gt_use_preinstalled_gnugettext" = "yes" \ -+ || test "$nls_cv_use_gnu_gettext" = "yes"; then -+ AC_DEFINE([ENABLE_NLS], [1], -+ [Define to 1 if translation of program messages to the user's native language -+ is requested.]) -+ else -+ USE_NLS=no -+ fi -+ fi -+ -+ AC_MSG_CHECKING([whether to use NLS]) -+ AC_MSG_RESULT([$USE_NLS]) -+ if test "$USE_NLS" = "yes"; then -+ AC_MSG_CHECKING([where the gettext function comes from]) -+ if test "$gt_use_preinstalled_gnugettext" = "yes"; then -+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then -+ gt_source="external libintl" -+ else -+ gt_source="libc" -+ fi -+ else -+ gt_source="included intl directory" -+ fi -+ AC_MSG_RESULT([$gt_source]) -+ fi -+ -+ if test "$USE_NLS" = "yes"; then -+ -+ if test "$gt_use_preinstalled_gnugettext" = "yes"; then -+ if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then -+ AC_MSG_CHECKING([how to link with libintl]) -+ AC_MSG_RESULT([$LIBINTL]) -+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCINTL]) -+ fi -+ -+ dnl For backward compatibility. Some packages may be using this. -+ AC_DEFINE([HAVE_GETTEXT], [1], -+ [Define if the GNU gettext() function is already present or preinstalled.]) -+ AC_DEFINE([HAVE_DCGETTEXT], [1], -+ [Define if the GNU dcgettext() function is already present or preinstalled.]) -+ fi -+ -+ dnl We need to process the po/ directory. -+ POSUB=po -+ fi -+ -+ m4_if(gt_building_libintl_in_same_build_tree, yes, [ -+ dnl Make all variables we use known to autoconf. -+ AC_SUBST([USE_INCLUDED_LIBINTL]) -+ AC_SUBST([CATOBJEXT]) -+ ]) -+ -+ m4_if(gt_building_libintl_in_same_build_tree, yes, [], [ -+ dnl For backward compatibility. Some Makefiles may be using this. -+ INTLLIBS="$LIBINTL" -+ AC_SUBST([INTLLIBS]) -+ ]) -+ -+ dnl Make all documented variables known to autoconf. -+ AC_SUBST([LIBINTL]) -+ AC_SUBST([LTLIBINTL]) -+ AC_SUBST([POSUB]) -+ -+ dnl Define localedir_c and localedir_c_make. -+ gl_BUILD_TO_HOST_LOCALEDIR -+]) -+ -+ -+dnl gt_NEEDS_INIT ensures that the gt_needs variable is initialized. -+m4_define([gt_NEEDS_INIT], -+[ -+ m4_divert_text([DEFAULTS], [gt_needs=]) -+ m4_define([gt_NEEDS_INIT], []) -+]) -+ -+ -+dnl Usage: AM_GNU_GETTEXT_NEED([NEEDSYMBOL]) -+AC_DEFUN([AM_GNU_GETTEXT_NEED], -+[ -+ m4_divert_text([INIT_PREPARE], [gt_needs="$gt_needs $1"]) -+]) -+ -+ -+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/host-cpu-c-abi.m4 b/m4/host-cpu-c-abi.m4 -new file mode 100644 -index 000000000..6ca7721a3 ---- /dev/null -+++ b/m4/host-cpu-c-abi.m4 -@@ -0,0 +1,532 @@ -+# host-cpu-c-abi.m4 -+# serial 20 -+dnl Copyright (C) 2002-2025 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 This file is offered as-is, without any warranty. -+ -+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 . -+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 -fr 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 ), and _MIPS_SIM == _ABIN32. -+ # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but -+ # may later get defined by ), 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 <. -+dnl Don't make changes that are incompatible with that documentation! -+ -+AC_DEFUN([AM_ICONV_LINKFLAGS_BODY], -+[ -+ dnl Prerequisites of AC_LIB_LINKFLAGS_BODY. -+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) -+ AC_REQUIRE([AC_LIB_RPATH]) -+ -+ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV -+ dnl accordingly. -+ AC_LIB_LINKFLAGS_BODY([iconv]) -+]) -+ -+AC_DEFUN([AM_ICONV_LINK], -+[ -+ dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and -+ dnl those with the standalone portable GNU libiconv installed). -+ AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles -+ -+ dnl Search for libiconv and define LIBICONV, LTLIBICONV and INCICONV -+ dnl accordingly. -+ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) -+ -+ dnl Add $INCICONV to CPPFLAGS before performing the following checks, -+ dnl because if the user has installed libiconv and not disabled its use -+ dnl via --without-libiconv-prefix, he wants to use it. The first -+ dnl AC_LINK_IFELSE will then fail, the second AC_LINK_IFELSE will succeed. -+ gl_saved_CPPFLAGS="$CPPFLAGS" -+ AC_LIB_APPENDTOVAR([CPPFLAGS], [$INCICONV]) -+ -+ AC_CACHE_CHECK([for iconv], [am_cv_func_iconv], [ -+ am_cv_func_iconv="no, consider installing GNU libiconv" -+ am_cv_lib_iconv=no -+ AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM( -+ [[ -+#include -+#include -+ ]], -+ [[iconv_t cd = iconv_open("",""); -+ iconv(cd,NULL,NULL,NULL,NULL); -+ iconv_close(cd);]])], -+ [am_cv_func_iconv=yes]) -+ if test "$am_cv_func_iconv" != yes; then -+ gl_saved_LIBS="$LIBS" -+ LIBS="$LIBS $LIBICONV" -+ AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM( -+ [[ -+#include -+#include -+ ]], -+ [[iconv_t cd = iconv_open("",""); -+ iconv(cd,NULL,NULL,NULL,NULL); -+ iconv_close(cd);]])], -+ [am_cv_lib_iconv=yes] -+ [am_cv_func_iconv=yes]) -+ LIBS="$gl_saved_LIBS" -+ fi -+ ]) -+ if test "$am_cv_func_iconv" = yes; then -+ AC_CACHE_CHECK([for working iconv], [am_cv_func_iconv_works], [ -+ dnl This tests against bugs in AIX 5.1, AIX 6.1..7.1, HP-UX 11.11, -+ dnl Solaris 10, macOS 14.4. -+ gl_saved_LIBS="$LIBS" -+ if test $am_cv_lib_iconv = yes; then -+ LIBS="$LIBS $LIBICONV" -+ fi -+ am_cv_func_iconv_works=no -+ for ac_iconv_const in '' 'const'; do -+ AC_RUN_IFELSE( -+ [AC_LANG_PROGRAM( -+ [[ -+#include -+#include -+ -+#ifndef ICONV_CONST -+# define ICONV_CONST $ac_iconv_const -+#endif -+ ]], -+ [[int result = 0; -+ /* Test against AIX 5.1...7.2 bug: Failures are not distinguishable from -+ successful returns. This is even documented in -+ */ -+ { -+ iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); -+ if (cd_utf8_to_88591 != (iconv_t)(-1)) -+ { -+ static ICONV_CONST char input[] = "\342\202\254"; /* EURO SIGN */ -+ char buf[10]; -+ ICONV_CONST char *inptr = input; -+ size_t inbytesleft = strlen (input); -+ char *outptr = buf; -+ size_t outbytesleft = sizeof (buf); -+ size_t res = iconv (cd_utf8_to_88591, -+ &inptr, &inbytesleft, -+ &outptr, &outbytesleft); -+ if (res == 0) -+ result |= 1; -+ iconv_close (cd_utf8_to_88591); -+ } -+ } -+ /* Test against macOS 14.4 bug: Failures are not distinguishable from -+ successful returns. -+ POSIX:2018 says: "The iconv() function shall ... return the number of -+ non-identical conversions performed." -+ But here, the conversion always does transliteration (the suffixes -+ "//TRANSLIT" and "//IGNORE" have no effect, nor does iconvctl()) and -+ does not report when it does a non-identical conversion. */ -+ { -+ iconv_t cd_utf8_to_88591 = iconv_open ("ISO-8859-1", "UTF-8"); -+ if (cd_utf8_to_88591 != (iconv_t)(-1)) -+ { -+ static ICONV_CONST char input[] = "\305\202"; /* LATIN SMALL LETTER L WITH STROKE */ -+ char buf[10]; -+ ICONV_CONST char *inptr = input; -+ size_t inbytesleft = strlen (input); -+ char *outptr = buf; -+ size_t outbytesleft = sizeof (buf); -+ size_t res = iconv (cd_utf8_to_88591, -+ &inptr, &inbytesleft, -+ &outptr, &outbytesleft); -+ /* Here: -+ With glibc, GNU libiconv (including macOS up to 13): res == (size_t)-1, errno == EILSEQ. -+ With musl libc, NetBSD 10, Solaris 11: res == 1. -+ With macOS 14.4: res == 0, output is "l". */ -+ if (res == 0) -+ result |= 2; -+ iconv_close (cd_utf8_to_88591); -+ } -+ } -+ /* Test against Solaris 10 bug: Failures are not distinguishable from -+ successful returns. */ -+ { -+ iconv_t cd_ascii_to_88591 = iconv_open ("ISO8859-1", "646"); -+ if (cd_ascii_to_88591 != (iconv_t)(-1)) -+ { -+ static ICONV_CONST char input[] = "\263"; -+ char buf[10]; -+ ICONV_CONST char *inptr = input; -+ size_t inbytesleft = strlen (input); -+ char *outptr = buf; -+ size_t outbytesleft = sizeof (buf); -+ size_t res = iconv (cd_ascii_to_88591, -+ &inptr, &inbytesleft, -+ &outptr, &outbytesleft); -+ if (res == 0) -+ result |= 4; -+ iconv_close (cd_ascii_to_88591); -+ } -+ } -+ /* Test against AIX 6.1..7.1 bug: Buffer overrun. */ -+ { -+ iconv_t cd_88591_to_utf8 = iconv_open ("UTF-8", "ISO-8859-1"); -+ if (cd_88591_to_utf8 != (iconv_t)(-1)) -+ { -+ static ICONV_CONST char input[] = "\304"; -+ static char buf[2] = { (char)0xDE, (char)0xAD }; -+ ICONV_CONST char *inptr = input; -+ size_t inbytesleft = 1; -+ char *outptr = buf; -+ size_t outbytesleft = 1; -+ size_t res = iconv (cd_88591_to_utf8, -+ &inptr, &inbytesleft, -+ &outptr, &outbytesleft); -+ if (res != (size_t)(-1) || outptr - buf > 1 || buf[1] != (char)0xAD) -+ result |= 8; -+ iconv_close (cd_88591_to_utf8); -+ } -+ } -+#if 0 /* This bug could be worked around by the caller. */ -+ /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ -+ { -+ iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); -+ if (cd_88591_to_utf8 != (iconv_t)(-1)) -+ { -+ static ICONV_CONST char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; -+ char buf[50]; -+ ICONV_CONST char *inptr = input; -+ size_t inbytesleft = strlen (input); -+ char *outptr = buf; -+ size_t outbytesleft = sizeof (buf); -+ size_t res = iconv (cd_88591_to_utf8, -+ &inptr, &inbytesleft, -+ &outptr, &outbytesleft); -+ if ((int)res > 0) -+ result |= 16; -+ iconv_close (cd_88591_to_utf8); -+ } -+ } -+#endif -+ /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is -+ provided. */ -+ { -+ /* Try standardized names. */ -+ iconv_t cd1 = iconv_open ("UTF-8", "EUC-JP"); -+ /* Try IRIX, OSF/1 names. */ -+ iconv_t cd2 = iconv_open ("UTF-8", "eucJP"); -+ /* Try AIX names. */ -+ iconv_t cd3 = iconv_open ("UTF-8", "IBM-eucJP"); -+ /* Try HP-UX names. */ -+ iconv_t cd4 = iconv_open ("utf8", "eucJP"); -+ if (cd1 == (iconv_t)(-1) && cd2 == (iconv_t)(-1) -+ && cd3 == (iconv_t)(-1) && cd4 == (iconv_t)(-1)) -+ result |= 32; -+ if (cd1 != (iconv_t)(-1)) -+ iconv_close (cd1); -+ if (cd2 != (iconv_t)(-1)) -+ iconv_close (cd2); -+ if (cd3 != (iconv_t)(-1)) -+ iconv_close (cd3); -+ if (cd4 != (iconv_t)(-1)) -+ iconv_close (cd4); -+ } -+ return result; -+]])], -+ [am_cv_func_iconv_works=yes], , -+ [case "$host_os" in -+ aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; -+ *) am_cv_func_iconv_works="guessing yes" ;; -+ esac]) -+ test "$am_cv_func_iconv_works" = no || break -+ done -+ LIBS="$gl_saved_LIBS" -+ ]) -+ case "$am_cv_func_iconv_works" in -+ *no) am_func_iconv=no am_cv_lib_iconv=no ;; -+ *) am_func_iconv=yes ;; -+ esac -+ else -+ am_func_iconv=no am_cv_lib_iconv=no -+ fi -+ if test "$am_func_iconv" = yes; then -+ AC_DEFINE([HAVE_ICONV], [1], -+ [Define if you have the iconv() function and it works.]) -+ fi -+ if test "$am_cv_lib_iconv" = yes; then -+ AC_MSG_CHECKING([how to link with libiconv]) -+ AC_MSG_RESULT([$LIBICONV]) -+ else -+ dnl If $LIBICONV didn't lead to a usable library, we don't need $INCICONV -+ dnl either. -+ CPPFLAGS="$gl_saved_CPPFLAGS" -+ LIBICONV= -+ LTLIBICONV= -+ fi -+ AC_SUBST([LIBICONV]) -+ AC_SUBST([LTLIBICONV]) -+]) -+ -+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". -+AC_DEFUN_ONCE([AM_ICONV], -+[ -+ AM_ICONV_LINK -+ if test "$am_cv_func_iconv" = yes; then -+ AC_CACHE_CHECK([whether iconv is compatible with its POSIX signature], -+ [gl_cv_iconv_nonconst], -+ [AC_COMPILE_IFELSE( -+ [AC_LANG_PROGRAM( -+ [[ -+#include -+#include -+extern -+#ifdef __cplusplus -+"C" -+#endif -+size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); -+ ]], -+ [[]])], -+ [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'. -+ 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], [$iconv_arg1], -+ [Define as const if the declaration of iconv() needs const.]) -+ dnl Also substitute ICONV_CONST in the gnulib generated . -+ m4_ifdef([gl_ICONV_H_DEFAULTS], -+ [AC_REQUIRE([gl_ICONV_H_DEFAULTS]) -+ if test $gl_cv_iconv_nonconst != yes; then -+ ICONV_CONST="const" -+ fi -+ ]) -+ -+ dnl A summary result, for those packages which want to print a summary at the -+ dnl end of the configuration. -+ if test "$am_func_iconv" = yes; then -+ if test -n "$LIBICONV"; then -+ am_cv_func_iconv_summary='yes, in libiconv' -+ else -+ am_cv_func_iconv_summary='yes, in libc' -+ fi -+ else -+ if test "$am_cv_func_iconv" = yes; then -+ am_cv_func_iconv_summary='not working, consider installing GNU libiconv' -+ else -+ am_cv_func_iconv_summary='no, consider installing GNU libiconv' -+ fi -+ fi -+]) -diff --git a/m4/intlmacosx.m4 b/m4/intlmacosx.m4 -new file mode 100644 -index 000000000..f0920d0ff ---- /dev/null -+++ b/m4/intlmacosx.m4 -@@ -0,0 +1,71 @@ -+# intlmacosx.m4 -+# serial 10 (gettext-0.23) -+dnl Copyright (C) 2004-2014, 2016, 2019-2025 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 This file is offered as-is, without any warranty. -+dnl -+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 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 Checks for special options needed on Mac OS X. -+dnl Defines INTL_MACOSX_LIBS. -+AC_DEFUN([gt_INTL_MACOSX], -+[ -+ dnl Check for API introduced in Mac OS X 10.4. -+ AC_CACHE_CHECK([for CFPreferencesCopyAppValue], -+ [gt_cv_func_CFPreferencesCopyAppValue], -+ [gt_saved_LIBS="$LIBS" -+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" -+ AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM( -+ [[#include ]], -+ [[CFPreferencesCopyAppValue(NULL, NULL)]])], -+ [gt_cv_func_CFPreferencesCopyAppValue=yes], -+ [gt_cv_func_CFPreferencesCopyAppValue=no]) -+ LIBS="$gt_saved_LIBS"]) -+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then -+ AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], -+ [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) -+ fi -+ dnl Don't check for the API introduced in Mac OS X 10.5, CFLocaleCopyCurrent, -+ dnl because in macOS 10.13.4 it has the following behaviour: -+ dnl When two or more languages are specified in the -+ dnl "System Preferences > Language & Region > Preferred Languages" panel, -+ dnl it returns en_CC where CC is the territory (even when English is not among -+ dnl the preferred languages!). What we want instead is what -+ dnl CFLocaleCopyCurrent returned in earlier macOS releases and what -+ dnl CFPreferencesCopyAppValue still returns, namely ll_CC where ll is the -+ dnl first among the preferred languages and CC is the territory. -+ AC_CACHE_CHECK([for CFLocaleCopyPreferredLanguages], [gt_cv_func_CFLocaleCopyPreferredLanguages], -+ [gt_saved_LIBS="$LIBS" -+ LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" -+ AC_LINK_IFELSE( -+ [AC_LANG_PROGRAM( -+ [[#include ]], -+ [[CFLocaleCopyPreferredLanguages();]])], -+ [gt_cv_func_CFLocaleCopyPreferredLanguages=yes], -+ [gt_cv_func_CFLocaleCopyPreferredLanguages=no]) -+ LIBS="$gt_saved_LIBS"]) -+ if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then -+ AC_DEFINE([HAVE_CFLOCALECOPYPREFERREDLANGUAGES], [1], -+ [Define to 1 if you have the Mac OS X function CFLocaleCopyPreferredLanguages in the CoreFoundation framework.]) -+ fi -+ INTL_MACOSX_LIBS= -+ if test $gt_cv_func_CFPreferencesCopyAppValue = yes \ -+ || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then -+ dnl Starting with macOS version 14, CoreFoundation relies on CoreServices, -+ dnl and we have to link it in explicitly, otherwise an exception -+ dnl NSInvalidArgumentException "unrecognized selector sent to instance" -+ dnl occurs. -+ INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation -Wl,-framework -Wl,CoreServices" -+ fi -+ AC_SUBST([INTL_MACOSX_LIBS]) -+]) -diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4 -new file mode 100644 -index 000000000..3714b9ce7 ---- /dev/null -+++ b/m4/lib-ld.m4 -@@ -0,0 +1,170 @@ -+# lib-ld.m4 -+# serial 13 -+dnl Copyright (C) 1996-2003, 2009-2025 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 This file is offered as-is, without any warranty. -+ -+dnl Subroutines of libtool.m4, -+dnl with replacements s/_*LT_PATH/AC_LIB_PROG/ and s/lt_/acl_/ to avoid -+dnl collision with libtool.m4. -+ -+dnl From libtool-2.4. Sets the variable with_gnu_ld to yes or no. -+AC_DEFUN([AC_LIB_PROG_LD_GNU], -+[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], [acl_cv_prog_gnu_ld], -+[# I'd rather use --version here, but apparently some GNU lds only accept -v. -+case `$LD -v 2>&1 /dev/null 2>&1 \ -+ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ -+ || PATH_SEPARATOR=';' -+ } -+fi -+ -+if test -n "$LD"; then -+ AC_MSG_CHECKING([for ld]) -+elif test "$GCC" = yes; then -+ AC_MSG_CHECKING([for ld used by $CC]) -+elif test "$with_gnu_ld" = yes; then -+ AC_MSG_CHECKING([for GNU ld]) -+else -+ AC_MSG_CHECKING([for non-GNU ld]) -+fi -+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* | windows*) -+ # 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 -+ if test -n "$ac_prog"; then -+ # Search for $ac_prog in $PATH. -+ acl_saved_IFS="$IFS"; IFS=$PATH_SEPARATOR -+ for ac_dir in $PATH; do -+ IFS="$acl_saved_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 conftest.sh -+ . ./conftest.sh -+ rm -f ./conftest.sh -+ acl_cv_rpath=done -+ ]) -+ wl="$acl_cv_wl" -+ acl_libext="$acl_cv_libext" -+ acl_shlibext="$acl_cv_shlibext" -+ acl_libname_spec="$acl_cv_libname_spec" -+ acl_library_names_spec="$acl_cv_library_names_spec" -+ acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" -+ acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" -+ acl_hardcode_direct="$acl_cv_hardcode_direct" -+ acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" -+ dnl Determine whether the user wants rpath handling at all. -+ AC_ARG_ENABLE([rpath], -+ [ --disable-rpath do not hardcode runtime library paths], -+ :, enable_rpath=yes) -+]) -+ -+dnl AC_LIB_FROMPACKAGE(name, package) -+dnl declares that libname comes from the given package. The configure file -+dnl will then not have a --with-libname-prefix option but a -+dnl --with-package-prefix option. Several libraries can come from the same -+dnl package. This declaration must occur before an AC_LIB_LINKFLAGS or similar -+dnl macro call that searches for libname. -+AC_DEFUN([AC_LIB_FROMPACKAGE], -+[ -+ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], -+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) -+ define([acl_frompackage_]NAME, [$2]) -+ popdef([NAME]) -+ pushdef([PACK],[$2]) -+ pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], -+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) -+ define([acl_libsinpackage_]PACKUP, -+ m4_ifdef([acl_libsinpackage_]PACKUP, [m4_defn([acl_libsinpackage_]PACKUP)[[, ]]],)[lib$1]) -+ popdef([PACKUP]) -+ popdef([PACK]) -+]) -+ -+dnl AC_LIB_LINKFLAGS_BODY(name [, dependencies]) searches for libname and -+dnl the libraries corresponding to explicit and implicit dependencies. -+dnl Sets the LIB${NAME}, LTLIB${NAME} and INC${NAME} variables. -+dnl Also, sets the LIB${NAME}_PREFIX variable to nonempty if libname was found -+dnl in ${LIB${NAME}_PREFIX}/$acl_libdirstem. -+AC_DEFUN([AC_LIB_LINKFLAGS_BODY], -+[ -+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) -+ pushdef([NAME],[m4_translit([$1],[abcdefghijklmnopqrstuvwxyz./+-], -+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) -+ pushdef([PACK],[m4_ifdef([acl_frompackage_]NAME, [acl_frompackage_]NAME, lib[$1])]) -+ pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], -+ [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) -+ pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) -+ 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(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 -+ else -+ if test "X$withval" = "X"; then -+ 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" -+ 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. Use breadth-first search. -+ LIB[]NAME= -+ LTLIB[]NAME= -+ INC[]NAME= -+ LIB[]NAME[]_PREFIX= -+ dnl HAVE_LIB${NAME} is an indicator that LIB${NAME}, LTLIB${NAME} have been -+ dnl computed. So it has to be reset here. -+ HAVE_LIB[]NAME= -+ rpathdirs= -+ ltrpathdirs= -+ names_already_handled= -+ names_next_round='$1 $2' -+ while test -n "$names_next_round"; do -+ names_this_round="$names_next_round" -+ names_next_round= -+ for name in $names_this_round; do -+ already_handled= -+ for n in $names_already_handled; do -+ if test "$n" = "$name"; then -+ already_handled=yes -+ break -+ fi -+ done -+ if test -z "$already_handled"; then -+ names_already_handled="$names_already_handled $name" -+ dnl See if it was already located by an earlier AC_LIB_LINKFLAGS -+ dnl or AC_LIB_HAVE_LINKFLAGS call. -+ uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./+-|ABCDEFGHIJKLMNOPQRSTUVWXYZ____|'` -+ eval value=\"\$HAVE_LIB$uppername\" -+ if test -n "$value"; then -+ if test "$value" = yes; then -+ eval value=\"\$LIB$uppername\" -+ test -z "$value" || LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$value" -+ eval value=\"\$LTLIB$uppername\" -+ test -z "$value" || LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$value" -+ else -+ dnl An earlier call to AC_LIB_HAVE_LINKFLAGS has determined -+ dnl that this library doesn't exist. So just drop it. -+ : -+ fi -+ else -+ dnl Search the library lib$name in $additional_libdir and $LDFLAGS -+ dnl and the already constructed $LIBNAME/$LTLIBNAME. -+ found_dir= -+ found_la= -+ found_so= -+ found_a= -+ eval libname=\"$acl_libname_spec\" # typically: libname=lib$name -+ if test -n "$acl_shlibext"; then -+ shrext=".$acl_shlibext" # typically: shrext=.so -+ else -+ shrext= -+ fi -+ if test $use_additional = yes; then -+ for additional_libdir_variable in additional_libdir additional_libdir2 additional_libdir3; do -+ if test "X$found_dir" = "X"; then -+ eval dir=\$$additional_libdir_variable -+ if test -n "$dir"; then -+ 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 -+ 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_a="$dir/$libname.$acl_libext" -+ fi -+ fi -+ if test "X$found_dir" != "X"; then -+ if test -f "$dir/$libname.la"; then -+ found_la="$dir/$libname.la" -+ fi -+ fi -+ fi -+ fi -+ done -+ fi -+ if test "X$found_dir" = "X"; then -+ for x in $LDFLAGS $LTLIB[]NAME; do -+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) -+ case "$x" in -+ -L*) -+ 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" && 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 -+ 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_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 -+ ;; -+ esac -+ if test "X$found_dir" != "X"; then -+ break -+ fi -+ done -+ fi -+ if test "X$found_dir" != "X"; then -+ dnl Found the library. -+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-L$found_dir -l$name" -+ if test "X$found_so" != "X"; then -+ dnl Linking with a shared library. We attempt to hardcode its -+ dnl directory into the executable's runpath, unless it's the -+ 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" \ -+ || test "X$found_dir" = "X/usr/$acl_libdirstem3"; then -+ dnl No hardcoding is needed. -+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" -+ else -+ dnl Use an explicit option to hardcode DIR into the resulting -+ dnl binary. -+ dnl Potentially add DIR to ltrpathdirs. -+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. -+ haveit= -+ for x in $ltrpathdirs; do -+ if test "X$x" = "X$found_dir"; then -+ haveit=yes -+ break -+ fi -+ done -+ if test -z "$haveit"; then -+ ltrpathdirs="$ltrpathdirs $found_dir" -+ fi -+ dnl The hardcoding into $LIBNAME is system dependent. -+ if test "$acl_hardcode_direct" = yes; then -+ dnl Using DIR/libNAME.so during linking hardcodes DIR into the -+ dnl resulting binary. -+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" -+ else -+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then -+ dnl Use an explicit option to hardcode DIR into the resulting -+ dnl binary. -+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" -+ dnl Potentially add DIR to rpathdirs. -+ dnl The rpathdirs will be appended to $LIBNAME at the end. -+ haveit= -+ for x in $rpathdirs; do -+ if test "X$x" = "X$found_dir"; then -+ haveit=yes -+ break -+ fi -+ done -+ if test -z "$haveit"; then -+ rpathdirs="$rpathdirs $found_dir" -+ fi -+ else -+ dnl Rely on "-L$found_dir". -+ dnl But don't add it if it's already contained in the LDFLAGS -+ dnl or the already constructed $LIBNAME -+ haveit= -+ for x in $LDFLAGS $LIB[]NAME; do -+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) -+ if test "X$x" = "X-L$found_dir"; then -+ haveit=yes -+ break -+ fi -+ done -+ if test -z "$haveit"; then -+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir" -+ fi -+ if test "$acl_hardcode_minus_L" != no; then -+ dnl FIXME: Not sure whether we should use -+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" -+ dnl here. -+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_so" -+ else -+ dnl We cannot use $acl_hardcode_runpath_var and LD_RUN_PATH -+ dnl here, because this doesn't fit in flags passed to the -+ dnl compiler. So give up. No hardcoding. This affects only -+ dnl very old systems. -+ dnl FIXME: Not sure whether we should use -+ dnl "-L$found_dir -l$name" or "-L$found_dir $found_so" -+ dnl here. -+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" -+ fi -+ fi -+ fi -+ fi -+ else -+ if test "X$found_a" != "X"; then -+ dnl Linking with a static library. -+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$found_a" -+ else -+ dnl We shouldn't come here, but anyway it's good to have a -+ dnl fallback. -+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-L$found_dir -l$name" -+ fi -+ fi -+ dnl Assume the include files are nearby. -+ additional_includedir= -+ case "$found_dir" in -+ */$acl_libdirstem | */$acl_libdirstem/) -+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` -+ if test "$name" = '$1'; then -+ LIB[]NAME[]_PREFIX="$basedir" -+ fi -+ additional_includedir="$basedir/include" -+ ;; -+ */$acl_libdirstem2 | */$acl_libdirstem2/) -+ basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem2/"'*$,,'` -+ if test "$name" = '$1'; then -+ LIB[]NAME[]_PREFIX="$basedir" -+ 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. -+ dnl But don't add it -+ dnl 1. if it's the standard /usr/include, -+ dnl 2. if it's /usr/local/include and we are using GCC on Linux, -+ dnl 3. if it's already present in $CPPFLAGS or the already -+ dnl constructed $INCNAME, -+ dnl 4. if it doesn't exist as a directory. -+ if test "X$additional_includedir" != "X/usr/include"; then -+ haveit= -+ if test "X$additional_includedir" = "X/usr/local/include"; then -+ if test -n "$GCC"; then -+ case $host_os in -+ linux* | gnu* | k*bsd*-gnu) haveit=yes;; -+ esac -+ fi -+ fi -+ if test -z "$haveit"; then -+ for x in $CPPFLAGS $INC[]NAME; do -+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) -+ if test "X$x" = "X-I$additional_includedir"; then -+ haveit=yes -+ break -+ fi -+ done -+ if test -z "$haveit"; then -+ if test -d "$additional_includedir"; then -+ dnl Really add $additional_includedir to $INCNAME. -+ INC[]NAME="${INC[]NAME}${INC[]NAME:+ }-I$additional_includedir" -+ fi -+ fi -+ fi -+ fi -+ fi -+ dnl Look for dependencies. -+ if test -n "$found_la"; then -+ dnl Read the .la file. It defines the variables -+ dnl dlname, library_names, old_library, dependency_libs, current, -+ dnl age, revision, installed, dlopen, dlpreopen, libdir. -+ saved_libdir="$libdir" -+ case "$found_la" in -+ */* | *\\*) . "$found_la" ;; -+ *) . "./$found_la" ;; -+ esac -+ libdir="$saved_libdir" -+ dnl We use only dependency_libs. -+ for dep in $dependency_libs; do -+ case "$dep" in -+ -L*) -+ 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$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$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;; -+ esac -+ fi -+ fi -+ if test -z "$haveit"; then -+ haveit= -+ for x in $LDFLAGS $LIB[]NAME; do -+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) -+ if test "X$x" = "X-L$dependency_libdir"; then -+ haveit=yes -+ break -+ fi -+ done -+ if test -z "$haveit"; then -+ 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$dependency_libdir"; then -+ haveit=yes -+ break -+ fi -+ done -+ if test -z "$haveit"; then -+ 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 -+ fi -+ ;; -+ -R*) -+ dir=`echo "X$dep" | sed -e 's/^X-R//'` -+ if test "$enable_rpath" != no; then -+ dnl Potentially add DIR to rpathdirs. -+ dnl The rpathdirs will be appended to $LIBNAME at the end. -+ haveit= -+ for x in $rpathdirs; do -+ if test "X$x" = "X$dir"; then -+ haveit=yes -+ break -+ fi -+ done -+ if test -z "$haveit"; then -+ rpathdirs="$rpathdirs $dir" -+ fi -+ dnl Potentially add DIR to ltrpathdirs. -+ dnl The ltrpathdirs will be appended to $LTLIBNAME at the end. -+ haveit= -+ for x in $ltrpathdirs; do -+ if test "X$x" = "X$dir"; then -+ haveit=yes -+ break -+ fi -+ done -+ if test -z "$haveit"; then -+ ltrpathdirs="$ltrpathdirs $dir" -+ fi -+ fi -+ ;; -+ -l*) -+ dnl Handle this in the next round. -+ 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 . -+ 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 -+ dnl directory; it is already contained in a preceding -L -+ dnl option. -+ names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` -+ ;; -+ *) -+ dnl Most likely an immediate library name. -+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$dep" -+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }$dep" -+ ;; -+ esac -+ done -+ fi -+ else -+ dnl Didn't find the library; assume it is in the system directories -+ dnl known to the linker and runtime loader. (All the system -+ dnl directories known to the linker should also be known to the -+ dnl runtime loader, otherwise the system is severely misconfigured.) -+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }-l$name" -+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-l$name" -+ fi -+ fi -+ fi -+ done -+ done -+ if test "X$rpathdirs" != "X"; then -+ if test -n "$acl_hardcode_libdir_separator"; then -+ dnl Weird platform: only the last -rpath option counts, the user must -+ dnl pass all path elements in one option. We can arrange that for a -+ dnl single library, but not when more than one $LIBNAMEs are used. -+ alldirs= -+ for found_dir in $rpathdirs; do -+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" -+ done -+ dnl Note: acl_hardcode_libdir_flag_spec uses $libdir and $wl. -+ acl_saved_libdir="$libdir" -+ libdir="$alldirs" -+ eval flag=\"$acl_hardcode_libdir_flag_spec\" -+ libdir="$acl_saved_libdir" -+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" -+ else -+ dnl The -rpath options are cumulative. -+ for found_dir in $rpathdirs; do -+ acl_saved_libdir="$libdir" -+ libdir="$found_dir" -+ eval flag=\"$acl_hardcode_libdir_flag_spec\" -+ libdir="$acl_saved_libdir" -+ LIB[]NAME="${LIB[]NAME}${LIB[]NAME:+ }$flag" -+ done -+ fi -+ fi -+ if test "X$ltrpathdirs" != "X"; then -+ dnl When using libtool, the option that works for both libraries and -+ dnl executables is -R. The -R options are cumulative. -+ for found_dir in $ltrpathdirs; do -+ LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" -+ done -+ fi -+ popdef([PACKLIBS]) -+ popdef([PACKUP]) -+ popdef([PACK]) -+ popdef([NAME]) -+]) -+ -+dnl AC_LIB_APPENDTOVAR(VAR, CONTENTS) appends the elements of CONTENTS to VAR, -+dnl unless already present in VAR. -+dnl Works only for CPPFLAGS, not for LIB* variables because that sometimes -+dnl contains two or three consecutive elements that belong together. -+AC_DEFUN([AC_LIB_APPENDTOVAR], -+[ -+ for element in [$2]; do -+ haveit= -+ for x in $[$1]; do -+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) -+ if test "X$x" = "X$element"; then -+ haveit=yes -+ break -+ fi -+ done -+ if test -z "$haveit"; then -+ [$1]="${[$1]}${[$1]:+ }$element" -+ fi -+ done -+]) -+ -+dnl For those cases where a variable contains several -L and -l options -+dnl referring to unknown libraries and directories, this macro determines the -+dnl necessary additional linker options for the runtime path. -+dnl AC_LIB_LINKFLAGS_FROM_LIBS([LDADDVAR], [LIBSVALUE], [USE-LIBTOOL]) -+dnl sets LDADDVAR to linker options needed together with LIBSVALUE. -+dnl If USE-LIBTOOL evaluates to non-empty, linking with libtool is assumed, -+dnl otherwise linking without libtool is assumed. -+AC_DEFUN([AC_LIB_LINKFLAGS_FROM_LIBS], -+[ -+ AC_REQUIRE([AC_LIB_RPATH]) -+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) -+ $1= -+ if test "$enable_rpath" != no; then -+ if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then -+ dnl Use an explicit option to hardcode directories into the resulting -+ dnl binary. -+ rpathdirs= -+ next= -+ for opt in $2; do -+ if test -n "$next"; then -+ 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" \ -+ && test "X$dir" != "X/usr/$acl_libdirstem3"; then -+ rpathdirs="$rpathdirs $dir" -+ fi -+ next= -+ else -+ case $opt in -+ -L) next=yes ;; -+ -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" \ -+ && test "X$dir" != "X/usr/$acl_libdirstem3"; then -+ rpathdirs="$rpathdirs $dir" -+ fi -+ next= ;; -+ *) next= ;; -+ esac -+ fi -+ done -+ if test "X$rpathdirs" != "X"; then -+ if test -n ""$3""; then -+ dnl libtool is used for linking. Use -R options. -+ for dir in $rpathdirs; do -+ $1="${$1}${$1:+ }-R$dir" -+ done -+ else -+ dnl The linker is used for linking directly. -+ if test -n "$acl_hardcode_libdir_separator"; then -+ dnl Weird platform: only the last -rpath option counts, the user -+ dnl must pass all path elements in one option. -+ alldirs= -+ for dir in $rpathdirs; do -+ alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$dir" -+ done -+ acl_saved_libdir="$libdir" -+ libdir="$alldirs" -+ eval flag=\"$acl_hardcode_libdir_flag_spec\" -+ libdir="$acl_saved_libdir" -+ $1="$flag" -+ else -+ dnl The -rpath options are cumulative. -+ for dir in $rpathdirs; do -+ acl_saved_libdir="$libdir" -+ libdir="$dir" -+ eval flag=\"$acl_hardcode_libdir_flag_spec\" -+ libdir="$acl_saved_libdir" -+ $1="${$1}${$1:+ }$flag" -+ done -+ fi -+ fi -+ fi -+ fi -+ fi -+ AC_SUBST([$1]) -+]) -diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4 -new file mode 100644 -index 000000000..29283534f ---- /dev/null -+++ b/m4/lib-prefix.m4 -@@ -0,0 +1,334 @@ -+# lib-prefix.m4 -+# serial 23 -+dnl Copyright (C) 2001-2005, 2008-2025 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 This file is offered as-is, without any warranty. -+ -+dnl From Bruno Haible. -+ -+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 -+dnl with the same --prefix option. -+dnl This macro is not needed if only AC_LIB_LINKFLAGS is used to locate -+dnl libraries, but is otherwise very convenient. -+AC_DEFUN([AC_LIB_PREFIX], -+[ -+ AC_BEFORE([$0], [AC_LIB_LINKFLAGS]) -+ AC_REQUIRE([AC_PROG_CC]) -+ AC_REQUIRE([AC_CANONICAL_HOST]) -+ AC_REQUIRE([AC_LIB_PREPARE_MULTILIB]) -+ AC_REQUIRE([AC_LIB_PREPARE_PREFIX]) -+ dnl By default, look in $includedir and $libdir. -+ use_additional=yes -+ AC_LIB_WITH_FINAL_PREFIX([ -+ eval additional_includedir=\"$includedir\" -+ eval additional_libdir=\"$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 -+ else -+ if test "X$withval" = "X"; then -+ AC_LIB_WITH_FINAL_PREFIX([ -+ eval additional_includedir=\"$includedir\" -+ eval additional_libdir=\"$libdir\" -+ ]) -+ else -+ additional_includedir="$withval/include" -+ additional_libdir="$withval/$acl_libdirstem" -+ fi -+ fi -+]) -+ if test $use_additional = yes; then -+ dnl Potentially add $additional_includedir to $CPPFLAGS. -+ dnl But don't add it -+ dnl 1. if it's the standard /usr/include, -+ dnl 2. if it's already present in $CPPFLAGS, -+ dnl 3. if it's /usr/local/include and we are using GCC on Linux, -+ dnl 4. if it doesn't exist as a directory. -+ if test "X$additional_includedir" != "X/usr/include"; then -+ haveit= -+ for x in $CPPFLAGS; do -+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) -+ if test "X$x" = "X-I$additional_includedir"; then -+ haveit=yes -+ break -+ fi -+ done -+ if test -z "$haveit"; then -+ if test "X$additional_includedir" = "X/usr/local/include"; then -+ if test -n "$GCC"; then -+ case $host_os in -+ linux* | gnu* | k*bsd*-gnu) haveit=yes;; -+ esac -+ fi -+ fi -+ if test -z "$haveit"; then -+ if test -d "$additional_includedir"; then -+ dnl Really add $additional_includedir to $CPPFLAGS. -+ CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }-I$additional_includedir" -+ fi -+ fi -+ fi -+ fi -+ dnl Potentially add $additional_libdir to $LDFLAGS. -+ dnl But don't add it -+ dnl 1. if it's the standard /usr/lib, -+ dnl 2. if it's already present in $LDFLAGS, -+ dnl 3. if it's /usr/local/lib and we are using GCC on Linux, -+ dnl 4. if it doesn't exist as a directory. -+ if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then -+ haveit= -+ for x in $LDFLAGS; do -+ AC_LIB_WITH_FINAL_PREFIX([eval x=\"$x\"]) -+ if test "X$x" = "X-L$additional_libdir"; then -+ haveit=yes -+ break -+ fi -+ done -+ if test -z "$haveit"; then -+ if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then -+ if test -n "$GCC"; then -+ case $host_os in -+ linux*) haveit=yes;; -+ esac -+ fi -+ fi -+ if test -z "$haveit"; then -+ if test -d "$additional_libdir"; then -+ dnl Really add $additional_libdir to $LDFLAGS. -+ LDFLAGS="${LDFLAGS}${LDFLAGS:+ }-L$additional_libdir" -+ fi -+ fi -+ fi -+ fi -+ fi -+]) -+ -+dnl AC_LIB_PREPARE_PREFIX creates variables acl_final_prefix, -+dnl acl_final_exec_prefix, containing the values to which $prefix and -+dnl $exec_prefix will expand at the end of the configure script. -+AC_DEFUN([AC_LIB_PREPARE_PREFIX], -+[ -+ dnl Unfortunately, prefix and exec_prefix get only finally determined -+ dnl at the end of configure. -+ if test "X$prefix" = "XNONE"; then -+ acl_final_prefix="$ac_default_prefix" -+ else -+ acl_final_prefix="$prefix" -+ fi -+ if test "X$exec_prefix" = "XNONE"; then -+ acl_final_exec_prefix='${prefix}' -+ else -+ acl_final_exec_prefix="$exec_prefix" -+ fi -+ acl_saved_prefix="$prefix" -+ prefix="$acl_final_prefix" -+ eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" -+ prefix="$acl_saved_prefix" -+]) -+ -+dnl AC_LIB_WITH_FINAL_PREFIX([statement]) evaluates statement, with the -+dnl variables prefix and exec_prefix bound to the values they will have -+dnl at the end of the configure script. -+AC_DEFUN([AC_LIB_WITH_FINAL_PREFIX], -+[ -+ acl_saved_prefix="$prefix" -+ prefix="$acl_final_prefix" -+ acl_saved_exec_prefix="$exec_prefix" -+ exec_prefix="$acl_final_exec_prefix" -+ $1 -+ exec_prefix="$acl_saved_exec_prefix" -+ prefix="$acl_saved_prefix" -+]) -+ -+dnl AC_LIB_PREPARE_MULTILIB creates -+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, 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. 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]) -+ AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT]) -+ -+ AC_CACHE_CHECK([for ELF binary format], [gl_cv_elf], -+ [AC_EGREP_CPP([Extensible Linking Format], -+ [#if defined __ELF__ || (defined __linux__ && (defined __EDG__ || defined __SUNPRO_C)) -+ 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 . -+ 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 . -+ 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 -+ ;; -+ netbsd*) -+ dnl On NetBSD/sparc64, there is a 'sparc' subdirectory that contains -+ dnl 32-bit libraries. -+ if test $HOST_CPU_C_ABI_32BIT != no; then -+ case "$host_cpu" in -+ sparc*) acl_libdirstem2=lib/sparc ;; -+ 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_saved_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_saved_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/nls.m4 b/m4/nls.m4 -new file mode 100644 -index 000000000..c4601415b ---- /dev/null -+++ b/m4/nls.m4 -@@ -0,0 +1,33 @@ -+# nls.m4 -+# serial 6 (gettext-0.24) -+dnl Copyright (C) 1995-2025 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 This file is offered as-is, without any warranty. -+dnl -+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 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 , 1995-2000. -+dnl Bruno Haible , 2000-2003. -+ -+AC_PREREQ([2.50]) -+ -+AC_DEFUN([AM_NLS], -+[ -+ AC_MSG_CHECKING([whether NLS is requested]) -+ dnl Default is enabled NLS -+ AC_ARG_ENABLE([nls], -+ [ --disable-nls do not use Native Language Support], -+ USE_NLS=$enableval, USE_NLS=yes) -+ AC_MSG_RESULT([$USE_NLS]) -+ AC_SUBST([USE_NLS]) -+]) -diff --git a/m4/po.m4 b/m4/po.m4 -new file mode 100644 -index 000000000..73e0436bd ---- /dev/null -+++ b/m4/po.m4 -@@ -0,0 +1,157 @@ -+# po.m4 -+# serial 34 (gettext-0.24) -+dnl Copyright (C) 1995-2024 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 This file is offered as-is, without any warranty. -+dnl -+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 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 , 1995-2000. -+dnl Bruno Haible , 2000-2024. -+ -+AC_PREREQ([2.60]) -+ -+dnl Checks for all prerequisites of the po subdirectory. -+AC_DEFUN([AM_PO_SUBDIRS], -+[ -+ AC_REQUIRE([AC_PROG_MAKE_SET])dnl -+ AC_REQUIRE([AC_PROG_INSTALL])dnl -+ AC_REQUIRE([AC_PROG_MKDIR_P])dnl -+ AC_REQUIRE([AC_PROG_SED])dnl -+ AC_REQUIRE([AM_NLS])dnl -+ -+ 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.24]) -+ -+ dnl Perform the following tests also if --disable-nls has been given, -+ dnl because they are needed for "make dist" to work. -+ -+ dnl Search for GNU msgfmt in the PATH. -+ dnl The first test excludes Solaris msgfmt and early GNU msgfmt versions. -+ dnl The second test excludes FreeBSD msgfmt. -+ AM_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, -+ [$ac_dir/$ac_word --statistics /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && -+ (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], -+ :) -+ AC_PATH_PROG([GMSGFMT], [gmsgfmt], [$MSGFMT]) -+ -+ dnl Test whether it is GNU msgfmt >= 0.15. -+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 ;; -+ esac -+changequote([,])dnl -+ AC_SUBST([GMSGFMT_015]) -+ -+ dnl Search for GNU xgettext 0.12 or newer in the PATH. -+ dnl The first test excludes Solaris xgettext and early GNU xgettext versions. -+ dnl The second test excludes FreeBSD xgettext. -+ AM_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, -+ [$ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1 && -+ (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi)], -+ :) -+ dnl Remove leftover from FreeBSD xgettext call. -+ rm -f messages.po -+ -+ dnl Test whether it is GNU xgettext >= 0.15. -+changequote(,)dnl -+ case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in -+ '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; -+ *) XGETTEXT_015=$XGETTEXT ;; -+ esac -+changequote([,])dnl -+ AC_SUBST([XGETTEXT_015]) -+ -+ dnl Search for GNU msgmerge 0.11 or newer in the PATH. -+ AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, -+ [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) -+ -+ 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= -+ AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) -+ -+ if test -n "$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 -+ -+ dnl Capture the value of LINGUAS because we need it to compute CATALOGS. -+ dnl In the Makefile, call it DESIRED_LINGUAS (because there, LINGUAS denotes -+ dnl the set of available translations, given by the developer). -+ DESIRED_LINGUAS="${LINGUAS-\$(ALL_LINGUAS)}" -+ AC_SUBST([DESIRED_LINGUAS]) -+ -+ AC_CONFIG_COMMANDS([po-directories], [[ -+ for ac_file in $CONFIG_FILES; do -+ # Support "outfile[:infile[:infile...]]" -+ case "$ac_file" in -+ *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; -+ esac -+ # PO directories have a Makefile.in generated from Makefile.in.in. -+ case "$ac_file" in */Makefile.in) -+ # Adjust a relative srcdir. -+ ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` -+ ac_dir_suffix=/`echo "$ac_dir"|sed 's%^\./%%'` -+ ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` -+ # In autoconf-2.13 it is called $ac_given_srcdir. -+ # In autoconf-2.50 it is called $srcdir. -+ test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" -+ # Treat a directory as a PO directory if and only if it has a -+ # POTFILES.in file. This allows packages to have multiple PO -+ # directories under different names or in different locations. -+ if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then -+ test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" -+ cat "$ac_dir/Makefile.in" > "$ac_dir/Makefile" -+ fi -+ ;; -+ esac -+ done]], -+ []) -+]) -+ -+dnl Postprocesses a Makefile in a directory containing PO files. -+AC_DEFUN([AM_POSTPROCESS_PO_MAKEFILE], -+[ -+ sed -e 's,^#distdir:,distdir:,' < "$ac_file" > "$ac_file.tmp" -+ mv "$ac_file.tmp" "$ac_file" -+]) -+ -+dnl Initializes the accumulator used by AM_XGETTEXT_OPTION. -+AC_DEFUN([AM_XGETTEXT_OPTION_INIT], -+[ -+ XGETTEXT_EXTRA_OPTIONS= -+]) -+ -+dnl Registers an option to be passed to xgettext in the po subdirectory. -+AC_DEFUN([AM_XGETTEXT_OPTION], -+[ -+ AC_REQUIRE([AM_XGETTEXT_OPTION_INIT]) -+ XGETTEXT_EXTRA_OPTIONS="$XGETTEXT_EXTRA_OPTIONS $1" -+]) -diff --git a/m4/progtest.m4 b/m4/progtest.m4 -new file mode 100644 -index 000000000..2671eb856 ---- /dev/null -+++ b/m4/progtest.m4 -@@ -0,0 +1,93 @@ -+# progtest.m4 -+# serial 10 (gettext-0.24) -+dnl Copyright (C) 1996-2025 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 This file is offered as-is, without any warranty. -+dnl -+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 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 , 1996. -+ -+AC_PREREQ([2.53]) -+ -+# Search path for a program which passes the given test. -+ -+dnl AM_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, -+dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) -+AC_DEFUN([AM_PATH_PROG_WITH_TEST], -+[ -+# Prepare PATH_SEPARATOR. -+# The user is always right. -+if test "${PATH_SEPARATOR+set}" != set; then -+ # Determine PATH_SEPARATOR by trying to find /bin/sh in a PATH which -+ # contains only /bin. Note that ksh looks also at the FPATH variable, -+ # so we have to set that as well for the test. -+ PATH_SEPARATOR=: -+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ -+ && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 \ -+ || PATH_SEPARATOR=';' -+ } -+fi -+ -+# Find out how to test for executable files. Don't use a zero-byte file, -+# as systems may use methods other than mode bits to determine executability. -+cat >conf$$.file <<_ASEOF -+#! /bin/sh -+exit 0 -+_ASEOF -+chmod +x conf$$.file -+if test -x conf$$.file >/dev/null 2>&1; then -+ ac_executable_p="test -x" -+else -+ ac_executable_p="test -f" -+fi -+rm -f conf$$.file -+ -+# Extract the first word of "$2", so it can be a program name with args. -+set dummy $2; ac_word=[$]2 -+AC_MSG_CHECKING([for $ac_word]) -+AC_CACHE_VAL([ac_cv_path_$1], -+[case "[$]$1" in -+ [[\\/]]* | ?:[[\\/]]*) -+ ac_cv_path_$1="[$]$1" # Let the user override the test with a path. -+ ;; -+ *) -+ gt_saved_IFS="$IFS"; IFS=$PATH_SEPARATOR -+ for ac_dir in m4_if([$5], , $PATH, [$5]); do -+ IFS="$gt_saved_IFS" -+ test -z "$ac_dir" && ac_dir=. -+ for ac_exec_ext in '' $ac_executable_extensions; do -+ if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then -+ echo "$as_me: trying $ac_dir/$ac_word..." >&AS_MESSAGE_LOG_FD -+ if [$3]; then -+ ac_cv_path_$1="$ac_dir/$ac_word$ac_exec_ext" -+ break 2 -+ fi -+ fi -+ done -+ done -+ IFS="$gt_saved_IFS" -+dnl If no 4th arg is given, leave the cache variable unset, -+dnl so AC_PATH_PROGS will keep looking. -+m4_if([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" -+])dnl -+ ;; -+esac])dnl -+$1="$ac_cv_path_$1" -+if test m4_if([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then -+ AC_MSG_RESULT([$][$1]) -+else -+ AC_MSG_RESULT([no]) -+fi -+AC_SUBST([$1])dnl -+]) --- -2.47.1 - diff --git a/0003-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch b/0002-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch similarity index 97% rename from 0003-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch rename to 0002-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch index 37bd183..7fbe73d 100644 --- a/0003-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch +++ b/0002-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch @@ -1,4 +1,4 @@ -From 67bda9410ac10e83203e017a1a4873650dc4f232 Mon Sep 17 00:00:00 2001 +From dbda58cdce4de84e125131b7bbcfc4da76809e24 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 7 Jul 2015 09:28:03 -0400 Subject: [PATCH] RHEL: Reject use of libguestfs-winsupport features except for diff --git a/0004-RHEL-appliance-init-Run-depmod-a-to-rebuild-kernel-m.patch b/0003-RHEL-appliance-init-Run-depmod-a-to-rebuild-kernel-m.patch similarity index 90% rename from 0004-RHEL-appliance-init-Run-depmod-a-to-rebuild-kernel-m.patch rename to 0003-RHEL-appliance-init-Run-depmod-a-to-rebuild-kernel-m.patch index ee4a33f..870ed5e 100644 --- a/0004-RHEL-appliance-init-Run-depmod-a-to-rebuild-kernel-m.patch +++ b/0003-RHEL-appliance-init-Run-depmod-a-to-rebuild-kernel-m.patch @@ -1,4 +1,4 @@ -From 33529af903969a9957214e39bc6b1c78f02a7b98 Mon Sep 17 00:00:00 2001 +From d03f04787725666f2589a135b46cdcc1bcaf4ab5 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 13 May 2025 17:28:25 +0100 Subject: [PATCH] RHEL: appliance/init: Run depmod -a to rebuild kernel module diff --git a/libguestfs.spec b/libguestfs.spec index 5d5fb2c..cacef21 100644 --- a/libguestfs.spec +++ b/libguestfs.spec @@ -41,7 +41,7 @@ ExcludeArch: %{ix86} Summary: Access and modify virtual machine disk images Name: libguestfs Epoch: 1 -Version: 1.55.12 +Version: 1.55.13 Release: 1%{?dist} License: LGPL-2.1-or-later @@ -80,10 +80,9 @@ Source8: copy-patches.sh # https://github.com/libguestfs/libguestfs/commits/rhel-10.1 # Patches. -Patch0001: 0001-m4-Add-junk-required-to-make-AM_GNU_GETTEXT-work.patch -Patch0002: 0002-RHEL-Disable-unsupported-remote-drive-protocols-RHBZ.patch -Patch0003: 0003-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch -Patch0004: 0004-RHEL-appliance-init-Run-depmod-a-to-rebuild-kernel-m.patch +Patch0001: 0001-RHEL-Disable-unsupported-remote-drive-protocols-RHBZ.patch +Patch0002: 0002-RHEL-Reject-use-of-libguestfs-winsupport-features-ex.patch +Patch0003: 0003-RHEL-appliance-init-Run-depmod-a-to-rebuild-kernel-m.patch BuildRequires: autoconf, automake, libtool, gettext-devel @@ -1071,7 +1070,7 @@ rm ocaml/html/.gitignore %changelog -* Tue May 13 2025 Richard W.M. Jones - 1:1.55.12-1 +* Tue May 20 2025 Richard W.M. Jones - 1:1.55.13-1 - Rebase to libguestfs 1.55.12 resolves: RHEL-81733 - Include host kernel information in libguestfs debugging output @@ -1085,6 +1084,8 @@ rm ocaml/html/.gitignore resolves: RHEL-90170 - Add btrfs-scrub-full API resolves: RHEL-91936 +- Add e2fsck forceno flag + resolves: RHEL-92599 * Tue Nov 26 2024 Richard W.M. Jones - 1:1.54.0-5 - Rebase to libguestfs 1.54.0 diff --git a/sources b/sources index 31a585f..e17c099 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (libguestfs-1.55.12.tar.gz) = 87f7c209e5b5787c212746a1fb434342b75b9dd80dd4fc01b53877150f7d194d3d856b0acac0606236029601b595e2c0db8af582b00364cf162e91394c74be10 -SHA512 (libguestfs-1.55.12.tar.gz.sig) = 177730330cf94cf2a3d17fee3427482b2206d824f24928d4a5fa4bf0ef3248f319d648a17fa337f23af7b9c39b62b86eab6d0465454efda7b3c6e5a306a74c99 +SHA512 (libguestfs-1.55.13.tar.gz) = 7f66969e3217426ecf9155777f1b07512db289e0661c2736837c6ea25c9fb6db26854d9e0e1d1306007b8a70b6ccd96de55869db370c356106760437457eb422 +SHA512 (libguestfs-1.55.13.tar.gz.sig) = 8b7dd0daf6ca026d1d0796a2c4102248298e54ea841f2a6ca3b6f1eb314b7160732261e9d25f6c3be08090878a3c76ec24c9954be0517b477a98fac2a7fc3daf