diff -pruN 1:5.1-2/Makefile.am 1:5.2-1/Makefile.am
--- 1:5.1-2/Makefile.am	2024-10-29 15:47:59.916638138 +0000
+++ 1:5.2-1/Makefile.am	2025-07-07 14:30:52.966227001 +0000
@@ -34,6 +34,9 @@ CLEANFILES = $(bin_SCRIPTS)
 do_subst = ($(SED) -e 's,[@]PACKAGE[@],$(PACKAGE),g' \
 		   -e 's,[@]VERSION[@],$(VERSION),g' \
 		   -e 's,[@]READELF[@],$(READELF),g' \
+		   -e 's,[@]OBJCOPY[@],$(OBJCOPY),g' \
+		   -e 's,[@]NM[@],$(NM),g' \
+		   -e 's,[@]AR[@],$(AR),g' \
 		   -e 's,[@]DWZ_J[@],$(DWZ_J),g')
 
 find-debuginfo: $(top_srcdir)/scripts/find-debuginfo.in Makefile
@@ -42,8 +45,8 @@ find-debuginfo: $(top_srcdir)/scripts/fi
 
 debugedit_SOURCES = tools/debugedit.c \
 		    tools/hashtab.c 
-debugedit_CFLAGS = @LIBELF_CFLAGS@ @LIBDW_CFLAGS@ $(AM_CFLAGS)
-debugedit_LDADD = @LIBELF_LIBS@ @LIBDW_LIBS@
+debugedit_CFLAGS = @LIBELF_CFLAGS@ @LIBDW_CFLAGS@ @XXHASH_CFLAGS@ $(AM_CFLAGS)
+debugedit_LDADD = @LIBELF_LIBS@ @LIBDW_LIBS@ @XXHASH_LIBS@
 
 sepdebugcrcfix_SOURCES = tools/sepdebugcrcfix.c
 sepdebugcrcfix_CFLAGS = @LIBELF_CFLAGS@ $(AM_CFLAGS)
diff -pruN 1:5.1-2/Makefile.in 1:5.2-1/Makefile.in
--- 1:5.1-2/Makefile.in	2024-10-29 15:48:02.130643040 +0000
+++ 1:5.2-1/Makefile.in	2025-07-07 14:30:55.242324244 +0000
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.5 from Makefile.am.
+# Makefile.in generated by automake 1.17 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+# Copyright (C) 1994-2024 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -72,6 +72,8 @@ am__make_running_with_option = \
   test $$has_opt = yes
 am__make_dryrun = (target_option=n; $(am__make_running_with_option))
 am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+am__rm_f = rm -f $(am__rm_f_notfound)
+am__rm_rf = rm -rf $(am__rm_f_notfound)
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -142,10 +144,9 @@ am__base_list = \
   sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
   sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
 am__uninstall_files_from_dir = { \
-  test -z "$$files" \
-    || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
-    || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
-         $(am__cd) "$$dir" && rm -f $$files; }; \
+  { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
+  || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
+       $(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \
   }
 SCRIPTS = $(bin_SCRIPTS)
 AM_V_P = $(am__v_P_@AM_V@)
@@ -237,8 +238,8 @@ distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
 am__remove_distdir = \
   if test -d "$(distdir)"; then \
-    find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
-      && rm -rf "$(distdir)" \
+    find "$(distdir)" -type d ! -perm -700 -exec chmod u+rwx {} ';' \
+      ; rm -rf "$(distdir)" \
       || { sleep 5 && rm -rf "$(distdir)"; }; \
   else :; fi
 am__post_remove_distdir = $(am__remove_distdir)
@@ -267,7 +268,7 @@ am__relativize = \
     dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
   done; \
   reldir="$$dir2"
-GZIP_ENV = --best
+GZIP_ENV = -9
 DIST_ARCHIVES = $(distdir).tar.xz
 DIST_TARGETS = dist-xz
 # Exists only to be overridden by the user if desired.
@@ -275,11 +276,14 @@ AM_DISTCHECK_DVI_TARGET = dvi
 distuninstallcheck_listfiles = find . -type f -print
 am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
   | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
-distcleancheck_listfiles = find . -type f -print
+distcleancheck_listfiles = \
+  find . \( -type f -a \! \
+            \( -name .nfs* -o -name .smb* -o -name .__afs* \) \) -print
 ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
 AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOM4TE = @AUTOM4TE@
@@ -295,6 +299,7 @@ CYGPATH_W = @CYGPATH_W@
 DEBUG_MACRO_FLAG = @DEBUG_MACRO_FLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DWARF_5_DEBUGADDR = @DWARF_5_DEBUGADDR@
 DWARF_5_DEBUGLINE = @DWARF_5_DEBUGLINE@
 DWZ = @DWZ@
 DWZ_J = @DWZ_J@
@@ -324,6 +329,8 @@ LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
+NM = @NM@
+OBJCOPY = @OBJCOPY@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -353,8 +360,10 @@ ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
+am__rm_f_notfound = @am__rm_f_notfound@
 am__tar = @am__tar@
 am__untar = @am__untar@
+am__xargs_n = @am__xargs_n@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -412,13 +421,16 @@ CLEANFILES = $(bin_SCRIPTS)
 do_subst = ($(SED) -e 's,[@]PACKAGE[@],$(PACKAGE),g' \
 		   -e 's,[@]VERSION[@],$(VERSION),g' \
 		   -e 's,[@]READELF[@],$(READELF),g' \
+		   -e 's,[@]OBJCOPY[@],$(OBJCOPY),g' \
+		   -e 's,[@]NM[@],$(NM),g' \
+		   -e 's,[@]AR[@],$(AR),g' \
 		   -e 's,[@]DWZ_J[@],$(DWZ_J),g')
 
 debugedit_SOURCES = tools/debugedit.c \
 		    tools/hashtab.c 
 
-debugedit_CFLAGS = @LIBELF_CFLAGS@ @LIBDW_CFLAGS@ $(AM_CFLAGS)
-debugedit_LDADD = @LIBELF_LIBS@ @LIBDW_LIBS@
+debugedit_CFLAGS = @LIBELF_CFLAGS@ @LIBDW_CFLAGS@ @XXHASH_CFLAGS@ $(AM_CFLAGS)
+debugedit_LDADD = @LIBELF_LIBS@ @LIBDW_LIBS@ @XXHASH_LIBS@
 sepdebugcrcfix_SOURCES = tools/sepdebugcrcfix.c
 sepdebugcrcfix_CFLAGS = @LIBELF_CFLAGS@ $(AM_CFLAGS)
 sepdebugcrcfix_LDADD = @LIBELF_LIBS@
@@ -473,12 +485,12 @@ config.h: stamp-h1
 	@test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1
 
 stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
-	@rm -f stamp-h1
-	cd $(top_builddir) && $(SHELL) ./config.status config.h
+	$(AM_V_at)rm -f stamp-h1
+	$(AM_V_GEN)cd $(top_builddir) && $(SHELL) ./config.status config.h
 $(srcdir)/config.h.in:  $(am__configure_deps) 
-	($(am__cd) $(top_srcdir) && $(AUTOHEADER))
-	rm -f stamp-h1
-	touch $@
+	$(AM_V_GEN)($(am__cd) $(top_srcdir) && $(AUTOHEADER))
+	$(AM_V_at)rm -f stamp-h1
+	$(AM_V_at)touch $@
 
 distclean-hdr:
 	-rm -f config.h stamp-h1
@@ -520,10 +532,10 @@ uninstall-binPROGRAMS:
 	`; \
 	test -n "$$list" || exit 0; \
 	echo " ( cd '$(DESTDIR)$(bindir)' && rm -f" $$files ")"; \
-	cd "$(DESTDIR)$(bindir)" && rm -f $$files
+	cd "$(DESTDIR)$(bindir)" && $(am__rm_f) $$files
 
 clean-binPROGRAMS:
-	-test -z "$(bin_PROGRAMS)" || rm -f $(bin_PROGRAMS)
+	-$(am__rm_f) $(bin_PROGRAMS)
 
 installcheck-binPROGRAMS: $(bin_PROGRAMS)
 	bad=0; pid=$$$$; list="$(bin_PROGRAMS)"; for p in $$list; do \
@@ -542,10 +554,10 @@ installcheck-binPROGRAMS: $(bin_PROGRAMS
 	done; rm -f c$${pid}_.???; exit $$bad
 tools/$(am__dirstamp):
 	@$(MKDIR_P) tools
-	@: > tools/$(am__dirstamp)
+	@: >>tools/$(am__dirstamp)
 tools/$(DEPDIR)/$(am__dirstamp):
 	@$(MKDIR_P) tools/$(DEPDIR)
-	@: > tools/$(DEPDIR)/$(am__dirstamp)
+	@: >>tools/$(DEPDIR)/$(am__dirstamp)
 tools/debugedit-debugedit.$(OBJEXT): tools/$(am__dirstamp) \
 	tools/$(DEPDIR)/$(am__dirstamp)
 tools/debugedit-hashtab.$(OBJEXT): tools/$(am__dirstamp) \
@@ -624,7 +636,7 @@ distclean-compile:
 
 $(am__depfiles_remade):
 	@$(MKDIR_P) $(@D)
-	@echo '# dummy' >$@-t && $(am__mv) $@-t $@
+	@: >>$@
 
 am--depfiles: $(am__depfiles_remade)
 
@@ -839,7 +851,7 @@ distdir: $(BUILT_SOURCES)
 
 distdir-am: $(DISTFILES)
 	$(am__remove_distdir)
-	test -d "$(distdir)" || mkdir "$(distdir)"
+	$(AM_V_at)$(MKDIR_P) "$(distdir)"
 	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
 	list='$(DISTFILES)'; \
@@ -949,7 +961,7 @@ dist dist-all:
 distcheck: dist
 	case '$(DIST_ARCHIVES)' in \
 	*.tar.gz*) \
-	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
+	  eval GZIP= gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
 	*.tar.bz2*) \
 	  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
 	*.tar.lz*) \
@@ -959,7 +971,7 @@ distcheck: dist
 	*.tar.Z*) \
 	  uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
 	*.shar.gz*) \
-	  eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
+	  eval GZIP= gzip -dc $(distdir).shar.gz | unshar ;;\
 	*.zip*) \
 	  unzip $(distdir).zip ;;\
 	*.tar.zst*) \
@@ -1060,13 +1072,13 @@ install-strip:
 mostlyclean-generic:
 
 clean-generic:
-	-test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
+	-$(am__rm_f) $(CLEANFILES)
 
 distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-	-rm -f tools/$(DEPDIR)/$(am__dirstamp)
-	-rm -f tools/$(am__dirstamp)
+	-$(am__rm_f) $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES)
+	-$(am__rm_f) tools/$(DEPDIR)/$(am__dirstamp)
+	-$(am__rm_f) tools/$(am__dirstamp)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
@@ -1077,7 +1089,7 @@ clean-am: clean-binPROGRAMS clean-generi
 
 distclean: distclean-recursive
 	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-		-rm -f tools/$(DEPDIR)/debugedit-debugedit.Po
+	-rm -f tools/$(DEPDIR)/debugedit-debugedit.Po
 	-rm -f tools/$(DEPDIR)/debugedit-hashtab.Po
 	-rm -f tools/$(DEPDIR)/sepdebugcrcfix-sepdebugcrcfix.Po
 	-rm -f Makefile
@@ -1127,7 +1139,7 @@ installcheck-am: installcheck-binPROGRAM
 maintainer-clean: maintainer-clean-recursive
 	-rm -f $(am__CONFIG_DISTCLEAN_FILES)
 	-rm -rf $(top_srcdir)/autom4te.cache
-		-rm -f tools/$(DEPDIR)/debugedit-debugedit.Po
+	-rm -f tools/$(DEPDIR)/debugedit-debugedit.Po
 	-rm -f tools/$(DEPDIR)/debugedit-hashtab.Po
 	-rm -f tools/$(DEPDIR)/sepdebugcrcfix-sepdebugcrcfix.Po
 	-rm -f Makefile
@@ -1212,3 +1224,10 @@ find-debuginfo.1: $(top_srcdir)/scripts/
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
+
+# Tell GNU make to disable its built-in pattern rules.
+%:: %,v
+%:: RCS/%,v
+%:: RCS/%
+%:: s.%
+%:: SCCS/s.%
diff -pruN 1:5.1-2/aclocal.m4 1:5.2-1/aclocal.m4
--- 1:5.1-2/aclocal.m4	2024-10-29 15:48:01.230641047 +0000
+++ 1:5.2-1/aclocal.m4	2025-07-07 14:30:54.336104821 +0000
@@ -1,6 +1,6 @@
-# generated automatically by aclocal 1.16.5 -*- Autoconf -*-
+# generated automatically by aclocal 1.17 -*- Autoconf -*-
 
-# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+# Copyright (C) 1996-2024 Free Software Foundation, Inc.
 
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -14,8 +14,8 @@
 m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])])
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
-m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],,
-[m4_warning([this file was generated for autoconf 2.71.
+m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.72],,
+[m4_warning([this file was generated for autoconf 2.72.
 You have another version of autoconf.  It may work, but is not guaranteed to.
 If you have problems, you may need to regenerate the build system entirely.
 To do so, use the procedure documented by the package, typically 'autoreconf'.])])
@@ -68,8 +68,8 @@ m4_if(m4_version_compare(PKG_MACROS_VERS
     [m4_fatal([pkg.m4 version $1 or higher is required but ]PKG_MACROS_VERSION[ found])])
 ])dnl PKG_PREREQ
 
-dnl PKG_PROG_PKG_CONFIG([MIN-VERSION])
-dnl ----------------------------------
+dnl PKG_PROG_PKG_CONFIG([MIN-VERSION], [ACTION-IF-NOT-FOUND])
+dnl ---------------------------------------------------------
 dnl Since: 0.16
 dnl
 dnl Search for the pkg-config tool and set the PKG_CONFIG variable to
@@ -77,6 +77,12 @@ dnl first found in the path. Checks that
 dnl is at least MIN-VERSION. If MIN-VERSION is not specified, 0.9.0 is
 dnl used since that's the first version where most current features of
 dnl pkg-config existed.
+dnl
+dnl If pkg-config is not found or older than specified, it will result
+dnl in an empty PKG_CONFIG variable. To avoid widespread issues with
+dnl scripts not checking it, ACTION-IF-NOT-FOUND defaults to aborting.
+dnl You can specify [PKG_CONFIG=false] as an action instead, which would
+dnl result in pkg-config tests failing, but no bogus error messages.
 AC_DEFUN([PKG_PROG_PKG_CONFIG],
 [m4_pattern_forbid([^_?PKG_[A-Z_]+$])
 m4_pattern_allow([^PKG_CONFIG(_(PATH|LIBDIR|SYSROOT_DIR|ALLOW_SYSTEM_(CFLAGS|LIBS)))?$])
@@ -97,6 +103,9 @@ if test -n "$PKG_CONFIG"; then
 		AC_MSG_RESULT([no])
 		PKG_CONFIG=""
 	fi
+fi
+if test -z "$PKG_CONFIG"; then
+	m4_default([$2], [AC_MSG_ERROR([pkg-config not found])])
 fi[]dnl
 ])dnl PKG_PROG_PKG_CONFIG
 
@@ -364,7 +373,7 @@ AS_IF([test "$AS_TR_SH([with_]m4_tolower
         [AC_DEFINE([HAVE_][$1], 1, [Enable ]m4_tolower([$1])[ support])])
 ])dnl PKG_HAVE_DEFINE_WITH_MODULES
 
-# Copyright (C) 2002-2021 Free Software Foundation, Inc.
+# Copyright (C) 2002-2024 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -376,10 +385,10 @@ AS_IF([test "$AS_TR_SH([with_]m4_tolower
 # generated from the m4 files accompanying Automake X.Y.
 # (This private macro should not be called outside this file.)
 AC_DEFUN([AM_AUTOMAKE_VERSION],
-[am__api_version='1.16'
+[am__api_version='1.17'
 dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to
 dnl require some minimum version.  Point them to the right macro.
-m4_if([$1], [1.16.5], [],
+m4_if([$1], [1.17], [],
       [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl
 ])
 
@@ -395,14 +404,14 @@ m4_define([_AM_AUTOCONF_VERSION], [])
 # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced.
 # This function is AC_REQUIREd by AM_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-[AM_AUTOMAKE_VERSION([1.16.5])dnl
+[AM_AUTOMAKE_VERSION([1.17])dnl
 m4_ifndef([AC_AUTOCONF_VERSION],
   [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
 _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))])
 
 # AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
 
-# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+# Copyright (C) 2001-2024 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -454,7 +463,7 @@ am_aux_dir=`cd "$ac_aux_dir" && pwd`
 
 # AM_CONDITIONAL                                            -*- Autoconf -*-
 
-# Copyright (C) 1997-2021 Free Software Foundation, Inc.
+# Copyright (C) 1997-2024 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -485,7 +494,7 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
-# Copyright (C) 1999-2021 Free Software Foundation, Inc.
+# Copyright (C) 1999-2024 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -617,7 +626,7 @@ AC_CACHE_CHECK([dependency style of $dep
       # icc doesn't choke on unknown options, it will just issue warnings
       # or remarks (even with -Werror).  So we grep stderr for any message
       # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      # When given -MP, icc 7.0 and 7.1 complain thus:
       #   icc: Command line warning: ignoring option '-M'; no argument required
       # The diagnosis changed in icc 8.0:
       #   icc: Command line remark: option '-MP' not supported
@@ -676,7 +685,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl
 
 # Generate code to set up dependency tracking.              -*- Autoconf -*-
 
-# Copyright (C) 1999-2021 Free Software Foundation, Inc.
+# Copyright (C) 1999-2024 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -744,7 +753,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS]
 
 # Do all the work for Automake.                             -*- Autoconf -*-
 
-# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+# Copyright (C) 1996-2024 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -878,7 +887,7 @@ if test -z "$CSCOPE"; then
 fi
 AC_SUBST([CSCOPE])
 
-AC_REQUIRE([AM_SILENT_RULES])dnl
+AC_REQUIRE([_AM_SILENT_RULES])dnl
 dnl The testsuite driver may need to know about EXEEXT, so add the
 dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen.  This
 dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below.
@@ -886,47 +895,9 @@ AC_CONFIG_COMMANDS_PRE(dnl
 [m4_provide_if([_AM_COMPILER_EXEEXT],
   [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl
 
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes.  So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
-  cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present.  This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake@gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message.  This
-can help us improve future automake versions.
-
-END
-  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
-    echo 'Configuration will proceed anyway, since you have set the' >&2
-    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
-    echo >&2
-  else
-    cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
-
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <https://www.gnu.org/software/coreutils/>.
+AC_REQUIRE([_AM_PROG_RM_F])
+AC_REQUIRE([_AM_PROG_XARGS_N])
 
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
-
-END
-    AC_MSG_ERROR([Your 'rm' program is bad, sorry.])
-  fi
-fi
 dnl The trailing newline in this macro's definition is deliberate, for
 dnl backward compatibility and to allow trailing 'dnl'-style comments
 dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841.
@@ -959,7 +930,7 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+# Copyright (C) 2001-2024 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -980,7 +951,7 @@ if test x"${install_sh+set}" != xset; th
 fi
 AC_SUBST([install_sh])])
 
-# Copyright (C) 2003-2021 Free Software Foundation, Inc.
+# Copyright (C) 2003-2024 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1001,7 +972,7 @@ AC_SUBST([am__leading_dot])])
 
 # Check to see how 'make' treats includes.	            -*- Autoconf -*-
 
-# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+# Copyright (C) 2001-2024 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1044,7 +1015,7 @@ AC_SUBST([am__quote])])
 
 # Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
 
-# Copyright (C) 1997-2021 Free Software Foundation, Inc.
+# Copyright (C) 1997-2024 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1078,7 +1049,7 @@ fi
 
 # Helper functions for option handling.                     -*- Autoconf -*-
 
-# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+# Copyright (C) 2001-2024 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1107,7 +1078,7 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Copyright (C) 1999-2021 Free Software Foundation, Inc.
+# Copyright (C) 1999-2024 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1154,7 +1125,23 @@ AC_LANG_POP([C])])
 # For backward compatibility.
 AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])])
 
-# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+#
+# 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.
+
+# _AM_PROG_RM_F
+# ---------------
+# Check whether 'rm -f' without any arguments works.
+# https://bugs.gnu.org/10828
+AC_DEFUN([_AM_PROG_RM_F],
+[am__rm_f_notfound=
+AS_IF([(rm -f && rm -fr && rm -rf) 2>/dev/null], [], [am__rm_f_notfound='""'])
+AC_SUBST(am__rm_f_notfound)
+])
+
+# Copyright (C) 2001-2024 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1173,16 +1160,169 @@ AC_DEFUN([AM_RUN_LOG],
 
 # Check to make sure that the build environment is sane.    -*- Autoconf -*-
 
-# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+# Copyright (C) 1996-2024 Free Software Foundation, Inc.
 #
 # 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.
 
+# _AM_SLEEP_FRACTIONAL_SECONDS
+# ----------------------------
+AC_DEFUN([_AM_SLEEP_FRACTIONAL_SECONDS], [dnl
+AC_CACHE_CHECK([whether sleep supports fractional seconds],
+               am_cv_sleep_fractional_seconds, [dnl
+AS_IF([sleep 0.001 2>/dev/null], [am_cv_sleep_fractional_seconds=yes],
+                                 [am_cv_sleep_fractional_seconds=no])
+])])
+
+# _AM_FILESYSTEM_TIMESTAMP_RESOLUTION
+# -----------------------------------
+# Determine the filesystem's resolution for file modification
+# timestamps.  The coarsest we know of is FAT, with a resolution
+# of only two seconds, even with the most recent "exFAT" extensions.
+# The finest (e.g. ext4 with large inodes, XFS, ZFS) is one
+# nanosecond, matching clock_gettime.  However, it is probably not
+# possible to delay execution of a shell script for less than one
+# millisecond, due to process creation overhead and scheduling
+# granularity, so we don't check for anything finer than that. (See below.)
+AC_DEFUN([_AM_FILESYSTEM_TIMESTAMP_RESOLUTION], [dnl
+AC_REQUIRE([_AM_SLEEP_FRACTIONAL_SECONDS])
+AC_CACHE_CHECK([filesystem timestamp resolution],
+               am_cv_filesystem_timestamp_resolution, [dnl
+# Default to the worst case.
+am_cv_filesystem_timestamp_resolution=2
+
+# Only try to go finer than 1 sec if sleep can do it.
+# Don't try 1 sec, because if 0.01 sec and 0.1 sec don't work,
+# - 1 sec is not much of a win compared to 2 sec, and
+# - it takes 2 seconds to perform the test whether 1 sec works.
+# 
+# Instead, just use the default 2s on platforms that have 1s resolution,
+# accept the extra 1s delay when using $sleep in the Automake tests, in
+# exchange for not incurring the 2s delay for running the test for all
+# packages.
+#
+am_try_resolutions=
+if test "$am_cv_sleep_fractional_seconds" = yes; then
+  # Even a millisecond often causes a bunch of false positives,
+  # so just try a hundredth of a second. The time saved between .001 and
+  # .01 is not terribly consequential.
+  am_try_resolutions="0.01 0.1 $am_try_resolutions"
+fi
+
+# In order to catch current-generation FAT out, we must *modify* files
+# that already exist; the *creation* timestamp is finer.  Use names
+# that make ls -t sort them differently when they have equal
+# timestamps than when they have distinct timestamps, keeping
+# in mind that ls -t prints the *newest* file first.
+rm -f conftest.ts?
+: > conftest.ts1
+: > conftest.ts2
+: > conftest.ts3
+
+# Make sure ls -t actually works.  Do 'set' in a subshell so we don't
+# clobber the current shell's arguments. (Outer-level square brackets
+# are removed by m4; they're present so that m4 does not expand
+# <dollar><star>; be careful, easy to get confused.)
+if (
+     set X `[ls -t conftest.ts[12]]` &&
+     {
+       test "$[]*" != "X conftest.ts1 conftest.ts2" ||
+       test "$[]*" != "X conftest.ts2 conftest.ts1";
+     }
+); then :; else
+  # If neither matched, then we have a broken ls.  This can happen
+  # if, for instance, CONFIG_SHELL is bash and it inherits a
+  # broken ls alias from the environment.  This has actually
+  # happened.  Such a system could not be considered "sane".
+  _AS_ECHO_UNQUOTED(
+    ["Bad output from ls -t: \"`[ls -t conftest.ts[12]]`\""],
+    [AS_MESSAGE_LOG_FD])
+  AC_MSG_FAILURE([ls -t produces unexpected output.
+Make sure there is not a broken ls alias in your environment.])
+fi
+
+for am_try_res in $am_try_resolutions; do
+  # Any one fine-grained sleep might happen to cross the boundary
+  # between two values of a coarser actual resolution, but if we do
+  # two fine-grained sleeps in a row, at least one of them will fall
+  # entirely within a coarse interval.
+  echo alpha > conftest.ts1
+  sleep $am_try_res
+  echo beta > conftest.ts2
+  sleep $am_try_res
+  echo gamma > conftest.ts3
+
+  # We assume that 'ls -t' will make use of high-resolution
+  # timestamps if the operating system supports them at all.
+  if (set X `ls -t conftest.ts?` &&
+      test "$[]2" = conftest.ts3 &&
+      test "$[]3" = conftest.ts2 &&
+      test "$[]4" = conftest.ts1); then
+    #
+    # Ok, ls -t worked. If we're at a resolution of 1 second, we're done,
+    # because we don't need to test make.
+    make_ok=true
+    if test $am_try_res != 1; then
+      # But if we've succeeded so far with a subsecond resolution, we
+      # have one more thing to check: make. It can happen that
+      # everything else supports the subsecond mtimes, but make doesn't;
+      # notably on macOS, which ships make 3.81 from 2006 (the last one
+      # released under GPLv2). https://bugs.gnu.org/68808
+      # 
+      # We test $MAKE if it is defined in the environment, else "make".
+      # It might get overridden later, but our hope is that in practice
+      # it does not matter: it is the system "make" which is (by far)
+      # the most likely to be broken, whereas if the user overrides it,
+      # probably they did so with a better, or at least not worse, make.
+      # https://lists.gnu.org/archive/html/automake/2024-06/msg00051.html
+      #
+      # Create a Makefile (real tab character here):
+      rm -f conftest.mk
+      echo 'conftest.ts1: conftest.ts2' >conftest.mk
+      echo '	touch conftest.ts2' >>conftest.mk
+      #
+      # Now, running
+      #   touch conftest.ts1; touch conftest.ts2; make
+      # should touch ts1 because ts2 is newer. This could happen by luck,
+      # but most often, it will fail if make's support is insufficient. So
+      # test for several consecutive successes.
+      #
+      # (We reuse conftest.ts[12] because we still want to modify existing
+      # files, not create new ones, per above.)
+      n=0
+      make=${MAKE-make}
+      until test $n -eq 3; do
+        echo one > conftest.ts1
+        sleep $am_try_res
+        echo two > conftest.ts2 # ts2 should now be newer than ts1
+        if $make -f conftest.mk | grep 'up to date' >/dev/null; then
+          make_ok=false
+          break # out of $n loop
+        fi
+        n=`expr $n + 1`
+      done
+    fi
+    #
+    if $make_ok; then
+      # Everything we know to check worked out, so call this resolution good.
+      am_cv_filesystem_timestamp_resolution=$am_try_res
+      break # out of $am_try_res loop
+    fi
+    # Otherwise, we'll go on to check the next resolution.
+  fi
+done
+rm -f conftest.ts?
+# (end _am_filesystem_timestamp_resolution)
+])])
+
 # AM_SANITY_CHECK
 # ---------------
 AC_DEFUN([AM_SANITY_CHECK],
-[AC_MSG_CHECKING([whether build environment is sane])
+[AC_REQUIRE([_AM_FILESYSTEM_TIMESTAMP_RESOLUTION])
+# This check should not be cached, as it may vary across builds of
+# different projects.
+AC_MSG_CHECKING([whether build environment is sane])
 # Reject unsafe characters in $srcdir or the absolute working directory
 # name.  Accept space and tab only in the latter.
 am_lf='
@@ -1201,49 +1341,40 @@ esac
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
-if (
-   am_has_slept=no
-   for am_try in 1 2; do
-     echo "timestamp, slept: $am_has_slept" > conftest.file
-     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-     if test "$[*]" = "X"; then
-	# -L didn't work.
-	set X `ls -t "$srcdir/configure" conftest.file`
-     fi
-     if test "$[*]" != "X $srcdir/configure conftest.file" \
-	&& test "$[*]" != "X conftest.file $srcdir/configure"; then
-
-	# If neither matched, then we have a broken ls.  This can happen
-	# if, for instance, CONFIG_SHELL is bash and it inherits a
-	# broken ls alias from the environment.  This has actually
-	# happened.  Such a system could not be considered "sane".
-	AC_MSG_ERROR([ls -t appears to fail.  Make sure there is not a broken
-  alias in your environment])
-     fi
-     if test "$[2]" = conftest.file || test $am_try -eq 2; then
-       break
-     fi
-     # Just in case.
-     sleep 1
-     am_has_slept=yes
-   done
-   test "$[2]" = conftest.file
-   )
-then
-   # Ok.
-   :
-else
-   AC_MSG_ERROR([newly created file is older than distributed files!
+am_build_env_is_sane=no
+am_has_slept=no
+rm -f conftest.file
+for am_try in 1 2; do
+  echo "timestamp, slept: $am_has_slept" > conftest.file
+  if (
+    set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+    if test "$[]*" = "X"; then
+      # -L didn't work.
+      set X `ls -t "$srcdir/configure" conftest.file`
+    fi
+    test "$[]2" = conftest.file
+  ); then
+    am_build_env_is_sane=yes
+    break
+  fi
+  # Just in case.
+  sleep "$am_cv_filesystem_timestamp_resolution"
+  am_has_slept=yes
+done
+
+AC_MSG_RESULT([$am_build_env_is_sane])
+if test "$am_build_env_is_sane" = no; then
+  AC_MSG_ERROR([newly created file is older than distributed files!
 Check your system clock])
 fi
-AC_MSG_RESULT([yes])
+
 # If we didn't sleep, we still need to ensure time stamps of config.status and
 # generated files are strictly newer.
 am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
-  ( sleep 1 ) &
+AS_IF([test -e conftest.file || grep 'slept: no' conftest.file >/dev/null 2>&1],, [dnl
+  ( sleep "$am_cv_filesystem_timestamp_resolution" ) &
   am_sleep_pid=$!
-fi
+])
 AC_CONFIG_COMMANDS_PRE(
   [AC_MSG_CHECKING([that generated files are newer than configure])
    if test -n "$am_sleep_pid"; then
@@ -1254,18 +1385,18 @@ AC_CONFIG_COMMANDS_PRE(
 rm -f conftest.file
 ])
 
-# Copyright (C) 2009-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2024 Free Software Foundation, Inc.
 #
 # 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.
 
-# AM_SILENT_RULES([DEFAULT])
-# --------------------------
-# Enable less verbose build rules; with the default set to DEFAULT
-# ("yes" being less verbose, "no" or empty being verbose).
-AC_DEFUN([AM_SILENT_RULES],
-[AC_ARG_ENABLE([silent-rules], [dnl
+# _AM_SILENT_RULES
+# ----------------
+# Enable less verbose build rules support.
+AC_DEFUN([_AM_SILENT_RULES],
+[AM_DEFAULT_VERBOSITY=1
+AC_ARG_ENABLE([silent-rules], [dnl
 AS_HELP_STRING(
   [--enable-silent-rules],
   [less verbose build output (undo: "make V=1")])
@@ -1273,11 +1404,6 @@ AS_HELP_STRING(
   [--disable-silent-rules],
   [verbose build output (undo: "make V=0")])dnl
 ])
-case $enable_silent_rules in @%:@ (((
-  yes) AM_DEFAULT_VERBOSITY=0;;
-   no) AM_DEFAULT_VERBOSITY=1;;
-    *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);;
-esac
 dnl
 dnl A few 'make' implementations (e.g., NonStop OS and NextStep)
 dnl do not support nested variable expansions.
@@ -1296,14 +1422,6 @@ am__doit:
 else
   am_cv_make_support_nested_variables=no
 fi])
-if test $am_cv_make_support_nested_variables = yes; then
-  dnl Using '$V' instead of '$(V)' breaks IRIX make.
-  AM_V='$(V)'
-  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
-  AM_V=$AM_DEFAULT_VERBOSITY
-  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
 AC_SUBST([AM_V])dnl
 AM_SUBST_NOTMAKE([AM_V])dnl
 AC_SUBST([AM_DEFAULT_V])dnl
@@ -1312,9 +1430,33 @@ AC_SUBST([AM_DEFAULT_VERBOSITY])dnl
 AM_BACKSLASH='\'
 AC_SUBST([AM_BACKSLASH])dnl
 _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl
+dnl Delay evaluation of AM_DEFAULT_VERBOSITY to the end to allow multiple calls
+dnl to AM_SILENT_RULES to change the default value.
+AC_CONFIG_COMMANDS_PRE([dnl
+case $enable_silent_rules in @%:@ (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+esac
+if test $am_cv_make_support_nested_variables = yes; then
+  dnl Using '$V' instead of '$(V)' breaks IRIX make.
+  AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+])dnl
 ])
 
-# Copyright (C) 2001-2021 Free Software Foundation, Inc.
+# AM_SILENT_RULES([DEFAULT])
+# --------------------------
+# Set the default verbosity level to DEFAULT ("yes" being less verbose, "no" or
+# empty being verbose).
+AC_DEFUN([AM_SILENT_RULES],
+[AC_REQUIRE([_AM_SILENT_RULES])
+AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1])])
+
+# Copyright (C) 2001-2024 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1342,7 +1484,7 @@ fi
 INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
-# Copyright (C) 2006-2021 Free Software Foundation, Inc.
+# Copyright (C) 2006-2024 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1361,7 +1503,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004-2021 Free Software Foundation, Inc.
+# Copyright (C) 2004-2024 Free Software Foundation, Inc.
 #
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -1407,15 +1549,19 @@ m4_if([$1], [v7],
       am_uid=`id -u || echo unknown`
       am_gid=`id -g || echo unknown`
       AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format])
-      if test $am_uid -le $am_max_uid; then
-         AC_MSG_RESULT([yes])
+      if test x$am_uid = xunknown; then
+        AC_MSG_WARN([ancient id detected; assuming current UID is ok, but dist-ustar might not work])
+      elif test $am_uid -le $am_max_uid; then
+        AC_MSG_RESULT([yes])
       else
-         AC_MSG_RESULT([no])
-         _am_tools=none
+        AC_MSG_RESULT([no])
+        _am_tools=none
       fi
       AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format])
-      if test $am_gid -le $am_max_gid; then
-         AC_MSG_RESULT([yes])
+      if test x$gm_gid = xunknown; then
+        AC_MSG_WARN([ancient id detected; assuming current GID is ok, but dist-ustar might not work])
+      elif test $am_gid -le $am_max_gid; then
+        AC_MSG_RESULT([yes])
       else
         AC_MSG_RESULT([no])
         _am_tools=none
@@ -1492,3 +1638,23 @@ AC_SUBST([am__tar])
 AC_SUBST([am__untar])
 ]) # _AM_PROG_TAR
 
+# Copyright (C) 2022-2024 Free Software Foundation, Inc.
+#
+# 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.
+
+# _AM_PROG_XARGS_N
+# ----------------
+# Check whether 'xargs -n' works.  It should work everywhere, so the fallback
+# is not optimized at all as we never expect to use it.
+AC_DEFUN([_AM_PROG_XARGS_N],
+[AC_CACHE_CHECK([xargs -n works], am_cv_xargs_n_works, [dnl
+AS_IF([test "`echo 1 2 3 | xargs -n2 echo`" = "1 2
+3"], [am_cv_xargs_n_works=yes], [am_cv_xargs_n_works=no])])
+AS_IF([test "$am_cv_xargs_n_works" = yes], [am__xargs_n='xargs -n'], [dnl
+  am__xargs_n='am__xargs_n () { shift; sed "s/ /\\n/g" | while read am__xargs_n_arg; do "$@" "$am__xargs_n_arg"; done; }'
+])dnl
+AC_SUBST(am__xargs_n)
+])
+
diff -pruN 1:5.1-2/compile 1:5.2-1/compile
--- 1:5.1-2/compile	2024-10-29 15:48:02.095642962 +0000
+++ 1:5.2-1/compile	2025-07-07 14:30:55.196233315 +0000
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Wrapper for compilers which do not understand '-c -o'.
 
-scriptversion=2018-03-07.03; # UTC
+scriptversion=2024-06-19.01; # UTC
 
-# Copyright (C) 1999-2021 Free Software Foundation, Inc.
+# Copyright (C) 1999-2024 Free Software Foundation, Inc.
 # Written by Tom Tromey <tromey@cygnus.com>.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -143,7 +143,7 @@ func_cl_wrapper ()
 	  # configure might choose to run compile as 'compile cc -o foo foo.c'.
 	  eat=1
 	  case $2 in
-	    *.o | *.[oO][bB][jJ])
+	    *.o | *.lo | *.[oO][bB][jJ])
 	      func_file_conv "$2"
 	      set x "$@" -Fo"$file"
 	      shift
@@ -248,14 +248,17 @@ If you are trying to build a whole packa
 right script to run: please start by reading the file 'INSTALL'.
 
 Report bugs to <bug-automake@gnu.org>.
+GNU Automake home page: <https://www.gnu.org/software/automake/>.
+General help using GNU software: <https://www.gnu.org/gethelp/>.
 EOF
     exit $?
     ;;
   -v | --v*)
-    echo "compile $scriptversion"
+    echo "compile (GNU Automake) $scriptversion"
     exit $?
     ;;
   cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \
+  clang-cl | *[/\\]clang-cl | clang-cl.exe | *[/\\]clang-cl.exe | \
   icl | *[/\\]icl | icl.exe | *[/\\]icl.exe )
     func_cl_wrapper "$@"      # Doesn't return...
     ;;
diff -pruN 1:5.1-2/config.guess 1:5.2-1/config.guess
--- 1:5.1-2/config.guess	2024-10-29 15:48:02.096642965 +0000
+++ 1:5.2-1/config.guess	2025-07-07 14:30:55.199082099 +0000
@@ -1,10 +1,10 @@
 #!/usr/bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2023 Free Software Foundation, Inc.
+#   Copyright 1992-2024 Free Software Foundation, Inc.
 
 # shellcheck disable=SC2006,SC2268 # see below for rationale
 
-timestamp='2023-06-23'
+timestamp='2024-07-27'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -60,7 +60,7 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2023 Free Software Foundation, Inc.
+Copyright 1992-2024 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -123,7 +123,7 @@ set_cc_for_build() {
     dummy=$tmp/dummy
     case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in
 	,,)    echo "int x;" > "$dummy.c"
-	       for driver in cc gcc c89 c99 ; do
+	       for driver in cc gcc c17 c99 c89 ; do
 		   if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then
 		       CC_FOR_BUILD=$driver
 		       break
@@ -155,6 +155,9 @@ Linux|GNU|GNU/*)
 
 	set_cc_for_build
 	cat <<-EOF > "$dummy.c"
+	#if defined(__ANDROID__)
+	LIBC=android
+	#else
 	#include <features.h>
 	#if defined(__UCLIBC__)
 	LIBC=uclibc
@@ -162,6 +165,8 @@ Linux|GNU|GNU/*)
 	LIBC=dietlibc
 	#elif defined(__GLIBC__)
 	LIBC=gnu
+	#elif defined(__LLVM_LIBC__)
+	LIBC=llvm
 	#else
 	#include <stdarg.h>
 	/* First heuristic to detect musl libc.  */
@@ -169,6 +174,7 @@ Linux|GNU|GNU/*)
 	LIBC=musl
 	#endif
 	#endif
+	#endif
 	EOF
 	cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`
 	eval "$cc_set_libc"
@@ -628,7 +634,8 @@ EOF
 		sed 's/^		//' << EOF > "$dummy.c"
 		#include <sys/systemcfg.h>
 
-		main()
+		int
+		main ()
 			{
 			if (!__power_pc())
 				exit(1);
@@ -712,7 +719,8 @@ EOF
 		#include <stdlib.h>
 		#include <unistd.h>
 
-		int main ()
+		int
+		main ()
 		{
 		#if defined(_SC_KERNEL_BITS)
 		    long bits = sysconf(_SC_KERNEL_BITS);
@@ -904,7 +912,7 @@ EOF
 	fi
 	;;
     *:FreeBSD:*:*)
-	UNAME_PROCESSOR=`/usr/bin/uname -p`
+	UNAME_PROCESSOR=`uname -p`
 	case $UNAME_PROCESSOR in
 	    amd64)
 		UNAME_PROCESSOR=x86_64 ;;
@@ -976,7 +984,27 @@ EOF
 	GUESS=$UNAME_MACHINE-unknown-minix
 	;;
     aarch64:Linux:*:*)
-	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	set_cc_for_build
+	CPU=$UNAME_MACHINE
+	LIBCABI=$LIBC
+	if test "$CC_FOR_BUILD" != no_compiler_found; then
+	    ABI=64
+	    sed 's/^	    //' << EOF > "$dummy.c"
+	    #ifdef __ARM_EABI__
+	    #ifdef __ARM_PCS_VFP
+	    ABI=eabihf
+	    #else
+	    ABI=eabi
+	    #endif
+	    #endif
+EOF
+	    cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'`
+	    eval "$cc_set_abi"
+	    case $ABI in
+		eabi | eabihf) CPU=armv8l; LIBCABI=$LIBC$ABI ;;
+	    esac
+	fi
+	GUESS=$CPU-unknown-linux-$LIBCABI
 	;;
     aarch64_be:Linux:*:*)
 	UNAME_MACHINE=aarch64_be
@@ -1042,6 +1070,15 @@ EOF
     k1om:Linux:*:*)
 	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
 	;;
+    kvx:Linux:*:*)
+	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
+	;;
+    kvx:cos:*:*)
+	GUESS=$UNAME_MACHINE-unknown-cos
+	;;
+    kvx:mbr:*:*)
+	GUESS=$UNAME_MACHINE-unknown-mbr
+	;;
     loongarch32:Linux:*:* | loongarch64:Linux:*:*)
 	GUESS=$UNAME_MACHINE-unknown-linux-$LIBC
 	;;
@@ -1560,6 +1597,9 @@ EOF
     *:Unleashed:*:*)
 	GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE
 	;;
+    *:Ironclad:*:*)
+	GUESS=$UNAME_MACHINE-unknown-ironclad
+	;;
 esac
 
 # Do we have a guess based on uname results?
@@ -1583,6 +1623,7 @@ cat > "$dummy.c" <<EOF
 #endif
 #endif
 #endif
+int
 main ()
 {
 #if defined (sony)
diff -pruN 1:5.1-2/config.h.in 1:5.2-1/config.h.in
--- 1:5.1-2/config.h.in	2024-10-29 15:48:01.820642354 +0000
+++ 1:5.2-1/config.h.in	2025-07-07 14:30:55.002701243 +0000
@@ -12,7 +12,7 @@
 /* Define to 1 if you have the <fcntl.h> header file. */
 #undef HAVE_FCNTL_H
 
-/* Define to 1 if you have the `getpagesize' function. */
+/* Define to 1 if you have the 'getpagesize' function. */
 #undef HAVE_GETPAGESIZE
 
 /* Define to 1 if you have the <inttypes.h> header file. */
@@ -21,29 +21,29 @@
 /* Define to 1 if you have the <limits.h> header file. */
 #undef HAVE_LIMITS_H
 
-/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
+/* Define to 1 if your system has a GNU libc compatible 'malloc' function, and
    to 0 otherwise. */
 #undef HAVE_MALLOC
 
 /* Define to 1 if you have the <malloc.h> header file. */
 #undef HAVE_MALLOC_H
 
-/* Define to 1 if you have the `memchr' function. */
+/* Define to 1 if you have the 'memchr' function. */
 #undef HAVE_MEMCHR
 
-/* Define to 1 if you have the `memset' function. */
+/* Define to 1 if you have the 'memset' function. */
 #undef HAVE_MEMSET
 
 /* Define to 1 if you have the <minix/config.h> header file. */
 #undef HAVE_MINIX_CONFIG_H
 
-/* Define to 1 if you have a working `mmap' system call. */
+/* Define to 1 if you have a working 'mmap' system call. */
 #undef HAVE_MMAP
 
-/* Define to 1 if you have the `munmap' function. */
+/* Define to 1 if you have the 'munmap' function. */
 #undef HAVE_MUNMAP
 
-/* Define to 1 if your system has a GNU libc compatible `realloc' function,
+/* Define to 1 if your system has a GNU libc compatible 'realloc' function,
    and to 0 otherwise. */
 #undef HAVE_REALLOC
 
@@ -59,13 +59,13 @@
 /* Define to 1 if you have the <stdlib.h> header file. */
 #undef HAVE_STDLIB_H
 
-/* Define to 1 if you have the `strchr' function. */
+/* Define to 1 if you have the 'strchr' function. */
 #undef HAVE_STRCHR
 
-/* Define to 1 if you have the `strdup' function. */
+/* Define to 1 if you have the 'strdup' function. */
 #undef HAVE_STRDUP
 
-/* Define to 1 if you have the `strerror' function. */
+/* Define to 1 if you have the 'strerror' function. */
 #undef HAVE_STRERROR
 
 /* Define to 1 if you have the <strings.h> header file. */
@@ -74,7 +74,7 @@
 /* Define to 1 if you have the <string.h> header file. */
 #undef HAVE_STRING_H
 
-/* Define to 1 if you have the `strrchr' function. */
+/* Define to 1 if you have the 'strrchr' function. */
 #undef HAVE_STRRCHR
 
 /* Define to 1 if you have the <sys/param.h> header file. */
@@ -92,7 +92,7 @@
 /* Define to 1 if you have the <wchar.h> header file. */
 #undef HAVE_WCHAR_H
 
-/* Define to 1 if the system has the type `_Bool'. */
+/* Define to 1 if the system has the type '_Bool'. */
 #undef HAVE__BOOL
 
 /* Name of package */
@@ -124,12 +124,12 @@
 	STACK_DIRECTION = 0 => direction of growth unknown */
 #undef STACK_DIRECTION
 
-/* Define to 1 if all of the C90 standard headers exist (not just the ones
+/* Define to 1 if all of the C89 standard headers exist (not just the ones
    required in a freestanding environment). This macro is provided for
    backward compatibility; new code need not use it. */
 #undef STDC_HEADERS
 
-/* Enable extensions on AIX 3, Interix.  */
+/* Enable extensions on AIX, Interix, z/OS.  */
 #ifndef _ALL_SOURCE
 # undef _ALL_SOURCE
 #endif
@@ -190,11 +190,15 @@
 #ifndef __STDC_WANT_IEC_60559_DFP_EXT__
 # undef __STDC_WANT_IEC_60559_DFP_EXT__
 #endif
+/* Enable extensions specified by C23 Annex F.  */
+#ifndef __STDC_WANT_IEC_60559_EXT__
+# undef __STDC_WANT_IEC_60559_EXT__
+#endif
 /* Enable extensions specified by ISO/IEC TS 18661-4:2015.  */
 #ifndef __STDC_WANT_IEC_60559_FUNCS_EXT__
 # undef __STDC_WANT_IEC_60559_FUNCS_EXT__
 #endif
-/* Enable extensions specified by ISO/IEC TS 18661-3:2015.  */
+/* Enable extensions specified by C23 Annex H and ISO/IEC TS 18661-3:2015.  */
 #ifndef __STDC_WANT_IEC_60559_TYPES_EXT__
 # undef __STDC_WANT_IEC_60559_TYPES_EXT__
 #endif
@@ -223,9 +227,12 @@
 /* Number of bits in a file offset, on hosts where this is settable. */
 #undef _FILE_OFFSET_BITS
 
-/* Define for large files, on AIX-style hosts. */
+/* Define to 1 on platforms where this makes off_t a 64-bit type. */
 #undef _LARGE_FILES
 
+/* Number of bits in time_t, on hosts where this is settable. */
+#undef _TIME_BITS
+
 /* Define for Solaris 2.5.1 so the uint32_t typedef from <sys/synch.h>,
    <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the
    #define below would cause a syntax error. */
@@ -236,7 +243,10 @@
    #define below would cause a syntax error. */
 #undef _UINT8_T
 
-/* Define to `__inline__' or `__inline' if that's what the C compiler
+/* Define to 1 on platforms where this makes time_t a 64-bit type. */
+#undef __MINGW_USE_VC2005_COMPAT
+
+/* Define to '__inline__' or '__inline' if that's what the C compiler
    calls it, or to nothing if 'inline' is not supported under any name.  */
 #ifndef __cplusplus
 #undef inline
@@ -249,16 +259,16 @@
 /* Define to rpl_malloc if the replacement function should be used. */
 #undef malloc
 
-/* Define to `long int' if <sys/types.h> does not define. */
+/* Define to 'long int' if <sys/types.h> does not define. */
 #undef off_t
 
 /* Define to rpl_realloc if the replacement function should be used. */
 #undef realloc
 
-/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* Define as 'unsigned int' if <stddef.h> doesn't define. */
 #undef size_t
 
-/* Define to `int' if <sys/types.h> does not define. */
+/* Define as 'int' if <sys/types.h> doesn't define. */
 #undef ssize_t
 
 /* Define to the type of an unsigned integer type of width exactly 16 bits if
diff -pruN 1:5.1-2/config.sub 1:5.2-1/config.sub
--- 1:5.1-2/config.sub	2024-10-29 15:48:02.097642967 +0000
+++ 1:5.2-1/config.sub	2025-07-07 14:30:55.200584631 +0000
@@ -1,10 +1,10 @@
 #!/usr/bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2023 Free Software Foundation, Inc.
+#   Copyright 1992-2024 Free Software Foundation, Inc.
 
-# shellcheck disable=SC2006,SC2268 # see below for rationale
+# shellcheck disable=SC2006,SC2268,SC2162 # see below for rationale
 
-timestamp='2023-06-23'
+timestamp='2024-05-27'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -76,7 +76,7 @@ Report bugs and patches to <config-patch
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2023 Free Software Foundation, Inc.
+Copyright 1992-2024 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -120,7 +120,6 @@ case $# in
 esac
 
 # Split fields of configuration type
-# shellcheck disable=SC2162
 saved_IFS=$IFS
 IFS="-" read field1 field2 field3 field4 <<EOF
 $1
@@ -142,10 +141,21 @@ case $1 in
 		# parts
 		maybe_os=$field2-$field3
 		case $maybe_os in
-			nto-qnx* | linux-* | uclinux-uclibc* \
-			| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
-			| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
-			| storm-chaos* | os2-emx* | rtmk-nova* | managarm-*)
+			  cloudabi*-eabi* \
+			| kfreebsd*-gnu* \
+			| knetbsd*-gnu* \
+			| kopensolaris*-gnu* \
+			| linux-* \
+			| managarm-* \
+			| netbsd*-eabi* \
+			| netbsd*-gnu* \
+			| nto-qnx* \
+			| os2-emx* \
+			| rtmk-nova* \
+			| storm-chaos* \
+			| uclinux-gnu* \
+			| uclinux-uclibc* \
+			| windows-* )
 				basic_machine=$field1
 				basic_os=$maybe_os
 				;;
@@ -160,8 +170,12 @@ case $1 in
 		esac
 		;;
 	*-*)
-		# A lone config we happen to match not fitting any pattern
 		case $field1-$field2 in
+			# Shorthands that happen to contain a single dash
+			convex-c[12] | convex-c3[248])
+				basic_machine=$field2-convex
+				basic_os=
+				;;
 			decstation-3100)
 				basic_machine=mips-dec
 				basic_os=
@@ -169,28 +183,88 @@ case $1 in
 			*-*)
 				# Second component is usually, but not always the OS
 				case $field2 in
-					# Prevent following clause from handling this valid os
+					# Do not treat sunos as a manufacturer
 					sun*os*)
 						basic_machine=$field1
 						basic_os=$field2
 						;;
-					zephyr*)
-						basic_machine=$field1-unknown
-						basic_os=$field2
-						;;
 					# Manufacturers
-					dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
-					| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
-					| unicom* | ibm* | next | hp | isi* | apollo | altos* \
-					| convergent* | ncr* | news | 32* | 3600* | 3100* \
-					| hitachi* | c[123]* | convex* | sun | crds | omron* | dg \
-					| ultra | tti* | harris | dolphin | highlevel | gould \
-					| cbm | ns | masscomp | apple | axis | knuth | cray \
-					| microblaze* | sim | cisco \
-					| oki | wec | wrs | winbond)
+					  3100* \
+					| 32* \
+					| 3300* \
+					| 3600* \
+					| 7300* \
+					| acorn \
+					| altos* \
+					| apollo \
+					| apple \
+					| atari \
+					| att* \
+					| axis \
+					| be \
+					| bull \
+					| cbm \
+					| ccur \
+					| cisco \
+					| commodore \
+					| convergent* \
+					| convex* \
+					| cray \
+					| crds \
+					| dec* \
+					| delta* \
+					| dg \
+					| digital \
+					| dolphin \
+					| encore* \
+					| gould \
+					| harris \
+					| highlevel \
+					| hitachi* \
+					| hp \
+					| ibm* \
+					| intergraph \
+					| isi* \
+					| knuth \
+					| masscomp \
+					| microblaze* \
+					| mips* \
+					| motorola* \
+					| ncr* \
+					| news \
+					| next \
+					| ns \
+					| oki \
+					| omron* \
+					| pc533* \
+					| rebel \
+					| rom68k \
+					| rombug \
+					| semi \
+					| sequent* \
+					| siemens \
+					| sgi* \
+					| siemens \
+					| sim \
+					| sni \
+					| sony* \
+					| stratus \
+					| sun \
+					| sun[234]* \
+					| tektronix \
+					| tti* \
+					| ultra \
+					| unicom* \
+					| wec \
+					| winbond \
+					| wrs)
 						basic_machine=$field1-$field2
 						basic_os=
 						;;
+					zephyr*)
+						basic_machine=$field1-unknown
+						basic_os=$field2
+						;;
 					*)
 						basic_machine=$field1
 						basic_os=$field2
@@ -271,26 +345,6 @@ case $1 in
 				basic_machine=arm-unknown
 				basic_os=cegcc
 				;;
-			convex-c1)
-				basic_machine=c1-convex
-				basic_os=bsd
-				;;
-			convex-c2)
-				basic_machine=c2-convex
-				basic_os=bsd
-				;;
-			convex-c32)
-				basic_machine=c32-convex
-				basic_os=bsd
-				;;
-			convex-c34)
-				basic_machine=c34-convex
-				basic_os=bsd
-				;;
-			convex-c38)
-				basic_machine=c38-convex
-				basic_os=bsd
-				;;
 			cray)
 				basic_machine=j90-cray
 				basic_os=unicos
@@ -713,15 +767,26 @@ case $basic_machine in
 		vendor=dec
 		basic_os=tops20
 		;;
-	delta | 3300 | motorola-3300 | motorola-delta \
-	      | 3300-motorola | delta-motorola)
+	delta | 3300 | delta-motorola | 3300-motorola | motorola-delta | motorola-3300)
 		cpu=m68k
 		vendor=motorola
 		;;
-	dpx2*)
+	# This used to be dpx2*, but that gets the RS6000-based
+	# DPX/20 and the x86-based DPX/2-100 wrong.  See
+	# https://oldskool.silicium.org/stations/bull_dpx20.htm
+	# https://www.feb-patrimoine.com/english/bull_dpx2.htm
+	# https://www.feb-patrimoine.com/english/unix_and_bull.htm
+	dpx2 | dpx2[23]00 | dpx2[23]xx)
 		cpu=m68k
 		vendor=bull
-		basic_os=sysv3
+		;;
+	dpx2100 | dpx21xx)
+		cpu=i386
+		vendor=bull
+		;;
+	dpx20)
+		cpu=rs6000
+		vendor=bull
 		;;
 	encore | umax | mmax)
 		cpu=ns32k
@@ -836,18 +901,6 @@ case $basic_machine in
 	next | m*-next)
 		cpu=m68k
 		vendor=next
-		case $basic_os in
-		    openstep*)
-		        ;;
-		    nextstep*)
-			;;
-		    ns2*)
-		      basic_os=nextstep2
-			;;
-		    *)
-		      basic_os=nextstep3
-			;;
-		esac
 		;;
 	np1)
 		cpu=np1
@@ -936,7 +989,6 @@ case $basic_machine in
 		;;
 
 	*-*)
-		# shellcheck disable=SC2162
 		saved_IFS=$IFS
 		IFS="-" read cpu vendor <<EOF
 $basic_machine
@@ -971,15 +1023,19 @@ unset -v basic_machine
 
 # Decode basic machines in the full and proper CPU-Company form.
 case $cpu-$vendor in
-	# Here we handle the default manufacturer of certain CPU types in canonical form. It is in
-	# some cases the only manufacturer, in others, it is the most popular.
+	# Here we handle the default manufacturer of certain CPU types in canonical form.
+	# It is in some cases the only manufacturer, in others, it is the most popular.
+	c[12]-convex | c[12]-unknown | c3[248]-convex | c3[248]-unknown)
+		vendor=convex
+		basic_os=${basic_os:-bsd}
+		;;
 	craynv-unknown)
 		vendor=cray
 		basic_os=${basic_os:-unicosmp}
 		;;
 	c90-unknown | c90-cray)
 		vendor=cray
-		basic_os=${Basic_os:-unicos}
+		basic_os=${basic_os:-unicos}
 		;;
 	fx80-unknown)
 		vendor=alliant
@@ -1025,11 +1081,29 @@ case $cpu-$vendor in
 		vendor=alt
 		basic_os=${basic_os:-linux-gnueabihf}
 		;;
-	dpx20-unknown | dpx20-bull)
-		cpu=rs6000
-		vendor=bull
+
+	# Normalized CPU+vendor pairs that imply an OS, if not otherwise specified
+	m68k-isi)
+		basic_os=${basic_os:-sysv}
+		;;
+	m68k-sony)
+		basic_os=${basic_os:-newsos}
+		;;
+	m68k-tektronix)
+		basic_os=${basic_os:-bsd}
+		;;
+	m88k-harris)
+		basic_os=${basic_os:-sysv3}
+		;;
+	i386-bull | m68k-bull)
+		basic_os=${basic_os:-sysv3}
+		;;
+	rs6000-bull)
 		basic_os=${basic_os:-bosx}
 		;;
+	mips-sni)
+		basic_os=${basic_os:-sysv4}
+		;;
 
 	# Here we normalize CPU types irrespective of the vendor
 	amd64-*)
@@ -1037,7 +1111,7 @@ case $cpu-$vendor in
 		;;
 	blackfin-*)
 		cpu=bfin
-		basic_os=linux
+		basic_os=${basic_os:-linux}
 		;;
 	c54x-*)
 		cpu=tic54x
@@ -1060,7 +1134,7 @@ case $cpu-$vendor in
 		;;
 	m68knommu-*)
 		cpu=m68k
-		basic_os=linux
+		basic_os=${basic_os:-linux}
 		;;
 	m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*)
 		cpu=s12z
@@ -1070,7 +1144,7 @@ case $cpu-$vendor in
 		;;
 	parisc-*)
 		cpu=hppa
-		basic_os=linux
+		basic_os=${basic_os:-linux}
 		;;
 	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
 		cpu=i586
@@ -1084,9 +1158,6 @@ case $cpu-$vendor in
 	pentium4-*)
 		cpu=i786
 		;;
-	pc98-*)
-		cpu=i386
-		;;
 	ppc-* | ppcbe-*)
 		cpu=powerpc
 		;;
@@ -1120,9 +1191,6 @@ case $cpu-$vendor in
 	tx39el-*)
 		cpu=mipstx39el
 		;;
-	x64-*)
-		cpu=x86_64
-		;;
 	xscale-* | xscalee[bl]-*)
 		cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
 		;;
@@ -1178,110 +1246,227 @@ case $cpu-$vendor in
 		# Recognize the canonical CPU types that are allowed with any
 		# company name.
 		case $cpu in
-			1750a | 580 \
+			  1750a \
+			| 580 \
+			| [cjt]90 \
 			| a29k \
-			| aarch64 | aarch64_be \
+			| aarch64 \
+			| aarch64_be \
+			| aarch64c \
 			| abacus \
-			| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
-			| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
-			| alphapca5[67] | alpha64pca5[67] \
+			| alpha \
+			| alpha64 \
+			| alpha64ev56 \
+			| alpha64ev6[78] \
+			| alpha64ev[4-8] \
+			| alpha64pca5[67] \
+			| alphaev56 \
+			| alphaev6[78] \
+			| alphaev[4-8] \
+			| alphapca5[67] \
 			| am33_2.0 \
 			| amdgcn \
-			| arc | arceb | arc32 | arc64 \
-			| arm | arm[lb]e | arme[lb] | armv* \
-			| avr | avr32 \
+			| arc \
+			| arc32 \
+			| arc64 \
+			| arceb \
+			| arm \
+			| arm64e \
+			| arm64ec \
+			| arm[lb]e \
+			| arme[lb] \
+			| armv* \
 			| asmjs \
+			| avr \
+			| avr32 \
 			| ba \
-			| be32 | be64 \
-			| bfin | bpf | bs2000 \
-			| c[123]* | c30 | [cjt]90 | c4x \
-			| c8051 | clipper | craynv | csky | cydra \
-			| d10v | d30v | dlx | dsp16xx \
-			| e2k | elxsi | epiphany \
-			| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
-			| h8300 | h8500 \
-			| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+			| be32 \
+			| be64 \
+			| bfin \
+			| bpf \
+			| bs2000 \
+			| c30 \
+			| c4x \
+			| c8051 \
+			| c[123]* \
+			| clipper \
+			| craynv \
+			| csky \
+			| cydra \
+			| d10v \
+			| d30v \
+			| dlx \
+			| dsp16xx \
+			| e2k \
+			| elxsi \
+			| epiphany \
+			| f30[01] \
+			| f700 \
+			| fido \
+			| fr30 \
+			| frv \
+			| ft32 \
+			| fx80 \
+			| h8300 \
+			| h8500 \
 			| hexagon \
-			| i370 | i*86 | i860 | i960 | ia16 | ia64 \
-			| ip2k | iq2000 \
+			| hppa \
+			| hppa1.[01] \
+			| hppa2.0 \
+			| hppa2.0[nw] \
+			| hppa64 \
+			| i*86 \
+			| i370 \
+			| i860 \
+			| i960 \
+			| ia16 \
+			| ia64 \
+			| ip2k \
+			| iq2000 \
+			| javascript \
 			| k1om \
-			| le32 | le64 \
+			| kvx \
+			| le32 \
+			| le64 \
 			| lm32 \
-			| loongarch32 | loongarch64 \
-			| m32c | m32r | m32rle \
-			| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
-			| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
-			| m88110 | m88k | maxq | mb | mcore | mep | metag \
-			| microblaze | microblazeel \
-			| mips | mipsbe | mipseb | mipsel | mipsle \
-			| mips16 \
-			| mips64 | mips64eb | mips64el \
-			| mips64octeon | mips64octeonel \
-			| mips64orion | mips64orionel \
-			| mips64r5900 | mips64r5900el \
-			| mips64vr | mips64vrel \
-			| mips64vr4100 | mips64vr4100el \
-			| mips64vr4300 | mips64vr4300el \
-			| mips64vr5000 | mips64vr5000el \
-			| mips64vr5900 | mips64vr5900el \
-			| mipsisa32 | mipsisa32el \
-			| mipsisa32r2 | mipsisa32r2el \
-			| mipsisa32r3 | mipsisa32r3el \
-			| mipsisa32r5 | mipsisa32r5el \
-			| mipsisa32r6 | mipsisa32r6el \
-			| mipsisa64 | mipsisa64el \
-			| mipsisa64r2 | mipsisa64r2el \
-			| mipsisa64r3 | mipsisa64r3el \
-			| mipsisa64r5 | mipsisa64r5el \
-			| mipsisa64r6 | mipsisa64r6el \
-			| mipsisa64sb1 | mipsisa64sb1el \
-			| mipsisa64sr71k | mipsisa64sr71kel \
-			| mipsr5900 | mipsr5900el \
-			| mipstx39 | mipstx39el \
+			| loongarch32 \
+			| loongarch64 \
+			| m32c \
+			| m32r \
+			| m32rle \
+			| m5200 \
+			| m68000 \
+			| m680[012346]0 \
+			| m6811 \
+			| m6812 \
+			| m68360 \
+			| m683?2 \
+			| m68hc11 \
+			| m68hc12 \
+			| m68hcs12x \
+			| m68k \
+			| m88110 \
+			| m88k \
+			| maxq \
+			| mb \
+			| mcore \
+			| mep \
+			| metag \
+			| microblaze \
+			| microblazeel \
+			| mips* \
 			| mmix \
-			| mn10200 | mn10300 \
+			| mn10200 \
+			| mn10300 \
 			| moxie \
-			| mt \
 			| msp430 \
-			| nds32 | nds32le | nds32be \
+			| mt \
+			| nanomips* \
+			| nds32 \
+			| nds32be \
+			| nds32le \
 			| nfp \
-			| nios | nios2 | nios2eb | nios2el \
-			| none | np1 | ns16k | ns32k | nvptx \
+			| nios \
+			| nios2 \
+			| nios2eb \
+			| nios2el \
+			| none \
+			| np1 \
+			| ns16k \
+			| ns32k \
+			| nvptx \
 			| open8 \
 			| or1k* \
 			| or32 \
 			| orion \
+			| pdp10 \
+			| pdp11 \
 			| picochip \
-			| pdp10 | pdp11 | pj | pjl | pn | power \
-			| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
+			| pj \
+			| pjl \
+			| pn \
+			| power \
+			| powerpc \
+			| powerpc64 \
+			| powerpc64le \
+			| powerpcle \
+			| powerpcspe \
 			| pru \
 			| pyramid \
-			| riscv | riscv32 | riscv32be | riscv64 | riscv64be \
-			| rl78 | romp | rs6000 | rx \
-			| s390 | s390x \
+			| riscv \
+			| riscv32 \
+			| riscv32be \
+			| riscv64 \
+			| riscv64be \
+			| rl78 \
+			| romp \
+			| rs6000 \
+			| rx \
+			| s390 \
+			| s390x \
 			| score \
-			| sh | shl \
-			| sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \
-			| sh[1234]e[lb] |  sh[12345][lb]e | sh[23]ele | sh64 | sh64le \
-			| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \
+			| sh \
+			| sh64 \
+			| sh64le \
+			| sh[12345][lb]e \
+			| sh[1234] \
+			| sh[1234]e[lb] \
+			| sh[23]e \
+			| sh[23]ele \
+			| sh[24]a \
+			| sh[24]ae[lb] \
+			| sh[lb]e \
+			| she[lb] \
+			| shl \
+			| sparc \
+			| sparc64 \
+			| sparc64b \
+			| sparc64v \
+			| sparc86x \
+			| sparclet \
 			| sparclite \
-			| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
+			| sparcv8 \
+			| sparcv9 \
+			| sparcv9b \
+			| sparcv9v \
 			| spu \
+			| sv1 \
+			| sx* \
 			| tahoe \
 			| thumbv7* \
-			| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
+			| tic30 \
+			| tic4x \
+			| tic54x \
+			| tic55x \
+			| tic6x \
+			| tic80 \
 			| tron \
 			| ubicom32 \
-			| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
+			| v70 \
+			| v810 \
+			| v850 \
+			| v850e \
+			| v850e1 \
+			| v850e2 \
+			| v850e2v3 \
+			| v850es \
 			| vax \
+			| vc4 \
 			| visium \
 			| w65 \
-			| wasm32 | wasm64 \
+			| wasm32 \
+			| wasm64 \
 			| we32k \
-			| x86 | x86_64 | xc16x | xgate | xps100 \
-			| xstormy16 | xtensa* \
+			| x86 \
+			| x86_64 \
+			| xc16x \
+			| xgate \
+			| xps100 \
+			| xstormy16 \
+			| xtensa* \
 			| ymp \
-			| z8k | z80)
+			| z80 \
+			| z8k)
 				;;
 
 			*)
@@ -1306,11 +1491,12 @@ esac
 
 # Decode manufacturer-specific aliases for certain operating systems.
 
-if test x$basic_os != x
+if test x"$basic_os" != x
 then
 
 # First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
 # set os.
+obj=
 case $basic_os in
 	gnu/linux*)
 		kernel=linux
@@ -1325,7 +1511,6 @@ case $basic_os in
 		os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
 		;;
 	*-*)
-		# shellcheck disable=SC2162
 		saved_IFS=$IFS
 		IFS="-" read kernel os <<EOF
 $basic_os
@@ -1372,6 +1557,23 @@ case $os in
 	unixware*)
 		os=sysv4.2uw
 		;;
+	# The marketing names for NeXT's operating systems were
+	# NeXTSTEP, NeXTSTEP 2, OpenSTEP 3, OpenSTEP 4.  'openstep' is
+	# mapped to 'openstep3', but 'openstep1' and 'openstep2' are
+	# mapped to 'nextstep' and 'nextstep2', consistent with the
+	# treatment of SunOS/Solaris.
+	ns | ns1 | nextstep | nextstep1 | openstep1)
+		os=nextstep
+		;;
+	ns2 | nextstep2 | openstep2)
+		os=nextstep2
+		;;
+	ns3 | nextstep3 | openstep | openstep3)
+		os=openstep3
+		;;
+	ns4 | nextstep4 | openstep4)
+		os=openstep4
+		;;
 	# es1800 is here to avoid being matched by es* (a different OS)
 	es1800*)
 		os=ose
@@ -1442,6 +1644,7 @@ case $os in
 		;;
 	utek*)
 		os=bsd
+		vendor=`echo "$vendor" | sed -e 's|^unknown$|tektronix|'`
 		;;
 	dynix*)
 		os=bsd
@@ -1458,21 +1661,25 @@ case $os in
 	386bsd)
 		os=bsd
 		;;
-	ctix* | uts*)
+	ctix*)
 		os=sysv
+		vendor=`echo "$vendor" | sed -e 's|^unknown$|convergent|'`
 		;;
-	nova*)
-		os=rtmk-nova
+	uts*)
+		os=sysv
 		;;
-	ns2)
-		os=nextstep2
+	nova*)
+		kernel=rtmk
+		os=nova
 		;;
 	# Preserve the version number of sinix5.
 	sinix5.*)
 		os=`echo "$os" | sed -e 's|sinix|sysv|'`
+		vendor=`echo "$vendor" | sed -e 's|^unknown$|sni|'`
 		;;
 	sinix*)
 		os=sysv4
+		vendor=`echo "$vendor" | sed -e 's|^unknown$|sni|'`
 		;;
 	tpf*)
 		os=tpf
@@ -1510,10 +1717,16 @@ case $os in
 			os=eabi
 			;;
 		    *)
-			os=elf
+			os=
+			obj=elf
 			;;
 		esac
 		;;
+	aout* | coff* | elf* | pe*)
+		# These are machine code file formats, not OSes
+		obj=$os
+		os=
+		;;
 	*)
 		# No normalization, but not necessarily accepted, that comes below.
 		;;
@@ -1532,12 +1745,15 @@ else
 # system, and we'll never get to this point.
 
 kernel=
+obj=
 case $cpu-$vendor in
 	score-*)
-		os=elf
+		os=
+		obj=elf
 		;;
 	spu-*)
-		os=elf
+		os=
+		obj=elf
 		;;
 	*-acorn)
 		os=riscix1.2
@@ -1547,28 +1763,35 @@ case $cpu-$vendor in
 		os=gnu
 		;;
 	arm*-semi)
-		os=aout
+		os=
+		obj=aout
 		;;
 	c4x-* | tic4x-*)
-		os=coff
+		os=
+		obj=coff
 		;;
 	c8051-*)
-		os=elf
+		os=
+		obj=elf
 		;;
 	clipper-intergraph)
 		os=clix
 		;;
 	hexagon-*)
-		os=elf
+		os=
+		obj=elf
 		;;
 	tic54x-*)
-		os=coff
+		os=
+		obj=coff
 		;;
 	tic55x-*)
-		os=coff
+		os=
+		obj=coff
 		;;
 	tic6x-*)
-		os=coff
+		os=
+		obj=coff
 		;;
 	# This must come before the *-dec entry.
 	pdp10-*)
@@ -1590,28 +1813,43 @@ case $cpu-$vendor in
 		os=sunos3
 		;;
 	m68*-cisco)
-		os=aout
+		os=
+		obj=aout
 		;;
 	mep-*)
-		os=elf
+		os=
+		obj=elf
+		;;
+	# The -sgi and -siemens entries must be before the mips- entry
+	# or we get the wrong os.
+	*-sgi)
+		os=irix
+		;;
+	*-siemens)
+		os=sysv4
 		;;
 	mips*-cisco)
-		os=elf
+		os=
+		obj=elf
 		;;
-	mips*-*)
-		os=elf
+	mips*-*|nanomips*-*)
+		os=
+		obj=elf
 		;;
 	or32-*)
-		os=coff
+		os=
+		obj=coff
 		;;
-	*-tti)	# must be before sparc entry or we get the wrong os.
+	# This must be before the sparc-* entry or we get the wrong os.
+	*-tti)
 		os=sysv3
 		;;
 	sparc-* | *-sun)
 		os=sunos4.1.1
 		;;
 	pru-*)
-		os=elf
+		os=
+		obj=elf
 		;;
 	*-be)
 		os=beos
@@ -1635,7 +1873,7 @@ case $cpu-$vendor in
 		os=hpux
 		;;
 	*-hitachi)
-		os=hiux
+		os=hiuxwe2
 		;;
 	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
 		os=sysv
@@ -1679,12 +1917,6 @@ case $cpu-$vendor in
 	*-encore)
 		os=bsd
 		;;
-	*-sgi)
-		os=irix
-		;;
-	*-siemens)
-		os=sysv4
-		;;
 	*-masscomp)
 		os=rtu
 		;;
@@ -1692,10 +1924,12 @@ case $cpu-$vendor in
 		os=uxpv
 		;;
 	*-rom68k)
-		os=coff
+		os=
+		obj=coff
 		;;
 	*-*bug)
-		os=coff
+		os=
+		obj=coff
 		;;
 	*-apple)
 		os=macos
@@ -1713,10 +1947,11 @@ esac
 
 fi
 
-# Now, validate our (potentially fixed-up) OS.
+# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ).
+
 case $os in
 	# Sometimes we do "kernel-libc", so those need to count as OSes.
-	musl* | newlib* | relibc* | uclibc*)
+	llvm* | musl* | newlib* | relibc* | uclibc*)
 		;;
 	# Likewise for "kernel-abi"
 	eabi* | gnueabi*)
@@ -1724,95 +1959,307 @@ case $os in
 	# VxWorks passes extra cpu info in the 4th filed.
 	simlinux | simwindows | spe)
 		;;
+	# See `case $cpu-$os` validation below
+	ghcjs)
+		;;
 	# Now accept the basic system types.
-	# The portable systems comes first.
 	# Each alternative MUST end in a * to match a version number.
-	gnu* | android* | bsd* | mach* | minix* | genix* | ultrix* | irix* \
-	     | *vms* | esix* | aix* | cnk* | sunos | sunos[34]* \
-	     | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
-	     | sym* |  plan9* | psp* | sim* | xray* | os68k* | v88r* \
-	     | hiux* | abug | nacl* | netware* | windows* \
-	     | os9* | macos* | osx* | ios* \
-	     | mpw* | magic* | mmixware* | mon960* | lnews* \
-	     | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
-	     | aos* | aros* | cloudabi* | sortix* | twizzler* \
-	     | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
-	     | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
-	     | mirbsd* | netbsd* | dicos* | openedition* | ose* \
-	     | bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
-	     | ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
-	     | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
-	     | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
-	     | udi* | lites* | ieee* | go32* | aux* | hcos* \
-	     | chorusrdb* | cegcc* | glidix* | serenity* \
-	     | cygwin* | msys* | pe* | moss* | proelf* | rtems* \
-	     | midipix* | mingw32* | mingw64* | mint* \
-	     | uxpv* | beos* | mpeix* | udk* | moxiebox* \
-	     | interix* | uwin* | mks* | rhapsody* | darwin* \
-	     | openstep* | oskit* | conix* | pw32* | nonstopux* \
-	     | storm-chaos* | tops10* | tenex* | tops20* | its* \
-	     | os2* | vos* | palmos* | uclinux* | nucleus* | morphos* \
-	     | scout* | superux* | sysv* | rtmk* | tpf* | windiss* \
-	     | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \
-	     | skyos* | haiku* | rdos* | toppers* | drops* | es* \
-	     | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
-	     | midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
-	     | nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
-	     | fiwix* | mlibc* )
+	  abug \
+	| aix* \
+	| amdhsa* \
+	| amigados* \
+	| amigaos* \
+	| android* \
+	| aof* \
+	| aos* \
+	| aros* \
+	| atheos* \
+	| auroraux* \
+	| aux* \
+	| beos* \
+	| bitrig* \
+	| bme* \
+	| bosx* \
+	| bsd* \
+	| cegcc* \
+	| chorusos* \
+	| chorusrdb* \
+	| clix* \
+	| cloudabi* \
+	| cnk* \
+	| conix* \
+	| cos* \
+	| cxux* \
+	| cygwin* \
+	| darwin* \
+	| dgux* \
+	| dicos* \
+	| dnix* \
+	| domain* \
+	| dragonfly* \
+	| drops* \
+	| ebmon* \
+	| ecoff* \
+	| ekkobsd* \
+	| emscripten* \
+	| emx* \
+	| es* \
+	| fiwix* \
+	| freebsd* \
+	| fuchsia* \
+	| genix* \
+	| genode* \
+	| glidix* \
+	| gnu* \
+	| go32* \
+	| haiku* \
+	| hcos* \
+	| hiux* \
+	| hms* \
+	| hpux* \
+	| ieee* \
+	| interix* \
+	| ios* \
+	| iris* \
+	| irix* \
+	| ironclad* \
+	| isc* \
+	| its* \
+	| l4re* \
+	| libertybsd* \
+	| lites* \
+	| lnews* \
+	| luna* \
+	| lynxos* \
+	| mach* \
+	| macos* \
+	| magic* \
+	| mbr* \
+	| midipix* \
+	| midnightbsd* \
+	| mingw32* \
+	| mingw64* \
+	| minix* \
+	| mint* \
+	| mirbsd* \
+	| mks* \
+	| mlibc* \
+	| mmixware* \
+	| mon960* \
+	| morphos* \
+	| moss* \
+	| moxiebox* \
+	| mpeix* \
+	| mpw* \
+	| msdos* \
+	| msys* \
+	| mvs* \
+	| nacl* \
+	| netbsd* \
+	| netware* \
+	| newsos* \
+	| nextstep* \
+	| nindy* \
+	| nonstopux* \
+	| nova* \
+	| nsk* \
+	| nucleus* \
+	| nx6 \
+	| nx7 \
+	| oabi* \
+	| ohos* \
+	| onefs* \
+	| openbsd* \
+	| openedition* \
+	| openstep* \
+	| os108* \
+	| os2* \
+	| os400* \
+	| os68k* \
+	| os9* \
+	| ose* \
+	| osf* \
+	| oskit* \
+	| osx* \
+	| palmos* \
+	| phoenix* \
+	| plan9* \
+	| powermax* \
+	| powerunix* \
+	| proelf* \
+	| psos* \
+	| psp* \
+	| ptx* \
+	| pw32* \
+	| qnx* \
+	| rdos* \
+	| redox* \
+	| rhapsody* \
+	| riscix* \
+	| riscos* \
+	| rtems* \
+	| rtmk* \
+	| rtu* \
+	| scout* \
+	| secbsd* \
+	| sei* \
+	| serenity* \
+	| sim* \
+	| skyos* \
+	| solaris* \
+	| solidbsd* \
+	| sortix* \
+	| storm-chaos* \
+	| sunos \
+	| sunos[34]* \
+	| superux* \
+	| syllable* \
+	| sym* \
+	| sysv* \
+	| tenex* \
+	| tirtos* \
+	| toppers* \
+	| tops10* \
+	| tops20* \
+	| tpf* \
+	| tvos* \
+	| twizzler* \
+	| uclinux* \
+	| udi* \
+	| udk* \
+	| ultrix* \
+	| unicos* \
+	| uniplus* \
+	| unleashed* \
+	| unos* \
+	| uwin* \
+	| uxpv* \
+	| v88r* \
+	|*vms* \
+	| vos* \
+	| vsta* \
+	| vxsim* \
+	| vxworks* \
+	| wasi* \
+	| watchos* \
+	| wince* \
+	| windiss* \
+	| windows* \
+	| winnt* \
+	| xenix* \
+	| xray* \
+	| zephyr* \
+	| zvmoe* )
 		;;
 	# This one is extra strict with allowed versions
 	sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
 		# Don't forget version if it is 3.2v4 or newer.
 		;;
+	# This refers to builds using the UEFI calling convention
+	# (which depends on the architecture) and PE file format.
+	# Note that this is both a different calling convention and
+	# different file format than that of GNU-EFI
+	# (x86_64-w64-mingw32).
+	uefi)
+		;;
 	none)
 		;;
-	kernel* )
+	kernel* | msvc* )
 		# Restricted further below
 		;;
+	'')
+		if test x"$obj" = x
+		then
+			echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2
+		fi
+		;;
 	*)
 		echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2
 		exit 1
 		;;
 esac
 
+case $obj in
+	aout* | coff* | elf* | pe*)
+		;;
+	'')
+		# empty is fine
+		;;
+	*)
+		echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2
+		exit 1
+		;;
+esac
+
+# Here we handle the constraint that a (synthetic) cpu and os are
+# valid only in combination with each other and nowhere else.
+case $cpu-$os in
+	# The "javascript-unknown-ghcjs" triple is used by GHC; we
+	# accept it here in order to tolerate that, but reject any
+	# variations.
+	javascript-ghcjs)
+		;;
+	javascript-* | *-ghcjs)
+		echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2
+		exit 1
+		;;
+esac
+
 # As a final step for OS-related things, validate the OS-kernel combination
 # (given a valid OS), if there is a kernel.
-case $kernel-$os in
-	linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \
-		   | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* )
+case $kernel-$os-$obj in
+	linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \
+		    | linux-mlibc*- | linux-musl*- | linux-newlib*- \
+		    | linux-relibc*- | linux-uclibc*- | linux-ohos*- )
+		;;
+	uclinux-uclibc*- | uclinux-gnu*- )
 		;;
-	uclinux-uclibc* )
+	managarm-mlibc*- | managarm-kernel*- )
 		;;
-	managarm-mlibc* | managarm-kernel* )
+	windows*-msvc*-)
 		;;
-	-dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* )
+	-dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \
+		    | -uclibc*- )
 		# These are just libc implementations, not actual OSes, and thus
 		# require a kernel.
 		echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2
 		exit 1
 		;;
-	-kernel* )
+	-kernel*- )
 		echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2
 		exit 1
 		;;
-	*-kernel* )
+	*-kernel*- )
 		echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2
 		exit 1
 		;;
-	kfreebsd*-gnu* | kopensolaris*-gnu*)
+	*-msvc*- )
+		echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2
+		exit 1
 		;;
-	vxworks-simlinux | vxworks-simwindows | vxworks-spe)
+	kfreebsd*-gnu*- | knetbsd*-gnu*- | netbsd*-gnu*- | kopensolaris*-gnu*-)
 		;;
-	nto-qnx*)
+	vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-)
 		;;
-	os2-emx)
+	nto-qnx*-)
 		;;
-	*-eabi* | *-gnueabi*)
+	os2-emx-)
 		;;
-	-*)
+	rtmk-nova-)
+		;;
+	*-eabi*- | *-gnueabi*-)
+		;;
+	none--*)
+		# None (no kernel, i.e. freestanding / bare metal),
+		# can be paired with an machine code file format
+		;;
+	-*-)
 		# Blank kernel with real OS is always fine.
 		;;
-	*-*)
+	--*)
+		# Blank kernel and OS with real machine code file format is always fine.
+		;;
+	*-*-*)
 		echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2
 		exit 1
 		;;
@@ -1826,7 +2273,7 @@ case $vendor in
 			*-riscix*)
 				vendor=acorn
 				;;
-			*-sunos*)
+			*-sunos* | *-solaris*)
 				vendor=sun
 				;;
 			*-cnk* | *-aix*)
@@ -1896,7 +2343,7 @@ case $vendor in
 		;;
 esac
 
-echo "$cpu-$vendor-${kernel:+$kernel-}$os"
+echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}"
 exit
 
 # Local variables:
diff -pruN 1:5.1-2/configure 1:5.2-1/configure
--- 1:5.1-2/configure	2024-10-29 15:48:01.631641935 +0000
+++ 1:5.2-1/configure	2025-07-07 14:30:54.789232162 +0000
@@ -1,11 +1,11 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for debugedit 5.1.
+# Generated by GNU Autoconf 2.72 for debugedit 5.2.
 #
 # Report bugs to <debugedit@sourceware.org>.
 #
 #
-# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
+# Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation,
 # Inc.
 #
 #
@@ -17,7 +17,6 @@
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-as_nop=:
 if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
 then :
   emulate sh
@@ -26,12 +25,13 @@ then :
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
-else $as_nop
-  case `(set -o) 2>/dev/null` in #(
+else case e in #(
+  e) case `(set -o) 2>/dev/null` in #(
   *posix*) :
     set -o posix ;; #(
   *) :
      ;;
+esac ;;
 esac
 fi
 
@@ -103,7 +103,7 @@ IFS=$as_save_IFS
 
      ;;
 esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
+# We did not find ourselves, most probably we were run as 'sh COMMAND'
 # in which case we are not to be found in the path.
 if test "x$as_myself" = x; then
   as_myself=$0
@@ -133,15 +133,14 @@ case $- in # ((((
 esac
 exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
 # Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
+# out after a failed 'exec'.
 printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
 exit 255
   fi
   # We don't want this to propagate to other subprocesses.
           { _as_can_reexec=; unset _as_can_reexec;}
 if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="as_nop=:
-if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+  as_bourne_compatible="if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
 then :
   emulate sh
   NULLCMD=:
@@ -149,12 +148,13 @@ then :
   # is contrary to our usage.  Disable this feature.
   alias -g '\${1+\"\$@\"}'='\"\$@\"'
   setopt NO_GLOB_SUBST
-else \$as_nop
-  case \`(set -o) 2>/dev/null\` in #(
+else case e in #(
+  e) case \`(set -o) 2>/dev/null\` in #(
   *posix*) :
     set -o posix ;; #(
   *) :
      ;;
+esac ;;
 esac
 fi
 "
@@ -172,8 +172,9 @@ as_fn_ret_failure && { exitcode=1; echo
 if ( set x; as_fn_ret_success y && test x = \"\$1\" )
 then :
 
-else \$as_nop
-  exitcode=1; echo positional parameters were not saved.
+else case e in #(
+  e) exitcode=1; echo positional parameters were not saved. ;;
+esac
 fi
 test x\$exitcode = x0 || exit 1
 blah=\$(echo \$(echo blah))
@@ -187,14 +188,15 @@ test \$(( 1 + 1 )) = 2 || exit 1"
   if (eval "$as_required") 2>/dev/null
 then :
   as_have_required=yes
-else $as_nop
-  as_have_required=no
+else case e in #(
+  e) as_have_required=no ;;
+esac
 fi
   if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
 then :
 
-else $as_nop
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+else case e in #(
+  e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 as_found=false
 for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
@@ -227,12 +229,13 @@ IFS=$as_save_IFS
 if $as_found
 then :
 
-else $as_nop
-  if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+else case e in #(
+  e) if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
 	      as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
 then :
   CONFIG_SHELL=$SHELL as_have_required=yes
-fi
+fi ;;
+esac
 fi
 
 
@@ -254,7 +257,7 @@ case $- in # ((((
 esac
 exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
 # Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
+# out after a failed 'exec'.
 printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
 exit 255
 fi
@@ -274,7 +277,8 @@ $0: install a modern shell, or manually
 $0: under such a shell if you do have one."
   fi
   exit 1
-fi
+fi ;;
+esac
 fi
 fi
 SHELL=${CONFIG_SHELL-/bin/sh}
@@ -313,14 +317,6 @@ as_fn_exit ()
   as_fn_set_status $1
   exit $1
 } # as_fn_exit
-# as_fn_nop
-# ---------
-# Do nothing but, unlike ":", preserve the value of $?.
-as_fn_nop ()
-{
-  return $?
-}
-as_nop=as_fn_nop
 
 # as_fn_mkdir_p
 # -------------
@@ -389,11 +385,12 @@ then :
   {
     eval $1+=\$2
   }'
-else $as_nop
-  as_fn_append ()
+else case e in #(
+  e) as_fn_append ()
   {
     eval $1=\$$1\$2
-  }
+  } ;;
+esac
 fi # as_fn_append
 
 # as_fn_arith ARG...
@@ -407,21 +404,14 @@ then :
   {
     as_val=$(( $* ))
   }'
-else $as_nop
-  as_fn_arith ()
+else case e in #(
+  e) as_fn_arith ()
   {
     as_val=`expr "$@" || test $? -eq 1`
-  }
+  } ;;
+esac
 fi # as_fn_arith
 
-# as_fn_nop
-# ---------
-# Do nothing but, unlike ":", preserve the value of $?.
-as_fn_nop ()
-{
-  return $?
-}
-as_nop=as_fn_nop
 
 # as_fn_error STATUS ERROR [LINENO LOG_FD]
 # ----------------------------------------
@@ -495,6 +485,8 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
     /[$]LINENO/=
   ' <$as_myself |
     sed '
+      t clear
+      :clear
       s/[$]LINENO.*/&-/
       t lineno
       b
@@ -543,7 +535,6 @@ esac
 as_echo='printf %s\n'
 as_echo_n='printf %s'
 
-
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
   rm -f conf$$.dir/conf$$.file
@@ -555,9 +546,9 @@ if (echo >conf$$.file) 2>/dev/null; then
   if ln -s conf$$.file conf$$ 2>/dev/null; then
     as_ln_s='ln -s'
     # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
+    # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable.
+    # In both cases, we have to default to 'cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
       as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
@@ -582,10 +573,12 @@ as_test_x='test -x'
 as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated
 
 # Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+as_tr_sh="eval sed '$as_sed_sh'" # deprecated
 
 
 test -n "$DJDIR" || exec 7<&0 </dev/null
@@ -611,8 +604,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='debugedit'
 PACKAGE_TARNAME='debugedit'
-PACKAGE_VERSION='5.1'
-PACKAGE_STRING='debugedit 5.1'
+PACKAGE_VERSION='5.2'
+PACKAGE_STRING='debugedit 5.2'
 PACKAGE_BUGREPORT='debugedit@sourceware.org'
 PACKAGE_URL=''
 
@@ -650,6 +643,7 @@ ac_includes_default="\
 
 ac_header_c_list=
 ac_func_c_list=
+enable_year2038=no
 ac_subst_vars='am__EXEEXT_FALSE
 am__EXEEXT_TRUE
 LTLIBOBJS
@@ -657,6 +651,7 @@ READELF_VERSION_OK
 DEBUG_MACRO_FLAG
 GZ_ZLIB_FLAG
 GZ_NONE_FLAG
+DWARF_5_DEBUGADDR
 DWARF_5_DEBUGLINE
 GDWARF_5_FLAG
 host_os
@@ -681,6 +676,9 @@ PKG_CONFIG
 DWZ_J
 DWZ
 HELP2MAN
+AR
+NM
+OBJCOPY
 READELF
 LD
 LN_S
@@ -702,6 +700,8 @@ LDFLAGS
 CFLAGS
 CC
 AUTOM4TE
+am__xargs_n
+am__rm_f_notfound
 AM_BACKSLASH
 AM_DEFAULT_VERBOSITY
 AM_DEFAULT_V
@@ -778,6 +778,8 @@ enable_option_checking
 enable_silent_rules
 enable_dependency_tracking
 enable_largefile
+enable_inlined_xxhash
+enable_year2038
 '
       ac_precious_vars='build_alias
 host_alias
@@ -904,7 +906,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: \`$ac_useropt'"
+      as_fn_error $? "invalid feature name: '$ac_useropt'"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -930,7 +932,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: \`$ac_useropt'"
+      as_fn_error $? "invalid feature name: '$ac_useropt'"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1143,7 +1145,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: \`$ac_useropt'"
+      as_fn_error $? "invalid package name: '$ac_useropt'"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1159,7 +1161,7 @@ do
     ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
     expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: \`$ac_useropt'"
+      as_fn_error $? "invalid package name: '$ac_useropt'"
     ac_useropt_orig=$ac_useropt
     ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'`
     case $ac_user_opts in
@@ -1189,8 +1191,8 @@ do
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
     x_libraries=$ac_optarg ;;
 
-  -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
+  -*) as_fn_error $? "unrecognized option: '$ac_option'
+Try '$0 --help' for more information"
     ;;
 
   *=*)
@@ -1198,7 +1200,7 @@ Try \`$0 --help' for more information"
     # Reject names that are not valid shell variable names.
     case $ac_envvar in #(
       '' | [0-9]* | *[!_$as_cr_alnum]* )
-      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
+      as_fn_error $? "invalid variable name: '$ac_envvar'" ;;
     esac
     eval $ac_envvar=\$ac_optarg
     export $ac_envvar ;;
@@ -1248,7 +1250,7 @@ do
   as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
 done
 
-# There might be people who depend on the old broken behavior: `$host'
+# There might be people who depend on the old broken behavior: '$host'
 # used to hold the argument of --host etc.
 # FIXME: To remove some day.
 build=$build_alias
@@ -1316,7 +1318,7 @@ if test ! -r "$srcdir/$ac_unique_file";
   test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
   as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
 fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
+ac_msg="sources are in $srcdir, but 'cd $srcdir' does not work"
 ac_abs_confdir=`(
 	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
 	pwd)`
@@ -1344,7 +1346,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures debugedit 5.1 to adapt to many kinds of systems.
+'configure' configures debugedit 5.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1358,11 +1360,11 @@ Configuration:
       --help=short        display options specific to this package
       --help=recursive    display the short help of all the included packages
   -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking ...' messages
+  -q, --quiet, --silent   do not print 'checking ...' messages
       --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
+  -C, --config-cache      alias for '--cache-file=config.cache'
   -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
+      --srcdir=DIR        find the sources in DIR [configure dir or '..']
 
 Installation directories:
   --prefix=PREFIX         install architecture-independent files in PREFIX
@@ -1370,10 +1372,10 @@ Installation directories:
   --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
                           [PREFIX]
 
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
+By default, 'make install' will install all the files in
+'$ac_default_prefix/bin', '$ac_default_prefix/lib' etc.  You can specify
+an installation prefix other than '$ac_default_prefix' using '--prefix',
+for instance '--prefix=\$HOME'.
 
 For better control, use the options below.
 
@@ -1415,7 +1417,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of debugedit 5.1:";;
+     short | recursive ) echo "Configuration of debugedit 5.2:";;
    esac
   cat <<\_ACEOF
 
@@ -1430,6 +1432,9 @@ Optional Features:
   --disable-dependency-tracking
                           speeds up one-time build
   --disable-largefile     omit support for large files
+  --disable-inlined-xxhash
+                          disable the inlined-only version of xxhash library
+  --enable-year2038       support timestamps after 2038
 
 Some influential environment variables:
   CC          C compiler command
@@ -1454,7 +1459,7 @@ Some influential environment variables:
               C compiler flags for XXHASH, overriding pkg-config
   XXHASH_LIBS linker flags for XXHASH, overriding pkg-config
 
-Use these variables to override the choices made by `configure' or to help
+Use these variables to override the choices made by 'configure' or to help
 it to find libraries and programs with nonstandard names/locations.
 
 Report bugs to <debugedit@sourceware.org>.
@@ -1521,10 +1526,10 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-debugedit configure 5.1
-generated by GNU Autoconf 2.71
+debugedit configure 5.2
+generated by GNU Autoconf 2.72
 
-Copyright (C) 2021 Free Software Foundation, Inc.
+Copyright (C) 2023 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -1563,11 +1568,12 @@ printf "%s\n" "$ac_try_echo"; } >&5
        } && test -s conftest.$ac_objext
 then :
   ac_retval=0
-else $as_nop
-  printf "%s\n" "$as_me: failed program was:" >&5
+else case e in #(
+  e) printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-	ac_retval=1
+	ac_retval=1 ;;
+esac
 fi
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
@@ -1586,8 +1592,8 @@ printf %s "checking for $2... " >&6; }
 if eval test \${$3+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
 #include <$2>
@@ -1595,10 +1601,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   eval "$3=yes"
-else $as_nop
-  eval "$3=no"
+else case e in #(
+  e) eval "$3=no" ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 eval ac_res=\$$3
 	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -1638,11 +1646,12 @@ printf "%s\n" "$ac_try_echo"; } >&5
        }
 then :
   ac_retval=0
-else $as_nop
-  printf "%s\n" "$as_me: failed program was:" >&5
+else case e in #(
+  e) printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-	ac_retval=1
+	ac_retval=1 ;;
+esac
 fi
   # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
   # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
@@ -1666,8 +1675,8 @@ printf %s "checking for $2... " >&6; }
 if eval test \${$3+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  eval "$3=no"
+else case e in #(
+  e) eval "$3=no"
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $4
@@ -1697,12 +1706,14 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
 
-else $as_nop
-  eval "$3=yes"
+else case e in #(
+  e) eval "$3=yes" ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 eval ac_res=\$$3
 	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -1723,8 +1734,8 @@ printf %s "checking for int$2_t... " >&6
 if eval test \${$3+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  eval "$3=no"
+else case e in #(
+  e) eval "$3=no"
      # Order is important - never check a type that is potentially smaller
      # than half of the expected target width.
      for ac_type in int$2_t 'int' 'long int' \
@@ -1765,12 +1776,13 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
 
-else $as_nop
-  case $ac_type in #(
+else case e in #(
+  e) case $ac_type in #(
   int$2_t) :
     eval "$3=yes" ;; #(
   *) :
     eval "$3=\$ac_type" ;;
+esac ;;
 esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
@@ -1779,10 +1791,12 @@ rm -f core conftest.err conftest.$ac_obj
        if eval test \"x\$"$3"\" = x"no"
 then :
 
-else $as_nop
-  break
+else case e in #(
+  e) break ;;
+esac
 fi
-     done
+     done ;;
+esac
 fi
 eval ac_res=\$$3
 	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -1803,8 +1817,8 @@ printf %s "checking for uint$2_t... " >&
 if eval test \${$3+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  eval "$3=no"
+else case e in #(
+  e) eval "$3=no"
      # Order is important - never check a type that is potentially smaller
      # than half of the expected target width.
      for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \
@@ -1836,10 +1850,12 @@ rm -f core conftest.err conftest.$ac_obj
        if eval test \"x\$"$3"\" = x"no"
 then :
 
-else $as_nop
-  break
+else case e in #(
+  e) break ;;
+esac
 fi
-     done
+     done ;;
+esac
 fi
 eval ac_res=\$$3
 	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -1878,12 +1894,13 @@ printf "%s\n" "$ac_try_echo"; } >&5
   test $ac_status = 0; }; }
 then :
   ac_retval=0
-else $as_nop
-  printf "%s\n" "$as_me: program exited with status $ac_status" >&5
+else case e in #(
+  e) printf "%s\n" "$as_me: program exited with status $ac_status" >&5
        printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-       ac_retval=$ac_status
+       ac_retval=$ac_status ;;
+esac
 fi
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
   eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
@@ -1902,15 +1919,15 @@ printf %s "checking for $2... " >&6; }
 if eval test \${$3+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 /* Define $2 to an innocuous variant, in case <limits.h> declares $2.
    For example, HP-UX 11i <limits.h> declares gettimeofday.  */
 #define $2 innocuous_$2
 
 /* System header to define __stub macros and hopefully few prototypes,
-   which can conflict with char $2 (); below.  */
+   which can conflict with char $2 (void); below.  */
 
 #include <limits.h>
 #undef $2
@@ -1921,7 +1938,7 @@ else $as_nop
 #ifdef __cplusplus
 extern "C"
 #endif
-char $2 ();
+char $2 (void);
 /* The GNU C library defines this for functions which it implements
     to always fail with ENOSYS.  Some functions are actually named
     something starting with __ and the normal name is an alias.  */
@@ -1940,11 +1957,13 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   eval "$3=yes"
-else $as_nop
-  eval "$3=no"
+else case e in #(
+  e) eval "$3=no" ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
+    conftest$ac_exeext conftest.$ac_ext ;;
+esac
 fi
 eval ac_res=\$$3
 	       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
@@ -1976,8 +1995,8 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by debugedit $as_me 5.1, which was
-generated by GNU Autoconf 2.71.  Invocation command line was
+It was created by debugedit $as_me 5.2, which was
+generated by GNU Autoconf 2.72.  Invocation command line was
 
   $ $0$ac_configure_args_raw
 
@@ -2223,10 +2242,10 @@ esac
 printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;}
     sed 's/^/| /' "$ac_site_file" >&5
     . "$ac_site_file" \
-      || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+      || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
+See 'config.log' for more details" "$LINENO" 5; }
   fi
 done
 
@@ -2263,9 +2282,7 @@ struct stat;
 /* Most of the following tests are stolen from RCS 5.7 src/conf.sh.  */
 struct buf { int x; };
 struct buf * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
+static char *e (char **p, int i)
 {
   return p[i];
 }
@@ -2279,6 +2296,21 @@ static char *f (char * (*g) (char **, in
   return s;
 }
 
+/* C89 style stringification. */
+#define noexpand_stringify(a) #a
+const char *stringified = noexpand_stringify(arbitrary+token=sequence);
+
+/* C89 style token pasting.  Exercises some of the corner cases that
+   e.g. old MSVC gets wrong, but not very hard. */
+#define noexpand_concat(a,b) a##b
+#define expand_concat(a,b) noexpand_concat(a,b)
+extern int vA;
+extern int vbee;
+#define aye A
+#define bee B
+int *pvA = &expand_concat(v,aye);
+int *pvbee = &noexpand_concat(v,bee);
+
 /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
    function prototypes and stuff, but not \xHH hex character constants.
    These do not provoke an error unfortunately, instead are silently treated
@@ -2306,16 +2338,19 @@ ok |= (argc == 0 || f (e, argv, 0) != ar
 
 # Test code for whether the C compiler supports C99 (global declarations)
 ac_c_conftest_c99_globals='
-// Does the compiler advertise C99 conformance?
+/* Does the compiler advertise C99 conformance? */
 #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L
 # error "Compiler does not advertise C99 conformance"
 #endif
 
+// See if C++-style comments work.
+
 #include <stdbool.h>
 extern int puts (const char *);
 extern int printf (const char *, ...);
 extern int dprintf (int, const char *, ...);
 extern void *malloc (size_t);
+extern void free (void *);
 
 // Check varargs macros.  These examples are taken from C99 6.10.3.5.
 // dprintf is used instead of fprintf to avoid needing to declare
@@ -2365,7 +2400,6 @@ typedef const char *ccp;
 static inline int
 test_restrict (ccp restrict text)
 {
-  // See if C++-style comments work.
   // Iterate through items via the restricted pointer.
   // Also check for declarations in for loops.
   for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)
@@ -2431,6 +2465,8 @@ ac_c_conftest_c99_main='
   ia->datasize = 10;
   for (int i = 0; i < ia->datasize; ++i)
     ia->data[i] = i * 1.234;
+  // Work around memory leak warnings.
+  free (ia);
 
   // Check named initializers.
   struct named_init ni = {
@@ -2452,7 +2488,7 @@ ac_c_conftest_c99_main='
 
 # Test code for whether the C compiler supports C11 (global declarations)
 ac_c_conftest_c11_globals='
-// Does the compiler advertise C11 conformance?
+/* Does the compiler advertise C11 conformance? */
 #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L
 # error "Compiler does not advertise C11 conformance"
 #endif
@@ -2647,8 +2683,9 @@ IFS=$as_save_IFS
 if $as_found
 then :
 
-else $as_nop
-  as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5
+else case e in #(
+  e) as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 ;;
+esac
 fi
 
 
@@ -2676,12 +2713,12 @@ for ac_var in $ac_precious_vars; do
   eval ac_new_val=\$ac_env_${ac_var}_value
   case $ac_old_set,$ac_new_set in
     set,)
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5
+printf "%s\n" "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,set)
-      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5
+printf "%s\n" "$as_me: error: '$ac_var' was not set in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,);;
     *)
@@ -2690,18 +2727,18 @@ printf "%s\n" "$as_me: error: \`$ac_var'
 	ac_old_val_w=`echo x $ac_old_val`
 	ac_new_val_w=`echo x $ac_new_val`
 	if test "$ac_old_val_w" != "$ac_new_val_w"; then
-	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5
+printf "%s\n" "$as_me: error: '$ac_var' has changed since the previous run:" >&2;}
 	  ac_cache_corrupted=:
 	else
-	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+	  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5
+printf "%s\n" "$as_me: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&2;}
 	  eval $ac_var=\$ac_old_val
 	fi
-	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
-printf "%s\n" "$as_me:   former value:  \`$ac_old_val'" >&2;}
-	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
-printf "%s\n" "$as_me:   current value: \`$ac_new_val'" >&2;}
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}:   former value:  '$ac_old_val'" >&5
+printf "%s\n" "$as_me:   former value:  '$ac_old_val'" >&2;}
+	{ printf "%s\n" "$as_me:${as_lineno-$LINENO}:   current value: '$ac_new_val'" >&5
+printf "%s\n" "$as_me:   current value: '$ac_new_val'" >&2;}
       fi;;
   esac
   # Pass precious variables to config.status.
@@ -2717,11 +2754,11 @@ printf "%s\n" "$as_me:   current value:
   fi
 done
 if $ac_cache_corrupted; then
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
 printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'
+  as_fn_error $? "run '${MAKE-make} distclean' and/or 'rm $cache_file'
 	    and start over" "$LINENO" 5
 fi
 ## -------------------- ##
@@ -2741,7 +2778,7 @@ ac_config_headers="$ac_config_headers co
 
 # We are using foreign, not gnu, because we don't provide some
 # "standard" files like ChangeLog, AUTHORS, INSTALL, etc.
-am__api_version='1.16'
+am__api_version='1.17'
 
 
 
@@ -2765,8 +2802,8 @@ if test -z "$INSTALL"; then
 if test ${ac_cv_path_install+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+else case e in #(
+  e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
 do
   IFS=$as_save_IFS
@@ -2820,7 +2857,8 @@ esac
 IFS=$as_save_IFS
 
 rm -rf conftest.one conftest.two conftest.dir
-
+ ;;
+esac
 fi
   if test ${ac_cv_path_install+y}; then
     INSTALL=$ac_cv_path_install
@@ -2843,6 +2881,165 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCR
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether sleep supports fractional seconds" >&5
+printf %s "checking whether sleep supports fractional seconds... " >&6; }
+if test ${am_cv_sleep_fractional_seconds+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if sleep 0.001 2>/dev/null
+then :
+  am_cv_sleep_fractional_seconds=yes
+else case e in #(
+  e) am_cv_sleep_fractional_seconds=no ;;
+esac
+fi
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_sleep_fractional_seconds" >&5
+printf "%s\n" "$am_cv_sleep_fractional_seconds" >&6; }
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking filesystem timestamp resolution" >&5
+printf %s "checking filesystem timestamp resolution... " >&6; }
+if test ${am_cv_filesystem_timestamp_resolution+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) # Default to the worst case.
+am_cv_filesystem_timestamp_resolution=2
+
+# Only try to go finer than 1 sec if sleep can do it.
+# Don't try 1 sec, because if 0.01 sec and 0.1 sec don't work,
+# - 1 sec is not much of a win compared to 2 sec, and
+# - it takes 2 seconds to perform the test whether 1 sec works.
+#
+# Instead, just use the default 2s on platforms that have 1s resolution,
+# accept the extra 1s delay when using $sleep in the Automake tests, in
+# exchange for not incurring the 2s delay for running the test for all
+# packages.
+#
+am_try_resolutions=
+if test "$am_cv_sleep_fractional_seconds" = yes; then
+  # Even a millisecond often causes a bunch of false positives,
+  # so just try a hundredth of a second. The time saved between .001 and
+  # .01 is not terribly consequential.
+  am_try_resolutions="0.01 0.1 $am_try_resolutions"
+fi
+
+# In order to catch current-generation FAT out, we must *modify* files
+# that already exist; the *creation* timestamp is finer.  Use names
+# that make ls -t sort them differently when they have equal
+# timestamps than when they have distinct timestamps, keeping
+# in mind that ls -t prints the *newest* file first.
+rm -f conftest.ts?
+: > conftest.ts1
+: > conftest.ts2
+: > conftest.ts3
+
+# Make sure ls -t actually works.  Do 'set' in a subshell so we don't
+# clobber the current shell's arguments. (Outer-level square brackets
+# are removed by m4; they're present so that m4 does not expand
+# <dollar><star>; be careful, easy to get confused.)
+if (
+     set X `ls -t conftest.ts[12]` &&
+     {
+       test "$*" != "X conftest.ts1 conftest.ts2" ||
+       test "$*" != "X conftest.ts2 conftest.ts1";
+     }
+); then :; else
+  # If neither matched, then we have a broken ls.  This can happen
+  # if, for instance, CONFIG_SHELL is bash and it inherits a
+  # broken ls alias from the environment.  This has actually
+  # happened.  Such a system could not be considered "sane".
+  printf "%s\n" ""Bad output from ls -t: \"`ls -t conftest.ts[12]`\""" >&5
+  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+as_fn_error $? "ls -t produces unexpected output.
+Make sure there is not a broken ls alias in your environment.
+See 'config.log' for more details" "$LINENO" 5; }
+fi
+
+for am_try_res in $am_try_resolutions; do
+  # Any one fine-grained sleep might happen to cross the boundary
+  # between two values of a coarser actual resolution, but if we do
+  # two fine-grained sleeps in a row, at least one of them will fall
+  # entirely within a coarse interval.
+  echo alpha > conftest.ts1
+  sleep $am_try_res
+  echo beta > conftest.ts2
+  sleep $am_try_res
+  echo gamma > conftest.ts3
+
+  # We assume that 'ls -t' will make use of high-resolution
+  # timestamps if the operating system supports them at all.
+  if (set X `ls -t conftest.ts?` &&
+      test "$2" = conftest.ts3 &&
+      test "$3" = conftest.ts2 &&
+      test "$4" = conftest.ts1); then
+    #
+    # Ok, ls -t worked. If we're at a resolution of 1 second, we're done,
+    # because we don't need to test make.
+    make_ok=true
+    if test $am_try_res != 1; then
+      # But if we've succeeded so far with a subsecond resolution, we
+      # have one more thing to check: make. It can happen that
+      # everything else supports the subsecond mtimes, but make doesn't;
+      # notably on macOS, which ships make 3.81 from 2006 (the last one
+      # released under GPLv2). https://bugs.gnu.org/68808
+      #
+      # We test $MAKE if it is defined in the environment, else "make".
+      # It might get overridden later, but our hope is that in practice
+      # it does not matter: it is the system "make" which is (by far)
+      # the most likely to be broken, whereas if the user overrides it,
+      # probably they did so with a better, or at least not worse, make.
+      # https://lists.gnu.org/archive/html/automake/2024-06/msg00051.html
+      #
+      # Create a Makefile (real tab character here):
+      rm -f conftest.mk
+      echo 'conftest.ts1: conftest.ts2' >conftest.mk
+      echo '	touch conftest.ts2' >>conftest.mk
+      #
+      # Now, running
+      #   touch conftest.ts1; touch conftest.ts2; make
+      # should touch ts1 because ts2 is newer. This could happen by luck,
+      # but most often, it will fail if make's support is insufficient. So
+      # test for several consecutive successes.
+      #
+      # (We reuse conftest.ts[12] because we still want to modify existing
+      # files, not create new ones, per above.)
+      n=0
+      make=${MAKE-make}
+      until test $n -eq 3; do
+        echo one > conftest.ts1
+        sleep $am_try_res
+        echo two > conftest.ts2 # ts2 should now be newer than ts1
+        if $make -f conftest.mk | grep 'up to date' >/dev/null; then
+          make_ok=false
+          break # out of $n loop
+        fi
+        n=`expr $n + 1`
+      done
+    fi
+    #
+    if $make_ok; then
+      # Everything we know to check worked out, so call this resolution good.
+      am_cv_filesystem_timestamp_resolution=$am_try_res
+      break # out of $am_try_res loop
+    fi
+    # Otherwise, we'll go on to check the next resolution.
+  fi
+done
+rm -f conftest.ts?
+# (end _am_filesystem_timestamp_resolution)
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_filesystem_timestamp_resolution" >&5
+printf "%s\n" "$am_cv_filesystem_timestamp_resolution" >&6; }
+
+# This check should not be cached, as it may vary across builds of
+# different projects.
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5
 printf %s "checking whether build environment is sane... " >&6; }
 # Reject unsafe characters in $srcdir or the absolute working directory
@@ -2863,49 +3060,45 @@ esac
 # symlink; some systems play weird games with the mod time of symlinks
 # (eg FreeBSD returns the mod time of the symlink's containing
 # directory).
-if (
-   am_has_slept=no
-   for am_try in 1 2; do
-     echo "timestamp, slept: $am_has_slept" > conftest.file
-     set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
-     if test "$*" = "X"; then
-	# -L didn't work.
-	set X `ls -t "$srcdir/configure" conftest.file`
-     fi
-     if test "$*" != "X $srcdir/configure conftest.file" \
-	&& test "$*" != "X conftest.file $srcdir/configure"; then
+am_build_env_is_sane=no
+am_has_slept=no
+rm -f conftest.file
+for am_try in 1 2; do
+  echo "timestamp, slept: $am_has_slept" > conftest.file
+  if (
+    set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null`
+    if test "$*" = "X"; then
+      # -L didn't work.
+      set X `ls -t "$srcdir/configure" conftest.file`
+    fi
+    test "$2" = conftest.file
+  ); then
+    am_build_env_is_sane=yes
+    break
+  fi
+  # Just in case.
+  sleep "$am_cv_filesystem_timestamp_resolution"
+  am_has_slept=yes
+done
 
-	# If neither matched, then we have a broken ls.  This can happen
-	# if, for instance, CONFIG_SHELL is bash and it inherits a
-	# broken ls alias from the environment.  This has actually
-	# happened.  Such a system could not be considered "sane".
-	as_fn_error $? "ls -t appears to fail.  Make sure there is not a broken
-  alias in your environment" "$LINENO" 5
-     fi
-     if test "$2" = conftest.file || test $am_try -eq 2; then
-       break
-     fi
-     # Just in case.
-     sleep 1
-     am_has_slept=yes
-   done
-   test "$2" = conftest.file
-   )
-then
-   # Ok.
-   :
-else
-   as_fn_error $? "newly created file is older than distributed files!
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_build_env_is_sane" >&5
+printf "%s\n" "$am_build_env_is_sane" >&6; }
+if test "$am_build_env_is_sane" = no; then
+  as_fn_error $? "newly created file is older than distributed files!
 Check your system clock" "$LINENO" 5
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+
 # If we didn't sleep, we still need to ensure time stamps of config.status and
 # generated files are strictly newer.
 am_sleep_pid=
-if grep 'slept: no' conftest.file >/dev/null 2>&1; then
-  ( sleep 1 ) &
+if test -e conftest.file || grep 'slept: no' conftest.file >/dev/null 2>&1
+then :
+
+else case e in #(
+  e)   ( sleep "$am_cv_filesystem_timestamp_resolution" ) &
   am_sleep_pid=$!
+ ;;
+esac
 fi
 
 rm -f conftest.file
@@ -2916,7 +3109,7 @@ test "$program_prefix" != NONE &&
 test "$program_suffix" != NONE &&
   program_transform_name="s&\$&$program_suffix&;$program_transform_name"
 # Double any \ or $.
-# By default was `s,x,x', remove it if useless.
+# By default was 's,x,x', remove it if useless.
 ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
 program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"`
 
@@ -2959,8 +3152,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_STRIP+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$STRIP"; then
+else case e in #(
+  e) if test -n "$STRIP"; then
   ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -2982,7 +3175,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 STRIP=$ac_cv_prog_STRIP
 if test -n "$STRIP"; then
@@ -3004,8 +3198,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_ac_ct_STRIP+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$ac_ct_STRIP"; then
+else case e in #(
+  e) if test -n "$ac_ct_STRIP"; then
   ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3027,7 +3221,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 if test -n "$ac_ct_STRIP"; then
@@ -3063,8 +3258,8 @@ if test -z "$MKDIR_P"; then
   if test ${ac_cv_path_mkdir+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+else case e in #(
+  e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
 do
   IFS=$as_save_IFS
@@ -3078,7 +3273,7 @@ do
 	   as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue
 	   case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #(
 	     'mkdir ('*'coreutils) '* | \
-	     'BusyBox '* | \
+	     *'BusyBox '* | \
 	     'mkdir (fileutils) '4.1*)
 	       ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext
 	       break 3;;
@@ -3087,18 +3282,17 @@ do
        done
   done
 IFS=$as_save_IFS
-
+ ;;
+esac
 fi
 
   test -d ./--version && rmdir ./--version
   if test ${ac_cv_path_mkdir+y}; then
     MKDIR_P="$ac_cv_path_mkdir -p"
   else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for MKDIR_P within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    MKDIR_P="$ac_install_sh -d"
+    # As a last resort, use plain mkdir -p,
+    # in the hope it doesn't have the bugs of ancient mkdir.
+    MKDIR_P='mkdir -p'
   fi
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5
@@ -3113,8 +3307,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_AWK+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$AWK"; then
+else case e in #(
+  e) if test -n "$AWK"; then
   ac_cv_prog_AWK="$AWK" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3136,7 +3330,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
@@ -3158,8 +3353,8 @@ ac_make=`printf "%s\n" "$2" | sed 's/+/p
 if eval test \${ac_cv_prog_make_${ac_make}_set+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat >conftest.make <<\_ACEOF
+else case e in #(
+  e) cat >conftest.make <<\_ACEOF
 SHELL = /bin/sh
 all:
 	@echo '@@@%%%=$(MAKE)=@@@%%%'
@@ -3171,7 +3366,8 @@ case `${MAKE-make} -f conftest.make 2>/d
   *)
     eval ac_cv_prog_make_${ac_make}_set=no;;
 esac
-rm -f conftest.make
+rm -f conftest.make ;;
+esac
 fi
 if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
@@ -3192,25 +3388,21 @@ else
 fi
 rmdir .tst 2>/dev/null
 
+AM_DEFAULT_VERBOSITY=1
 # Check whether --enable-silent-rules was given.
 if test ${enable_silent_rules+y}
 then :
   enableval=$enable_silent_rules;
 fi
 
-case $enable_silent_rules in # (((
-  yes) AM_DEFAULT_VERBOSITY=0;;
-   no) AM_DEFAULT_VERBOSITY=1;;
-    *) AM_DEFAULT_VERBOSITY=1;;
-esac
 am_make=${MAKE-make}
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
 printf %s "checking whether $am_make supports nested variables... " >&6; }
 if test ${am_cv_make_support_nested_variables+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if printf "%s\n" 'TRUE=$(BAR$(V))
+else case e in #(
+  e) if printf "%s\n" 'TRUE=$(BAR$(V))
 BAR0=false
 BAR1=true
 V=1
@@ -3220,19 +3412,50 @@ am__doit:
   am_cv_make_support_nested_variables=yes
 else
   am_cv_make_support_nested_variables=no
-fi
+fi ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
 printf "%s\n" "$am_cv_make_support_nested_variables" >&6; }
-if test $am_cv_make_support_nested_variables = yes; then
-    AM_V='$(V)'
-  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
-  AM_V=$AM_DEFAULT_VERBOSITY
-  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
 AM_BACKSLASH='\'
 
+am__rm_f_notfound=
+if (rm -f && rm -fr && rm -rf) 2>/dev/null
+then :
+
+else case e in #(
+  e) am__rm_f_notfound='""' ;;
+esac
+fi
+
+
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking xargs -n works" >&5
+printf %s "checking xargs -n works... " >&6; }
+if test ${am_cv_xargs_n_works+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test "`echo 1 2 3 | xargs -n2 echo`" = "1 2
+3"
+then :
+  am_cv_xargs_n_works=yes
+else case e in #(
+  e) am_cv_xargs_n_works=no ;;
+esac
+fi ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_xargs_n_works" >&5
+printf "%s\n" "$am_cv_xargs_n_works" >&6; }
+if test "$am_cv_xargs_n_works" = yes
+then :
+  am__xargs_n='xargs -n'
+else case e in #(
+  e)   am__xargs_n='am__xargs_n () { shift; sed "s/ /\\n/g" | while read am__xargs_n_arg; do "" "$am__xargs_n_arg"; done; }'
+ ;;
+esac
+fi
+
 if test "`cd $srcdir && pwd`" != "`pwd`"; then
   # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
   # is not polluted with repeated "-I."
@@ -3255,7 +3478,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='debugedit'
- VERSION='5.1'
+ VERSION='5.2'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -3376,8 +3599,9 @@ printf %s "checking how to create a pax
   if test ${am_cv_prog_tar_pax+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  am_cv_prog_tar_pax=$_am_tool
+else case e in #(
+  e) am_cv_prog_tar_pax=$_am_tool ;;
+esac
 fi
 
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_tar_pax" >&5
@@ -3402,91 +3626,14 @@ fi
 
 
 
-# POSIX will say in a future version that running "rm -f" with no argument
-# is OK; and we want to be able to make that assumption in our Makefile
-# recipes.  So use an aggressive probe to check that the usage we want is
-# actually supported "in the wild" to an acceptable degree.
-# See automake bug#10828.
-# To make any issue more visible, cause the running configure to be aborted
-# by default if the 'rm' program in use doesn't match our expectations; the
-# user can still override this though.
-if rm -f && rm -fr && rm -rf; then : OK; else
-  cat >&2 <<'END'
-Oops!
-
-Your 'rm' program seems unable to run without file operands specified
-on the command line, even when the '-f' option is present.  This is contrary
-to the behaviour of most rm programs out there, and not conforming with
-the upcoming POSIX standard: <http://austingroupbugs.net/view.php?id=542>
-
-Please tell bug-automake@gnu.org about your system, including the value
-of your $PATH and any error possibly output before this message.  This
-can help us improve future automake versions.
-
-END
-  if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then
-    echo 'Configuration will proceed anyway, since you have set the' >&2
-    echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2
-    echo >&2
-  else
-    cat >&2 <<'END'
-Aborting the configuration process, to ensure you take notice of the issue.
 
-You can download and install GNU coreutils to get an 'rm' implementation
-that behaves properly: <https://www.gnu.org/software/coreutils/>.
 
-If you want to complete the configuration process using your problematic
-'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM
-to "yes", and re-run configure.
 
-END
-    as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5
-  fi
-fi
 
 
 # Silence. Override with make V=1.
-# Check whether --enable-silent-rules was given.
-if test ${enable_silent_rules+y}
-then :
-  enableval=$enable_silent_rules;
-fi
-
-case $enable_silent_rules in # (((
-  yes) AM_DEFAULT_VERBOSITY=0;;
-   no) AM_DEFAULT_VERBOSITY=1;;
-    *) AM_DEFAULT_VERBOSITY=0;;
-esac
-am_make=${MAKE-make}
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5
-printf %s "checking whether $am_make supports nested variables... " >&6; }
-if test ${am_cv_make_support_nested_variables+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  if printf "%s\n" 'TRUE=$(BAR$(V))
-BAR0=false
-BAR1=true
-V=1
-am__doit:
-	@$(TRUE)
-.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then
-  am_cv_make_support_nested_variables=yes
-else
-  am_cv_make_support_nested_variables=no
-fi
-fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5
-printf "%s\n" "$am_cv_make_support_nested_variables" >&6; }
-if test $am_cv_make_support_nested_variables = yes; then
-    AM_V='$(V)'
-  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
-else
-  AM_V=$AM_DEFAULT_VERBOSITY
-  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
-fi
-AM_BACKSLASH='\'
 
+AM_DEFAULT_VERBOSITY=0
 
 # autotest directory
 ac_config_commands="$ac_config_commands tests/atconfig"
@@ -3584,8 +3731,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$CC"; then
+else case e in #(
+  e) if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3607,7 +3754,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
@@ -3629,8 +3777,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_ac_ct_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$ac_ct_CC"; then
+else case e in #(
+  e) if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3652,7 +3800,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
@@ -3687,8 +3836,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$CC"; then
+else case e in #(
+  e) if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3710,7 +3859,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
@@ -3732,8 +3882,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$CC"; then
+else case e in #(
+  e) if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
   ac_prog_rejected=no
@@ -3772,7 +3922,8 @@ if test $ac_prog_rejected = yes; then
     ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
   fi
 fi
-fi
+fi ;;
+esac
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
@@ -3796,8 +3947,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$CC"; then
+else case e in #(
+  e) if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3819,7 +3970,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
@@ -3845,8 +3997,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_ac_ct_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$ac_ct_CC"; then
+else case e in #(
+  e) if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3868,7 +4020,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
@@ -3906,8 +4059,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$CC"; then
+else case e in #(
+  e) if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3929,7 +4082,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
@@ -3951,8 +4105,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_ac_ct_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$ac_ct_CC"; then
+else case e in #(
+  e) if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -3974,7 +4128,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
@@ -4003,10 +4158,10 @@ fi
 fi
 
 
-test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
+See 'config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
 printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -4078,8 +4233,8 @@ printf "%s\n" "$ac_try_echo"; } >&5
   printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
 then :
-  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
+  # Autoconf-2.13 could set the ac_cv_exeext variable to 'no'.
+# So ignore a value of 'no', otherwise this would lead to 'EXEEXT = no'
 # in a Makefile.  We should not override ac_cv_exeext if it was cached,
 # so that the user can short-circuit this test for compilers unknown to
 # Autoconf.
@@ -4099,7 +4254,7 @@ do
 	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
 	fi
 	# We set ac_cv_exeext here because the later test for it is not
-	# safe: cross compilers may not add the suffix if given an `-o'
+	# safe: cross compilers may not add the suffix if given an '-o'
 	# argument, so we may need to know it at that point already.
 	# Even if this section looks crufty: it has the advantage of
 	# actually working.
@@ -4110,8 +4265,9 @@ do
 done
 test "$ac_cv_exeext" = no && ac_cv_exeext=
 
-else $as_nop
-  ac_file=''
+else case e in #(
+  e) ac_file='' ;;
+esac
 fi
 if test -z "$ac_file"
 then :
@@ -4120,13 +4276,14 @@ printf "%s\n" "no" >&6; }
 printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-printf "%s\n" "yes" >&6; }
+See 'config.log' for more details" "$LINENO" 5; }
+else case e in #(
+  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+printf "%s\n" "yes" >&6; } ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
 printf %s "checking for C compiler default output file name... " >&6; }
@@ -4150,10 +4307,10 @@ printf "%s\n" "$ac_try_echo"; } >&5
   printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
   test $ac_status = 0; }
 then :
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
+  # If both 'conftest.exe' and 'conftest' are 'present' (well, observable)
+# catch 'conftest.exe'.  For instance with Cygwin, 'ls conftest' will
+# work properly (i.e., refer to 'conftest.exe'), while it won't with
+# 'rm'.
 for ac_file in conftest.exe conftest conftest.*; do
   test -f "$ac_file" || continue
   case $ac_file in
@@ -4163,11 +4320,12 @@ for ac_file in conftest.exe conftest con
     * ) break;;
   esac
 done
-else $as_nop
-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+else case e in #(
+  e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
+See 'config.log' for more details" "$LINENO" 5; } ;;
+esac
 fi
 rm -f conftest conftest$ac_cv_exeext
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -4183,6 +4341,8 @@ int
 main (void)
 {
 FILE *f = fopen ("conftest.out", "w");
+ if (!f)
+  return 1;
  return ferror (f) || fclose (f) != 0;
 
   ;
@@ -4222,26 +4382,27 @@ printf "%s\n" "$ac_try_echo"; } >&5
     if test "$cross_compiling" = maybe; then
 	cross_compiling=yes
     else
-	{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+	{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error 77 "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
+If you meant to cross compile, use '--host'.
+See 'config.log' for more details" "$LINENO" 5; }
     fi
   fi
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
 printf "%s\n" "$cross_compiling" >&6; }
 
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
+rm -f conftest.$ac_ext conftest$ac_cv_exeext \
+  conftest.o conftest.obj conftest.out
 ac_clean_files=$ac_clean_files_save
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
 printf %s "checking for suffix of object files... " >&6; }
 if test ${ac_cv_objext+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -4273,16 +4434,18 @@ then :
        break;;
   esac
 done
-else $as_nop
-  printf "%s\n" "$as_me: failed program was:" >&5
+else case e in #(
+  e) printf "%s\n" "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
+See 'config.log' for more details" "$LINENO" 5; } ;;
+esac
 fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
+rm -f conftest.$ac_cv_objext conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
 printf "%s\n" "$ac_cv_objext" >&6; }
@@ -4293,8 +4456,8 @@ printf %s "checking whether the compiler
 if test ${ac_cv_c_compiler_gnu+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -4311,12 +4474,14 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_compiler_gnu=yes
-else $as_nop
-  ac_compiler_gnu=no
+else case e in #(
+  e) ac_compiler_gnu=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
 printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
@@ -4334,8 +4499,8 @@ printf %s "checking whether $CC accepts
 if test ${ac_cv_prog_cc_g+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_save_c_werror_flag=$ac_c_werror_flag
+else case e in #(
+  e) ac_save_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
    ac_cv_prog_cc_g=no
    CFLAGS="-g"
@@ -4353,8 +4518,8 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_prog_cc_g=yes
-else $as_nop
-  CFLAGS=""
+else case e in #(
+  e) CFLAGS=""
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -4369,8 +4534,8 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
 
-else $as_nop
-  ac_c_werror_flag=$ac_save_c_werror_flag
+else case e in #(
+  e) ac_c_werror_flag=$ac_save_c_werror_flag
 	 CFLAGS="-g"
 	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -4387,12 +4552,15 @@ if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_prog_cc_g=yes
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
+   ac_c_werror_flag=$ac_save_c_werror_flag ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
 printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
@@ -4419,8 +4587,8 @@ printf %s "checking for $CC option to en
 if test ${ac_cv_prog_cc_c11+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_prog_cc_c11=no
+else case e in #(
+  e) ac_cv_prog_cc_c11=no
 ac_save_CC=$CC
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -4437,25 +4605,28 @@ rm -f core conftest.err conftest.$ac_obj
   test "x$ac_cv_prog_cc_c11" != "xno" && break
 done
 rm -f conftest.$ac_ext
-CC=$ac_save_CC
+CC=$ac_save_CC ;;
+esac
 fi
 
 if test "x$ac_cv_prog_cc_c11" = xno
 then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 printf "%s\n" "unsupported" >&6; }
-else $as_nop
-  if test "x$ac_cv_prog_cc_c11" = x
+else case e in #(
+  e) if test "x$ac_cv_prog_cc_c11" = x
 then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 printf "%s\n" "none needed" >&6; }
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+else case e in #(
+  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
 printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
-     CC="$CC $ac_cv_prog_cc_c11"
+     CC="$CC $ac_cv_prog_cc_c11" ;;
+esac
 fi
   ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
-  ac_prog_cc_stdc=c11
+  ac_prog_cc_stdc=c11 ;;
+esac
 fi
 fi
 if test x$ac_prog_cc_stdc = xno
@@ -4465,8 +4636,8 @@ printf %s "checking for $CC option to en
 if test ${ac_cv_prog_cc_c99+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_prog_cc_c99=no
+else case e in #(
+  e) ac_cv_prog_cc_c99=no
 ac_save_CC=$CC
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -4483,25 +4654,28 @@ rm -f core conftest.err conftest.$ac_obj
   test "x$ac_cv_prog_cc_c99" != "xno" && break
 done
 rm -f conftest.$ac_ext
-CC=$ac_save_CC
+CC=$ac_save_CC ;;
+esac
 fi
 
 if test "x$ac_cv_prog_cc_c99" = xno
 then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 printf "%s\n" "unsupported" >&6; }
-else $as_nop
-  if test "x$ac_cv_prog_cc_c99" = x
+else case e in #(
+  e) if test "x$ac_cv_prog_cc_c99" = x
 then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 printf "%s\n" "none needed" >&6; }
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+else case e in #(
+  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
 printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
-     CC="$CC $ac_cv_prog_cc_c99"
+     CC="$CC $ac_cv_prog_cc_c99" ;;
+esac
 fi
   ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
-  ac_prog_cc_stdc=c99
+  ac_prog_cc_stdc=c99 ;;
+esac
 fi
 fi
 if test x$ac_prog_cc_stdc = xno
@@ -4511,8 +4685,8 @@ printf %s "checking for $CC option to en
 if test ${ac_cv_prog_cc_c89+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_prog_cc_c89=no
+else case e in #(
+  e) ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -4529,25 +4703,28 @@ rm -f core conftest.err conftest.$ac_obj
   test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
 rm -f conftest.$ac_ext
-CC=$ac_save_CC
+CC=$ac_save_CC ;;
+esac
 fi
 
 if test "x$ac_cv_prog_cc_c89" = xno
 then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 printf "%s\n" "unsupported" >&6; }
-else $as_nop
-  if test "x$ac_cv_prog_cc_c89" = x
+else case e in #(
+  e) if test "x$ac_cv_prog_cc_c89" = x
 then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 printf "%s\n" "none needed" >&6; }
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+else case e in #(
+  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
 printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
-     CC="$CC $ac_cv_prog_cc_c89"
+     CC="$CC $ac_cv_prog_cc_c89" ;;
+esac
 fi
   ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
-  ac_prog_cc_stdc=c89
+  ac_prog_cc_stdc=c89 ;;
+esac
 fi
 fi
 
@@ -4568,8 +4745,8 @@ printf %s "checking whether $CC understa
 if test ${am_cv_prog_cc_c_o+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -4599,7 +4776,8 @@ _ACEOF
     fi
   done
   rm -f core conftest*
-  unset am_i
+  unset am_i ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
 printf "%s\n" "$am_cv_prog_cc_c_o" >&6; }
@@ -4625,8 +4803,8 @@ printf %s "checking dependency style of
 if test ${am_cv_CC_dependencies_compiler_type+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+else case e in #(
+  e) if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
@@ -4713,7 +4891,7 @@ else $as_nop
       # icc doesn't choke on unknown options, it will just issue warnings
       # or remarks (even with -Werror).  So we grep stderr for any message
       # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      # When given -MP, icc 7.0 and 7.1 complain thus:
       #   icc: Command line warning: ignoring option '-M'; no argument required
       # The diagnosis changed in icc 8.0:
       #   icc: Command line remark: option '-MP' not supported
@@ -4730,7 +4908,8 @@ else $as_nop
 else
   am_cv_CC_dependencies_compiler_type=none
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
 printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; }
@@ -4788,8 +4967,8 @@ printf %s "checking whether it is safe t
 if test ${ac_cv_safe_to_define___extensions__+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 #         define __EXTENSIONS__ 1
@@ -4805,10 +4984,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_safe_to_define___extensions__=yes
-else $as_nop
-  ac_cv_safe_to_define___extensions__=no
+else case e in #(
+  e) ac_cv_safe_to_define___extensions__=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_safe_to_define___extensions__" >&5
 printf "%s\n" "$ac_cv_safe_to_define___extensions__" >&6; }
@@ -4818,8 +4999,8 @@ printf %s "checking whether _XOPEN_SOURC
 if test ${ac_cv_should_define__xopen_source+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_should_define__xopen_source=no
+else case e in #(
+  e) ac_cv_should_define__xopen_source=no
     if test $ac_cv_header_wchar_h = yes
 then :
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -4838,8 +5019,8 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
 
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
             #define _XOPEN_SOURCE 500
@@ -4857,10 +5038,12 @@ if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_should_define__xopen_source=yes
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
+fi ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_should_define__xopen_source" >&5
 printf "%s\n" "$ac_cv_should_define__xopen_source" >&6; }
@@ -4885,6 +5068,8 @@ printf "%s\n" "$ac_cv_should_define__xop
 
   printf "%s\n" "#define __STDC_WANT_IEC_60559_DFP_EXT__ 1" >>confdefs.h
 
+  printf "%s\n" "#define __STDC_WANT_IEC_60559_EXT__ 1" >>confdefs.h
+
   printf "%s\n" "#define __STDC_WANT_IEC_60559_FUNCS_EXT__ 1" >>confdefs.h
 
   printf "%s\n" "#define __STDC_WANT_IEC_60559_TYPES_EXT__ 1" >>confdefs.h
@@ -4904,8 +5089,9 @@ then :
 
     printf "%s\n" "#define _POSIX_1_SOURCE 2" >>confdefs.h
 
-else $as_nop
-  MINIX=
+else case e in #(
+  e) MINIX= ;;
+esac
 fi
   if test $ac_cv_safe_to_define___extensions__ = yes
 then :
@@ -4929,8 +5115,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_AWK+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$AWK"; then
+else case e in #(
+  e) if test -n "$AWK"; then
   ac_cv_prog_AWK="$AWK" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -4952,7 +5138,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
@@ -4972,8 +5159,8 @@ printf %s "checking for a sed that does
 if test ${ac_cv_path_SED+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
+else case e in #(
+  e)           ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
      for ac_i in 1 2 3 4 5 6 7; do
        ac_script="$ac_script$as_nl$ac_script"
      done
@@ -4998,9 +5185,10 @@ do
       as_fn_executable_p "$ac_path_SED" || continue
 # Check for GNU ac_path_SED and select it if it is found.
   # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
+case `"$ac_path_SED" --version 2>&1` in #(
 *GNU*)
   ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
+#(
 *)
   ac_count=0
   printf %s 0123456789 >"conftest.in"
@@ -5035,7 +5223,8 @@ IFS=$as_save_IFS
 else
   ac_cv_path_SED=$SED
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
 printf "%s\n" "$ac_cv_path_SED" >&6; }
@@ -5055,8 +5244,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$CC"; then
+else case e in #(
+  e) if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5078,7 +5267,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
@@ -5100,8 +5290,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_ac_ct_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$ac_ct_CC"; then
+else case e in #(
+  e) if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5123,7 +5313,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
@@ -5158,8 +5349,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$CC"; then
+else case e in #(
+  e) if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5181,7 +5372,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
@@ -5203,8 +5395,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$CC"; then
+else case e in #(
+  e) if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
   ac_prog_rejected=no
@@ -5243,7 +5435,8 @@ if test $ac_prog_rejected = yes; then
     ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@"
   fi
 fi
-fi
+fi ;;
+esac
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
@@ -5267,8 +5460,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$CC"; then
+else case e in #(
+  e) if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5290,7 +5483,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
@@ -5316,8 +5510,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_ac_ct_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$ac_ct_CC"; then
+else case e in #(
+  e) if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5339,7 +5533,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
@@ -5377,8 +5572,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$CC"; then
+else case e in #(
+  e) if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5400,7 +5595,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
@@ -5422,8 +5618,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_ac_ct_CC+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$ac_ct_CC"; then
+else case e in #(
+  e) if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -5445,7 +5641,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
@@ -5474,10 +5671,10 @@ fi
 fi
 
 
-test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
+See 'config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
 printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -5509,8 +5706,8 @@ printf %s "checking whether the compiler
 if test ${ac_cv_c_compiler_gnu+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -5527,12 +5724,14 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_compiler_gnu=yes
-else $as_nop
-  ac_compiler_gnu=no
+else case e in #(
+  e) ac_compiler_gnu=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
 printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }
@@ -5550,8 +5749,8 @@ printf %s "checking whether $CC accepts
 if test ${ac_cv_prog_cc_g+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_save_c_werror_flag=$ac_c_werror_flag
+else case e in #(
+  e) ac_save_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
    ac_cv_prog_cc_g=no
    CFLAGS="-g"
@@ -5569,8 +5768,8 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_prog_cc_g=yes
-else $as_nop
-  CFLAGS=""
+else case e in #(
+  e) CFLAGS=""
       cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
@@ -5585,8 +5784,8 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
 
-else $as_nop
-  ac_c_werror_flag=$ac_save_c_werror_flag
+else case e in #(
+  e) ac_c_werror_flag=$ac_save_c_werror_flag
 	 CFLAGS="-g"
 	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -5603,12 +5802,15 @@ if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_prog_cc_g=yes
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
+   ac_c_werror_flag=$ac_save_c_werror_flag ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
 printf "%s\n" "$ac_cv_prog_cc_g" >&6; }
@@ -5635,8 +5837,8 @@ printf %s "checking for $CC option to en
 if test ${ac_cv_prog_cc_c11+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_prog_cc_c11=no
+else case e in #(
+  e) ac_cv_prog_cc_c11=no
 ac_save_CC=$CC
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -5653,25 +5855,28 @@ rm -f core conftest.err conftest.$ac_obj
   test "x$ac_cv_prog_cc_c11" != "xno" && break
 done
 rm -f conftest.$ac_ext
-CC=$ac_save_CC
+CC=$ac_save_CC ;;
+esac
 fi
 
 if test "x$ac_cv_prog_cc_c11" = xno
 then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 printf "%s\n" "unsupported" >&6; }
-else $as_nop
-  if test "x$ac_cv_prog_cc_c11" = x
+else case e in #(
+  e) if test "x$ac_cv_prog_cc_c11" = x
 then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 printf "%s\n" "none needed" >&6; }
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
+else case e in #(
+  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5
 printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }
-     CC="$CC $ac_cv_prog_cc_c11"
+     CC="$CC $ac_cv_prog_cc_c11" ;;
+esac
 fi
   ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11
-  ac_prog_cc_stdc=c11
+  ac_prog_cc_stdc=c11 ;;
+esac
 fi
 fi
 if test x$ac_prog_cc_stdc = xno
@@ -5681,8 +5886,8 @@ printf %s "checking for $CC option to en
 if test ${ac_cv_prog_cc_c99+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_prog_cc_c99=no
+else case e in #(
+  e) ac_cv_prog_cc_c99=no
 ac_save_CC=$CC
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -5699,25 +5904,28 @@ rm -f core conftest.err conftest.$ac_obj
   test "x$ac_cv_prog_cc_c99" != "xno" && break
 done
 rm -f conftest.$ac_ext
-CC=$ac_save_CC
+CC=$ac_save_CC ;;
+esac
 fi
 
 if test "x$ac_cv_prog_cc_c99" = xno
 then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 printf "%s\n" "unsupported" >&6; }
-else $as_nop
-  if test "x$ac_cv_prog_cc_c99" = x
+else case e in #(
+  e) if test "x$ac_cv_prog_cc_c99" = x
 then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 printf "%s\n" "none needed" >&6; }
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
+else case e in #(
+  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5
 printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }
-     CC="$CC $ac_cv_prog_cc_c99"
+     CC="$CC $ac_cv_prog_cc_c99" ;;
+esac
 fi
   ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99
-  ac_prog_cc_stdc=c99
+  ac_prog_cc_stdc=c99 ;;
+esac
 fi
 fi
 if test x$ac_prog_cc_stdc = xno
@@ -5727,8 +5935,8 @@ printf %s "checking for $CC option to en
 if test ${ac_cv_prog_cc_c89+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_prog_cc_c89=no
+else case e in #(
+  e) ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -5745,25 +5953,28 @@ rm -f core conftest.err conftest.$ac_obj
   test "x$ac_cv_prog_cc_c89" != "xno" && break
 done
 rm -f conftest.$ac_ext
-CC=$ac_save_CC
+CC=$ac_save_CC ;;
+esac
 fi
 
 if test "x$ac_cv_prog_cc_c89" = xno
 then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
 printf "%s\n" "unsupported" >&6; }
-else $as_nop
-  if test "x$ac_cv_prog_cc_c89" = x
+else case e in #(
+  e) if test "x$ac_cv_prog_cc_c89" = x
 then :
   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
 printf "%s\n" "none needed" >&6; }
-else $as_nop
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
+else case e in #(
+  e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
 printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }
-     CC="$CC $ac_cv_prog_cc_c89"
+     CC="$CC $ac_cv_prog_cc_c89" ;;
+esac
 fi
   ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89
-  ac_prog_cc_stdc=c89
+  ac_prog_cc_stdc=c89 ;;
+esac
 fi
 fi
 
@@ -5784,8 +5995,8 @@ printf %s "checking whether $CC understa
 if test ${am_cv_prog_cc_c_o+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -5815,7 +6026,8 @@ _ACEOF
     fi
   done
   rm -f core conftest*
-  unset am_i
+  unset am_i ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5
 printf "%s\n" "$am_cv_prog_cc_c_o" >&6; }
@@ -5841,8 +6053,8 @@ printf %s "checking dependency style of
 if test ${am_cv_CC_dependencies_compiler_type+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
+else case e in #(
+  e) if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
   # We make a subdir and do the tests there.  Otherwise we can end up
   # making bogus files that we don't know about and never remove.  For
   # instance it was reported that on HP-UX the gcc test will end up
@@ -5929,7 +6141,7 @@ else $as_nop
       # icc doesn't choke on unknown options, it will just issue warnings
       # or remarks (even with -Werror).  So we grep stderr for any message
       # that says an option was ignored or not supported.
-      # When given -MP, icc 7.0 and 7.1 complain thusly:
+      # When given -MP, icc 7.0 and 7.1 complain thus:
       #   icc: Command line warning: ignoring option '-M'; no argument required
       # The diagnosis changed in icc 8.0:
       #   icc: Command line remark: option '-MP' not supported
@@ -5946,7 +6158,8 @@ else $as_nop
 else
   am_cv_CC_dependencies_compiler_type=none
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5
 printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; }
@@ -5982,8 +6195,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_LD+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$LD"; then
+else case e in #(
+  e) if test -n "$LD"; then
   ac_cv_prog_LD="$LD" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -6005,7 +6218,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 LD=$ac_cv_prog_LD
 if test -n "$LD"; then
@@ -6027,8 +6241,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_ac_ct_LD+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$ac_ct_LD"; then
+else case e in #(
+  e) if test -n "$ac_ct_LD"; then
   ac_cv_prog_ac_ct_LD="$ac_ct_LD" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -6050,7 +6264,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 ac_ct_LD=$ac_cv_prog_ac_ct_LD
 if test -n "$ac_ct_LD"; then
@@ -6084,8 +6299,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_READELF+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$READELF"; then
+else case e in #(
+  e) if test -n "$READELF"; then
   ac_cv_prog_READELF="$READELF" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -6107,7 +6322,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 READELF=$ac_cv_prog_READELF
 if test -n "$READELF"; then
@@ -6129,8 +6345,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_ac_ct_READELF+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$ac_ct_READELF"; then
+else case e in #(
+  e) if test -n "$ac_ct_READELF"; then
   ac_cv_prog_ac_ct_READELF="$ac_ct_READELF" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -6152,7 +6368,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 ac_ct_READELF=$ac_cv_prog_ac_ct_READELF
 if test -n "$ac_ct_READELF"; then
@@ -6178,6 +6395,318 @@ else
   READELF="$ac_cv_prog_READELF"
 fi
 
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}objcopy", so it can be a program name with args.
+set dummy ${ac_tool_prefix}objcopy; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_OBJCOPY+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$OBJCOPY"; then
+  ac_cv_prog_OBJCOPY="$OBJCOPY" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_OBJCOPY="${ac_tool_prefix}objcopy"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+OBJCOPY=$ac_cv_prog_OBJCOPY
+if test -n "$OBJCOPY"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJCOPY" >&5
+printf "%s\n" "$OBJCOPY" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_OBJCOPY"; then
+  ac_ct_OBJCOPY=$OBJCOPY
+  # Extract the first word of "objcopy", so it can be a program name with args.
+set dummy objcopy; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_OBJCOPY+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$ac_ct_OBJCOPY"; then
+  ac_cv_prog_ac_ct_OBJCOPY="$ac_ct_OBJCOPY" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_OBJCOPY="objcopy"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+ac_ct_OBJCOPY=$ac_cv_prog_ac_ct_OBJCOPY
+if test -n "$ac_ct_OBJCOPY"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJCOPY" >&5
+printf "%s\n" "$ac_ct_OBJCOPY" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+  if test "x$ac_ct_OBJCOPY" = x; then
+    OBJCOPY=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    OBJCOPY=$ac_ct_OBJCOPY
+  fi
+else
+  OBJCOPY="$ac_cv_prog_OBJCOPY"
+fi
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}nm", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nm; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_NM+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$NM"; then
+  ac_cv_prog_NM="$NM" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_NM="${ac_tool_prefix}nm"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+NM=$ac_cv_prog_NM
+if test -n "$NM"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NM" >&5
+printf "%s\n" "$NM" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NM"; then
+  ac_ct_NM=$NM
+  # Extract the first word of "nm", so it can be a program name with args.
+set dummy nm; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_NM+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$ac_ct_NM"; then
+  ac_cv_prog_ac_ct_NM="$ac_ct_NM" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_NM="nm"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+ac_ct_NM=$ac_cv_prog_ac_ct_NM
+if test -n "$ac_ct_NM"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NM" >&5
+printf "%s\n" "$ac_ct_NM" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+  if test "x$ac_ct_NM" = x; then
+    NM=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    NM=$ac_ct_NM
+  fi
+else
+  NM="$ac_cv_prog_NM"
+fi
+
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
+set dummy ${ac_tool_prefix}ar; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_AR+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$AR"; then
+  ac_cv_prog_AR="$AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_AR="${ac_tool_prefix}ar"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+AR=$ac_cv_prog_AR
+if test -n "$AR"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
+printf "%s\n" "$AR" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_AR"; then
+  ac_ct_AR=$AR
+  # Extract the first word of "ar", so it can be a program name with args.
+set dummy ar; ac_word=$2
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+printf %s "checking for $ac_word... " >&6; }
+if test ${ac_cv_prog_ac_ct_AR+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) if test -n "$ac_ct_AR"; then
+  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  case $as_dir in #(((
+    '') as_dir=./ ;;
+    */) ;;
+    *) as_dir=$as_dir/ ;;
+  esac
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then
+    ac_cv_prog_ac_ct_AR="ar"
+    printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi ;;
+esac
+fi
+ac_ct_AR=$ac_cv_prog_ac_ct_AR
+if test -n "$ac_ct_AR"; then
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
+printf "%s\n" "$ac_ct_AR" >&6; }
+else
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
+printf "%s\n" "no" >&6; }
+fi
+
+  if test "x$ac_ct_AR" = x; then
+    AR=""
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
+printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    AR=$ac_ct_AR
+  fi
+else
+  AR="$ac_cv_prog_AR"
+fi
+
 
 HELP2MAN=${HELP2MAN-"${am_missing_run}help2man"}
 
@@ -6193,8 +6722,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_prog_DWZ+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test -n "$DWZ"; then
+else case e in #(
+  e) if test -n "$DWZ"; then
   ac_cv_prog_DWZ="$DWZ" # Let the user override the test.
 else
 as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -6216,7 +6745,8 @@ done
   done
 IFS=$as_save_IFS
 
-fi
+fi ;;
+esac
 fi
 DWZ=$ac_cv_prog_DWZ
 if test -n "$DWZ"; then
@@ -6236,8 +6766,8 @@ printf %s "checking whether the dwz supp
 if test ${ac_cv_dwz_j+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e)     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
 int
@@ -6251,14 +6781,16 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
         ac_cv_dwz_j=yes; ${DWZ} -j1 conftest$EXEEXT 2>/dev/null || ac_cv_dwz_j=no
-else $as_nop
-  { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+else case e in #(
+  e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error $? "unexpected compile failure
-See \`config.log' for more details" "$LINENO" 5; }
+See 'config.log' for more details" "$LINENO" 5; } ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
+    conftest$ac_exeext conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_dwz_j" >&5
 printf "%s\n" "$ac_cv_dwz_j" >&6; }
@@ -6278,31 +6810,34 @@ if test ${enable_largefile+y}
 then :
   enableval=$enable_largefile;
 fi
-
-if test "$enable_largefile" != no; then
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
-printf %s "checking for special C compiler options needed for large files... " >&6; }
-if test ${ac_cv_sys_largefile_CC+y}
+if test "$enable_largefile,$enable_year2038" != no,no
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable large file support" >&5
+printf %s "checking for $CC option to enable large file support... " >&6; }
+if test ${ac_cv_sys_largefile_opts+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_sys_largefile_CC=no
-     if test "$GCC" != yes; then
-       ac_save_CC=$CC
-       while :; do
-	 # IRIX 6.2 and later do not support large files by default,
-	 # so use the C compiler's -n32 option if that helps.
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) ac_save_CC="$CC"
+  ac_opt_found=no
+  for ac_opt in "none needed" "-D_FILE_OFFSET_BITS=64" "-D_LARGE_FILES=1" "-n32"; do
+    if test x"$ac_opt" != x"none needed"
+then :
+  CC="$ac_save_CC $ac_opt"
+fi
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-    We can't simply define LARGE_OFF_T to be 9223372036854775807,
+#ifndef FTYPE
+# define FTYPE off_t
+#endif
+ /* Check that FTYPE can represent 2**63 - 1 correctly.
+    We can't simply define LARGE_FTYPE to be 9223372036854775807,
     since some C++ compilers masquerading as C compilers
     incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
-  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-		       && LARGE_OFF_T % 2147483647 == 1)
+#define LARGE_FTYPE (((FTYPE) 1 << 31 << 31) - 1 + ((FTYPE) 1 << 31 << 31))
+  int FTYPE_is_large[(LARGE_FTYPE % 2147483629 == 721
+		       && LARGE_FTYPE % 2147483647 == 1)
 		      ? 1 : -1];
 int
 main (void)
@@ -6312,142 +6847,88 @@ main (void)
   return 0;
 }
 _ACEOF
-	 if ac_fn_c_try_compile "$LINENO"
+if ac_fn_c_try_compile "$LINENO"
 then :
-  break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam
-	 CC="$CC -n32"
+  if test x"$ac_opt" = x"none needed"
+then :
+  # GNU/Linux s390x and alpha need _FILE_OFFSET_BITS=64 for wide ino_t.
+	 CC="$CC -DFTYPE=ino_t"
 	 if ac_fn_c_try_compile "$LINENO"
 then :
-  ac_cv_sys_largefile_CC=' -n32'; break
+
+else case e in #(
+  e) CC="$CC -D_FILE_OFFSET_BITS=64"
+	    if ac_fn_c_try_compile "$LINENO"
+then :
+  ac_opt='-D_FILE_OFFSET_BITS=64'
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam
-	 break
-       done
-       CC=$ac_save_CC
-       rm -f conftest.$ac_ext
-    fi
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5
-printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; }
-  if test "$ac_cv_sys_largefile_CC" != no; then
-    CC=$CC$ac_cv_sys_largefile_CC
-  fi
-
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
-printf %s "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
-if test ${ac_cv_sys_file_offset_bits+y}
-then :
-  printf %s "(cached) " >&6
-else $as_nop
-  while :; do
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-    since some C++ compilers masquerading as C compilers
-    incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
-  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-		       && LARGE_OFF_T % 2147483647 == 1)
-		      ? 1 : -1];
-int
-main (void)
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  ac_cv_sys_file_offset_bits=no; break
+      ac_cv_sys_largefile_opts=$ac_opt
+      ac_opt_found=yes
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#define _FILE_OFFSET_BITS 64
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-    since some C++ compilers masquerading as C compilers
-    incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
-  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-		       && LARGE_OFF_T % 2147483647 == 1)
-		      ? 1 : -1];
-int
-main (void)
-{
+    test $ac_opt_found = no || break
+  done
+  CC="$ac_save_CC"
 
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
-then :
-  ac_cv_sys_file_offset_bits=64; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-  ac_cv_sys_file_offset_bits=unknown
-  break
-done
+  test $ac_opt_found = yes || ac_cv_sys_largefile_opts="support not detected" ;;
+esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5
-printf "%s\n" "$ac_cv_sys_file_offset_bits" >&6; }
-case $ac_cv_sys_file_offset_bits in #(
-  no | unknown) ;;
-  *)
-printf "%s\n" "#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits" >>confdefs.h
-;;
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_opts" >&5
+printf "%s\n" "$ac_cv_sys_largefile_opts" >&6; }
+
+ac_have_largefile=yes
+case $ac_cv_sys_largefile_opts in #(
+  "none needed") :
+     ;; #(
+  "supported through gnulib") :
+     ;; #(
+  "support not detected") :
+    ac_have_largefile=no ;; #(
+  "-D_FILE_OFFSET_BITS=64") :
+
+printf "%s\n" "#define _FILE_OFFSET_BITS 64" >>confdefs.h
+ ;; #(
+  "-D_LARGE_FILES=1") :
+
+printf "%s\n" "#define _LARGE_FILES 1" >>confdefs.h
+ ;; #(
+  "-n32") :
+    CC="$CC -n32" ;; #(
+  *) :
+    as_fn_error $? "internal error: bad value for \$ac_cv_sys_largefile_opts" "$LINENO" 5 ;;
 esac
-rm -rf conftest*
-  if test $ac_cv_sys_file_offset_bits = unknown; then
-    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
-printf %s "checking for _LARGE_FILES value needed for large files... " >&6; }
-if test ${ac_cv_sys_large_files+y}
+
+if test "$enable_year2038" != no
+then :
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option for timestamps after 2038" >&5
+printf %s "checking for $CC option for timestamps after 2038... " >&6; }
+if test ${ac_cv_sys_year2038_opts+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  while :; do
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-    since some C++ compilers masquerading as C compilers
-    incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
-  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-		       && LARGE_OFF_T % 2147483647 == 1)
-		      ? 1 : -1];
-int
-main (void)
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"
+else case e in #(
+  e) ac_save_CPPFLAGS="$CPPFLAGS"
+  ac_opt_found=no
+  for ac_opt in "none needed" "-D_TIME_BITS=64" "-D__MINGW_USE_VC2005_COMPAT" "-U_USE_32_BIT_TIME_T -D__MINGW_USE_VC2005_COMPAT"; do
+    if test x"$ac_opt" != x"none needed"
 then :
-  ac_cv_sys_large_files=no; break
+  CPPFLAGS="$ac_save_CPPFLAGS $ac_opt"
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
-#define _LARGE_FILES 1
-#include <sys/types.h>
- /* Check that off_t can represent 2**63 - 1 correctly.
-    We can't simply define LARGE_OFF_T to be 9223372036854775807,
-    since some C++ compilers masquerading as C compilers
-    incorrectly reject 9223372036854775807.  */
-#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31))
-  int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
-		       && LARGE_OFF_T % 2147483647 == 1)
-		      ? 1 : -1];
+
+  #include <time.h>
+  /* Check that time_t can represent 2**32 - 1 correctly.  */
+  #define LARGE_TIME_T \\
+    ((time_t) (((time_t) 1 << 30) - 1 + 3 * ((time_t) 1 << 30)))
+  int verify_time_t_range[(LARGE_TIME_T / 65537 == 65535
+                           && LARGE_TIME_T % 65537 == 0)
+                          ? 1 : -1];
+
 int
 main (void)
 {
@@ -6458,25 +6939,47 @@ main (void)
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
-  ac_cv_sys_large_files=1; break
+  ac_cv_sys_year2038_opts="$ac_opt"
+      ac_opt_found=yes
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
-  ac_cv_sys_large_files=unknown
-  break
-done
+    test $ac_opt_found = no || break
+  done
+  CPPFLAGS="$ac_save_CPPFLAGS"
+  test $ac_opt_found = yes || ac_cv_sys_year2038_opts="support not detected" ;;
+esac
 fi
-{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5
-printf "%s\n" "$ac_cv_sys_large_files" >&6; }
-case $ac_cv_sys_large_files in #(
-  no | unknown) ;;
-  *)
-printf "%s\n" "#define _LARGE_FILES $ac_cv_sys_large_files" >>confdefs.h
-;;
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_year2038_opts" >&5
+printf "%s\n" "$ac_cv_sys_year2038_opts" >&6; }
+
+ac_have_year2038=yes
+case $ac_cv_sys_year2038_opts in #(
+  "none needed") :
+     ;; #(
+  "support not detected") :
+    ac_have_year2038=no ;; #(
+  "-D_TIME_BITS=64") :
+
+printf "%s\n" "#define _TIME_BITS 64" >>confdefs.h
+ ;; #(
+  "-D__MINGW_USE_VC2005_COMPAT") :
+
+printf "%s\n" "#define __MINGW_USE_VC2005_COMPAT 1" >>confdefs.h
+ ;; #(
+  "-U_USE_32_BIT_TIME_T"*) :
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
+as_fn_error $? "the 'time_t' type is currently forced to be 32-bit. It
+will stop working after mid-January 2038. Remove
+_USE_32BIT_TIME_T from the compiler flags.
+See 'config.log' for more details" "$LINENO" 5; } ;; #(
+  *) :
+    as_fn_error $? "internal error: bad value for \$ac_cv_sys_year2038_opts" "$LINENO" 5 ;;
 esac
-rm -rf conftest*
-  fi
+
 fi
 
+fi
 
 # Checks for libraries.
 
@@ -6495,8 +6998,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_path_PKG_CONFIG+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  case $PKG_CONFIG in
+else case e in #(
+  e) case $PKG_CONFIG in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
   ;;
@@ -6521,6 +7024,7 @@ done
 IFS=$as_save_IFS
 
   ;;
+esac ;;
 esac
 fi
 PKG_CONFIG=$ac_cv_path_PKG_CONFIG
@@ -6543,8 +7047,8 @@ printf %s "checking for $ac_word... " >&
 if test ${ac_cv_path_ac_pt_PKG_CONFIG+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  case $ac_pt_PKG_CONFIG in
+else case e in #(
+  e) case $ac_pt_PKG_CONFIG in
   [\\/]* | ?:[\\/]*)
   ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path.
   ;;
@@ -6569,6 +7073,7 @@ done
 IFS=$as_save_IFS
 
   ;;
+esac ;;
 esac
 fi
 ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
@@ -6609,6 +7114,9 @@ printf "%s\n" "no" >&6; }
 		PKG_CONFIG=""
 	fi
 fi
+if test -z "$PKG_CONFIG"; then
+	as_fn_error $? "pkg-config not found" "$LINENO" 5
+fi
 
 pkg_failed=no
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for libelf" >&5
@@ -6681,8 +7189,8 @@ See the pkg-config man page for more det
 elif test $pkg_failed = untried; then
         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
 printf "%s\n" "no" >&6; }
-        { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+        { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
@@ -6692,7 +7200,7 @@ and LIBELF_LIBS to avoid the need to cal
 See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details" "$LINENO" 5; }
+See 'config.log' for more details" "$LINENO" 5; }
 else
         LIBELF_CFLAGS=$pkg_cv_LIBELF_CFLAGS
         LIBELF_LIBS=$pkg_cv_LIBELF_LIBS
@@ -6772,8 +7280,8 @@ See the pkg-config man page for more det
 elif test $pkg_failed = untried; then
         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
 printf "%s\n" "no" >&6; }
-        { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+        { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
@@ -6783,7 +7291,7 @@ and LIBDW_LIBS to avoid the need to call
 See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details" "$LINENO" 5; }
+See 'config.log' for more details" "$LINENO" 5; }
 else
         LIBDW_CFLAGS=$pkg_cv_LIBDW_CFLAGS
         LIBDW_LIBS=$pkg_cv_LIBDW_LIBS
@@ -6863,8 +7371,8 @@ See the pkg-config man page for more det
 elif test $pkg_failed = untried; then
         { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5
 printf "%s\n" "no" >&6; }
-        { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+        { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error $? "The pkg-config script could not be found or is too old.  Make sure it
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
@@ -6874,7 +7382,7 @@ and XXHASH_LIBS to avoid the need to cal
 See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
-See \`config.log' for more details" "$LINENO" 5; }
+See 'config.log' for more details" "$LINENO" 5; }
 else
         XXHASH_CFLAGS=$pkg_cv_XXHASH_CFLAGS
         XXHASH_LIBS=$pkg_cv_XXHASH_LIBS
@@ -6950,25 +7458,25 @@ printf "%s\n" "#define HAVE__BOOL 1" >>c
 
 fi
 
-   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99" >&5
-printf %s "checking for stdbool.h that conforms to C99... " >&6; }
+   { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for stdbool.h that conforms to C99 or later" >&5
+printf %s "checking for stdbool.h that conforms to C99 or later... " >&6; }
 if test ${ac_cv_header_stdbool_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdbool.h>
 
-             #ifndef __bool_true_false_are_defined
-               #error "__bool_true_false_are_defined is not defined"
-             #endif
-             char a[__bool_true_false_are_defined == 1 ? 1 : -1];
-
-             /* Regardless of whether this is C++ or "_Bool" is a
-                valid type name, "true" and "false" should be usable
-                in #if expressions and integer constant expressions,
-                and "bool" should be a valid type name.  */
+             /* "true" and "false" should be usable in #if expressions and
+                integer constant expressions, and "bool" should be a valid
+                type name.
+
+                Although C99 requires bool, true, and false to be macros,
+                C23 and C++11 overrule that, so do not test for that.
+                Although C99 requires __bool_true_false_are_defined and
+                _Bool, C23 says they are obsolescent, so do not require
+                them.  */
 
              #if !true
                #error "'true' is not true"
@@ -7002,43 +7510,12 @@ else $as_nop
              char n[sizeof m == h * sizeof m[0] ? 1 : -1];
              char o[-1 - (bool) 0 < 0 ? 1 : -1];
              /* Catch a bug in an HP-UX C compiler.  See
-         https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
-         https://lists.gnu.org/archive/html/bug-coreutils/2005-11/msg00161.html
+                https://gcc.gnu.org/ml/gcc-patches/2003-12/msg02303.html
+                https://lists.gnu.org/r/bug-coreutils/2005-11/msg00161.html
               */
              bool p = true;
              bool *pp = &p;
 
-             /* C 1999 specifies that bool, true, and false are to be
-                macros, but C++ 2011 and later overrule this.  */
-             #if __cplusplus < 201103
-              #ifndef bool
-               #error "bool is not defined"
-              #endif
-              #ifndef false
-               #error "false is not defined"
-              #endif
-              #ifndef true
-               #error "true is not defined"
-              #endif
-             #endif
-
-             /* If _Bool is available, repeat with it all the tests
-                above that used bool.  */
-             #ifdef HAVE__BOOL
-               struct sB { _Bool s: 1; _Bool t; } t;
-
-               char q[(_Bool) 0.5 == true ? 1 : -1];
-               char r[(_Bool) 0.0 == false ? 1 : -1];
-               char u[sizeof (_Bool) > 0 ? 1 : -1];
-               char v[sizeof t.t > 0 ? 1 : -1];
-
-               _Bool w[h];
-               char x[sizeof m == h * sizeof m[0] ? 1 : -1];
-               char y[-1 - (_Bool) 0 < 0 ? 1 : -1];
-               _Bool z = true;
-               _Bool *pz = &p;
-             #endif
-
 int
 main (void)
 {
@@ -7047,20 +7524,10 @@ main (void)
              *pp |= p;
              *pp |= ! p;
 
-             #ifdef HAVE__BOOL
-               _Bool pt = &t;
-               *pz |= z;
-               *pz |= ! z;
-             #endif
-
              /* Refer to every declared value, so they cannot be
                 discarded as unused.  */
-             return (!a + !b + !c + !d + !e + !f + !g + !h + !i + !j + !k
-                     + !l + !m + !n + !o + !p + !pp + !ps
-             #ifdef HAVE__BOOL
-                     + !q + !r + !u + !v + !w + !x + !y + !z + !pt
-             #endif
-                    );
+             return (!b + !c + !d + !e + !f + !g + !h + !i + !j + !k
+                     + !l + !m + !n + !o + !p + !pp + !ps);
 
   ;
   return 0;
@@ -7069,10 +7536,12 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_header_stdbool_h=yes
-else $as_nop
-  ac_cv_header_stdbool_h=no
+else case e in #(
+  e) ac_cv_header_stdbool_h=no ;;
+esac
 fi
-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdbool_h" >&5
 printf "%s\n" "$ac_cv_header_stdbool_h" >&6; }
@@ -7082,8 +7551,8 @@ printf %s "checking for inline... " >&6;
 if test ${ac_cv_c_inline+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_c_inline=no
+else case e in #(
+  e) ac_cv_c_inline=no
 for ac_kw in inline __inline__ __inline; do
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -7101,7 +7570,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
   test "$ac_cv_c_inline" != no && break
 done
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_inline" >&5
 printf "%s\n" "$ac_cv_c_inline" >&6; }
@@ -7134,30 +7604,33 @@ ac_fn_c_check_type "$LINENO" "off_t" "ac
 if test "x$ac_cv_type_off_t" = xyes
 then :
 
-else $as_nop
-
+else case e in #(
+  e)
 printf "%s\n" "#define off_t long int" >>confdefs.h
-
+ ;;
+esac
 fi
 
 ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default"
 if test "x$ac_cv_type_size_t" = xyes
 then :
 
-else $as_nop
-
+else case e in #(
+  e)
 printf "%s\n" "#define size_t unsigned int" >>confdefs.h
-
+ ;;
+esac
 fi
 
 ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default"
 if test "x$ac_cv_type_ssize_t" = xyes
 then :
 
-else $as_nop
-
+else case e in #(
+  e)
 printf "%s\n" "#define ssize_t int" >>confdefs.h
-
+ ;;
+esac
 fi
 
 ac_fn_c_find_uintX_t "$LINENO" "16" "ac_cv_c_uint16_t"
@@ -7203,8 +7676,8 @@ printf %s "checking for working alloca.h
 if test ${ac_cv_working_alloca_h+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <alloca.h>
 int
@@ -7219,11 +7692,13 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_working_alloca_h=yes
-else $as_nop
-  ac_cv_working_alloca_h=no
+else case e in #(
+  e) ac_cv_working_alloca_h=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
+    conftest$ac_exeext conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_working_alloca_h" >&5
 printf "%s\n" "$ac_cv_working_alloca_h" >&6; }
@@ -7238,10 +7713,10 @@ printf %s "checking for alloca... " >&6;
 if test ${ac_cv_func_alloca_works+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test $ac_cv_working_alloca_h = yes; then
-  ac_cv_func_alloca_works=yes
-else
+else case e in #(
+  e) ac_cv_func_alloca_works=$ac_cv_working_alloca_h
+if test "$ac_cv_func_alloca_works" != yes
+then :
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
@@ -7272,15 +7747,14 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_func_alloca_works=yes
-else $as_nop
-  ac_cv_func_alloca_works=no
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
+fi ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_alloca_works" >&5
 printf "%s\n" "$ac_cv_func_alloca_works" >&6; }
-fi
 
 if test $ac_cv_func_alloca_works = yes; then
 
@@ -7302,12 +7776,12 @@ printf %s "checking stack direction for
 if test ${ac_cv_c_stack_direction+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   ac_cv_c_stack_direction=0
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
 int
@@ -7330,13 +7804,16 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   ac_cv_c_stack_direction=1
-else $as_nop
-  ac_cv_c_stack_direction=-1
+else case e in #(
+  e) ac_cv_c_stack_direction=-1 ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_stack_direction" >&5
 printf "%s\n" "$ac_cv_c_stack_direction" >&6; }
@@ -7350,8 +7827,8 @@ printf %s "checking for error_at_line...
 if test ${ac_cv_lib_error_at_line+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <error.h>
 int
@@ -7365,11 +7842,13 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_lib_error_at_line=yes
-else $as_nop
-  ac_cv_lib_error_at_line=no
+else case e in #(
+  e) ac_cv_lib_error_at_line=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
-    conftest$ac_exeext conftest.$ac_ext
+    conftest$ac_exeext conftest.$ac_ext ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_error_at_line" >&5
 printf "%s\n" "$ac_cv_lib_error_at_line" >&6; }
@@ -7393,15 +7872,16 @@ printf %s "checking build system type...
 if test ${ac_cv_build+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_build_alias=$build_alias
+else case e in #(
+  e) ac_build_alias=$build_alias
 test "x$ac_build_alias" = x &&
   ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"`
 test "x$ac_build_alias" = x &&
   as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
 ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` ||
   as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
 printf "%s\n" "$ac_cv_build" >&6; }
@@ -7428,14 +7908,15 @@ printf %s "checking host system type...
 if test ${ac_cv_host+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "x$host_alias" = x; then
+else case e in #(
+  e) if test "x$host_alias" = x; then
   ac_cv_host=$ac_cv_build
 else
   ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` ||
     as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
 printf "%s\n" "$ac_cv_host" >&6; }
@@ -7462,19 +7943,19 @@ printf %s "checking for GNU libc compati
 if test ${ac_cv_func_malloc_0_nonnull+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case "$host_os" in # ((
 		  # Guess yes on platforms where we know the result.
 		  *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \
-		  | hpux* | solaris* | cygwin* | mingw* | msys* )
+		  | hpux* | solaris* | cygwin* | mingw* | windows* | msys* )
 		    ac_cv_func_malloc_0_nonnull=yes ;;
 		  # If we don't know, assume the worst.
 		  *) ac_cv_func_malloc_0_nonnull=no ;;
 		esac
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
 
@@ -7492,13 +7973,16 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   ac_cv_func_malloc_0_nonnull=yes
-else $as_nop
-  ac_cv_func_malloc_0_nonnull=no
+else case e in #(
+  e) ac_cv_func_malloc_0_nonnull=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5
 printf "%s\n" "$ac_cv_func_malloc_0_nonnull" >&6; }
@@ -7507,8 +7991,8 @@ then :
 
 printf "%s\n" "#define HAVE_MALLOC 1" >>confdefs.h
 
-else $as_nop
-  printf "%s\n" "#define HAVE_MALLOC 0" >>confdefs.h
+else case e in #(
+  e) printf "%s\n" "#define HAVE_MALLOC 0" >>confdefs.h
 
    case " $LIBOBJS " in
   *" malloc.$ac_objext "* ) ;;
@@ -7518,7 +8002,8 @@ esac
 
 
 printf "%s\n" "#define malloc rpl_malloc" >>confdefs.h
-
+ ;;
+esac
 fi
 
 
@@ -7543,8 +8028,8 @@ printf %s "checking for working mmap...
 if test ${ac_cv_func_mmap_fixed_mapped+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case "$host_os" in # ((
 			  # Guess yes on platforms where we know the result.
@@ -7552,8 +8037,8 @@ then :
 			  # If we don't know, assume the worst.
 		  *)      ac_cv_func_mmap_fixed_mapped=no ;;
 		esac
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 $ac_includes_default
 /* malloc might have been renamed as rpl_malloc. */
@@ -7574,21 +8059,21 @@ $ac_includes_default
    VM page cache was not coherent with the file system buffer cache
    like early versions of FreeBSD and possibly contemporary NetBSD.)
    For shared mappings, we should conversely verify that changes get
-   propagated back to all the places they're supposed to be.
-
-   Grep wants private fixed already mapped.
-   The main things grep needs to know about mmap are:
-   * does it exist and is it safe to write into the mmap'd area
-   * how to use it (BSD variants)  */
+   propagated back to all the places they're supposed to be.  */
 
 #include <fcntl.h>
 #include <sys/mman.h>
 
-/* This mess was copied from the GNU getpagesize.h.  */
-#ifndef HAVE_GETPAGESIZE
+#ifndef getpagesize
+/* Prefer sysconf to the legacy getpagesize function, as getpagesize has
+   been removed from POSIX and is limited to page sizes that fit in 'int'.  */
 # ifdef _SC_PAGESIZE
-#  define getpagesize() sysconf(_SC_PAGESIZE)
-# else /* no _SC_PAGESIZE */
+#  define getpagesize() sysconf (_SC_PAGESIZE)
+# elif defined _SC_PAGE_SIZE
+#  define getpagesize() sysconf (_SC_PAGE_SIZE)
+# elif HAVE_GETPAGESIZE
+int getpagesize ();
+# else
 #  ifdef HAVE_SYS_PARAM_H
 #   include <sys/param.h>
 #   ifdef EXEC_PAGESIZE
@@ -7612,16 +8097,15 @@ $ac_includes_default
 #  else /* no HAVE_SYS_PARAM_H */
 #   define getpagesize() 8192	/* punt totally */
 #  endif /* no HAVE_SYS_PARAM_H */
-# endif /* no _SC_PAGESIZE */
-
-#endif /* no HAVE_GETPAGESIZE */
+# endif
+#endif
 
 int
 main (void)
 {
   char *data, *data2, *data3;
   const char *cdata2;
-  int i, pagesize;
+  long i, pagesize;
   int fd, fd2;
 
   pagesize = getpagesize ();
@@ -7655,8 +8139,7 @@ main (void)
     if (*(data2 + i))
       return 7;
   close (fd2);
-  if (munmap (data2, pagesize))
-    return 8;
+  /* 'return 8;' not currently used.  */
 
   /* Next, try to mmap the file at a fixed address which already has
      something else allocated at it.  If we can, also make sure that
@@ -7693,13 +8176,16 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   ac_cv_func_mmap_fixed_mapped=yes
-else $as_nop
-  ac_cv_func_mmap_fixed_mapped=no
+else case e in #(
+  e) ac_cv_func_mmap_fixed_mapped=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5
 printf "%s\n" "$ac_cv_func_mmap_fixed_mapped" >&6; }
@@ -7715,19 +8201,19 @@ printf %s "checking for GNU libc compati
 if test ${ac_cv_func_realloc_0_nonnull+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  if test "$cross_compiling" = yes
+else case e in #(
+  e) if test "$cross_compiling" = yes
 then :
   case "$host_os" in # ((
 		  # Guess yes on platforms where we know the result.
 		  *-gnu* | freebsd* | netbsd* | openbsd* | bitrig* \
-		  | hpux* | solaris* | cygwin* | mingw* | msys* )
+		  | hpux* | solaris* | cygwin* | mingw* | windows* | msys* )
 		    ac_cv_func_realloc_0_nonnull=yes ;;
 		  # If we don't know, assume the worst.
 		  *) ac_cv_func_realloc_0_nonnull=no ;;
 		esac
-else $as_nop
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+else case e in #(
+  e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 #include <stdlib.h>
 
@@ -7745,13 +8231,16 @@ _ACEOF
 if ac_fn_c_try_run "$LINENO"
 then :
   ac_cv_func_realloc_0_nonnull=yes
-else $as_nop
-  ac_cv_func_realloc_0_nonnull=no
+else case e in #(
+  e) ac_cv_func_realloc_0_nonnull=no ;;
+esac
 fi
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
+  conftest.$ac_objext conftest.beam conftest.$ac_ext ;;
+esac
 fi
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_realloc_0_nonnull" >&5
 printf "%s\n" "$ac_cv_func_realloc_0_nonnull" >&6; }
@@ -7760,8 +8249,8 @@ then :
 
 printf "%s\n" "#define HAVE_REALLOC 1" >>confdefs.h
 
-else $as_nop
-  printf "%s\n" "#define HAVE_REALLOC 0" >>confdefs.h
+else case e in #(
+  e) printf "%s\n" "#define HAVE_REALLOC 0" >>confdefs.h
 
    case " $LIBOBJS " in
   *" realloc.$ac_objext "* ) ;;
@@ -7771,7 +8260,8 @@ esac
 
 
 printf "%s\n" "#define realloc rpl_realloc" >>confdefs.h
-
+ ;;
+esac
 fi
 
 
@@ -7825,8 +8315,8 @@ printf %s "checking whether gcc supports
 if test ${ac_cv_gdwarf_5+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  save_CFLAGS="$CFLAGS"
+else case e in #(
+  e) save_CFLAGS="$CFLAGS"
 CFLAGS="-gdwarf-5"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -7835,12 +8325,14 @@ _ACEOF
 if ac_fn_c_try_compile "$LINENO"
 then :
   ac_cv_gdwarf_5=yes
-else $as_nop
-  ac_cv_gdwarf_5=no
+else case e in #(
+  e) ac_cv_gdwarf_5=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 CFLAGS="$save_CFLAGS"
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gdwarf_5" >&5
 printf "%s\n" "$ac_cv_gdwarf_5" >&6; }
@@ -7852,8 +8344,8 @@ printf %s "checking whether -gdwarf-5 pr
 if test ${ac_cv_dwarf_5_debugline+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  save_CFLAGS="$CFLAGS"
+else case e in #(
+  e) save_CFLAGS="$CFLAGS"
 CFLAGS="-gdwarf-5"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -7865,25 +8357,58 @@ then :
    grep "DWARF Version:" 2>&1 | grep "5" > /dev/null 2>&1; \
      then ac_cv_dwarf_5_debugline=yes; \
      else ac_cv_dwarf_5_debugline=no; fi
-else $as_nop
-  ac_cv_dwarf_5_debugline=no
+else case e in #(
+  e) ac_cv_dwarf_5_debugline=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
 CFLAGS="$save_CFLAGS"
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_dwarf_5_debugline" >&5
 printf "%s\n" "$ac_cv_dwarf_5_debugline" >&6; }
 DWARF_5_DEBUGLINE=$ac_cv_dwarf_5_debugline
 
 
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -gdwarf-5 produced DWARF5 .debug_addr" >&5
+printf %s "checking whether -gdwarf-5 produced DWARF5 .debug_addr... " >&6; }
+if test ${ac_cv_dwarf_5_debugaddr+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) save_CFLAGS="$CFLAGS"
+CFLAGS="-gdwarf-5"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+int i=0;
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"
+then :
+  if $READELF -S conftest.o 2>&1 | grep -F ".debug_addr" > /dev/null 2>&1; \
+     then ac_cv_dwarf_5_debugaddr=yes; \
+     else ac_cv_dwarf_5_debugaddr=no; fi
+else case e in #(
+  e) ac_cv_dwarf_5_debugaddr=no ;;
+esac
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext
+CFLAGS="$save_CFLAGS"
+ ;;
+esac
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_dwarf_5_debugaddr" >&5
+printf "%s\n" "$ac_cv_dwarf_5_debugaddr" >&6; }
+DWARF_5_DEBUGADDR=$ac_cv_dwarf_5_debugaddr
+
+
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether gcc supports -gz=none" >&5
 printf %s "checking whether gcc supports -gz=none... " >&6; }
 if test ${ac_cv_gz_none+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  save_CFLAGS="$CFLAGS"
+else case e in #(
+  e) save_CFLAGS="$CFLAGS"
 CFLAGS="-gz=none"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -7899,13 +8424,15 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_gz_none=yes
-else $as_nop
-  ac_cv_gz_none=no
+else case e in #(
+  e) ac_cv_gz_none=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 CFLAGS="$save_CFLAGS"
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gz_none" >&5
 printf "%s\n" "$ac_cv_gz_none" >&6; }
@@ -7921,8 +8448,8 @@ printf %s "checking whether gcc supports
 if test ${ac_cv_gz_zlib+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  save_CFLAGS="$CFLAGS"
+else case e in #(
+  e) save_CFLAGS="$CFLAGS"
 CFLAGS="-gz=zlib"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -7938,13 +8465,15 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_gz_zlib=yes
-else $as_nop
-  ac_cv_gz_zlib=no
+else case e in #(
+  e) ac_cv_gz_zlib=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 CFLAGS="$save_CFLAGS"
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_gz_zlib" >&5
 printf "%s\n" "$ac_cv_gz_zlib" >&6; }
@@ -7960,8 +8489,8 @@ printf %s "checking whether compiler nee
 if test ${ac_cv_debug_macro+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  save_CFLAGS="$CFLAGS"
+else case e in #(
+  e) save_CFLAGS="$CFLAGS"
 CFLAGS="-fdebug-macro"
 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
@@ -7977,13 +8506,15 @@ _ACEOF
 if ac_fn_c_try_link "$LINENO"
 then :
   ac_cv_debug_macro=yes
-else $as_nop
-  ac_cv_debug_macro=no
+else case e in #(
+  e) ac_cv_debug_macro=no ;;
+esac
 fi
 rm -f core conftest.err conftest.$ac_objext conftest.beam \
     conftest$ac_exeext conftest.$ac_ext
 CFLAGS="$save_CFLAGS"
-
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_debug_macro" >&5
 printf "%s\n" "$ac_cv_debug_macro" >&6; }
@@ -8007,9 +8538,10 @@ printf %s "checking readelf version for
 if test ${ac_cv_readelf_ver+y}
 then :
   printf %s "(cached) " >&6
-else $as_nop
-  ac_cv_readelf_ver="$READELF_VER"
-
+else case e in #(
+  e) ac_cv_readelf_ver="$READELF_VER"
+ ;;
+esac
 fi
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_readelf_ver" >&5
 printf "%s\n" "$ac_cv_readelf_ver" >&6; }
@@ -8022,6 +8554,22 @@ printf "%s\n" "$as_me: WARNING: $READELF
 fi
 
 
+ENABLE_INLINED_XXHASH=yes
+# Check whether --enable-inlined-xxhash was given.
+if test ${enable_inlined_xxhash+y}
+then :
+  enableval=$enable_inlined_xxhash; ENABLE_INLINED_XXHASH=$enableval
+else case e in #(
+  e) ENABLE_INLINED_XXHASH=yes ;;
+esac
+fi
+
+
+if test x$ENABLE_INLINED_XXHASH = xyes; then
+	XXHASH_CFLAGS="$XXHASH_CFLAGS -DXXH_INLINE_ALL"
+	XXHASH_LIBS=""
+fi
+
 # And generate the output files.
 ac_config_files="$ac_config_files Makefile"
 
@@ -8035,8 +8583,8 @@ cat >confcache <<\_ACEOF
 # config.status only pays attention to the cache file if you give it
 # the --recheck option to rerun configure.
 #
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
+# 'ac_cv_env_foo' variables (set or unset) will be overridden when
+# loading this file, other *unset* 'ac_cv_foo' will be assigned the
 # following values.
 
 _ACEOF
@@ -8066,14 +8614,14 @@ printf "%s\n" "$as_me: WARNING: cache va
   (set) 2>&1 |
     case $as_nl`(ac_space=' '; set) 2>&1` in #(
     *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes: double-quote
+      # 'set' does not quote correctly, so add quotes: double-quote
       # substitution turns \\\\ into \\, and sed turns \\ into \.
       sed -n \
 	"s/'/'\\\\''/g;
 	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
       ;; #(
     *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
+      # 'set' quotes correctly as required by POSIX, so do not add quotes.
       sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
       ;;
     esac |
@@ -8142,6 +8690,18 @@ printf %s "checking that generated files
    fi
    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5
 printf "%s\n" "done" >&6; }
+case $enable_silent_rules in # (((
+  yes) AM_DEFAULT_VERBOSITY=0;;
+   no) AM_DEFAULT_VERBOSITY=1;;
+esac
+if test $am_cv_make_support_nested_variables = yes; then
+    AM_V='$(V)'
+  AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
+else
+  AM_V=$AM_DEFAULT_VERBOSITY
+  AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY
+fi
+
  if test -n "$EXEEXT"; then
   am__EXEEXT_TRUE=
   am__EXEEXT_FALSE='#'
@@ -8162,6 +8722,12 @@ if test -z "${am__fastdepCC_TRUE}" && te
   as_fn_error $? "conditional \"am__fastdepCC\" was never defined.
 Usually this means the macro was only invoked conditionally." "$LINENO" 5
 fi
+# Check whether --enable-year2038 was given.
+if test ${enable_year2038+y}
+then :
+  enableval=$enable_year2038;
+fi
+
 
 : "${CONFIG_STATUS=./config.status}"
 ac_write_fail=0
@@ -8191,7 +8757,6 @@ cat >>$CONFIG_STATUS <<\_ASEOF || as_wri
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-as_nop=:
 if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
 then :
   emulate sh
@@ -8200,12 +8765,13 @@ then :
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
-else $as_nop
-  case `(set -o) 2>/dev/null` in #(
+else case e in #(
+  e) case `(set -o) 2>/dev/null` in #(
   *posix*) :
     set -o posix ;; #(
   *) :
      ;;
+esac ;;
 esac
 fi
 
@@ -8277,7 +8843,7 @@ IFS=$as_save_IFS
 
      ;;
 esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
+# We did not find ourselves, most probably we were run as 'sh COMMAND'
 # in which case we are not to be found in the path.
 if test "x$as_myself" = x; then
   as_myself=$0
@@ -8306,7 +8872,6 @@ as_fn_error ()
 } # as_fn_error
 
 
-
 # as_fn_set_status STATUS
 # -----------------------
 # Set $? to STATUS, without forking.
@@ -8346,11 +8911,12 @@ then :
   {
     eval $1+=\$2
   }'
-else $as_nop
-  as_fn_append ()
+else case e in #(
+  e) as_fn_append ()
   {
     eval $1=\$$1\$2
-  }
+  } ;;
+esac
 fi # as_fn_append
 
 # as_fn_arith ARG...
@@ -8364,11 +8930,12 @@ then :
   {
     as_val=$(( $* ))
   }'
-else $as_nop
-  as_fn_arith ()
+else case e in #(
+  e) as_fn_arith ()
   {
     as_val=`expr "$@" || test $? -eq 1`
-  }
+  } ;;
+esac
 fi # as_fn_arith
 
 
@@ -8451,9 +9018,9 @@ if (echo >conf$$.file) 2>/dev/null; then
   if ln -s conf$$.file conf$$ 2>/dev/null; then
     as_ln_s='ln -s'
     # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
+    # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable.
+    # In both cases, we have to default to 'cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
       as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
@@ -8534,10 +9101,12 @@ as_test_x='test -x'
 as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated
 
 # Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+as_tr_sh="eval sed '$as_sed_sh'" # deprecated
 
 
 exec 6>&1
@@ -8552,8 +9121,8 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_wri
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by debugedit $as_me 5.1, which was
-generated by GNU Autoconf 2.71.  Invocation command line was
+This file was extended by debugedit $as_me 5.2, which was
+generated by GNU Autoconf 2.72.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -8585,7 +9154,7 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
+'$as_me' instantiates files and other configuration actions
 from templates according to the current configuration.  Unless the files
 and actions are specified as TAGs, all are instantiated by default.
 
@@ -8620,11 +9189,11 @@ ac_cs_config_escaped=`printf "%s\n" "$ac
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-debugedit config.status 5.1
-configured by $0, generated by GNU Autoconf 2.71,
+debugedit config.status 5.2
+configured by $0, generated by GNU Autoconf 2.72,
   with options \\"\$ac_cs_config\\"
 
-Copyright (C) 2021 Free Software Foundation, Inc.
+Copyright (C) 2023 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -8686,8 +9255,8 @@ do
     ac_need_defaults=false;;
   --he | --h)
     # Conflict between --help and --header
-    as_fn_error $? "ambiguous option: \`$1'
-Try \`$0 --help' for more information.";;
+    as_fn_error $? "ambiguous option: '$1'
+Try '$0 --help' for more information.";;
   --help | --hel | -h )
     printf "%s\n" "$ac_cs_usage"; exit ;;
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
@@ -8695,8 +9264,8 @@ Try \`$0 --help' for more information.";
     ac_cs_silent=: ;;
 
   # This is an error.
-  -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
+  -*) as_fn_error $? "unrecognized option: '$1'
+Try '$0 --help' for more information." ;;
 
   *) as_fn_append ac_config_targets " $1"
      ac_need_defaults=false ;;
@@ -8758,7 +9327,7 @@ do
     "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
     "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
 
-  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
+  *) as_fn_error $? "invalid argument: '$ac_config_target'" "$LINENO" 5;;
   esac
 done
 
@@ -8778,7 +9347,7 @@ fi
 # creating and moving files from /tmp can sometimes cause problems.
 # Hook for its removal unless debugging.
 # Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
+# after its creation but before its name has been assigned to '$tmp'.
 $debug ||
 {
   tmp= ac_tmp=
@@ -8802,7 +9371,7 @@ ac_tmp=$tmp
 
 # Set up the scripts for CONFIG_FILES section.
 # No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
+# This happens for instance with './config.status config.h'.
 if test -n "$CONFIG_FILES"; then
 
 
@@ -8960,13 +9529,13 @@ fi # test -n "$CONFIG_FILES"
 
 # Set up the scripts for CONFIG_HEADERS section.
 # No need to generate them if there are no CONFIG_HEADERS.
-# This happens for instance with `./config.status Makefile'.
+# This happens for instance with './config.status Makefile'.
 if test -n "$CONFIG_HEADERS"; then
 cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
 BEGIN {
 _ACEOF
 
-# Transform confdefs.h into an awk script `defines.awk', embedded as
+# Transform confdefs.h into an awk script 'defines.awk', embedded as
 # here-document in config.status, that substitutes the proper values into
 # config.h.in to produce config.h.
 
@@ -9076,7 +9645,7 @@ do
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
+  :L* | :C*:*) as_fn_error $? "invalid tag '$ac_tag'" "$LINENO" 5;;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
   esac
@@ -9098,19 +9667,19 @@ do
       -) ac_f="$ac_tmp/stdin";;
       *) # Look for the file first in the build tree, then in the source tree
 	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
-	 # because $ac_f cannot contain `:'.
+	 # because $ac_f cannot contain ':'.
 	 test -f "$ac_f" ||
 	   case $ac_f in
 	   [\\/$]*) false;;
 	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
 	   esac ||
-	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
+	   as_fn_error 1 "cannot find input file: '$ac_f'" "$LINENO" 5;;
       esac
       case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
       as_fn_append ac_file_inputs " '$ac_f'"
     done
 
-    # Let's still pretend it is `configure' which instantiates (i.e., don't
+    # Let's still pretend it is 'configure' which instantiates (i.e., don't
     # use $as_me), people would be surprised to read:
     #    /* config.h.  Generated by config.status.  */
     configure_input='Generated from '`
@@ -9243,7 +9812,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_writ
 esac
 _ACEOF
 
-# Neutralize VPATH when `$srcdir' = `.'.
+# Neutralize VPATH when '$srcdir' = '.'.
 # Shell code in configure.ac might set extrasub.
 # FIXME: do we really want to maintain this feature?
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
@@ -9274,9 +9843,9 @@ test -z "$ac_datarootdir_hack$ac_dataroo
   { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
   { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
       "$ac_tmp/out"`; test -z "$ac_out"; } &&
-  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+  { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable 'datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&5
-printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable 'datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&2;}
 
   rm -f "$ac_tmp/stdin"
@@ -9355,7 +9924,7 @@ printf "%s\n" "$as_me: executing $ac_fil
     "tests/atconfig":C) cat >tests/atconfig <<ATEOF
 # Configurable variable values for building test suites.
 # Generated by $0.
-# Copyright (C) 2021 Free Software Foundation, Inc.
+# Copyright (C) 2023 Free Software Foundation, Inc.
 
 # The test suite will define top_srcdir=$at_top_srcdir/../.. etc.
 at_testdir='tests'
@@ -9456,15 +10025,15 @@ printf "%s\n" X/"$am_mf" |
    (exit $ac_status); } || am_rc=$?
   done
   if test $am_rc -ne 0; then
-    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}
+    { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5
+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;}
 as_fn_error $? "Something went wrong bootstrapping makefile fragments
     for automatic dependency tracking.  If GNU make was not used, consider
     re-running the configure script with MAKE=\"gmake\" (or whatever is
     necessary).  You can also try re-running configure with the
     '--disable-dependency-tracking' option to at least be able to build
     the package (albeit without support for automatic dependency tracking).
-See \`config.log' for more details" "$LINENO" 5; }
+See 'config.log' for more details" "$LINENO" 5; }
   fi
   { am_dirpart=; unset am_dirpart;}
   { am_filepart=; unset am_filepart;}
diff -pruN 1:5.1-2/configure.ac 1:5.2-1/configure.ac
--- 1:5.1-2/configure.ac	2024-10-29 15:47:59.917638140 +0000
+++ 1:5.2-1/configure.ac	2025-07-07 14:30:52.966227001 +0000
@@ -1,7 +1,7 @@
 #                                               -*- Autoconf -*-
 # Process this file with autoconf to produce a configure script.
 
-# Copyright (C) 2021, 2024 Mark J. Wielaard <mark@klomp.org>
+# Copyright (C) 2021, 2024, 2025 Mark J. Wielaard <mark@klomp.org>
 #
 # This program is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -17,7 +17,7 @@
 # along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
 AC_PREREQ([2.69])
-AC_INIT([debugedit], [5.1], [debugedit@sourceware.org])
+AC_INIT([debugedit], [5.2], [debugedit@sourceware.org])
 AC_CONFIG_SRCDIR([tools/debugedit.c])
 AC_CONFIG_HEADERS([config.h])
 
@@ -45,6 +45,9 @@ m4_version_prereq([2.70], [AC_PROG_CC],
 AC_PROG_LN_S
 AC_CHECK_TOOL([LD], [ld])
 AC_CHECK_TOOL([READELF], [readelf])
+AC_CHECK_TOOL([OBJCOPY], [objcopy])
+AC_CHECK_TOOL([NM], [nm])
+AC_CHECK_TOOL([AR], [ar])
 AM_MISSING_PROG(HELP2MAN, help2man)
 
 # Whether dwz support -j.
@@ -123,6 +126,19 @@ CFLAGS="$save_CFLAGS"
 DWARF_5_DEBUGLINE=$ac_cv_dwarf_5_debugline
 AC_SUBST([DWARF_5_DEBUGLINE])
 
+AC_CACHE_CHECK([whether -gdwarf-5 produced DWARF5 .debug_addr], ac_cv_dwarf_5_debugaddr, [dnl
+save_CFLAGS="$CFLAGS"
+CFLAGS="-gdwarf-5"
+AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int i=0;]],[[/* empty main */]])],
+  [if $READELF -S conftest.o 2>&1 | grep -F ".debug_addr" > /dev/null 2>&1; \
+     then ac_cv_dwarf_5_debugaddr=yes; \
+     else ac_cv_dwarf_5_debugaddr=no; fi],
+  ac_cv_dwarf_5_debugaddr=no)
+CFLAGS="$save_CFLAGS"
+])
+DWARF_5_DEBUGADDR=$ac_cv_dwarf_5_debugaddr
+AC_SUBST([DWARF_5_DEBUGADDR])
+
 AC_CACHE_CHECK([whether gcc supports -gz=none], ac_cv_gz_none, [dnl
 save_CFLAGS="$CFLAGS"
 CFLAGS="-gz=none"
@@ -181,6 +197,17 @@ else
 fi
 AC_SUBST([READELF_VERSION_OK])
 
+ENABLE_INLINED_XXHASH=yes
+AC_ARG_ENABLE(inlined-xxhash,
+	AS_HELP_STRING([--disable-inlined-xxhash], [disable the inlined-only version of xxhash library]),
+	ENABLE_INLINED_XXHASH=$enableval,
+	ENABLE_INLINED_XXHASH=yes)
+
+if test x$ENABLE_INLINED_XXHASH = xyes; then
+	XXHASH_CFLAGS="$XXHASH_CFLAGS -DXXH_INLINE_ALL"
+	XXHASH_LIBS=""
+fi
+
 # And generate the output files.
 AC_CONFIG_FILES([Makefile])
 AC_OUTPUT
diff -pruN 1:5.1-2/debian/changelog 1:5.2-1/debian/changelog
--- 1:5.1-2/debian/changelog	2025-02-07 17:57:28.000000000 +0000
+++ 1:5.2-1/debian/changelog	2025-08-29 05:34:40.000000000 +0000
@@ -1,3 +1,9 @@
+debugedit (1:5.2-1) unstable; urgency=medium
+
+  * New upstream version.
+
+ -- Matthias Klose <doko@debian.org>  Fri, 29 Aug 2025 07:34:40 +0200
+
 debugedit (1:5.1-2) unstable; urgency=medium
 
   * Update from git up to 20250207.
diff -pruN 1:5.1-2/debian/patches/gcc-driver.diff 1:5.2-1/debian/patches/gcc-driver.diff
--- 1:5.1-2/debian/patches/gcc-driver.diff	2024-10-29 17:00:32.000000000 +0000
+++ 1:5.2-1/debian/patches/gcc-driver.diff	2025-07-17 13:05:08.000000000 +0000
@@ -7,5 +7,5 @@
 -AC_CHECK_TOOL([LD], [ld])
 +AC_CHECK_TOOL([LD], [gcc])
  AC_CHECK_TOOL([READELF], [readelf])
- AM_MISSING_PROG(HELP2MAN, help2man)
- 
+ AC_CHECK_TOOL([OBJCOPY], [objcopy])
+ AC_CHECK_TOOL([NM], [nm])
diff -pruN 1:5.1-2/debian/patches/git-updates.diff 1:5.2-1/debian/patches/git-updates.diff
--- 1:5.1-2/debian/patches/git-updates.diff	2025-02-07 17:57:13.000000000 +0000
+++ 1:5.2-1/debian/patches/git-updates.diff	1970-01-01 00:00:00.000000000 +0000
@@ -1,312 +0,0 @@
-git diff fe03706cb6f5f3a97042295b25871827cec36d67  b9a4cbf363946b3d27a3cacd556618378e42b5ca
-
-diff --git a/scripts/find-debuginfo.in b/scripts/find-debuginfo.in
-index a360bf0..7f2c007 100755
---- a/scripts/find-debuginfo.in
-+++ b/scripts/find-debuginfo.in
-@@ -434,6 +434,7 @@ trap 'rm -rf "$temp"' EXIT
- 
- # Build a list of unstripped ELF files and their hardlinks
- touch "$temp/primary"
-+touch "$temp/linked"
- find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \
-      		     \( -perm -0100 -or -perm -0010 -or -perm -0001 \) \
- 		     -print | LC_ALL=C sort |
-@@ -458,7 +459,7 @@ do_file()
-   local nlinks=$1 inum=$2 f=$3 id link linked
- 
-   get_debugfn "$f"
--  [ -f "${debugfn}" ] && return
-+  [ -f "${debugfn}" ] && return 0
- 
-   $verbose && echo "extracting debug info from $f"
-   # See also cpio SOURCEFILE copy. Directories must match up.
-@@ -475,20 +476,35 @@ do_file()
-   id=$(debugedit -b "$debug_base_name" -d "$debug_dest_name" \
- 			      $no_recompute -i \
- 			      ${build_id_seed:+--build-id-seed="$build_id_seed"} \
--			      -l "$SOURCEFILE" "$f") || exit
-+			      -l "$SOURCEFILE" "$f") || return 1
-   if [ -z "$id" ]; then
-     echo >&2 "*** ${strict_error}: No build ID note found in $f"
-     $strict && return 2
-   fi
- 
-+  # debugedit makes sure to to get write permission to the file and
-+  # restores original state after modifications. Other utilities
-+  # might not.
-+  f_writable="false"
-+  if test -w "$f"; then f_writable="true"; fi
-+
-   # Add .gdb_index if requested.
-   if $include_gdb_index; then
-     if type gdb-add-index >/dev/null 2>&1; then
-+      if test "$f_writable" = "false"; then
-+        chmod u+w "$f"
-+      fi
-       gdb-add-index "$f" || {
-         status=$?
-         echo >&2 "*** ERROR:: GDB exited with exit status $status during index generation"
-+        if test "$f_writable" = "false"; then
-+          chmod u-w "$f"
-+        fi
-         return 2
-       }
-+      if test "$f_writable" = "false"; then
-+        chmod u-w "$f"
-+      fi
-     else
-       echo >&2 "*** ERROR: GDB index requested, but no gdb-add-index installed"
-       return 2
-@@ -497,17 +513,23 @@ do_file()
- 
-   # Compress any annobin notes in the original binary.
-   # Ignore any errors, since older objcopy don't support --merge-notes.
-+  if test "$f_writable" = "false"; then
-+    chmod u+w "$f"
-+  fi
-   objcopy --merge-notes "$f" 2>/dev/null || true
-+  if test "$f_writable" = "false"; then
-+    chmod u-w "$f"
-+  fi
- 
-   # A binary already copied into /usr/lib/debug doesn't get stripped,
-   # just has its file names collected and adjusted.
-   case "$dn" in
-   /usr/lib/debug/*)
--    return ;;
-+    return 0 ;;
-   esac
- 
-   mkdir -p "${debugdn}"
--  if test -w "$f"; then
-+  if test "$f_writable" = "true"; then
-     strip_to_debug "${debugfn}" "$f"
-   else
-     chmod u+w "$f"
-@@ -529,7 +551,15 @@ do_file()
-       application/x-executable*) skip_mini=false ;;
-       application/x-pie-executable*) skip_mini=false ;;
-     esac
--    $skip_mini || add_minidebug "${debugfn}" "$f"
-+    if test "$skip_mini" = "false"; then
-+      if test "$f_writable" = "false"; then
-+        chmod u+w "$f"
-+      fi
-+      add_minidebug "${debugfn}" "$f"
-+      if test "$f_writable" = "false"; then
-+        chmod u-w "$f"
-+      fi
-+    fi
-   fi
- 
-   echo "./${f#$RPM_BUILD_ROOT}" >> "$ELFBINSFILE"
-@@ -544,6 +574,8 @@ do_file()
-       mkdir -p "$(dirname "$debugfn")" && ln -nf "$link" "$debugfn"
-     done
-   fi
-+
-+  return 0
- }
- 
- # 16^6 - 1 or about 16 million files
-diff --git a/tests/debugedit.at b/tests/debugedit.at
-index 8e69c0e..21b67a6 100644
---- a/tests/debugedit.at
-+++ b/tests/debugedit.at
-@@ -343,7 +343,7 @@ AT_CHECK([[
-  $READELF --debug-dump=info baz.o) \
-         | grep -E 'DW_AT_(name|comp_dir)' \
-         | rev | cut -d: -f1 | rev | cut -c2- | grep ^/foo/bar/baz | sort -u
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -368,7 +368,7 @@ AT_CHECK([[
-  $READELF --debug-dump=info baz.o) \
-         | grep -E 'DW_AT_(name|comp_dir)' \
-         | rev | cut -d: -f1 | rev | cut -c2- | grep ^/foo/bar/baz | sort -u
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -391,7 +391,7 @@ AT_CHECK([[
- $READELF --debug-dump=info ./foobarbaz.part.o \
-         | grep -E 'DW_AT_(name|comp_dir)' \
-         | rev | cut -d: -f1 | rev | cut -c2- | grep ^/foo/bar/baz | sort -u
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -412,7 +412,7 @@ AT_CHECK([[
- $READELF --debug-dump=info ./foobarbaz.part.o \
-         | grep -E 'DW_AT_(name|comp_dir)' \
-         | rev | cut -d: -f1 | rev | cut -c2- | grep ^/foo/bar/baz | sort -u
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -434,7 +434,7 @@ AT_CHECK([[debugedit -b $(pwd) -d /foo/bar/baz ./foobarbaz.exe]])
- AT_CHECK([[
- $READELF --debug-dump=info ./foobarbaz.exe | grep -E 'DW_AT_(name|comp_dir)' \
-         | rev | cut -d: -f1 | rev | cut -c2- | grep ^/foo/bar/baz | sort -u
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -454,7 +454,7 @@ AT_CHECK([[debugedit -b $(pwd) -d /foo/bar/baz ./foobarbaz.exe]])
- AT_CHECK([[
- $READELF --debug-dump=info ./foobarbaz.exe | grep -E 'DW_AT_(name|comp_dir)' \
-         | rev | cut -d: -f1 | rev | cut -c2- | grep ^/foo/bar/baz | sort -u
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -492,7 +492,7 @@ for i in ./foo.o ./subdir_bar/bar.o ./baz.o;do \
-           | sed -n 's/^.*> *DW_AT_name *:.* \(stringp[^ ]*\|st.\)$/\1/p' \
-           | sort;
- done
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -522,7 +522,7 @@ $READELF --debug-dump=info ./foobarbaz.part.o \
-         | awk '/Abbrev Number:.*DW_TAG_type_unit/{p=1}{if(p)print}/^$/{p=0}' \
-         | sed -n 's/^.*> *DW_AT_name *:.* \(stringp[^ ]*\|st.\)$/\1/p' \
-         | sort
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -552,7 +552,7 @@ $READELF --debug-dump=info ./foobarbaz.exe \
-         | awk '/Abbrev Number:.*DW_TAG_type_unit/{p=1}{if(p)print}/^$/{p=0}' \
-         | sed -n 's/^.*> *DW_AT_name *:.* \(stringp[^ ]*\|st.\)$/\1/p' \
-         | sort
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -583,7 +583,7 @@ $READELF --debug-dump=info ./foobarbaz.exe \
-         | awk '/Abbrev Number:.*DW_TAG_type_unit/{p=1}{if(p)print}/^$/{p=0}' \
-         | sed -n 's/^.*> *DW_AT_name *:.* \(stringp[^ ]*\|st.\)$/\1/p' \
-         | sort
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -615,7 +615,7 @@ AT_CHECK([[
-  $READELF --debug-dump=line subdir_bar/bar.o; \
-  $READELF --debug-dump=line baz.o) \
-         | grep -E -A5 "The (Directory|File Name) Table" | grep "^  [1234]"
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -645,7 +645,7 @@ AT_CHECK([[
-  $READELF --debug-dump=line baz.o) \
- 	| grep -E -A5 "The (Directory|File Name) Table" \
- 	| grep "^  [01234]" | cut -f3 -d:
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -667,7 +667,7 @@ AT_CHECK([[
- $READELF --debug-dump=line ./foobarbaz.part.o \
-         | grep -E -A5 "The (Directory|File Name) Table" \
- 	| grep "^  [1234]"
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -691,7 +691,7 @@ AT_CHECK([[
- $READELF --debug-dump=line ./foobarbaz.part.o \
- 	| grep -E -A5 "The (Directory|File Name) Table" \
- 	| grep "^  [01234]" | cut -f3 -d:
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -713,7 +713,7 @@ AT_CHECK([[
- $READELF --debug-dump=line ./foobarbaz.exe \
-         | grep -E -A5 "The (Directory|File Name) Table" \
- 	| grep "^  [1234]"
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -737,7 +737,7 @@ AT_CHECK([[
- $READELF --debug-dump=line ./foobarbaz.exe \
- 	| grep -E -A5 "The (Directory|File Name) Table" \
- 	| grep "^  [01234]" | cut -f3 -d:
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -764,7 +764,7 @@ AT_CHECK([[
-  $READELF --debug-dump=macro subdir_bar/bar.o; \
-  $READELF --debug-dump=macro baz.o) \
-         | grep NUMBER | rev | cut -d: -f1 | rev | cut -c2-
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -787,7 +787,7 @@ AT_CHECK([[debugedit -b $(pwd) -d /foo/bar/baz ./foobarbaz.part.o]])
- AT_CHECK([[
- $READELF --debug-dump=macro ./foobarbaz.part.o \
-         | grep NUMBER | rev | cut -d: -f1 | rev | cut -c2-
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -810,7 +810,7 @@ AT_CHECK([[debugedit -b $(pwd) -d /foo/bar/baz ./foobarbaz.exe]])
- AT_CHECK([[
- $READELF --debug-dump=macro ./foobarbaz.exe \
-         | grep NUMBER | rev | cut -d: -f1 | rev | cut -c2-
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -831,7 +831,7 @@ AT_CHECK([[debugedit -b $(pwd) -d /foo/bar/baz ./foobarbaz.exe]])
- AT_CHECK([[
- $READELF --debug-dump=macro ./foobarbaz.exe \
-         | grep NUMBER | rev | cut -d: -f1 | rev | cut -c2-
--]],[0],[expout])
-+]],[0],[expout],[ignore])
- 
- AT_CLEANUP
- 
-@@ -905,13 +905,13 @@ AT_CHECK([[test "$bid" != "$bid2a"]])
- AT_CHECK([[$READELF -n main | grep Build.ID: | awk '{print $3}']], [0], [stdout], [ignore])
- bid2b="`cat stdout`"
- AT_CHECK([[expr "$bid2b" : '[0-9a-f]*']], [0], [ignore])
--AT_CHECK([[test "$bid2a" == "$bid2b"]])
-+AT_CHECK([[test "$bid2a" = "$bid2b"]])
- 
- # run debugedit to recompute build-id, check for idempotence
- AT_CHECK([[debugedit -i -s deadbeef main]], [0], [stdout])
- bid2c="`cat stdout`"
- AT_CHECK([[expr "$bid2c" : '[0-9a-f]*']], [0], [ignore])
--AT_CHECK([[test "$bid2a" == "$bid2c"]])
-+AT_CHECK([[test "$bid2a" = "$bid2c"]])
- 
- # check that debugedit -i with different -s seed results in different valid build-id
- AT_CHECK([[debugedit -i -s zoofoo main]], [0], [stdout])
diff -pruN 1:5.1-2/debian/patches/series 1:5.2-1/debian/patches/series
--- 1:5.1-2/debian/patches/series	2025-02-07 17:57:28.000000000 +0000
+++ 1:5.2-1/debian/patches/series	2025-07-17 13:04:59.000000000 +0000
@@ -1,2 +1 @@
-git-updates.diff
 gcc-driver.diff
diff -pruN 1:5.1-2/debian/rules 1:5.2-1/debian/rules
--- 1:5.1-2/debian/rules	2021-11-25 09:49:41.000000000 +0000
+++ 1:5.2-1/debian/rules	2025-08-28 12:54:37.000000000 +0000
@@ -4,6 +4,11 @@
 
 export DEB_BUILD_MAINT_OPTIONS = hardening=-all optimize=-lto
 
+ifneq (,$(filter $(DEB_HOST_ARCH),mips64el))
+  ign_test_results = -
+endif
+ign_test_results = -
+
 %:
 	dh $@
 
@@ -13,8 +18,7 @@ override_dh_auto_test:
 	  cp -p tests/atlocal tests/atlocal.orig; \
 	  sed -i 's/^\(C\|LD\)FLAGS=.*/\1FLAGS=""/' tests/atlocal; \
 	fi
-	$(if $(filter $(DEB_HOST_ARCH),mips64el),-)\
-	if dh_auto_test; then \
+	$(ign_test_results)if dh_auto_test; then \
 	  : ; \
 	else \
 	  cat tests/testsuite.log; \
diff -pruN 1:5.1-2/debugedit.1 1:5.2-1/debugedit.1
--- 1:5.1-2/debugedit.1	2024-10-29 15:48:06.422652542 +0000
+++ 1:5.2-1/debugedit.1	2025-07-07 14:30:59.974181130 +0000
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH DEBUGEDIT "1" "October 2024" "debugedit 5.1" "User Commands"
+.TH DEBUGEDIT "1" "July 2025" "debugedit 5.2" "User Commands"
 .SH NAME
 debugedit \- debug source path manipulation tool
 .SH SYNOPSIS
@@ -28,6 +28,9 @@ this string as hash seed
 \fB\-n\fR, \fB\-\-no\-recompute\-build\-id\fR
 do not recompute build ID note even
 when \fB\-i\fR or \fB\-s\fR are given
+.TP
+\fB\-p\fR, \fB\-\-preserve\-dates\fR
+Preserve modified/access timestamps
 .SS "Help options:"
 .TP
 \-?, \fB\-\-help\fR
diff -pruN 1:5.1-2/depcomp 1:5.2-1/depcomp
--- 1:5.1-2/depcomp	2024-10-29 15:48:02.111642998 +0000
+++ 1:5.2-1/depcomp	2025-07-07 14:30:55.217095500 +0000
@@ -1,9 +1,9 @@
 #! /bin/sh
 # depcomp - compile a program generating dependencies as side-effects
 
-scriptversion=2018-03-07.03; # UTC
+scriptversion=2024-06-19.01; # UTC
 
-# Copyright (C) 1999-2021 Free Software Foundation, Inc.
+# Copyright (C) 1999-2024 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -47,11 +47,13 @@ Environment variables:
   libtool     Whether libtool is used (yes/no).
 
 Report bugs to <bug-automake@gnu.org>.
+GNU Automake home page: <https://www.gnu.org/software/automake/>.
+General help using GNU software: <https://www.gnu.org/gethelp/>.
 EOF
     exit $?
     ;;
   -v | --v*)
-    echo "depcomp $scriptversion"
+    echo "depcomp (GNU Automake) $scriptversion"
     exit $?
     ;;
 esac
@@ -113,7 +115,6 @@ nl='
 # These definitions help.
 upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
 lower=abcdefghijklmnopqrstuvwxyz
-digits=0123456789
 alpha=${upper}${lower}
 
 if test -z "$depmode" || test -z "$source" || test -z "$object"; then
@@ -128,7 +129,7 @@ tmpdepfile=${tmpdepfile-`echo "$depfile"
 
 rm -f "$tmpdepfile"
 
-# Avoid interferences from the environment.
+# Avoid interference from the environment.
 gccflag= dashmflag=
 
 # Some modes work just like other modes, but use different flags.  We
@@ -198,8 +199,8 @@ gcc3)
   ;;
 
 gcc)
-## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
-## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
+## Note that this doesn't just cater to obsolete pre-3.x GCC compilers.
+## but also to in-use compilers like IBM xlc/xlC and the HP C compiler.
 ## (see the conditional assignment to $gccflag above).
 ## There are various ways to get dependency output from gcc.  Here's
 ## why we pick this rather obscure method:
diff -pruN 1:5.1-2/find-debuginfo.1 1:5.2-1/find-debuginfo.1
--- 1:5.1-2/find-debuginfo.1	2024-10-29 15:48:05.186649806 +0000
+++ 1:5.2-1/find-debuginfo.1	2025-07-07 14:30:58.577242887 +0000
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH FIND-DEBUGINFO "1" "October 2024" "find-debuginfo 5.1" "User Commands"
+.TH FIND-DEBUGINFO "1" "July 2025" "find-debuginfo 5.2" "User Commands"
 .SH NAME
 find-debuginfo \- finds debuginfo and processes it
 .SH SYNOPSIS
@@ -10,7 +10,7 @@ automagically generates debug info and f
 .SH OPTIONS
 [\-\-strict\-build\-id] [\-g] [\-r] [\-m] [\-i] [\-n] [\-q] [\-v]
 [\-\-keep\-section SECTION] [\-\-remove\-section SECTION]
-[\-\-g\-libs]
+[\-\-g\-libs] [\-\-no\-ar\-files]
 [\-j N] [\-\-jobs N]
 [\-o debugfiles.list]
 [\-S debugsourcefiles.list]
@@ -77,6 +77,11 @@ will be called /usr/debug/src/<BASE>.  T
 dirs are unique between package version, release and achitecture (Use
 \fB\-\-unique\-debug\-src\-base\fR "%{name}\-%{VERSION}\-%{RELEASE}.%{_arch}")
 .PP
+If \fB\-\-no\-ar\-files\fR is given, then static libraries will be ignored.  Otherwise,
+they receive only with source\-path rewriting and collection.  They are
+not stripped, since they have no persistent build\-ids to accommodate
+eventual reunification.
+.PP
 The \fB\-q\fR or \fB\-\-quiet\fR flag silences all non\-error output from the script.
 The \fB\-v\fR or \fB\-\-verbose\fR flag add more output for all files processed.
 When neither \fB\-q\fR or \fB\-v\fR is given then only output for each pass is given.
diff -pruN 1:5.1-2/install-sh 1:5.2-1/install-sh
--- 1:5.1-2/install-sh	2024-10-29 15:48:02.098642969 +0000
+++ 1:5.2-1/install-sh	2025-07-07 14:30:55.202005342 +0000
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2020-11-14.01; # UTC
+scriptversion=2024-06-19.01; # UTC
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -124,9 +124,9 @@ it's up to you to specify -f if you want
 
 If -S is not specified, no backups are attempted.
 
-Email bug reports to bug-automake@gnu.org.
-Automake home page: https://www.gnu.org/software/automake/
-"
+Report bugs to <bug-automake@gnu.org>.
+GNU Automake home page: <https://www.gnu.org/software/automake/>.
+General help using GNU software: <https://www.gnu.org/gethelp/>."
 
 while test $# -ne 0; do
   case $1 in
@@ -170,7 +170,7 @@ while test $# -ne 0; do
 
     -T) is_target_a_directory=never;;
 
-    --version) echo "$0 $scriptversion"; exit $?;;
+    --version) echo "$0 (GNU Automake) $scriptversion"; exit $?;;
 
     --) shift
         break;;
@@ -345,7 +345,7 @@ do
 	' 0
 
 	# Because "mkdir -p" follows existing symlinks and we likely work
-	# directly in world-writeable /tmp, make sure that the '$tmpdir'
+	# directly in world-writable /tmp, make sure that the '$tmpdir'
 	# directory is successfully created first before we actually test
 	# 'mkdir -p'.
 	if (umask $mkdir_umask &&
@@ -353,7 +353,7 @@ do
 	    exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
 	then
 	  if test -z "$dir_arg" || {
-	       # Check for POSIX incompatibilities with -m.
+	       # Check for POSIX incompatibility with -m.
 	       # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
 	       # other-writable bit of parent directory when it shouldn't.
 	       # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
diff -pruN 1:5.1-2/missing 1:5.2-1/missing
--- 1:5.1-2/missing	2024-10-29 15:48:02.099642971 +0000
+++ 1:5.2-1/missing	2025-07-07 14:30:55.203233335 +0000
@@ -1,9 +1,11 @@
 #! /bin/sh
-# Common wrapper for a few potentially missing GNU programs.
+# Common wrapper for a few potentially missing GNU and other programs.
 
-scriptversion=2018-03-07.03; # UTC
+scriptversion=2024-06-07.14; # UTC
 
-# Copyright (C) 1996-2021 Free Software Foundation, Inc.
+# shellcheck disable=SC2006,SC2268 # we must support pre-POSIX shells
+
+# Copyright (C) 1996-2024 Free Software Foundation, Inc.
 # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
 
 # This program is free software; you can redistribute it and/or modify
@@ -54,18 +56,20 @@ Options:
   -v, --version   output version information and exit
 
 Supported PROGRAM values:
-  aclocal   autoconf  autoheader   autom4te  automake  makeinfo
-  bison     yacc      flex         lex       help2man
+aclocal autoconf autogen  autoheader autom4te automake autoreconf
+bison   flex     help2man lex        makeinfo perl     yacc
 
 Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and
 'g' are ignored when checking the name.
 
-Send bug reports to <bug-automake@gnu.org>."
+Report bugs to <bug-automake@gnu.org>.
+GNU Automake home page: <https://www.gnu.org/software/automake/>.
+General help using GNU software: <https://www.gnu.org/gethelp/>."
     exit $?
     ;;
 
   -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
-    echo "missing $scriptversion (GNU Automake)"
+    echo "missing (GNU Automake) $scriptversion"
     exit $?
     ;;
 
@@ -108,7 +112,7 @@ gnu_software_URL=https://www.gnu.org/sof
 program_details ()
 {
   case $1 in
-    aclocal|automake)
+    aclocal|automake|autoreconf)
       echo "The '$1' program is part of the GNU Automake package:"
       echo "<$gnu_software_URL/automake>"
       echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:"
@@ -123,6 +127,9 @@ program_details ()
       echo "<$gnu_software_URL/m4/>"
       echo "<$perl_URL>"
       ;;
+    *)
+      :
+      ;;
   esac
 }
 
@@ -137,48 +144,55 @@ give_advice ()
   printf '%s\n' "'$1' is $msg."
 
   configure_deps="'configure.ac' or m4 files included by 'configure.ac'"
+  autoheader_deps="'acconfig.h'"
+  automake_deps="'Makefile.am'"
+  aclocal_deps="'acinclude.m4'"
   case $normalized_program in
+    aclocal*)
+      echo "You should only need it if you modified $aclocal_deps or"
+      echo "$configure_deps."
+      ;;
     autoconf*)
-      echo "You should only need it if you modified 'configure.ac',"
-      echo "or m4 files included by it."
-      program_details 'autoconf'
+      echo "You should only need it if you modified $configure_deps."
+      ;;
+    autogen*)
+      echo "You should only need it if you modified a '.def' or '.tpl' file."
+      echo "You may want to install the GNU AutoGen package:"
+      echo "<$gnu_software_URL/autogen/>"
       ;;
     autoheader*)
-      echo "You should only need it if you modified 'acconfig.h' or"
+      echo "You should only need it if you modified $autoheader_deps or"
       echo "$configure_deps."
-      program_details 'autoheader'
       ;;
     automake*)
-      echo "You should only need it if you modified 'Makefile.am' or"
-      echo "$configure_deps."
-      program_details 'automake'
-      ;;
-    aclocal*)
-      echo "You should only need it if you modified 'acinclude.m4' or"
+      echo "You should only need it if you modified $automake_deps or"
       echo "$configure_deps."
-      program_details 'aclocal'
       ;;
-   autom4te*)
+    autom4te*)
       echo "You might have modified some maintainer files that require"
       echo "the 'autom4te' program to be rebuilt."
-      program_details 'autom4te'
+      ;;
+    autoreconf*)
+      echo "You should only need it if you modified $aclocal_deps or"
+      echo "$automake_deps or $autoheader_deps or $automake_deps or"
+      echo "$configure_deps."
       ;;
     bison*|yacc*)
       echo "You should only need it if you modified a '.y' file."
       echo "You may want to install the GNU Bison package:"
       echo "<$gnu_software_URL/bison/>"
       ;;
-    lex*|flex*)
-      echo "You should only need it if you modified a '.l' file."
-      echo "You may want to install the Fast Lexical Analyzer package:"
-      echo "<$flex_URL>"
-      ;;
     help2man*)
       echo "You should only need it if you modified a dependency" \
            "of a man page."
       echo "You may want to install the GNU Help2man package:"
       echo "<$gnu_software_URL/help2man/>"
     ;;
+    lex*|flex*)
+      echo "You should only need it if you modified a '.l' file."
+      echo "You may want to install the Fast Lexical Analyzer package:"
+      echo "<$flex_URL>"
+      ;;
     makeinfo*)
       echo "You should only need it if you modified a '.texi' file, or"
       echo "any other file indirectly affecting the aspect of the manual."
@@ -189,6 +203,12 @@ give_advice ()
       echo "want to install GNU make:"
       echo "<$gnu_software_URL/make/>"
       ;;
+    perl*)
+      echo "You should only need it to run GNU Autoconf, GNU Automake, "
+      echo "  assorted other tools, or if you modified a Perl source file."
+      echo "You may want to install the Perl 5 language interpreter:"
+      echo "<$perl_URL>"
+      ;;
     *)
       echo "You might have modified some files without having the proper"
       echo "tools for further handling them.  Check the 'README' file, it"
@@ -197,6 +217,7 @@ give_advice ()
       echo "case some other package contains this missing '$1' program."
       ;;
   esac
+  program_details "$normalized_program"
 }
 
 give_advice "$1" | sed -e '1s/^/WARNING: /' \
diff -pruN 1:5.1-2/scripts/find-debuginfo.in 1:5.2-1/scripts/find-debuginfo.in
--- 1:5.1-2/scripts/find-debuginfo.in	2024-10-29 15:47:59.917638140 +0000
+++ 1:5.2-1/scripts/find-debuginfo.in	2025-07-07 14:30:52.966227001 +0000
@@ -5,6 +5,7 @@
 # for inclusion in package file lists.
 
 # Copyright (C) 2002-2021 rpm and debugedit contributors
+# Copyright (C) 2025 Red Hat Inc.
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -28,7 +29,7 @@ automagically generates debug info and f
 Options:
 [--strict-build-id] [-g] [-r] [-m] [-i] [-n] [-q] [-v]
 [--keep-section SECTION] [--remove-section SECTION]
-[--g-libs]
+[--g-libs] [--no-ar-files]
 [-j N] [--jobs N]
 [-o debugfiles.list]
 [-S debugsourcefiles.list]
@@ -95,6 +96,11 @@ will be called /usr/debug/src/<BASE>.  T
 dirs are unique between package version, release and achitecture (Use
 --unique-debug-src-base "%{name}-%{VERSION}-%{RELEASE}.%{_arch}")
 
+If --no-ar-files is given, then static libraries will be ignored.  Otherwise,
+they receive only with source-path rewriting and collection.  They are
+not stripped, since they have no persistent build-ids to accommodate
+eventual reunification.
+
 The -q or --quiet flag silences all non-error output from the script.
 The -v or --verbose flag add more output for all files processed.
 When neither -q or -v is given then only output for each pass is given.
@@ -108,6 +114,15 @@ EOF
 install_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
 PATH=${install_dir}:$PATH
 
+# A couple of binutils helper tools are used in this script.
+# Let the user override them by setting them in environment variables.
+# The default is the (target variant) of the tool found when debugedit
+# was configured.
+READELF=${READELF:=@READELF@}
+OBJCOPY=${OBJCOPY:=@OBJCOPY@}
+NM=${NM:=@NM@}
+AR=${AR:=@AR@}
+
 # With -g arg, pass it to strip on libraries or executables.
 strip_g=false
 
@@ -159,6 +174,14 @@ quiet=false
 # add more non-error output
 verbose=false
 
+# process static libraries if ar is new enough (binutils 2.31+) to support O
+if [ -n "`ar 2>&1 | grep -F '[O]'`" ]; then
+    process_ar=true
+else
+    process_ar=false
+fi
+
+
 BUILDDIR=.
 out=debugfiles.list
 srcout=
@@ -252,6 +275,9 @@ while [ $# -gt 0 ]; do
     srcout=$2
     shift
     ;;
+  --no-ar-files)
+    process_ar=false
+    ;;
   -q|--quiet)
     quiet=true
     verbose=false
@@ -360,7 +386,7 @@ add_minidebug()
   # symbol and NOBITS sections so cannot use --keep-only because that is
   # too aggressive. Field $2 is the section name, $3 is the section type
   # and $8 are the section flags.
-  local remove_sections=`@READELF@ -W -S "$debuginfo" \
+  local remove_sections=`${READELF} -W -S "$debuginfo" \
 	| awk '{ if (index($2,".debug_") != 1 \
 		     && ($3 == "PROGBITS" || $3 == "NOTE" || $3 == "NOBITS") \
 		     && index($8,"A") == 0) \
@@ -368,20 +394,20 @@ add_minidebug()
 
   # Extract the dynamic symbols from the main binary, there is no need to also have these
   # in the normal symbol table
-  nm -D "$binary" --format=posix --defined-only | awk '{ print $1 }' | sort > "$dynsyms"
+  ${NM} -D "$binary" --format=posix --defined-only | awk '{ print $1 }' | sort > "$dynsyms"
   # Extract all the text (i.e. function) symbols from the debuginfo
   # Use format sysv to make sure we can match against the actual ELF FUNC
   # symbol type. The binutils nm posix format symbol type chars are
   # ambigous for architectures that might use function descriptors.
-  nm "$debuginfo" --format=sysv --defined-only | awk -F \| '{ if ($4 ~ "FUNC") print $1 }' | sort > "$funcsyms"
+  ${NM} "$debuginfo" --format=sysv --defined-only | awk -F \| '{ if ($4 ~ "FUNC") print $1 }' | sort > "$funcsyms"
   # Keep all the function symbols not already in the dynamic symbol table
   comm -13 "$dynsyms" "$funcsyms" > "$keep_symbols"
   # Copy the full debuginfo, keeping only a minumal set of symbols and removing some unnecessary sections
-  objcopy -S $remove_sections --keep-symbols="$keep_symbols" "$debuginfo" "$mini_debuginfo" &> /dev/null
+  ${OBJCOPY} -S $remove_sections --keep-symbols="$keep_symbols" "$debuginfo" "$mini_debuginfo" &> /dev/null
   #Inject the compressed data into the .gnu_debugdata section of the original binary
   xz "$mini_debuginfo"
   mini_debuginfo="${mini_debuginfo}.xz"
-  objcopy --add-section .gnu_debugdata="$mini_debuginfo" "$binary"
+  ${OBJCOPY} --add-section .gnu_debugdata="$mini_debuginfo" "$binary"
   rm -f "$dynsyms" "$funcsyms" "$keep_symbols" "$mini_debuginfo"
 }
 
@@ -434,11 +460,20 @@ trap 'rm -rf "$temp"' EXIT
 
 # Build a list of unstripped ELF files and their hardlinks
 touch "$temp/primary"
-find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \
-     		     \( -perm -0100 -or -perm -0010 -or -perm -0001 \) \
-		     -print | LC_ALL=C sort |
-file -N -f - | sed -n -e 's/^\(.*\):[ 	]*.*ELF.*, not stripped.*/\1/p' |
-xargs --no-run-if-empty stat -c '%h %D_%i %n' |
+touch "$temp/linked"
+(
+    find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \( -perm -0100 -or -perm -0010 -or -perm -0001 \) -print |
+        file -N -f - |
+        sed -n -e 's/^\(.*\):[     ]*.*ELF.*, not stripped.*/\1/p';
+
+    # plus static libraries
+    $process_ar && find "$RPM_BUILD_ROOT" -type f -name '*.a' -print |
+            file -N -f - |
+            sed -n -e 's/^\(.*\):[         ]*current ar archive.*/\1/p';
+    true
+) |
+    env LC_ALL=C sort |
+    xargs --no-run-if-empty stat -c '%h %D_%i %n' |
 while read nlinks inum f; do
   if [ $nlinks -gt 1 ]; then
     var=seen_$inum
@@ -452,13 +487,122 @@ while read nlinks inum f; do
   echo "$nlinks $inum $f" >>"$temp/primary"
 done
 
+
+# Handle ELF archives
+do_ar_file()
+{
+  local nlinks="$1" inum="$2" f="$3" id link linked
+  local tmpa="$temp/$inum-output.a"
+  local res=0
+
+  # See also cpio SOURCEFILE copy. Directories must match up.
+  debug_base_name="$RPM_BUILD_DIR"
+  debug_dest_name="/usr/src/debug"
+  if [ ! -z "$unique_debug_src_base" ]; then
+      debug_base_name="$BUILDDIR"
+      debug_dest_name="/usr/src/debug/${unique_debug_src_base}"
+  fi
+
+  $verbose && echo "processing debug info in $f"
+  
+  # Extract members from archive, one at a time.  There may be
+  # duplicate names, so we can't just extract the entire archive in
+  # one go (overwriting each other).  Instead, we pick off member
+  # files one-by-one, into synthetic subdirectories, adding processed
+  # versions to a new archive, in order.
+
+  # Create empty output .a; mktemp would create a 0-byte file, which ar rv doesn't like
+  ${AR} r "$tmpa" 2>/dev/null # no members, suppress "ar: creating foo.a" message
+  
+  ${AR} tvO "$f" | while read line; do
+      local pattern='^[rwx-]+ [0-9]+/[0-9]+ +([0-9]+) (.................) (.*) (0x[0-9a-f]+)$'
+      if [[ $line =~ $pattern ]]; then
+          local size=${BASH_REMATCH[1]}
+          local date=${BASH_REMATCH[2]}
+          local member=${BASH_REMATCH[3]}
+          local offset
+          (( offset=${BASH_REMATCH[4]} )) # convert from hexadecimal
+          $verbose && echo "considering ${f#$RPM_BUILD_DIR/} ${member} size ${size} at ${offset}"
+          local tmpdir="$temp/$inum-archive-member" # super short lived
+          local member_dn=$(dirname "$member")
+          if [ "$member_dn" = "." ]; then
+              member_dn="" # empty
+          else
+              member_dn="${member_dn}/" # or suffixed with /
+          fi
+          local member_bn=$(basename "$member")
+
+          # (re)create a directory to hold the (pathname-inclusive) member
+          mkdir -p "$tmpdir/$member_dn"
+          
+          # extract the file by offset, because extracting it by name
+          # is hard, in case the same name exists multiple times.  A
+          # distinct instance-number would have to be given to ar ("N ###"),
+          # kept on a per-name basis.
+          (cd "$tmpdir"; dd status=none if="$f" of="$member_dn$member_bn" bs=1 skip="$offset" count="$size")
+          if [ $? -ne 0 ]; then
+              res=1
+          fi
+          # preserve timestamp from original file, though debugedit may lose it, PR33096
+          touch -d "$date" "$tmpdir/$member_dn$member_bn"
+
+          if file "$tmpdir/$member_dn$member_bn" |
+                  grep -qE 'ELF.*, not stripped'; then
+              debugedit -b "$debug_base_name" -d "$debug_dest_name" \
+		        -l "$SOURCEFILE" "$tmpdir/$member_dn$member_bn"
+              if [ $? -ne 0 ]; then
+                  res=1
+                  $verbose && echo "failed processing ELF object ${member}"
+              else
+                  $verbose && echo "processed ELF object ${member}"
+              fi
+          else
+              $verbose && echo "skipped ${member}, no debuginfo"
+          fi
+
+          # add the file; qP mode, so strict append, no dupe elimination, path preserved
+          (cd "$tmpdir"; ${AR} qP "$tmpa"  "$member_dn$member_bn")
+
+          # remove the entire temporary directory, in case another
+          # member object comes later with a conflicting name
+          rm -rf  "$tmpdir"
+      else
+          $verbose && echo "skipping archive $f with unparseable contents"
+          res=1
+      fi
+  done
+  if [ $res -eq 0 ]; then
+      # replace original archive with new version
+      ${AR} sP "$tmpa" # ranlib, preserve paths
+      mv "$tmpa" "$f"
+  fi
+  rm -f "$tmpa"
+  
+  $verbose && echo found $(tr -dc '\0' < "$SOURCEFILE" | wc -c) source files
+
+  # NB: no need to strip or dwz-compress or gdbindex or
+  # ELFBINSFILE-collect objects / archives.  These operations only
+  # make sense on the final binaries that the static archives are
+  # linked into.
+
+  return $res
+}
+
+
 # Strip ELF binaries
 do_file()
 {
   local nlinks=$1 inum=$2 f=$3 id link linked
 
+  # reject files already located under /usr/lib/debug, presumably processed
   get_debugfn "$f"
-  [ -f "${debugfn}" ] && return
+  [ -f "${debugfn}" ] && return 0
+
+  local ar_re="^.*\.a$"
+  if [[ $f =~ $ar_re ]]; then # treat as static archive
+      do_ar_file "$1" "$2" "$3"
+      return
+  fi
 
   $verbose && echo "extracting debug info from $f"
   # See also cpio SOURCEFILE copy. Directories must match up.
@@ -475,20 +619,37 @@ do_file()
   id=$(debugedit -b "$debug_base_name" -d "$debug_dest_name" \
 			      $no_recompute -i \
 			      ${build_id_seed:+--build-id-seed="$build_id_seed"} \
-			      -l "$SOURCEFILE" "$f") || exit
+			      -l "$SOURCEFILE" "$f") || return 1
   if [ -z "$id" ]; then
     echo >&2 "*** ${strict_error}: No build ID note found in $f"
     $strict && return 2
   fi
 
+  $verbose && echo found $(tr -dc '\0' < "$SOURCEFILE" | wc -c) source files
+  
+  # debugedit makes sure to to get write permission to the file and
+  # restores original state after modifications. Other utilities
+  # might not.
+  f_writable="false"
+  if test -w "$f"; then f_writable="true"; fi
+
   # Add .gdb_index if requested.
   if $include_gdb_index; then
     if type gdb-add-index >/dev/null 2>&1; then
+      if test "$f_writable" = "false"; then
+        chmod u+w "$f"
+      fi
       gdb-add-index "$f" || {
         status=$?
         echo >&2 "*** ERROR:: GDB exited with exit status $status during index generation"
+        if test "$f_writable" = "false"; then
+          chmod u-w "$f"
+        fi
         return 2
       }
+      if test "$f_writable" = "false"; then
+        chmod u-w "$f"
+      fi
     else
       echo >&2 "*** ERROR: GDB index requested, but no gdb-add-index installed"
       return 2
@@ -497,17 +658,23 @@ do_file()
 
   # Compress any annobin notes in the original binary.
   # Ignore any errors, since older objcopy don't support --merge-notes.
-  objcopy --merge-notes "$f" 2>/dev/null || true
+  if test "$f_writable" = "false"; then
+    chmod u+w "$f"
+  fi
+  ${OBJCOPY} --merge-notes "$f" 2>/dev/null || true
+  if test "$f_writable" = "false"; then
+    chmod u-w "$f"
+  fi
 
   # A binary already copied into /usr/lib/debug doesn't get stripped,
   # just has its file names collected and adjusted.
   case "$dn" in
   /usr/lib/debug/*)
-    return ;;
+    return 0 ;;
   esac
 
   mkdir -p "${debugdn}"
-  if test -w "$f"; then
+  if test "$f_writable" = "true"; then
     strip_to_debug "${debugfn}" "$f"
   else
     chmod u+w "$f"
@@ -529,7 +696,15 @@ do_file()
       application/x-executable*) skip_mini=false ;;
       application/x-pie-executable*) skip_mini=false ;;
     esac
-    $skip_mini || add_minidebug "${debugfn}" "$f"
+    if test "$skip_mini" = "false"; then
+      if test "$f_writable" = "false"; then
+        chmod u+w "$f"
+      fi
+      add_minidebug "${debugfn}" "$f"
+      if test "$f_writable" = "false"; then
+        chmod u-w "$f"
+      fi
+    fi
   fi
 
   echo "./${f#$RPM_BUILD_ROOT}" >> "$ELFBINSFILE"
@@ -544,6 +719,8 @@ do_file()
       mkdir -p "$(dirname "$debugfn")" && ln -nf "$link" "$debugfn"
     done
   fi
+
+  return 0
 }
 
 # 16^6 - 1 or about 16 million files
@@ -795,3 +972,4 @@ if ((nout > 0)); then
 fi
 
 $quiet || echo "find-debuginfo: done" 2>&1
+exit 0
diff -pruN 1:5.1-2/sepdebugcrcfix.1 1:5.2-1/sepdebugcrcfix.1
--- 1:5.1-2/sepdebugcrcfix.1	2024-10-29 15:48:05.301650061 +0000
+++ 1:5.2-1/sepdebugcrcfix.1	2025-07-07 14:30:58.706243252 +0000
@@ -1,5 +1,5 @@
 .\" DO NOT MODIFY THIS FILE!  It was generated by help2man 1.49.3.
-.TH SEPDEBUGCRCFIX "1" "October 2024" "sepdebugcrcfix 5.1" "User Commands"
+.TH SEPDEBUGCRCFIX "1" "July 2025" "sepdebugcrcfix 5.2" "User Commands"
 .SH NAME
 sepdebugcrcfix \- fixes CRC for separate .debug files
 .SH SYNOPSIS
diff -pruN 1:5.1-2/tests/Makefile.am 1:5.2-1/tests/Makefile.am
--- 1:5.1-2/tests/Makefile.am	2024-10-29 15:47:59.917638140 +0000
+++ 1:5.2-1/tests/Makefile.am	2025-07-07 14:30:52.966227001 +0000
@@ -32,12 +32,14 @@ $(srcdir)/package.m4: $(top_srcdir)/conf
 # The tests
 TESTSUITE_AT = \
   testsuite.at \
-  debugedit.at
+  debugedit.at \
+  find-debuginfo.at
 
 # Some source files that are needed by the tests
 EXTRA_DIST += data/SOURCES/foo.c \
 	      data/SOURCES/bar.c \
 	      data/SOURCES/baz.c \
+	      data/SOURCES/dupe.c \
 	      data/SOURCES/foobar.h
 
 TESTSUITE = $(srcdir)/testsuite
diff -pruN 1:5.1-2/tests/Makefile.in 1:5.2-1/tests/Makefile.in
--- 1:5.1-2/tests/Makefile.in	2024-10-29 15:48:02.141643064 +0000
+++ 1:5.2-1/tests/Makefile.in	2025-07-07 14:30:55.253850978 +0000
@@ -1,7 +1,7 @@
-# Makefile.in generated by automake 1.16.5 from Makefile.am.
+# Makefile.in generated by automake 1.17 from Makefile.am.
 # @configure_input@
 
-# Copyright (C) 1994-2021 Free Software Foundation, Inc.
+# Copyright (C) 1994-2024 Free Software Foundation, Inc.
 
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
@@ -69,6 +69,8 @@ am__make_running_with_option = \
   test $$has_opt = yes
 am__make_dryrun = (target_option=n; $(am__make_running_with_option))
 am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+am__rm_f = rm -f $(am__rm_f_notfound)
+am__rm_rf = rm -rf $(am__rm_f_notfound)
 pkgdatadir = $(datadir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
@@ -123,6 +125,7 @@ ACLOCAL = @ACLOCAL@
 ALLOCA = @ALLOCA@
 AMTAR = @AMTAR@
 AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
 AUTOCONF = @AUTOCONF@
 AUTOHEADER = @AUTOHEADER@
 AUTOM4TE = @AUTOM4TE@
@@ -138,6 +141,7 @@ CYGPATH_W = @CYGPATH_W@
 DEBUG_MACRO_FLAG = @DEBUG_MACRO_FLAG@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DWARF_5_DEBUGADDR = @DWARF_5_DEBUGADDR@
 DWARF_5_DEBUGLINE = @DWARF_5_DEBUGLINE@
 DWZ = @DWZ@
 DWZ_J = @DWZ_J@
@@ -167,6 +171,8 @@ LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
+NM = @NM@
+OBJCOPY = @OBJCOPY@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -196,8 +202,10 @@ ac_ct_CC = @ac_ct_CC@
 am__include = @am__include@
 am__leading_dot = @am__leading_dot@
 am__quote = @am__quote@
+am__rm_f_notfound = @am__rm_f_notfound@
 am__tar = @am__tar@
 am__untar = @am__untar@
+am__xargs_n = @am__xargs_n@
 bindir = @bindir@
 build = @build@
 build_alias = @build_alias@
@@ -242,14 +250,16 @@ top_srcdir = @top_srcdir@
 
 # Some source files that are needed by the tests
 EXTRA_DIST = $(TESTSUITE_AT) testsuite package.m4 data/SOURCES/foo.c \
-	data/SOURCES/bar.c data/SOURCES/baz.c data/SOURCES/foobar.h
+	data/SOURCES/bar.c data/SOURCES/baz.c data/SOURCES/dupe.c \
+	data/SOURCES/foobar.h
 DISTCLEANFILES = atconfig $(check_SCRIPTS)
 MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE)
 
 # The tests
 TESTSUITE_AT = \
   testsuite.at \
-  debugedit.at
+  debugedit.at \
+  find-debuginfo.at
 
 TESTSUITE = $(srcdir)/testsuite
 AUTOTEST = $(AUTOM4TE) --language=autotest
@@ -355,14 +365,14 @@ mostlyclean-generic:
 clean-generic:
 
 distclean-generic:
-	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-	-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+	-$(am__rm_f) $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES)
+	-$(am__rm_f) $(DISTCLEANFILES)
 
 maintainer-clean-generic:
 	@echo "This command is intended for maintainers to use"
 	@echo "it deletes files that may require special tools to rebuild."
-	-test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+	-$(am__rm_f) $(MAINTAINERCLEANFILES)
 clean: clean-am
 
 clean-am: clean-generic clean-local mostlyclean-am
@@ -475,3 +485,10 @@ installcheck-local:
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 .NOEXPORT:
+
+# Tell GNU make to disable its built-in pattern rules.
+%:: %,v
+%:: RCS/%,v
+%:: RCS/%
+%:: s.%
+%:: SCCS/s.%
diff -pruN 1:5.1-2/tests/atlocal.in 1:5.2-1/tests/atlocal.in
--- 1:5.1-2/tests/atlocal.in	2024-10-29 15:47:59.917638140 +0000
+++ 1:5.2-1/tests/atlocal.in	2025-07-07 14:30:52.966982085 +0000
@@ -8,6 +8,7 @@ PATH=@abs_builddir@:@abs_top_builddir@:$
 CC="@CC@"
 CFLAGS=""
 LD="@LD@"
+AR="@AR@"
 LDFLAGS=""
 READELF="@READELF@"
 READELF_VERSION_OK="@READELF_VERSION_OK@"
@@ -16,4 +17,5 @@ GDWARF_5_FLAG=@GDWARF_5_FLAG@
 GZ_NONE_FLAG=@GZ_NONE_FLAG@
 GZ_ZLIB_FLAG=@GZ_ZLIB_FLAG@
 DWARF_5_DEBUGLINE=@DWARF_5_DEBUGLINE@
+DWARF_5_DEBUGADDR=@DWARF_5_DEBUGADDR@
 DEBUG_MACRO_FLAG=@DEBUG_MACRO_FLAG@
diff -pruN 1:5.1-2/tests/data/SOURCES/dupe.c 1:5.2-1/tests/data/SOURCES/dupe.c
--- 1:5.1-2/tests/data/SOURCES/dupe.c	1970-01-01 00:00:00.000000000 +0000
+++ 1:5.2-1/tests/data/SOURCES/dupe.c	2025-07-07 14:30:52.967046228 +0000
@@ -0,0 +1,4 @@
+int FOO (void);
+int FOO (void) {
+  return 0;
+}
diff -pruN 1:5.1-2/tests/debugedit.at 1:5.2-1/tests/debugedit.at
--- 1:5.1-2/tests/debugedit.at	2024-10-29 15:47:59.917638140 +0000
+++ 1:5.2-1/tests/debugedit.at	2025-07-07 14:30:52.967046228 +0000
@@ -1,6 +1,6 @@
 # debugedit.at: Tests for the debugedit tool
 #
-# Copyright (C) 2019, 2024 Mark J. Wielaard <mark@klomp.org>
+# Copyright (C) 2019, 2024, 2025 Mark J. Wielaard <mark@klomp.org>
 #
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -343,7 +343,7 @@ AT_CHECK([[
  $READELF --debug-dump=info baz.o) \
         | grep -E 'DW_AT_(name|comp_dir)' \
         | rev | cut -d: -f1 | rev | cut -c2- | grep ^/foo/bar/baz | sort -u
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -368,7 +368,7 @@ AT_CHECK([[
  $READELF --debug-dump=info baz.o) \
         | grep -E 'DW_AT_(name|comp_dir)' \
         | rev | cut -d: -f1 | rev | cut -c2- | grep ^/foo/bar/baz | sort -u
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -391,7 +391,7 @@ AT_CHECK([[
 $READELF --debug-dump=info ./foobarbaz.part.o \
         | grep -E 'DW_AT_(name|comp_dir)' \
         | rev | cut -d: -f1 | rev | cut -c2- | grep ^/foo/bar/baz | sort -u
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -412,7 +412,7 @@ AT_CHECK([[
 $READELF --debug-dump=info ./foobarbaz.part.o \
         | grep -E 'DW_AT_(name|comp_dir)' \
         | rev | cut -d: -f1 | rev | cut -c2- | grep ^/foo/bar/baz | sort -u
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -434,7 +434,7 @@ AT_CHECK([[debugedit -b $(pwd) -d /foo/b
 AT_CHECK([[
 $READELF --debug-dump=info ./foobarbaz.exe | grep -E 'DW_AT_(name|comp_dir)' \
         | rev | cut -d: -f1 | rev | cut -c2- | grep ^/foo/bar/baz | sort -u
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -454,7 +454,7 @@ AT_CHECK([[debugedit -b $(pwd) -d /foo/b
 AT_CHECK([[
 $READELF --debug-dump=info ./foobarbaz.exe | grep -E 'DW_AT_(name|comp_dir)' \
         | rev | cut -d: -f1 | rev | cut -c2- | grep ^/foo/bar/baz | sort -u
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -492,7 +492,7 @@ for i in ./foo.o ./subdir_bar/bar.o ./ba
           | sed -n 's/^.*> *DW_AT_name *:.* \(stringp[^ ]*\|st.\)$/\1/p' \
           | sort;
 done
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -522,7 +522,7 @@ $READELF --debug-dump=info ./foobarbaz.p
         | awk '/Abbrev Number:.*DW_TAG_type_unit/{p=1}{if(p)print}/^$/{p=0}' \
         | sed -n 's/^.*> *DW_AT_name *:.* \(stringp[^ ]*\|st.\)$/\1/p' \
         | sort
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -552,7 +552,7 @@ $READELF --debug-dump=info ./foobarbaz.e
         | awk '/Abbrev Number:.*DW_TAG_type_unit/{p=1}{if(p)print}/^$/{p=0}' \
         | sed -n 's/^.*> *DW_AT_name *:.* \(stringp[^ ]*\|st.\)$/\1/p' \
         | sort
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -583,7 +583,7 @@ $READELF --debug-dump=info ./foobarbaz.e
         | awk '/Abbrev Number:.*DW_TAG_type_unit/{p=1}{if(p)print}/^$/{p=0}' \
         | sed -n 's/^.*> *DW_AT_name *:.* \(stringp[^ ]*\|st.\)$/\1/p' \
         | sort
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -615,7 +615,7 @@ AT_CHECK([[
  $READELF --debug-dump=line subdir_bar/bar.o; \
  $READELF --debug-dump=line baz.o) \
         | grep -E -A5 "The (Directory|File Name) Table" | grep "^  [1234]"
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -645,7 +645,7 @@ AT_CHECK([[
  $READELF --debug-dump=line baz.o) \
 	| grep -E -A5 "The (Directory|File Name) Table" \
 	| grep "^  [01234]" | cut -f3 -d:
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -667,7 +667,7 @@ AT_CHECK([[
 $READELF --debug-dump=line ./foobarbaz.part.o \
         | grep -E -A5 "The (Directory|File Name) Table" \
 	| grep "^  [1234]"
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -691,7 +691,7 @@ AT_CHECK([[
 $READELF --debug-dump=line ./foobarbaz.part.o \
 	| grep -E -A5 "The (Directory|File Name) Table" \
 	| grep "^  [01234]" | cut -f3 -d:
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -713,7 +713,7 @@ AT_CHECK([[
 $READELF --debug-dump=line ./foobarbaz.exe \
         | grep -E -A5 "The (Directory|File Name) Table" \
 	| grep "^  [1234]"
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -737,7 +737,7 @@ AT_CHECK([[
 $READELF --debug-dump=line ./foobarbaz.exe \
 	| grep -E -A5 "The (Directory|File Name) Table" \
 	| grep "^  [01234]" | cut -f3 -d:
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -764,7 +764,7 @@ AT_CHECK([[
  $READELF --debug-dump=macro subdir_bar/bar.o; \
  $READELF --debug-dump=macro baz.o) \
         | grep NUMBER | rev | cut -d: -f1 | rev | cut -c2-
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -787,7 +787,7 @@ AT_CHECK([[debugedit -b $(pwd) -d /foo/b
 AT_CHECK([[
 $READELF --debug-dump=macro ./foobarbaz.part.o \
         | grep NUMBER | rev | cut -d: -f1 | rev | cut -c2-
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -810,7 +810,7 @@ AT_CHECK([[debugedit -b $(pwd) -d /foo/b
 AT_CHECK([[
 $READELF --debug-dump=macro ./foobarbaz.exe \
         | grep NUMBER | rev | cut -d: -f1 | rev | cut -c2-
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -831,7 +831,7 @@ AT_CHECK([[debugedit -b $(pwd) -d /foo/b
 AT_CHECK([[
 $READELF --debug-dump=macro ./foobarbaz.exe \
         | grep NUMBER | rev | cut -d: -f1 | rev | cut -c2-
-]],[0],[expout])
+]],[0],[expout],[ignore])
 
 AT_CLEANUP
 
@@ -891,7 +891,7 @@ AT_KEYWORDS([debuginfo] [debugedit] [bui
 # compile a test program and extract its linker-assigned build-id
 echo "int main () { }" > main.c
 $CC $CFLAGS -Wl,--build-id -o main main.c
-AT_CHECK([[$READELF -n main | grep Build.ID: | awk '{print $3}']], [0], [stdout], [ignore])
+AT_CHECK([[$READELF -n main | grep -o "Build.ID:.*" | awk '{print $3}']], [0], [stdout], [ignore])
 bid="`cat stdout`"
 AT_CHECK([[expr "$bid" : '[0-9a-f]*']], [0], [ignore])
 
@@ -902,16 +902,16 @@ AT_CHECK([[expr "$bid2a" : '[0-9a-f]*']]
 AT_CHECK([[test "$bid" != "$bid2a"]])
 
 # check that debugedit's stdout matches readelf -n note
-AT_CHECK([[$READELF -n main | grep Build.ID: | awk '{print $3}']], [0], [stdout], [ignore])
+AT_CHECK([[$READELF -n main | grep -o "Build.ID:.*" | awk '{print $3}']], [0], [stdout], [ignore])
 bid2b="`cat stdout`"
 AT_CHECK([[expr "$bid2b" : '[0-9a-f]*']], [0], [ignore])
-AT_CHECK([[test "$bid2a" == "$bid2b"]])
+AT_CHECK([[test "$bid2a" = "$bid2b"]])
 
 # run debugedit to recompute build-id, check for idempotence
 AT_CHECK([[debugedit -i -s deadbeef main]], [0], [stdout])
 bid2c="`cat stdout`"
 AT_CHECK([[expr "$bid2c" : '[0-9a-f]*']], [0], [ignore])
-AT_CHECK([[test "$bid2a" == "$bid2c"]])
+AT_CHECK([[test "$bid2a" = "$bid2c"]])
 
 # check that debugedit -i with different -s seed results in different valid build-id
 AT_CHECK([[debugedit -i -s zoofoo main]], [0], [stdout])
@@ -920,3 +920,21 @@ AT_CHECK([[expr "$bid3" : '[0-9a-f]*']],
 AT_CHECK([[test "$bid3" != "$bid2a"]])
 
 AT_CLEANUP
+
+# Preserving time stamps
+AT_SETUP([debugedit preserve timestamps])
+AT_KEYWORDS([debugedit] [timestamp])
+
+# compile a test program and record the timestamps
+echo "int main () { }" > main.c
+$CC $CFLAGS -g -o main main.c
+AT_CHECK([[stat -c "%x %y" main]], [0], [stdout], [])
+mv stdout expout
+
+# process it with debugedit, using -p
+AT_CHECK([[debugedit -p -b $(pwd) -d /foo/bar/baz ./main]])
+
+# check timestamps were preserved
+AT_CHECK([[stat -c "%x %y" main]], [0], [expout], [])
+
+AT_CLEANUP
diff -pruN 1:5.1-2/tests/find-debuginfo.at 1:5.2-1/tests/find-debuginfo.at
--- 1:5.1-2/tests/find-debuginfo.at	1970-01-01 00:00:00.000000000 +0000
+++ 1:5.2-1/tests/find-debuginfo.at	2025-07-07 14:30:52.967046228 +0000
@@ -0,0 +1,396 @@
+# find-debuginfo.at: Tests for the find-debuginfo script
+#
+# Copyright (C) 2025 Red Hat Inc.
+# Copyright (C) 2025 Mark J. Wielaard <mark@klomp.org>
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, see see <http://www.gnu.org/licenses/>.
+
+# Recommended usage for verbose logging to the console:
+# make check TESTSUITEFLAGS=-v
+
+# Tests for scripts/find-debuginfo.in
+AT_BANNER([find-debuginfo])
+
+# Show which find-debuginfo script we are testing
+AT_TESTED([find-debuginfo])
+
+m4_define([BUILDO],[[
+mkdir -p "$1"
+cp "${abs_srcdir}"/data/SOURCES/dupe.c "$1"
+$CC $CFLAGS -g3 -c "`pwd`/$1/dupe.c" -DFOO=$2 -o "$1/dupe.o"
+echo built "$1/dupe.o"
+]])
+
+
+# Check find-debuginfo --help doesn't crash and burn
+AT_SETUP([find-debuginfo help])
+AT_KEYWORDS([find-debuginfo] [help])
+AT_CHECK([find-debuginfo --help],[0],[ignore],[ignore])
+AT_CLEANUP
+
+
+AT_SETUP([find-debuginfo on .a])
+# skip if ar too old to support O, needed for all the .a tests below
+AT_SKIP_IF([ test -z "`ar 2>&1 | grep -F '[O]'`" ])
+# build a little .a
+export HOME=${PWD}
+BUILDO([subdir_foob],[foo])
+touch -t 197001010101 subdir_foob/dupe.o # set distinct timestamps
+BUILDO([subdir_barb],[bar])
+touch -t 197001020101 subdir_barb/dupe.o
+BUILDO([subdir_zo b],[jam])
+touch -t 197001030101 subdir_zo?b/dupe.o
+BUILDO([subdir_club],[pix])
+touch -t 197001040101 subdir_club/dupe.o
+mkdir -p subdir_build
+$AR rv subdir_build/dupes.a subdir_foob/dupe.o subdir_barb/dupe.o # without P, these duplicate members "/dupe.o"
+$AR qP subdir_build/dupes.a subdir_zo?b/dupe.o subdir_club/dupe.o # with P, these are subdirectoried members
+# NB: find-debuginfo can't handle file names with embedded whitespace, PR32862; find | xargs used here and there
+
+# list old .a contents
+AT_CHECK([$AR tPv subdir_build/dupes.a],[0],[stdout],[ignore])
+AT_CHECK([test `wc -l < stdout` -eq 4],[0],[ignore],[ignore])
+
+# expect original source tree refs
+AT_CHECK([$READELF --debug-dump=line subdir_build/dupes.a | grep `pwd`], [0], [stdout], [ignore])
+
+# run conversion, under bash -x tracing for fuller testing log
+AT_CHECK([[env RPM_BUILD_DIR=${PWD} RPM_BUILD_ROOT=${PWD} RPM_PACKAGE_NAME=pkg RPM_PACKAGE_VERSION=ver RPM_PACKAGE_RELEASE=rel RPM_ARCH=arch \
+               bash -x `type -p find-debuginfo` -S sourcefiles.list -v ${PWD}/subdir_build]], [0], [stdout], [ignore])
+
+# list new .a contents; ar tPv contains timestamps / subdirs, so not a good fit for AT_DATA() here
+AT_CHECK([$AR tPv subdir_build/dupes.a],[0],[stdout],[ignore])
+AT_CHECK([test `wc -l < stdout` -eq 4],[0],[ignore],[ignore])
+
+# expect non-empty source file list
+AT_CHECK([grep . ${PWD}/subdir_build/sourcefiles.list | tr '\0' '\n'], [0], [stdout], [ignore])
+
+# expect proper source tree
+AT_CHECK([$READELF --debug-dump=line subdir_build/dupes.a | grep /usr/src/debug], [0], [stdout], [ignore])
+
+# no traces of old source tree
+AT_CHECK([$READELF --debug-dump=line subdir_build/dupes.a | grep `pwd`], [1], [stdout], [stderr])
+AT_CLEANUP
+
+# Helper to create some test binaries
+m4_define([FIND_DEBUGINFO_PKG_BUILD_SETUP],[[
+mkdir subdir_build
+cp "${abs_srcdir}"/data/SOURCES/foo.c subdir_build
+cp "${abs_srcdir}"/data/SOURCES/bar.c subdir_build
+cp "${abs_srcdir}"/data/SOURCES/foobar.h subdir_build
+cp "${abs_srcdir}"/data/SOURCES/baz.c subdir_build
+cd subdir_build
+# Three almost identical binaries
+# so dwz has something to put into the alt file
+$CC $CFLAGS -g3 -I. -o foo foo.c bar.c baz.c
+$CC $CFLAGS -g3 -I. -o bar bar.c baz.c foo.c
+$CC $CFLAGS -g3 -I. -o baz baz.c foo.c bar.c
+cd ..
+]])
+
+# Run find-debuginfo on a small build without any fancy options
+AT_SETUP([find-debuginfo sources])
+AT_KEYWORDS([find-debuginfo] [sources])
+FIND_DEBUGINFO_PKG_BUILD_SETUP
+# Sanity check the binaries have debug sections
+AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [0], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [0], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [0], [ignore], [])
+# We need to set some environment variables for running find-debuginfo
+# normally set by rpmbuild.
+#
+# run debugedit and collect source files for binaries in subdir_build
+AT_CHECK([env RPM_BUILD_DIR=${PWD} \
+              RPM_BUILD_ROOT=${PWD} \
+              RPM_PACKAGE_NAME=pkg \
+              RPM_PACKAGE_VERSION=ver \
+              RPM_PACKAGE_RELEASE=rel \
+              RPM_ARCH=arch \
+          find-debuginfo ${PWD}/subdir_build],
+         [0], [stdout], [])
+# Make sure all three binaries are processed
+AT_CHECK([grep "Extracting debug info from 3 files" stdout], [0], [ignore], [])
+# debug sections should have been removed
+AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [1], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [1], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [1], [ignore], [])
+# Now there are .debug files with those .debug_ sections
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_],
+         [0], [ignore], [])
+# Check all sources are listed in debugsources.list
+AT_DATA([expout],
+[subdir_build/
+subdir_build/bar.c
+subdir_build/baz.c
+subdir_build/foo.c
+subdir_build/foobar.h
+])
+AT_CHECK([cat subdir_build/debugsources.list | tr '\0' '\n' | sort -u],
+         [0], [expout], [])
+AT_CLEANUP
+
+# Run find-debuginfo on a small build and check all parts ran
+AT_SETUP([find-debuginfo sources debugdata gdb-index])
+AT_KEYWORDS([find-debuginfo] [sources] [debugdata] [gdb-index])
+FIND_DEBUGINFO_PKG_BUILD_SETUP
+# Sanity check the binaries have debug sections
+AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [0], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [0], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [0], [ignore], [])
+# We need to set some environment variables for running find-debuginfo
+# normally set by rpmbuild.
+#
+# generate .gnu_debugdata (-m), .gdb_index (-i) for binaries in subdir_build.
+AT_CHECK([env RPM_BUILD_DIR=${PWD} \
+              RPM_BUILD_ROOT=${PWD} \
+              RPM_PACKAGE_NAME=pkg \
+              RPM_PACKAGE_VERSION=ver \
+              RPM_PACKAGE_RELEASE=rel \
+              RPM_ARCH=arch \
+          find-debuginfo -m -i ${PWD}/subdir_build],
+         [0], [stdout], [])
+# Make sure all three binaries are processed
+AT_CHECK([grep "Extracting debug info from 3 files" stdout], [0], [ignore], [])
+# debug sections should have been removed
+AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [1], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [1], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [1], [ignore], [])
+# But they now have a .gnu_debugdata section
+AT_CHECK([$READELF -S subdir_build/foo | grep gnu_debugdata],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/bar | grep gnu_debugdata],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/baz | grep gnu_debugdata],
+         [0], [ignore], [])
+# There are .debug files with those .debug_ sections
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_],
+         [0], [ignore], [])
+# The .debug files should also have a .gdb_index sections
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/foo.debug | grep gdb_index],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/bar.debug | grep gdb_index],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/baz.debug | grep gdb_index],
+         [0], [ignore], [])
+# Check all sources are listed in debugsources.list
+AT_DATA([expout],
+[subdir_build/
+subdir_build/bar.c
+subdir_build/baz.c
+subdir_build/foo.c
+subdir_build/foobar.h
+])
+AT_CHECK([cat subdir_build/debugsources.list | tr '\0' '\n' | sort -u],
+         [0], [expout], [])
+AT_CLEANUP
+
+# Run find-debuginfo on a small build and check all parts ran
+# Same as above but run in parallel (-j)
+AT_SETUP([find-debuginfo sources debugdata gdb-index jobs])
+AT_KEYWORDS([find-debuginfo] [sources] [debugdata] [gdb-index] [jobs])
+FIND_DEBUGINFO_PKG_BUILD_SETUP
+# Sanity check the binaries have debug sections
+AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [0], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [0], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [0], [ignore], [])
+# We need to set some environment variables for running find-debuginfo
+# normally set by rpmbuild.
+#
+# generate .gnu_debugdata (-m), .gdb_index (-i) for binaries in subdir_build.
+AT_CHECK([env RPM_BUILD_DIR=${PWD} \
+              RPM_BUILD_ROOT=${PWD} \
+              RPM_PACKAGE_NAME=pkg \
+              RPM_PACKAGE_VERSION=ver \
+              RPM_PACKAGE_RELEASE=rel \
+              RPM_ARCH=arch \
+          find-debuginfo -m -i -j6 ${PWD}/subdir_build],
+         [0], [stdout], [])
+# Make sure all three binaries are processed
+AT_CHECK([grep "Extracting debug info from 3 files" stdout], [0], [ignore], [])
+# debug sections should have been removed
+AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [1], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [1], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [1], [ignore], [])
+# But they now have a .gnu_debugdata section
+AT_CHECK([$READELF -S subdir_build/foo | grep gnu_debugdata],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/bar | grep gnu_debugdata],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/baz | grep gnu_debugdata],
+         [0], [ignore], [])
+# There are .debug files with those .debug_ sections
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_],
+         [0], [ignore], [])
+# The .debug files should also have a .gdb_index sections
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/foo.debug | grep gdb_index],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/bar.debug | grep gdb_index],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/baz.debug | grep gdb_index],
+         [0], [ignore], [])
+# Check all sources are listed in debugsources.list
+AT_DATA([expout],
+[subdir_build/
+subdir_build/bar.c
+subdir_build/baz.c
+subdir_build/foo.c
+subdir_build/foobar.h
+])
+AT_CHECK([cat subdir_build/debugsources.list | tr '\0' '\n' | sort -u],
+         [0], [expout], [])
+AT_CLEANUP
+
+# Run find-debuginfo on a small build and check all parts ran
+# Same as above, but now with dwz (but without -j)
+AT_SETUP([find-debuginfo sources debugdata gdb-index dwz])
+AT_KEYWORDS([find-debuginfo] [sources] [debugdata] [gdb-index] [dwz])
+# At the moment dwz doesn't support .debug_addr
+AT_SKIP_IF([test "$DWARF_5_DEBUGADDR" = "yes"])
+FIND_DEBUGINFO_PKG_BUILD_SETUP
+# Sanity check the binaries have debug sections
+AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [0], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [0], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [0], [ignore], [])
+# We need to set some environment variables for running find-debuginfo
+# normally set by rpmbuild.
+#
+# generate .gnu_debugdata (-m), .gdb_index (-i) and run dwz (--run-dwz)
+# for binaries in subdir_build.
+AT_CHECK([env RPM_BUILD_DIR=${PWD} \
+              RPM_BUILD_ROOT=${PWD} \
+              RPM_PACKAGE_NAME=pkg \
+              RPM_PACKAGE_VERSION=ver \
+              RPM_PACKAGE_RELEASE=rel \
+              RPM_ARCH=arch \
+          find-debuginfo -m -i --run-dwz ${PWD}/subdir_build],
+         [0], [stdout], [])
+# Make sure all three binaries are processed
+AT_CHECK([grep "Extracting debug info from 3 files" stdout], [0], [ignore], [])
+AT_CHECK([grep "DWARF-compressing 3 files" stdout], [0], [ignore], [])
+# debug sections should have been removed
+AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [1], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [1], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [1], [ignore], [])
+# But they now have a .gnu_debugdata section
+AT_CHECK([$READELF -S subdir_build/foo | grep gnu_debugdata],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/bar | grep gnu_debugdata],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/baz | grep gnu_debugdata],
+         [0], [ignore], [])
+# There are .debug files with those .debug_ sections
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_],
+         [0], [ignore], [])
+# The .debug files should also have a .gdb_index sections
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/foo.debug | grep gdb_index],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/bar.debug | grep gdb_index],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/baz.debug | grep gdb_index],
+         [0], [ignore], [])
+# There should also be a dwz multi file now
+AT_CHECK([test -f usr/lib/debug/.dwz/pkg-ver-rel.arch], [0], [], [])
+# Check all sources are listed in debugsources.list
+AT_DATA([expout],
+[subdir_build/
+subdir_build/bar.c
+subdir_build/baz.c
+subdir_build/foo.c
+subdir_build/foobar.h
+])
+AT_CHECK([cat subdir_build/debugsources.list | tr '\0' '\n' | sort -u],
+         [0], [expout], [])
+AT_CLEANUP
+
+# Run find-debuginfo on a small build and check all parts ran
+# Same as above plus doing -j jobs
+AT_SETUP([find-debuginfo sources debugdata gdb-index dwz jobs])
+AT_KEYWORDS([find-debuginfo] [sources] [debugdata] [gdb-index] [dwz] [jobs])
+# At the moment dwz doesn't support .debug_addr
+AT_SKIP_IF([test "$DWARF_5_DEBUGADDR" = "yes"])
+FIND_DEBUGINFO_PKG_BUILD_SETUP
+# Sanity check the binaries have debug sections
+AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [0], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [0], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [0], [ignore], [])
+# We need to set some environment variables for running find-debuginfo
+# normally set by rpmbuild.
+#
+# generate .gnu_debugdata (-m), .gdb_index (-i) and run dwz (--run-dwz)
+# in parallel (-j6) for binaries in subdir_build.
+AT_CHECK([env RPM_BUILD_DIR=${PWD} \
+              RPM_BUILD_ROOT=${PWD} \
+              RPM_PACKAGE_NAME=pkg \
+              RPM_PACKAGE_VERSION=ver \
+              RPM_PACKAGE_RELEASE=rel \
+              RPM_ARCH=arch \
+          find-debuginfo -m -i --run-dwz -j6 ${PWD}/subdir_build],
+         [0], [stdout], [])
+# Make sure all three binaries are processed
+AT_CHECK([grep "Extracting debug info from 3 files" stdout], [0], [ignore], [])
+AT_CHECK([grep "DWARF-compressing 3 files" stdout], [0], [ignore], [])
+# debug sections should have been removed
+AT_CHECK([$READELF -S subdir_build/foo | grep debug_], [1], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/bar | grep debug_], [1], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/baz | grep debug_], [1], [ignore], [])
+# But they now have a .gnu_debugdata section
+AT_CHECK([$READELF -S subdir_build/foo | grep gnu_debugdata],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/bar | grep gnu_debugdata],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S subdir_build/baz | grep gnu_debugdata],
+         [0], [ignore], [])
+# There are .debug files with those .debug_ sections
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_],
+         [0], [ignore], [])
+# The .debug files should also have a .gdb_index sections
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/foo.debug | grep gdb_index],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/bar.debug | grep gdb_index],
+         [0], [ignore], [])
+AT_CHECK([$READELF -S usr/lib/debug/subdir_build/baz.debug | grep gdb_index],
+         [0], [ignore], [])
+# There should also be a dwz multi file now
+AT_CHECK([test -f usr/lib/debug/.dwz/pkg-ver-rel.arch], [0], [], [])
+# Check all sources are listed in debugsources.list
+AT_DATA([expout],
+[subdir_build/
+subdir_build/bar.c
+subdir_build/baz.c
+subdir_build/foo.c
+subdir_build/foobar.h
+])
+AT_CHECK([cat subdir_build/debugsources.list | tr '\0' '\n' | sort -u],
+         [0], [expout], [])
+AT_CLEANUP
diff -pruN 1:5.1-2/tests/package.m4 1:5.2-1/tests/package.m4
--- 1:5.1-2/tests/package.m4	2024-10-29 15:48:06.502652719 +0000
+++ 1:5.2-1/tests/package.m4	2025-07-07 14:31:00.023091106 +0000
@@ -1,6 +1,6 @@
 # Signature of the current package.
 m4_define([AT_PACKAGE_NAME],      [debugedit])
 m4_define([AT_PACKAGE_TARNAME],   [debugedit])
-m4_define([AT_PACKAGE_VERSION],   [5.1])
-m4_define([AT_PACKAGE_STRING],    [debugedit 5.1])
+m4_define([AT_PACKAGE_VERSION],   [5.2])
+m4_define([AT_PACKAGE_STRING],    [debugedit 5.2])
 m4_define([AT_PACKAGE_BUGREPORT], [debugedit@sourceware.org])
diff -pruN 1:5.1-2/tests/testsuite 1:5.2-1/tests/testsuite
--- 1:5.1-2/tests/testsuite	2024-10-29 15:48:06.637653018 +0000
+++ 1:5.2-1/tests/testsuite	2025-07-07 14:31:00.151247344 +0000
@@ -1,7 +1,7 @@
 #! /bin/sh
-# Generated from testsuite.at by GNU Autoconf 2.71.
+# Generated from testsuite.at by GNU Autoconf 2.72.
 #
-# Copyright (C) 2009-2017, 2020-2021 Free Software Foundation, Inc.
+# Copyright (C) 2009-2017, 2020-2023 Free Software Foundation, Inc.
 #
 # This test suite is free software; the Free Software Foundation gives
 # unlimited permission to copy, distribute and modify it.
@@ -11,7 +11,6 @@
 
 # Be more Bourne compatible
 DUALCASE=1; export DUALCASE # for MKS sh
-as_nop=:
 if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
 then :
   emulate sh
@@ -20,12 +19,13 @@ then :
   # is contrary to our usage.  Disable this feature.
   alias -g '${1+"$@"}'='"$@"'
   setopt NO_GLOB_SUBST
-else $as_nop
-  case `(set -o) 2>/dev/null` in #(
+else case e in #(
+  e) case `(set -o) 2>/dev/null` in #(
   *posix*) :
     set -o posix ;; #(
   *) :
      ;;
+esac ;;
 esac
 fi
 
@@ -97,7 +97,7 @@ IFS=$as_save_IFS
 
      ;;
 esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
+# We did not find ourselves, most probably we were run as 'sh COMMAND'
 # in which case we are not to be found in the path.
 if test "x$as_myself" = x; then
   as_myself=$0
@@ -109,8 +109,7 @@ fi
 
 
 if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="as_nop=:
-if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
+  as_bourne_compatible="if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1
 then :
   emulate sh
   NULLCMD=:
@@ -118,12 +117,13 @@ then :
   # is contrary to our usage.  Disable this feature.
   alias -g '\${1+\"\$@\"}'='\"\$@\"'
   setopt NO_GLOB_SUBST
-else \$as_nop
-  case \`(set -o) 2>/dev/null\` in #(
+else case e in #(
+  e) case \`(set -o) 2>/dev/null\` in #(
   *posix*) :
     set -o posix ;; #(
   *) :
      ;;
+esac ;;
 esac
 fi
 "
@@ -141,8 +141,9 @@ as_fn_ret_failure && { exitcode=1; echo
 if ( set x; as_fn_ret_success y && test x = \"\$1\" )
 then :
 
-else \$as_nop
-  exitcode=1; echo positional parameters were not saved.
+else case e in #(
+  e) exitcode=1; echo positional parameters were not saved. ;;
+esac
 fi
 test x\$exitcode = x0 || exit 1
 blah=\$(echo \$(echo blah))
@@ -156,14 +157,15 @@ test \$(( 1 + 1 )) = 2 || exit 1"
   if (eval "$as_required") 2>/dev/null
 then :
   as_have_required=yes
-else $as_nop
-  as_have_required=no
+else case e in #(
+  e) as_have_required=no ;;
+esac
 fi
   if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null
 then :
 
-else $as_nop
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+else case e in #(
+  e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 as_found=false
 for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
 do
@@ -196,12 +198,13 @@ IFS=$as_save_IFS
 if $as_found
 then :
 
-else $as_nop
-  if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
+else case e in #(
+  e) if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
 	      as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null
 then :
   CONFIG_SHELL=$SHELL as_have_required=yes
-fi
+fi ;;
+esac
 fi
 
 
@@ -223,7 +226,7 @@ case $- in # ((((
 esac
 exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"}
 # Admittedly, this is quite paranoid, since all the known shells bail
-# out after a failed `exec'.
+# out after a failed 'exec'.
 printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2
 exit 255
 fi
@@ -242,7 +245,8 @@ $0: message. Then install a modern shell
 $0: the script under such a shell if you do have one."
   fi
   exit 1
-fi
+fi ;;
+esac
 fi
 fi
 SHELL=${CONFIG_SHELL-/bin/sh}
@@ -281,14 +285,6 @@ as_fn_exit ()
   as_fn_set_status $1
   exit $1
 } # as_fn_exit
-# as_fn_nop
-# ---------
-# Do nothing but, unlike ":", preserve the value of $?.
-as_fn_nop ()
-{
-  return $?
-}
-as_nop=as_fn_nop
 
 # as_fn_mkdir_p
 # -------------
@@ -333,7 +329,7 @@ printf "%s\n" X"$as_dir" |
       test -d "$as_dir" && break
     done
     test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
+  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" "$LINENO" 5
 
 
 } # as_fn_mkdir_p
@@ -357,11 +353,12 @@ then :
   {
     eval $1+=\$2
   }'
-else $as_nop
-  as_fn_append ()
+else case e in #(
+  e) as_fn_append ()
   {
     eval $1=\$$1\$2
-  }
+  } ;;
+esac
 fi # as_fn_append
 
 # as_fn_arith ARG...
@@ -375,11 +372,12 @@ then :
   {
     as_val=$(( $* ))
   }'
-else $as_nop
-  as_fn_arith ()
+else case e in #(
+  e) as_fn_arith ()
   {
     as_val=`expr "$@" || test $? -eq 1`
-  }
+  } ;;
+esac
 fi # as_fn_arith
 
 
@@ -455,6 +453,8 @@ as_cr_alnum=$as_cr_Letters$as_cr_digits
     /[$]LINENO/=
   ' <$as_myself |
     sed '
+      t clear
+      :clear
       s/[$]LINENO.*/&-/
       t lineno
       b
@@ -503,7 +503,6 @@ esac
 as_echo='printf %s\n'
 as_echo_n='printf %s'
 
-
 rm -f conf$$ conf$$.exe conf$$.file
 if test -d conf$$.dir; then
   rm -f conf$$.dir/conf$$.file
@@ -515,9 +514,9 @@ if (echo >conf$$.file) 2>/dev/null; then
   if ln -s conf$$.file conf$$ 2>/dev/null; then
     as_ln_s='ln -s'
     # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -pR'.
+    # 1) On MSYS, both 'ln -s file dir' and 'ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; 'ln -s' creates a wrapper executable.
+    # In both cases, we have to default to 'cp -pR'.
     ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
       as_ln_s='cp -pR'
   elif ln conf$$.file conf$$ 2>/dev/null; then
@@ -542,10 +541,12 @@ as_test_x='test -x'
 as_executable_p=as_fn_executable_p
 
 # Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
+as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"
+as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated
 
 # Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
+as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g"
+as_tr_sh="eval sed '$as_sed_sh'" # deprecated
 
 
 
@@ -575,7 +576,7 @@ at_traceon=:
 at_trace_echo=:
 at_check_filter_trace=:
 
-# Shall we keep the debug scripts?  Must be `:' when the suite is
+# Shall we keep the debug scripts?  Must be ':' when the suite is
 # run by a debug script, so that the script doesn't remove itself.
 at_debug_p=false
 # Display help message?
@@ -606,7 +607,7 @@ at_change_dir=false
 # Whether to enable colored test results.
 at_color=no
 # As many question marks as there are digits in the last test group number.
-# Used to normalize the test group numbers so that `ls' lists them in
+# Used to normalize the test group numbers so that 'ls' lists them in
 # numerical order.
 at_format='??'
 # Description of all the test groups.
@@ -645,6 +646,14 @@ at_help_all="1;debugedit.at:69;debugedit
 33;debugedit.at:865;debugedit --list-file compressed DWARF4;debuginfo debugedit;
 34;debugedit.at:876;debugedit --list-file compressed DWARF5;debuginfo debugedit;
 35;debugedit.at:888;debugedit build-id recompute;debuginfo debugedit build-id;
+36;debugedit.at:925;debugedit preserve timestamps;debugedit timestamp;
+37;find-debuginfo.at:37;find-debuginfo help;find-debuginfo help;
+38;find-debuginfo.at:43;find-debuginfo on .a;;
+39;find-debuginfo.at:103;find-debuginfo sources;find-debuginfo sources;
+40;find-debuginfo.at:148;find-debuginfo sources debugdata gdb-index;find-debuginfo sources debugdata gdb-index;
+41;find-debuginfo.at:208;find-debuginfo sources debugdata gdb-index jobs;find-debuginfo sources debugdata gdb-index jobs;
+42;find-debuginfo.at:268;find-debuginfo sources debugdata gdb-index dwz;find-debuginfo sources debugdata gdb-index dwz;
+43;find-debuginfo.at:334;find-debuginfo sources debugdata gdb-index dwz jobs;find-debuginfo sources debugdata gdb-index dwz jobs;
 "
 # List of the all the test groups.
 at_groups_all=`printf "%s\n" "$at_help_all" | sed 's/;.*//'`
@@ -658,7 +667,7 @@ at_fn_validate_ranges ()
   for at_grp
   do
     eval at_value=\$$at_grp
-    if test $at_value -lt 1 || test $at_value -gt 35; then
+    if test $at_value -lt 1 || test $at_value -gt 43; then
       printf "%s\n" "invalid test group: $at_value" >&2
       exit 1
     fi
@@ -673,7 +682,8 @@ at_fn_validate_ranges ()
   done
 }
 # List of the tested programs.
-at_tested='"debugedit"'
+at_tested='"debugedit"
+"find-debuginfo"'
 
 
 at_prev=
@@ -716,7 +726,7 @@ do
 	auto | tty | if-tty) at_color=auto ;;
 	always | yes | force) at_color=always ;;
 	*) at_optname=`echo " $at_option" | sed 's/^ //; s/=.*//'`
-	   as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" ;;
+	   as_fn_error $? "unrecognized argument to $at_optname: $at_optarg" "$LINENO" 5 ;;
 	esac
 	;;
 
@@ -804,7 +814,7 @@ do
 	fi
 	case $at_jobs in *[!0-9]*)
 	  at_optname=`echo " $at_option" | sed 's/^ //; s/[0-9=].*//'`
-	  as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" ;;
+	  as_fn_error $? "non-numeric argument to $at_optname: $at_jobs" "$LINENO" 5 ;;
 	esac
 	;;
 
@@ -845,7 +855,7 @@ do
 	# Reject names that are not valid shell variable names.
 	case $at_envvar in
 	  '' | [0-9]* | *[!_$as_cr_alnum]* )
-	    as_fn_error $? "invalid variable name: \`$at_envvar'" ;;
+	    as_fn_error $? "invalid variable name: '$at_envvar'" "$LINENO" 5 ;;
 	esac
 	at_value=`printf "%s\n" "$at_optarg" | sed "s/'/'\\\\\\\\''/g"`
 	# Export now, but save eval for later and for debug scripts.
@@ -854,7 +864,7 @@ do
 	;;
 
      *) printf "%s\n" "$as_me: invalid option: $at_option" >&2
-	printf "%s\n" "Try \`$0 --help' for more information." >&2
+	printf "%s\n" "Try '$0 --help' for more information." >&2
 	exit 1
 	;;
   esac
@@ -863,7 +873,7 @@ done
 # Verify our last option didn't require an argument
 if test -n "$at_prev"
 then :
-  as_fn_error $? "\`$at_prev' requires an argument"
+  as_fn_error $? "'$at_prev' requires an argument" "$LINENO" 5
 fi
 
 # The file containing the suite.
@@ -909,7 +919,7 @@ Run all the tests, or the selected TESTS
 save a detailed log file.  Upon failure, create debugging scripts.
 
 Do not change environment variables directly.  Instead, set them via
-command line arguments.  Set \`AUTOTEST_PATH' to select the executables
+command line arguments.  Set 'AUTOTEST_PATH' to select the executables
 to exercise.  Each relative directory is expanded as build and source
 directories relative to the top level of this distribution.
 E.g., from within the build directory /tmp/foo-1.0, invoking this:
@@ -939,7 +949,7 @@ Execution tuning:
                  Allow N jobs at once; infinite jobs with no arg (default 1)
   -k, --keywords=KEYWORDS
                  select the tests matching all the comma-separated KEYWORDS
-                 multiple \`-k' accumulate; prefixed \`!' negates a KEYWORD
+                 multiple '-k' accumulate; prefixed '!' negates a KEYWORD
       --recheck  select all tests that failed or passed unexpectedly last time
   -e, --errexit  abort as soon as a test fails; implies --debug
   -v, --verbose  force more detailed output
@@ -958,7 +968,7 @@ fi
 # List of tests.
 if $at_list_p; then
   cat <<_ATEOF || at_write_fail=1
-debugedit 5.1 test suite test groups:
+debugedit 5.2 test suite test groups:
 
  NUM: FILE-NAME:LINE     TEST-GROUP-NAME
       KEYWORDS
@@ -999,10 +1009,10 @@ _ATEOF
   exit $at_write_fail
 fi
 if $at_version_p; then
-  printf "%s\n" "$as_me (debugedit 5.1)" &&
+  printf "%s\n" "$as_me (debugedit 5.2)" &&
   cat <<\_ATEOF || at_write_fail=1
 
-Copyright (C) 2021 Free Software Foundation, Inc.
+Copyright (C) 2023 Free Software Foundation, Inc.
 This test suite is free software; the Free Software Foundation gives
 unlimited permission to copy, distribute and modify it.
 _ATEOF
@@ -1019,11 +1029,14 @@ esac
 # Banner 1. debugedit.at:19
 # Category starts at test group 1.
 at_banner_text_1="debugedit"
+# Banner 2. find-debuginfo.at:23
+# Category starts at test group 37.
+at_banner_text_2="find-debuginfo"
 
 # Take any -C into account.
 if $at_change_dir ; then
   test x != "x$at_dir" && cd "$at_dir" \
-    || as_fn_error $? "unable to change directory"
+    || as_fn_error $? "unable to change directory" "$LINENO" 5
   at_dir=`pwd`
 fi
 
@@ -1031,7 +1044,7 @@ fi
 for at_file in atconfig atlocal
 do
   test -r $at_file || continue
-  . ./$at_file || as_fn_error $? "invalid content: $at_file"
+  . ./$at_file || as_fn_error $? "invalid content: $at_file" "$LINENO" 5
 done
 
 # Autoconf <=2.59b set at_top_builddir instead of at_top_build_prefix:
@@ -1086,7 +1099,7 @@ fi
 # | + ...           - files created during the group
 
 # The directory the whole suite works in.
-# Should be absolute to let the user `cd' at will.
+# Should be absolute to let the user 'cd' at will.
 at_suite_dir=$at_dir/$as_me.dir
 # The file containing the suite ($at_dir might have changed since earlier).
 at_suite_log=$at_dir/$as_me.log
@@ -1107,7 +1120,7 @@ fi
 # Don't take risks: use only absolute directories in PATH.
 #
 # For stand-alone test suites (ie. atconfig was not found),
-# AUTOTEST_PATH is relative to `.'.
+# AUTOTEST_PATH is relative to '.'.
 #
 # For embedded test suites, AUTOTEST_PATH is relative to the top level
 # of the package.  Then expand it into build/src parts, since users
@@ -1174,10 +1187,7 @@ PATH=$at_new_path
 export PATH
 
 # Setting up the FDs.
-
-
-
-# 5 is the log file.  Not to be overwritten if `-d'.
+# 5 is the log file.  Not to be overwritten if '-d'.
 if $at_debug_p; then
   at_suite_log=/dev/null
 else
@@ -1187,11 +1197,11 @@ exec 5>>"$at_suite_log"
 
 # Banners and logs.
 printf "%s\n" "## ------------------------- ##
-## debugedit 5.1 test suite. ##
+## debugedit 5.2 test suite. ##
 ## ------------------------- ##"
 {
   printf "%s\n" "## ------------------------- ##
-## debugedit 5.1 test suite. ##
+## debugedit 5.2 test suite. ##
 ## ------------------------- ##"
   echo
 
@@ -1468,9 +1478,9 @@ printf "%s\n" "$as_me: starting at: $at_
 
 # Create the master directory if it doesn't already exist.
 as_dir="$at_suite_dir"; as_fn_mkdir_p ||
-  as_fn_error $? "cannot create \`$at_suite_dir'" "$LINENO" 5
+  as_fn_error $? "cannot create '$at_suite_dir'" "$LINENO" 5
 
-# Can we diff with `/dev/null'?  DU 5.0 refuses.
+# Can we diff with '/dev/null'?  DU 5.0 refuses.
 if diff /dev/null /dev/null >/dev/null 2>&1; then
   at_devnull=/dev/null
 else
@@ -1478,7 +1488,7 @@ else
   >"$at_devnull"
 fi
 
-# Use `diff -u' when possible.
+# Use 'diff -u' when possible.
 if at_diff=`diff -u "$at_devnull" "$at_devnull" 2>&1` && test -z "$at_diff"
 then
   at_diff='diff -u'
@@ -1505,7 +1515,7 @@ BEGIN { FS="" }
   as_fn_error $? "cannot create test line number cache" "$LINENO" 5
 rm -f "$at_suite_dir/at-source-lines"
 
-# Set number of jobs for `-j'; avoid more jobs than test groups.
+# Set number of jobs for '-j'; avoid more jobs than test groups.
 set X $at_groups; shift; at_max_jobs=$#
 if test $at_max_jobs -eq 0; then
   at_jobs=1
@@ -1582,7 +1592,7 @@ then
 fi ||
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: test directory for $at_group_normalized could not be cleaned" >&5
 printf "%s\n" "$as_me: WARNING: test directory for $at_group_normalized could not be cleaned" >&2;}
-  # Be tolerant if the above `rm' was not able to remove the directory.
+  # Be tolerant if the above 'rm' was not able to remove the directory.
   as_dir="$at_group_dir"; as_fn_mkdir_p
 
   echo 0 > "$at_status_file"
@@ -1621,7 +1631,7 @@ at_fn_group_banner ()
 at_fn_group_postprocess ()
 {
   # Be sure to come back to the suite directory, in particular
-  # since below we might `rm' the group directory we are in currently.
+  # since below we might 'rm' the group directory we are in currently.
   cd "$at_suite_dir"
 
   if test ! -f "$at_check_line_file"; then
@@ -2042,7 +2052,7 @@ _ASBOX
   if $at_debug_p; then
     at_msg='per-test log files'
   else
-    at_msg="\`${at_testdir+${at_testdir}/}$as_me.log'"
+    at_msg="'${at_testdir+${at_testdir}/}$as_me.log'"
   fi
   at_msg1a=${at_xpass_list:+', '}
   at_msg1=$at_fail_list${at_fail_list:+" failed$at_msg1a"}
@@ -2051,11 +2061,11 @@ _ASBOX
   printf "%s\n" "Please send $at_msg and all information you think might help:
 
    To: <debugedit@sourceware.org>
-   Subject: [debugedit 5.1] $as_me: $at_msg1$at_msg2
+   Subject: [debugedit 5.2] $as_me: $at_msg1$at_msg2
 
 You may investigate any problem if you feel able to do so, in which
 case the test suite provides a good starting point.  Its output may
-be found below \`${at_testdir+${at_testdir}/}$as_me.dir'.
+be found below '${at_testdir+${at_testdir}/}$as_me.dir'.
 "
   exit 1
 fi
@@ -3102,7 +3112,7 @@ at_fn_check_prepare_notrace 'an embedded
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:340"
 $at_failed && at_fn_log_failure
@@ -3230,7 +3240,7 @@ at_fn_check_prepare_notrace 'an embedded
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:365"
 $at_failed && at_fn_log_failure
@@ -3322,7 +3332,7 @@ $READELF --debug-dump=info ./foobarbaz.p
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:390"
 $at_failed && at_fn_log_failure
@@ -3420,7 +3430,7 @@ $READELF --debug-dump=info ./foobarbaz.p
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:411"
 $at_failed && at_fn_log_failure
@@ -3510,7 +3520,7 @@ $READELF --debug-dump=info ./foobarbaz.e
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:434"
 $at_failed && at_fn_log_failure
@@ -3606,7 +3616,7 @@ $READELF --debug-dump=info ./foobarbaz.e
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:454"
 $at_failed && at_fn_log_failure
@@ -3742,7 +3752,7 @@ done
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:488"
 $at_failed && at_fn_log_failure
@@ -3844,7 +3854,7 @@ $READELF --debug-dump=info ./foobarbaz.p
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:520"
 $at_failed && at_fn_log_failure
@@ -3946,7 +3956,7 @@ $READELF --debug-dump=info ./foobarbaz.e
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:550"
 $at_failed && at_fn_log_failure
@@ -4051,7 +4061,7 @@ $READELF --debug-dump=info ./foobarbaz.e
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:581"
 $at_failed && at_fn_log_failure
@@ -4171,7 +4181,7 @@ at_fn_check_prepare_notrace 'an embedded
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:613"
 $at_failed && at_fn_log_failure
@@ -4299,7 +4309,7 @@ at_fn_check_prepare_notrace 'an embedded
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:642"
 $at_failed && at_fn_log_failure
@@ -4389,7 +4399,7 @@ $READELF --debug-dump=line ./foobarbaz.p
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:666"
 $at_failed && at_fn_log_failure
@@ -4485,7 +4495,7 @@ $READELF --debug-dump=line ./foobarbaz.p
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:690"
 $at_failed && at_fn_log_failure
@@ -4575,7 +4585,7 @@ $READELF --debug-dump=line ./foobarbaz.e
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:712"
 $at_failed && at_fn_log_failure
@@ -4671,7 +4681,7 @@ $READELF --debug-dump=line ./foobarbaz.e
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:736"
 $at_failed && at_fn_log_failure
@@ -4792,7 +4802,7 @@ at_fn_check_prepare_notrace 'an embedded
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:762"
 $at_failed && at_fn_log_failure
@@ -4883,7 +4893,7 @@ $READELF --debug-dump=macro ./foobarbaz.
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:787"
 $at_failed && at_fn_log_failure
@@ -4974,7 +4984,7 @@ $READELF --debug-dump=macro ./foobarbaz.
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:810"
 $at_failed && at_fn_log_failure
@@ -5071,7 +5081,7 @@ $READELF --debug-dump=macro ./foobarbaz.
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
-at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stderr:; cat "$at_stderr"
 $at_diff expout "$at_stdout" || at_failed=:
 at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:831"
 $at_failed && at_fn_log_failure
@@ -5272,9 +5282,9 @@ at_xfail=no
 echo "int main () { }" > main.c
 $CC $CFLAGS -Wl,--build-id -o main main.c
 { set +x
-printf "%s\n" "$at_srcdir/debugedit.at:894: \$READELF -n main | grep Build.ID: | awk '{print \$3}'"
+printf "%s\n" "$at_srcdir/debugedit.at:894: \$READELF -n main | grep -o \"Build.ID:.*\" | awk '{print \$3}'"
 at_fn_check_prepare_notrace 'a shell pipeline' "debugedit.at:894"
-( $at_check_trace; $READELF -n main | grep Build.ID: | awk '{print $3}'
+( $at_check_trace; $READELF -n main | grep -o "Build.ID:.*" | awk '{print $3}'
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
@@ -5343,9 +5353,9 @@ $at_traceon; }
 
 # check that debugedit's stdout matches readelf -n note
 { set +x
-printf "%s\n" "$at_srcdir/debugedit.at:905: \$READELF -n main | grep Build.ID: | awk '{print \$3}'"
+printf "%s\n" "$at_srcdir/debugedit.at:905: \$READELF -n main | grep -o \"Build.ID:.*\" | awk '{print \$3}'"
 at_fn_check_prepare_notrace 'a shell pipeline' "debugedit.at:905"
-( $at_check_trace; $READELF -n main | grep Build.ID: | awk '{print $3}'
+( $at_check_trace; $READELF -n main | grep -o "Build.ID:.*" | awk '{print $3}'
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
@@ -5370,9 +5380,9 @@ $at_failed && at_fn_log_failure
 $at_traceon; }
 
 { set +x
-printf "%s\n" "$at_srcdir/debugedit.at:908: test \"\$bid2a\" == \"\$bid2b\""
-at_fn_check_prepare_dynamic "test \"$bid2a\" == \"$bid2b\"" "debugedit.at:908"
-( $at_check_trace; test "$bid2a" == "$bid2b"
+printf "%s\n" "$at_srcdir/debugedit.at:908: test \"\$bid2a\" = \"\$bid2b\""
+at_fn_check_prepare_dynamic "test \"$bid2a\" = \"$bid2b\"" "debugedit.at:908"
+( $at_check_trace; test "$bid2a" = "$bid2b"
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
@@ -5412,9 +5422,9 @@ $at_failed && at_fn_log_failure
 $at_traceon; }
 
 { set +x
-printf "%s\n" "$at_srcdir/debugedit.at:914: test \"\$bid2a\" == \"\$bid2c\""
-at_fn_check_prepare_dynamic "test \"$bid2a\" == \"$bid2c\"" "debugedit.at:914"
-( $at_check_trace; test "$bid2a" == "$bid2c"
+printf "%s\n" "$at_srcdir/debugedit.at:914: test \"\$bid2a\" = \"\$bid2c\""
+at_fn_check_prepare_dynamic "test \"$bid2a\" = \"$bid2c\"" "debugedit.at:914"
+( $at_check_trace; test "$bid2a" = "$bid2c"
 ) >>"$at_stdout" 2>>"$at_stderr" 5>&-
 at_status=$? at_failed=false
 $at_check_filter
@@ -5472,3 +5482,1726 @@ $at_traceon; }
 ) 5>&1 2>&1 7>&- | eval $at_tee_pipe
 read at_status <"$at_status_file"
 #AT_STOP_35
+#AT_START_36
+at_fn_group_banner 36 'debugedit.at:925' \
+  "debugedit preserve timestamps" "                  " 1
+at_xfail=no
+(
+  printf "%s\n" "36. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+# compile a test program and record the timestamps
+echo "int main () { }" > main.c
+$CC $CFLAGS -g -o main main.c
+{ set +x
+printf "%s\n" "$at_srcdir/debugedit.at:931: stat -c \"%x %y\" main"
+at_fn_check_prepare_trace "debugedit.at:931"
+( $at_check_trace; stat -c "%x %y" main
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:931"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+mv stdout expout
+
+# process it with debugedit, using -p
+{ set +x
+printf "%s\n" "$at_srcdir/debugedit.at:935: debugedit -p -b \$(pwd) -d /foo/bar/baz ./main"
+at_fn_check_prepare_notrace 'a $(...) command substitution' "debugedit.at:935"
+( $at_check_trace; debugedit -p -b $(pwd) -d /foo/bar/baz ./main
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:935"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+# check timestamps were preserved
+{ set +x
+printf "%s\n" "$at_srcdir/debugedit.at:938: stat -c \"%x %y\" main"
+at_fn_check_prepare_trace "debugedit.at:938"
+( $at_check_trace; stat -c "%x %y" main
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+$at_diff expout "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/debugedit.at:938"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_36
+#AT_START_37
+at_fn_group_banner 37 'find-debuginfo.at:37' \
+  "find-debuginfo help" "                            " 2
+at_xfail=no
+(
+  printf "%s\n" "37. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:39: find-debuginfo --help"
+at_fn_check_prepare_trace "find-debuginfo.at:39"
+( $at_check_trace; find-debuginfo --help
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:39"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_37
+#AT_START_38
+at_fn_group_banner 38 'find-debuginfo.at:43' \
+  "find-debuginfo on .a" "                           " 2
+at_xfail=no
+(
+  printf "%s\n" "38. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+# skip if ar too old to support O, needed for all the .a tests below
+printf "%s\n" "find-debuginfo.at:45" >"$at_check_line_file"
+( test -z "`ar 2>&1 | grep -F 'O'`" ) \
+  && at_fn_check_skip 77 "$at_srcdir/find-debuginfo.at:45"
+# build a little .a
+export HOME=${PWD}
+
+mkdir -p "subdir_foob"
+cp "${abs_srcdir}"/data/SOURCES/dupe.c "subdir_foob"
+$CC $CFLAGS -g3 -c "`pwd`/subdir_foob/dupe.c" -DFOO=foo -o "subdir_foob/dupe.o"
+echo built "subdir_foob/dupe.o"
+
+touch -t 197001010101 subdir_foob/dupe.o # set distinct timestamps
+
+mkdir -p "subdir_barb"
+cp "${abs_srcdir}"/data/SOURCES/dupe.c "subdir_barb"
+$CC $CFLAGS -g3 -c "`pwd`/subdir_barb/dupe.c" -DFOO=bar -o "subdir_barb/dupe.o"
+echo built "subdir_barb/dupe.o"
+
+touch -t 197001020101 subdir_barb/dupe.o
+
+mkdir -p "subdir_zo b"
+cp "${abs_srcdir}"/data/SOURCES/dupe.c "subdir_zo b"
+$CC $CFLAGS -g3 -c "`pwd`/subdir_zo b/dupe.c" -DFOO=jam -o "subdir_zo b/dupe.o"
+echo built "subdir_zo b/dupe.o"
+
+touch -t 197001030101 subdir_zo?b/dupe.o
+
+mkdir -p "subdir_club"
+cp "${abs_srcdir}"/data/SOURCES/dupe.c "subdir_club"
+$CC $CFLAGS -g3 -c "`pwd`/subdir_club/dupe.c" -DFOO=pix -o "subdir_club/dupe.o"
+echo built "subdir_club/dupe.o"
+
+touch -t 197001040101 subdir_club/dupe.o
+mkdir -p subdir_build
+$AR rv subdir_build/dupes.a subdir_foob/dupe.o subdir_barb/dupe.o # without P, these duplicate members "/dupe.o"
+$AR qP subdir_build/dupes.a subdir_zo?b/dupe.o subdir_club/dupe.o # with P, these are subdirectoried members
+# NB: find-debuginfo can't handle file names with embedded whitespace, PR32862; find | xargs used here and there
+
+# list old .a contents
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:62: \$AR tPv subdir_build/dupes.a"
+at_fn_check_prepare_dynamic "$AR tPv subdir_build/dupes.a" "find-debuginfo.at:62"
+( $at_check_trace; $AR tPv subdir_build/dupes.a
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:62"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:63: test \`wc -l < stdout\` -eq 4"
+at_fn_check_prepare_notrace 'a `...` command substitution' "find-debuginfo.at:63"
+( $at_check_trace; test `wc -l < stdout` -eq 4
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:63"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+# expect original source tree refs
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:66: \$READELF --debug-dump=line subdir_build/dupes.a | grep \`pwd\`"
+at_fn_check_prepare_notrace 'a `...` command substitution' "find-debuginfo.at:66"
+( $at_check_trace; $READELF --debug-dump=line subdir_build/dupes.a | grep `pwd`
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:66"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+# run conversion, under bash -x tracing for fuller testing log
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:69: env RPM_BUILD_DIR=\${PWD} RPM_BUILD_ROOT=\${PWD} RPM_PACKAGE_NAME=pkg RPM_PACKAGE_VERSION=ver RPM_PACKAGE_RELEASE=rel RPM_ARCH=arch \\
+               bash -x \`type -p find-debuginfo\` -S sourcefiles.list -v \${PWD}/subdir_build"
+at_fn_check_prepare_notrace 'a `...` command substitution' "find-debuginfo.at:69"
+( $at_check_trace; env RPM_BUILD_DIR=${PWD} RPM_BUILD_ROOT=${PWD} RPM_PACKAGE_NAME=pkg RPM_PACKAGE_VERSION=ver RPM_PACKAGE_RELEASE=rel RPM_ARCH=arch \
+               bash -x `type -p find-debuginfo` -S sourcefiles.list -v ${PWD}/subdir_build
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:69"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+# list new .a contents; ar tPv contains timestamps / subdirs, so not a good fit for AT_DATA() here
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:73: \$AR tPv subdir_build/dupes.a"
+at_fn_check_prepare_dynamic "$AR tPv subdir_build/dupes.a" "find-debuginfo.at:73"
+( $at_check_trace; $AR tPv subdir_build/dupes.a
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:73"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:74: test \`wc -l < stdout\` -eq 4"
+at_fn_check_prepare_notrace 'a `...` command substitution' "find-debuginfo.at:74"
+( $at_check_trace; test `wc -l < stdout` -eq 4
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:74"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+# expect non-empty source file list
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:77: grep . \${PWD}/subdir_build/sourcefiles.list | tr '\\0' '\\n'"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "find-debuginfo.at:77"
+( $at_check_trace; grep . ${PWD}/subdir_build/sourcefiles.list | tr '\0' '\n'
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:77"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+# expect proper source tree
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:80: \$READELF --debug-dump=line subdir_build/dupes.a | grep /usr/src/debug"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:80"
+( $at_check_trace; $READELF --debug-dump=line subdir_build/dupes.a | grep /usr/src/debug
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; cat "$at_stderr"
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:80"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+
+# no traces of old source tree
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:83: \$READELF --debug-dump=line subdir_build/dupes.a | grep \`pwd\`"
+at_fn_check_prepare_notrace 'a `...` command substitution' "find-debuginfo.at:83"
+( $at_check_trace; $READELF --debug-dump=line subdir_build/dupes.a | grep `pwd`
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+echo stderr:; tee stderr <"$at_stderr"
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/find-debuginfo.at:83"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_38
+#AT_START_39
+at_fn_group_banner 39 'find-debuginfo.at:103' \
+  "find-debuginfo sources" "                         " 2
+at_xfail=no
+(
+  printf "%s\n" "39. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+mkdir subdir_build
+cp "${abs_srcdir}"/data/SOURCES/foo.c subdir_build
+cp "${abs_srcdir}"/data/SOURCES/bar.c subdir_build
+cp "${abs_srcdir}"/data/SOURCES/foobar.h subdir_build
+cp "${abs_srcdir}"/data/SOURCES/baz.c subdir_build
+cd subdir_build
+# Three almost identical binaries
+# so dwz has something to put into the alt file
+$CC $CFLAGS -g3 -I. -o foo foo.c bar.c baz.c
+$CC $CFLAGS -g3 -I. -o bar bar.c baz.c foo.c
+$CC $CFLAGS -g3 -I. -o baz baz.c foo.c bar.c
+cd ..
+
+# Sanity check the binaries have debug sections
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:107: \$READELF -S subdir_build/foo | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:107"
+( $at_check_trace; $READELF -S subdir_build/foo | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:107"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:108: \$READELF -S subdir_build/bar | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:108"
+( $at_check_trace; $READELF -S subdir_build/bar | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:108"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:109: \$READELF -S subdir_build/baz | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:109"
+( $at_check_trace; $READELF -S subdir_build/baz | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:109"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# We need to set some environment variables for running find-debuginfo
+# normally set by rpmbuild.
+#
+# run debugedit and collect source files for binaries in subdir_build
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:114: env RPM_BUILD_DIR=\${PWD} \\
+              RPM_BUILD_ROOT=\${PWD} \\
+              RPM_PACKAGE_NAME=pkg \\
+              RPM_PACKAGE_VERSION=ver \\
+              RPM_PACKAGE_RELEASE=rel \\
+              RPM_ARCH=arch \\
+          find-debuginfo \${PWD}/subdir_build"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "find-debuginfo.at:114"
+( $at_check_trace; env RPM_BUILD_DIR=${PWD} \
+              RPM_BUILD_ROOT=${PWD} \
+              RPM_PACKAGE_NAME=pkg \
+              RPM_PACKAGE_VERSION=ver \
+              RPM_PACKAGE_RELEASE=rel \
+              RPM_ARCH=arch \
+          find-debuginfo ${PWD}/subdir_build
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:114"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# Make sure all three binaries are processed
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:123: grep \"Extracting debug info from 3 files\" stdout"
+at_fn_check_prepare_trace "find-debuginfo.at:123"
+( $at_check_trace; grep "Extracting debug info from 3 files" stdout
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:123"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# debug sections should have been removed
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:125: \$READELF -S subdir_build/foo | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:125"
+( $at_check_trace; $READELF -S subdir_build/foo | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/find-debuginfo.at:125"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:126: \$READELF -S subdir_build/bar | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:126"
+( $at_check_trace; $READELF -S subdir_build/bar | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/find-debuginfo.at:126"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:127: \$READELF -S subdir_build/baz | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:127"
+( $at_check_trace; $READELF -S subdir_build/baz | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/find-debuginfo.at:127"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# Now there are .debug files with those .debug_ sections
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:129: \$READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:129"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:129"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:131: \$READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:131"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:131"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:133: \$READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:133"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:133"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# Check all sources are listed in debugsources.list
+cat >expout <<'_ATEOF'
+subdir_build/
+subdir_build/bar.c
+subdir_build/baz.c
+subdir_build/foo.c
+subdir_build/foobar.h
+_ATEOF
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:143: cat subdir_build/debugsources.list | tr '\\0' '\\n' | sort -u"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:143"
+( $at_check_trace; cat subdir_build/debugsources.list | tr '\0' '\n' | sort -u
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+$at_diff expout "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:143"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_39
+#AT_START_40
+at_fn_group_banner 40 'find-debuginfo.at:148' \
+  "find-debuginfo sources debugdata gdb-index" "     " 2
+at_xfail=no
+(
+  printf "%s\n" "40. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+mkdir subdir_build
+cp "${abs_srcdir}"/data/SOURCES/foo.c subdir_build
+cp "${abs_srcdir}"/data/SOURCES/bar.c subdir_build
+cp "${abs_srcdir}"/data/SOURCES/foobar.h subdir_build
+cp "${abs_srcdir}"/data/SOURCES/baz.c subdir_build
+cd subdir_build
+# Three almost identical binaries
+# so dwz has something to put into the alt file
+$CC $CFLAGS -g3 -I. -o foo foo.c bar.c baz.c
+$CC $CFLAGS -g3 -I. -o bar bar.c baz.c foo.c
+$CC $CFLAGS -g3 -I. -o baz baz.c foo.c bar.c
+cd ..
+
+# Sanity check the binaries have debug sections
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:152: \$READELF -S subdir_build/foo | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:152"
+( $at_check_trace; $READELF -S subdir_build/foo | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:152"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:153: \$READELF -S subdir_build/bar | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:153"
+( $at_check_trace; $READELF -S subdir_build/bar | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:153"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:154: \$READELF -S subdir_build/baz | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:154"
+( $at_check_trace; $READELF -S subdir_build/baz | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:154"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# We need to set some environment variables for running find-debuginfo
+# normally set by rpmbuild.
+#
+# generate .gnu_debugdata (-m), .gdb_index (-i) for binaries in subdir_build.
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:159: env RPM_BUILD_DIR=\${PWD} \\
+              RPM_BUILD_ROOT=\${PWD} \\
+              RPM_PACKAGE_NAME=pkg \\
+              RPM_PACKAGE_VERSION=ver \\
+              RPM_PACKAGE_RELEASE=rel \\
+              RPM_ARCH=arch \\
+          find-debuginfo -m -i \${PWD}/subdir_build"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "find-debuginfo.at:159"
+( $at_check_trace; env RPM_BUILD_DIR=${PWD} \
+              RPM_BUILD_ROOT=${PWD} \
+              RPM_PACKAGE_NAME=pkg \
+              RPM_PACKAGE_VERSION=ver \
+              RPM_PACKAGE_RELEASE=rel \
+              RPM_ARCH=arch \
+          find-debuginfo -m -i ${PWD}/subdir_build
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:159"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# Make sure all three binaries are processed
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:168: grep \"Extracting debug info from 3 files\" stdout"
+at_fn_check_prepare_trace "find-debuginfo.at:168"
+( $at_check_trace; grep "Extracting debug info from 3 files" stdout
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:168"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# debug sections should have been removed
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:170: \$READELF -S subdir_build/foo | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:170"
+( $at_check_trace; $READELF -S subdir_build/foo | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/find-debuginfo.at:170"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:171: \$READELF -S subdir_build/bar | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:171"
+( $at_check_trace; $READELF -S subdir_build/bar | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/find-debuginfo.at:171"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:172: \$READELF -S subdir_build/baz | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:172"
+( $at_check_trace; $READELF -S subdir_build/baz | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/find-debuginfo.at:172"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# But they now have a .gnu_debugdata section
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:174: \$READELF -S subdir_build/foo | grep gnu_debugdata"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:174"
+( $at_check_trace; $READELF -S subdir_build/foo | grep gnu_debugdata
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:174"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:176: \$READELF -S subdir_build/bar | grep gnu_debugdata"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:176"
+( $at_check_trace; $READELF -S subdir_build/bar | grep gnu_debugdata
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:176"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:178: \$READELF -S subdir_build/baz | grep gnu_debugdata"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:178"
+( $at_check_trace; $READELF -S subdir_build/baz | grep gnu_debugdata
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:178"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# There are .debug files with those .debug_ sections
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:181: \$READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:181"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:181"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:183: \$READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:183"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:183"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:185: \$READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:185"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:185"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# The .debug files should also have a .gdb_index sections
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:188: \$READELF -S usr/lib/debug/subdir_build/foo.debug | grep gdb_index"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:188"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/foo.debug | grep gdb_index
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:188"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:190: \$READELF -S usr/lib/debug/subdir_build/bar.debug | grep gdb_index"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:190"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/bar.debug | grep gdb_index
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:190"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:192: \$READELF -S usr/lib/debug/subdir_build/baz.debug | grep gdb_index"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:192"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/baz.debug | grep gdb_index
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:192"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# Check all sources are listed in debugsources.list
+cat >expout <<'_ATEOF'
+subdir_build/
+subdir_build/bar.c
+subdir_build/baz.c
+subdir_build/foo.c
+subdir_build/foobar.h
+_ATEOF
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:202: cat subdir_build/debugsources.list | tr '\\0' '\\n' | sort -u"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:202"
+( $at_check_trace; cat subdir_build/debugsources.list | tr '\0' '\n' | sort -u
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+$at_diff expout "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:202"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_40
+#AT_START_41
+at_fn_group_banner 41 'find-debuginfo.at:208' \
+  "find-debuginfo sources debugdata gdb-index jobs" "" 2
+at_xfail=no
+(
+  printf "%s\n" "41. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+
+mkdir subdir_build
+cp "${abs_srcdir}"/data/SOURCES/foo.c subdir_build
+cp "${abs_srcdir}"/data/SOURCES/bar.c subdir_build
+cp "${abs_srcdir}"/data/SOURCES/foobar.h subdir_build
+cp "${abs_srcdir}"/data/SOURCES/baz.c subdir_build
+cd subdir_build
+# Three almost identical binaries
+# so dwz has something to put into the alt file
+$CC $CFLAGS -g3 -I. -o foo foo.c bar.c baz.c
+$CC $CFLAGS -g3 -I. -o bar bar.c baz.c foo.c
+$CC $CFLAGS -g3 -I. -o baz baz.c foo.c bar.c
+cd ..
+
+# Sanity check the binaries have debug sections
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:212: \$READELF -S subdir_build/foo | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:212"
+( $at_check_trace; $READELF -S subdir_build/foo | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:212"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:213: \$READELF -S subdir_build/bar | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:213"
+( $at_check_trace; $READELF -S subdir_build/bar | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:213"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:214: \$READELF -S subdir_build/baz | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:214"
+( $at_check_trace; $READELF -S subdir_build/baz | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:214"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# We need to set some environment variables for running find-debuginfo
+# normally set by rpmbuild.
+#
+# generate .gnu_debugdata (-m), .gdb_index (-i) for binaries in subdir_build.
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:219: env RPM_BUILD_DIR=\${PWD} \\
+              RPM_BUILD_ROOT=\${PWD} \\
+              RPM_PACKAGE_NAME=pkg \\
+              RPM_PACKAGE_VERSION=ver \\
+              RPM_PACKAGE_RELEASE=rel \\
+              RPM_ARCH=arch \\
+          find-debuginfo -m -i -j6 \${PWD}/subdir_build"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "find-debuginfo.at:219"
+( $at_check_trace; env RPM_BUILD_DIR=${PWD} \
+              RPM_BUILD_ROOT=${PWD} \
+              RPM_PACKAGE_NAME=pkg \
+              RPM_PACKAGE_VERSION=ver \
+              RPM_PACKAGE_RELEASE=rel \
+              RPM_ARCH=arch \
+          find-debuginfo -m -i -j6 ${PWD}/subdir_build
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:219"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# Make sure all three binaries are processed
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:228: grep \"Extracting debug info from 3 files\" stdout"
+at_fn_check_prepare_trace "find-debuginfo.at:228"
+( $at_check_trace; grep "Extracting debug info from 3 files" stdout
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:228"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# debug sections should have been removed
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:230: \$READELF -S subdir_build/foo | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:230"
+( $at_check_trace; $READELF -S subdir_build/foo | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/find-debuginfo.at:230"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:231: \$READELF -S subdir_build/bar | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:231"
+( $at_check_trace; $READELF -S subdir_build/bar | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/find-debuginfo.at:231"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:232: \$READELF -S subdir_build/baz | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:232"
+( $at_check_trace; $READELF -S subdir_build/baz | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/find-debuginfo.at:232"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# But they now have a .gnu_debugdata section
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:234: \$READELF -S subdir_build/foo | grep gnu_debugdata"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:234"
+( $at_check_trace; $READELF -S subdir_build/foo | grep gnu_debugdata
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:234"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:236: \$READELF -S subdir_build/bar | grep gnu_debugdata"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:236"
+( $at_check_trace; $READELF -S subdir_build/bar | grep gnu_debugdata
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:236"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:238: \$READELF -S subdir_build/baz | grep gnu_debugdata"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:238"
+( $at_check_trace; $READELF -S subdir_build/baz | grep gnu_debugdata
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:238"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# There are .debug files with those .debug_ sections
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:241: \$READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:241"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:241"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:243: \$READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:243"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:243"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:245: \$READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:245"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:245"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# The .debug files should also have a .gdb_index sections
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:248: \$READELF -S usr/lib/debug/subdir_build/foo.debug | grep gdb_index"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:248"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/foo.debug | grep gdb_index
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:248"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:250: \$READELF -S usr/lib/debug/subdir_build/bar.debug | grep gdb_index"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:250"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/bar.debug | grep gdb_index
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:250"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:252: \$READELF -S usr/lib/debug/subdir_build/baz.debug | grep gdb_index"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:252"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/baz.debug | grep gdb_index
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:252"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# Check all sources are listed in debugsources.list
+cat >expout <<'_ATEOF'
+subdir_build/
+subdir_build/bar.c
+subdir_build/baz.c
+subdir_build/foo.c
+subdir_build/foobar.h
+_ATEOF
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:262: cat subdir_build/debugsources.list | tr '\\0' '\\n' | sort -u"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:262"
+( $at_check_trace; cat subdir_build/debugsources.list | tr '\0' '\n' | sort -u
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+$at_diff expout "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:262"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_41
+#AT_START_42
+at_fn_group_banner 42 'find-debuginfo.at:268' \
+  "find-debuginfo sources debugdata gdb-index dwz" " " 2
+at_xfail=no
+(
+  printf "%s\n" "42. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+# At the moment dwz doesn't support .debug_addr
+printf "%s\n" "find-debuginfo.at:271" >"$at_check_line_file"
+(test "$DWARF_5_DEBUGADDR" = "yes") \
+  && at_fn_check_skip 77 "$at_srcdir/find-debuginfo.at:271"
+
+mkdir subdir_build
+cp "${abs_srcdir}"/data/SOURCES/foo.c subdir_build
+cp "${abs_srcdir}"/data/SOURCES/bar.c subdir_build
+cp "${abs_srcdir}"/data/SOURCES/foobar.h subdir_build
+cp "${abs_srcdir}"/data/SOURCES/baz.c subdir_build
+cd subdir_build
+# Three almost identical binaries
+# so dwz has something to put into the alt file
+$CC $CFLAGS -g3 -I. -o foo foo.c bar.c baz.c
+$CC $CFLAGS -g3 -I. -o bar bar.c baz.c foo.c
+$CC $CFLAGS -g3 -I. -o baz baz.c foo.c bar.c
+cd ..
+
+# Sanity check the binaries have debug sections
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:274: \$READELF -S subdir_build/foo | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:274"
+( $at_check_trace; $READELF -S subdir_build/foo | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:274"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:275: \$READELF -S subdir_build/bar | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:275"
+( $at_check_trace; $READELF -S subdir_build/bar | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:275"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:276: \$READELF -S subdir_build/baz | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:276"
+( $at_check_trace; $READELF -S subdir_build/baz | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:276"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# We need to set some environment variables for running find-debuginfo
+# normally set by rpmbuild.
+#
+# generate .gnu_debugdata (-m), .gdb_index (-i) and run dwz (--run-dwz)
+# for binaries in subdir_build.
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:282: env RPM_BUILD_DIR=\${PWD} \\
+              RPM_BUILD_ROOT=\${PWD} \\
+              RPM_PACKAGE_NAME=pkg \\
+              RPM_PACKAGE_VERSION=ver \\
+              RPM_PACKAGE_RELEASE=rel \\
+              RPM_ARCH=arch \\
+          find-debuginfo -m -i --run-dwz \${PWD}/subdir_build"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "find-debuginfo.at:282"
+( $at_check_trace; env RPM_BUILD_DIR=${PWD} \
+              RPM_BUILD_ROOT=${PWD} \
+              RPM_PACKAGE_NAME=pkg \
+              RPM_PACKAGE_VERSION=ver \
+              RPM_PACKAGE_RELEASE=rel \
+              RPM_ARCH=arch \
+          find-debuginfo -m -i --run-dwz ${PWD}/subdir_build
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:282"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# Make sure all three binaries are processed
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:291: grep \"Extracting debug info from 3 files\" stdout"
+at_fn_check_prepare_trace "find-debuginfo.at:291"
+( $at_check_trace; grep "Extracting debug info from 3 files" stdout
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:291"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:292: grep \"DWARF-compressing 3 files\" stdout"
+at_fn_check_prepare_trace "find-debuginfo.at:292"
+( $at_check_trace; grep "DWARF-compressing 3 files" stdout
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:292"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# debug sections should have been removed
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:294: \$READELF -S subdir_build/foo | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:294"
+( $at_check_trace; $READELF -S subdir_build/foo | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/find-debuginfo.at:294"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:295: \$READELF -S subdir_build/bar | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:295"
+( $at_check_trace; $READELF -S subdir_build/bar | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/find-debuginfo.at:295"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:296: \$READELF -S subdir_build/baz | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:296"
+( $at_check_trace; $READELF -S subdir_build/baz | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/find-debuginfo.at:296"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# But they now have a .gnu_debugdata section
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:298: \$READELF -S subdir_build/foo | grep gnu_debugdata"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:298"
+( $at_check_trace; $READELF -S subdir_build/foo | grep gnu_debugdata
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:298"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:300: \$READELF -S subdir_build/bar | grep gnu_debugdata"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:300"
+( $at_check_trace; $READELF -S subdir_build/bar | grep gnu_debugdata
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:300"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:302: \$READELF -S subdir_build/baz | grep gnu_debugdata"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:302"
+( $at_check_trace; $READELF -S subdir_build/baz | grep gnu_debugdata
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:302"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# There are .debug files with those .debug_ sections
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:305: \$READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:305"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:305"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:307: \$READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:307"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:307"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:309: \$READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:309"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:309"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# The .debug files should also have a .gdb_index sections
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:312: \$READELF -S usr/lib/debug/subdir_build/foo.debug | grep gdb_index"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:312"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/foo.debug | grep gdb_index
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:312"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:314: \$READELF -S usr/lib/debug/subdir_build/bar.debug | grep gdb_index"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:314"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/bar.debug | grep gdb_index
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:314"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:316: \$READELF -S usr/lib/debug/subdir_build/baz.debug | grep gdb_index"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:316"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/baz.debug | grep gdb_index
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:316"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# There should also be a dwz multi file now
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:319: test -f usr/lib/debug/.dwz/pkg-ver-rel.arch"
+at_fn_check_prepare_trace "find-debuginfo.at:319"
+( $at_check_trace; test -f usr/lib/debug/.dwz/pkg-ver-rel.arch
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:319"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# Check all sources are listed in debugsources.list
+cat >expout <<'_ATEOF'
+subdir_build/
+subdir_build/bar.c
+subdir_build/baz.c
+subdir_build/foo.c
+subdir_build/foobar.h
+_ATEOF
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:328: cat subdir_build/debugsources.list | tr '\\0' '\\n' | sort -u"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:328"
+( $at_check_trace; cat subdir_build/debugsources.list | tr '\0' '\n' | sort -u
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+$at_diff expout "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:328"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_42
+#AT_START_43
+at_fn_group_banner 43 'find-debuginfo.at:334' \
+  "find-debuginfo sources debugdata gdb-index dwz jobs" "" 2
+at_xfail=no
+(
+  printf "%s\n" "43. $at_setup_line: testing $at_desc ..."
+  $at_traceon
+
+
+# At the moment dwz doesn't support .debug_addr
+printf "%s\n" "find-debuginfo.at:337" >"$at_check_line_file"
+(test "$DWARF_5_DEBUGADDR" = "yes") \
+  && at_fn_check_skip 77 "$at_srcdir/find-debuginfo.at:337"
+
+mkdir subdir_build
+cp "${abs_srcdir}"/data/SOURCES/foo.c subdir_build
+cp "${abs_srcdir}"/data/SOURCES/bar.c subdir_build
+cp "${abs_srcdir}"/data/SOURCES/foobar.h subdir_build
+cp "${abs_srcdir}"/data/SOURCES/baz.c subdir_build
+cd subdir_build
+# Three almost identical binaries
+# so dwz has something to put into the alt file
+$CC $CFLAGS -g3 -I. -o foo foo.c bar.c baz.c
+$CC $CFLAGS -g3 -I. -o bar bar.c baz.c foo.c
+$CC $CFLAGS -g3 -I. -o baz baz.c foo.c bar.c
+cd ..
+
+# Sanity check the binaries have debug sections
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:340: \$READELF -S subdir_build/foo | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:340"
+( $at_check_trace; $READELF -S subdir_build/foo | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:340"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:341: \$READELF -S subdir_build/bar | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:341"
+( $at_check_trace; $READELF -S subdir_build/bar | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:341"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:342: \$READELF -S subdir_build/baz | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:342"
+( $at_check_trace; $READELF -S subdir_build/baz | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:342"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# We need to set some environment variables for running find-debuginfo
+# normally set by rpmbuild.
+#
+# generate .gnu_debugdata (-m), .gdb_index (-i) and run dwz (--run-dwz)
+# in parallel (-j6) for binaries in subdir_build.
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:348: env RPM_BUILD_DIR=\${PWD} \\
+              RPM_BUILD_ROOT=\${PWD} \\
+              RPM_PACKAGE_NAME=pkg \\
+              RPM_PACKAGE_VERSION=ver \\
+              RPM_PACKAGE_RELEASE=rel \\
+              RPM_ARCH=arch \\
+          find-debuginfo -m -i --run-dwz -j6 \${PWD}/subdir_build"
+at_fn_check_prepare_notrace 'a ${...} parameter expansion' "find-debuginfo.at:348"
+( $at_check_trace; env RPM_BUILD_DIR=${PWD} \
+              RPM_BUILD_ROOT=${PWD} \
+              RPM_PACKAGE_NAME=pkg \
+              RPM_PACKAGE_VERSION=ver \
+              RPM_PACKAGE_RELEASE=rel \
+              RPM_ARCH=arch \
+          find-debuginfo -m -i --run-dwz -j6 ${PWD}/subdir_build
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; tee stdout <"$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:348"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# Make sure all three binaries are processed
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:357: grep \"Extracting debug info from 3 files\" stdout"
+at_fn_check_prepare_trace "find-debuginfo.at:357"
+( $at_check_trace; grep "Extracting debug info from 3 files" stdout
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:357"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:358: grep \"DWARF-compressing 3 files\" stdout"
+at_fn_check_prepare_trace "find-debuginfo.at:358"
+( $at_check_trace; grep "DWARF-compressing 3 files" stdout
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:358"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# debug sections should have been removed
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:360: \$READELF -S subdir_build/foo | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:360"
+( $at_check_trace; $READELF -S subdir_build/foo | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/find-debuginfo.at:360"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:361: \$READELF -S subdir_build/bar | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:361"
+( $at_check_trace; $READELF -S subdir_build/bar | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/find-debuginfo.at:361"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:362: \$READELF -S subdir_build/baz | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:362"
+( $at_check_trace; $READELF -S subdir_build/baz | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 1 $at_status "$at_srcdir/find-debuginfo.at:362"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# But they now have a .gnu_debugdata section
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:364: \$READELF -S subdir_build/foo | grep gnu_debugdata"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:364"
+( $at_check_trace; $READELF -S subdir_build/foo | grep gnu_debugdata
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:364"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:366: \$READELF -S subdir_build/bar | grep gnu_debugdata"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:366"
+( $at_check_trace; $READELF -S subdir_build/bar | grep gnu_debugdata
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:366"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:368: \$READELF -S subdir_build/baz | grep gnu_debugdata"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:368"
+( $at_check_trace; $READELF -S subdir_build/baz | grep gnu_debugdata
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:368"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# There are .debug files with those .debug_ sections
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:371: \$READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:371"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/foo.debug | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:371"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:373: \$READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:373"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/bar.debug | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:373"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:375: \$READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:375"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/baz.debug | grep debug_
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:375"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# The .debug files should also have a .gdb_index sections
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:378: \$READELF -S usr/lib/debug/subdir_build/foo.debug | grep gdb_index"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:378"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/foo.debug | grep gdb_index
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:378"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:380: \$READELF -S usr/lib/debug/subdir_build/bar.debug | grep gdb_index"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:380"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/bar.debug | grep gdb_index
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:380"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:382: \$READELF -S usr/lib/debug/subdir_build/baz.debug | grep gdb_index"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:382"
+( $at_check_trace; $READELF -S usr/lib/debug/subdir_build/baz.debug | grep gdb_index
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+echo stdout:; cat "$at_stdout"
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:382"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# There should also be a dwz multi file now
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:385: test -f usr/lib/debug/.dwz/pkg-ver-rel.arch"
+at_fn_check_prepare_trace "find-debuginfo.at:385"
+( $at_check_trace; test -f usr/lib/debug/.dwz/pkg-ver-rel.arch
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+at_fn_diff_devnull "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:385"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+# Check all sources are listed in debugsources.list
+cat >expout <<'_ATEOF'
+subdir_build/
+subdir_build/bar.c
+subdir_build/baz.c
+subdir_build/foo.c
+subdir_build/foobar.h
+_ATEOF
+
+{ set +x
+printf "%s\n" "$at_srcdir/find-debuginfo.at:394: cat subdir_build/debugsources.list | tr '\\0' '\\n' | sort -u"
+at_fn_check_prepare_notrace 'a shell pipeline' "find-debuginfo.at:394"
+( $at_check_trace; cat subdir_build/debugsources.list | tr '\0' '\n' | sort -u
+) >>"$at_stdout" 2>>"$at_stderr" 5>&-
+at_status=$? at_failed=false
+$at_check_filter
+at_fn_diff_devnull "$at_stderr" || at_failed=:
+$at_diff expout "$at_stdout" || at_failed=:
+at_fn_check_status 0 $at_status "$at_srcdir/find-debuginfo.at:394"
+$at_failed && at_fn_log_failure
+$at_traceon; }
+
+  set +x
+  $at_times_p && times >"$at_times_file"
+) 5>&1 2>&1 7>&- | eval $at_tee_pipe
+read at_status <"$at_status_file"
+#AT_STOP_43
diff -pruN 1:5.1-2/tests/testsuite.at 1:5.2-1/tests/testsuite.at
--- 1:5.1-2/tests/testsuite.at	2024-10-29 15:47:59.917638140 +0000
+++ 1:5.2-1/tests/testsuite.at	2025-07-07 14:30:52.967046228 +0000
@@ -8,5 +8,5 @@ m4_define([AT_SKIP_TEST],[exit 77])
 AT_INIT
 
 AT_TESTED([debugedit])
-
 m4_include([debugedit.at])
+m4_include([find-debuginfo.at])
diff -pruN 1:5.1-2/tools/debugedit.c 1:5.2-1/tools/debugedit.c
--- 1:5.1-2/tools/debugedit.c	2024-10-29 15:47:59.917638140 +0000
+++ 1:5.2-1/tools/debugedit.c	2025-07-07 14:30:52.967307926 +0000
@@ -1,5 +1,5 @@
 /* Copyright (C) 2001-2003, 2005, 2007, 2009-2011, 2016, 2017 Red Hat, Inc.
-   Copyright (C) 2022, 2023, 2024 Mark J. Wielaard <mark@klomp.org>
+   Copyright (C) 2022, 2023, 2024, 2025 Mark J. Wielaard <mark@klomp.org>
    Written by Alexander Larsson <alexl@redhat.com>, 2002
    Based on code by Jakub Jelinek <jakub@redhat.com>, 2001.
    String/Line table rewriting by Mark Wielaard <mjw@redhat.com>, 2017.
@@ -82,7 +82,6 @@ typedef struct Ebl_Strtab	Strtab;
 
 #include "tools/hashtab.h"
 
-#define XXH_INLINE_ALL
 #include "xxhash.h"
 
 #define DW_TAG_partial_unit 0x3c
@@ -97,6 +96,7 @@ char *list_file = NULL;
 int list_file_fd = -1;
 int do_build_id = 0;
 int no_recompute_build_id = 0;
+bool preserve_dates = false;
 char *build_id_seed = NULL;
 
 int show_version = 0;
@@ -145,6 +145,15 @@ struct stridxentry
   Strent *entry; /* Entry in the new table. */
 };
 
+/* Turns out we do need at least one replacement string when there are
+   strings that are never used in any of the debug sections, but that
+   turn up in the .debug_str_offsets. In that case (which really
+   shouldn't occur because it means the DWARF producer added unused
+   strings to the string table) we (warn and) replace the entry with
+   "<debugedit>".  Call create_dummy_debugedit_stridxentry to add the
+   actual string.  */
+static struct stridxentry debugedit_stridxentry = { 0, NULL };
+
 /* Storage for new string table entries. Keep together in memory to
    quickly search through them with tsearch. */
 #define STRIDXENTRIES ((16 * 1024) / sizeof (struct stridxentry))
@@ -158,6 +167,7 @@ struct strentblock
 struct strings
 {
   Strtab *str_tab;			/* The new string table. */
+  Elf_Data orig_data;			/* Original Elf_Data. */
   char *str_buf;			/* New Elf_Data d_buf. */
   struct strmemblock *blocks;		/* The first strmemblock. */
   struct strmemblock *last_block;	/* The currently used strmemblock. */
@@ -704,6 +714,16 @@ setup_relbuf (DSO *dso, debug_section *s
       goto fail;
     break;
 #endif
+#ifndef EM_AMDGPU
+#define EM_AMDGPU 224
+#endif
+#ifndef R_AMDGPU_ABS32
+#define R_AMDGPU_ABS32 6
+#endif
+	case EM_AMDGPU:
+	  if (rtype != R_AMDGPU_ABS32)
+	    goto fail;
+	  break;
 	default:
 	fail:
 	  error (1, 0, "%s: Unhandled relocation %d at [%d] for %s section",
@@ -1120,6 +1140,32 @@ new_string_storage (struct strings *stri
   return &strings->last_block->memory[stridx];
 }
 
+static void
+create_dummy_debugedit_stridxentry (DSO *dso)
+{
+  if (debugedit_stridxentry.entry != NULL)
+    {
+      fprintf (stderr, "debugedit: "
+	       "create_dummy_debugedit_stridxentry called more than once.");
+      exit (-1);
+    }
+
+  const char *dummy_name = "<debugedit>"; /* Kilroy was here  */
+  const size_t dummy_size = strlen (dummy_name) + 1;
+
+  Strent *strent;
+  char* dummy_str = new_string_storage (&dso->debug_str, dummy_size);
+  if (dummy_str == NULL)
+    error (1, ENOMEM, "Couldn't allocate new string storage");
+  memcpy (dummy_str, dummy_name, dummy_size);
+  strent = strtab_add_len (dso->debug_str.str_tab, dummy_str, dummy_size);
+  if (strent == NULL)
+    error (1, ENOMEM, "Could not create new string table entry");
+
+  debugedit_stridxentry.idx = (uint32_t) -1;
+  debugedit_stridxentry.entry = strent;
+}
+
 /* Comparison function used for tsearch. */
 static int
 strent_compare (const void *a, const void *b)
@@ -1190,12 +1236,14 @@ string_find_new_entry (struct strings *s
 }
 
 static struct stridxentry *
-string_find_entry (struct strings *strings, size_t old_idx)
+string_find_entry (struct strings *strings, size_t old_idx, bool accept_missing)
 {
   struct stridxentry **ret;
   struct stridxentry key;
   key.idx = old_idx;
   ret = tfind (&key, &strings->strent_root, strent_compare);
+  if (accept_missing && ret == NULL)
+    return &debugedit_stridxentry;
   assert (ret != NULL); /* Can only happen for a bad/non-existing old_idx. */
   return *ret;
 }
@@ -1292,6 +1340,8 @@ static void
 setup_strings (struct strings *strings)
 {
   strings->str_tab = strtab_init (false);
+  /* call update_strings to fill this in.  */
+  memset (&strings->orig_data, 0, sizeof (strings->orig_data));
   strings->str_buf = NULL;
   strings->blocks = NULL;
   strings->last_block = NULL;
@@ -1300,6 +1350,21 @@ setup_strings (struct strings *strings)
   strings->strent_root = NULL;
 }
 
+static void
+update_strings (struct strings *strings, struct debug_section *sec)
+{
+  if (sec->elf_data != NULL)
+    strings->orig_data = *sec->elf_data;
+}
+
+static const char *
+orig_str (struct strings *strings, size_t idx)
+{
+  if (idx < strings->orig_data.d_size)
+    return (const char *) strings->orig_data.d_buf + idx;
+  return "<invalid>";
+}
+
 /* Noop for tdestroy. */
 static void free_node (void *p __attribute__((__unused__))) { }
 
@@ -1708,7 +1773,7 @@ edit_strp (DSO *dso, uint32_t form, unsi
       struct strings *strings = (form == DW_FORM_line_strp
 				 ? &dso->debug_line_str : &dso->debug_str);
       idx = do_read_32_relocated (ptr, sec);
-      entry = string_find_entry (strings, idx);
+      entry = string_find_entry (strings, idx, false);
       new_idx = strent_offset (entry->entry);
       do_write_32_relocated (ptr, new_idx);
     }
@@ -2792,6 +2857,7 @@ update_str_offsets (DSO *dso)
   while (ptr < endp)
     {
       /* Read header, unit_length, version and padding.  */
+      unsigned char *index_start = ptr;
       if (endp - ptr < 3 * 4)
 	break;
       uint32_t unit_length = read_32 (ptr);
@@ -2804,13 +2870,21 @@ update_str_offsets (DSO *dso)
       uint32_t padding = read_16 (ptr);
       if (padding != 0)
 	break;
+      unsigned char *offstart = ptr;
 
       while (ptr < endidxp)
 	{
 	  struct stridxentry *entry;
 	  size_t idx, new_idx;
 	  idx = do_read_32_relocated (ptr, str_off_sec);
-	  entry = string_find_entry (&dso->debug_str, idx);
+	  entry = string_find_entry (&dso->debug_str, idx, true);
+	  if (entry == &debugedit_stridxentry)
+	    error (0, 0, "Warning, .debug_str_offsets table at offset %zx "
+		   "index [%zd] .debug_str [%zx] entry '%s' unused, "
+		   "replacing with '<debugedit>'\n",
+		   (index_start - str_off_sec->data),
+		   (ptr - offstart) / sizeof (uint32_t), idx,
+		   orig_str (&dso->debug_str, idx));
 	  new_idx = strent_offset (entry->entry);
 	  write_32_relocated (ptr, new_idx);
 	}
@@ -2964,6 +3038,9 @@ edit_dwarf2 (DSO *dso)
 	  }
       }
 
+  update_strings (&dso->debug_str, &debug_sections[DEBUG_STR]);
+  update_strings (&dso->debug_line_str, &debug_sections[DEBUG_LINE_STR]);
+
   if (dso->ehdr.e_ident[EI_DATA] == ELFDATA2LSB)
     {
       do_read_16 = buf_read_ule16;
@@ -3212,7 +3289,8 @@ edit_dwarf2 (DSO *dso)
 			  struct stridxentry *entry;
 			  size_t idx, new_idx;
 			  idx = do_read_32_relocated (ptr, macro_sec);
-			  entry = string_find_entry (&dso->debug_str, idx);
+			  entry = string_find_entry (&dso->debug_str, idx,
+						     false);
 			  new_idx = strent_offset (entry->entry);
 			  write_32_relocated (ptr, new_idx);
 			}
@@ -3266,8 +3344,17 @@ edit_dwarf2 (DSO *dso)
 	 Make sure everything is in place for phase 1 updating of debug_info
 	 references. */
       if (phase == 0 && need_strp_update)
-	edit_dwarf2_any_str (dso, &dso->debug_str,
-			     &debug_sections[DEBUG_STR]);
+	{
+	  /* We might need a dummy .debug_str entry for
+	     .debug_str_offsets entries of unused strings. We have to
+	     add it unconditionally when there is a .debug_str_offsets
+	     section because we don't know if there are any such
+	     entries.  */
+	  if (debug_sections[DEBUG_STR_OFFSETS].data != NULL)
+	    create_dummy_debugedit_stridxentry (dso);
+	  edit_dwarf2_any_str (dso, &dso->debug_str,
+			       &debug_sections[DEBUG_STR]);
+	}
       if (phase == 0 && need_line_strp_update)
 	edit_dwarf2_any_str (dso, &dso->debug_line_str,
 			     &debug_sections[DEBUG_LINE_STR]);
@@ -3323,13 +3410,14 @@ static struct option optionsTable[] =
     { "build-id", no_argument, 0, 'i' },
     { "build-id-seed", required_argument, 0, 's' },
     { "no-recompute-build-id", no_argument, 0, 'n' },
+    { "preserve-dates", no_argument, 0, 'p' },
     { "version", no_argument, 0, 'V' },
     { "help", no_argument, 0, '?' },
     { "usage", no_argument, 0, 'u' },
     { NULL, 0, 0, 0 }
   };
 
-static const char *optionsChars = "b:d:l:is:nV?u";
+static const char *optionsChars = "b:d:l:is:npV?u";
 
 static const char *helpText =
   "Usage: %s [OPTION...] FILE\n"
@@ -3343,6 +3431,7 @@ static const char *helpText =
   "                                  this string as hash seed\n"
   "  -n, --no-recompute-build-id     do not recompute build ID note even\n"
   "                                  when -i or -s are given\n"
+  "  -p, --preserve-dates            Preserve modified/access timestamps\n"
   "\n"
   "Help options:\n"
   "  -?, --help                      Show this help message\n"
@@ -3353,7 +3442,9 @@ static const char *usageText =
   "Usage: %s [-in?] [-b|--base-dir STRING] [-d|--dest-dir STRING]\n"
   "        [-l|--list-file STRING] [-i|--build-id] \n"
   "        [-s|--build-id-seed STRING]\n"
-  "        [-n|--no-recompute-build-id] [-?|--help] [-u|--usage]\n"
+  "        [-n|--no-recompute-build-id]\n"
+  "        [-p|--preserve-dates]\n"
+  "        [-?|--help] [-u|--usage]\n"
   "        [-V|--version] FILE\n";
 
 static void
@@ -3644,6 +3735,10 @@ main (int argc, char *argv[])
 	  no_recompute_build_id = 1;
 	  break;
 
+	case 'p':
+	  preserve_dates = true;
+	  break;
+
 	case 'V':
 	  show_version = 1;
 	  break;
@@ -3970,6 +4065,16 @@ main (int argc, char *argv[])
   if (chmod (file, stat_buf.st_mode) != 0)
     error (0, errno, "Failed to chmod input file '%s' to restore old access rights", file);
 
+  /* Preserve timestamps.  */
+  if (preserve_dates)
+    {
+      struct timespec tv[2];
+      tv[0] = stat_buf.st_atim;
+      tv[1] = stat_buf.st_mtim;
+      if (utimensat (AT_FDCWD, file, tv, 0) != 0)
+	error (0, errno, "Failed to preserve timestamps on '%s'", file);
+    }
+
   free ((char *) dso->filename);
   destroy_strings (&dso->debug_str);
   destroy_strings (&dso->debug_line_str);
