From 99a96390b8c18144311c1679ab78461d9ecc7bd4 Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Mon, 1 Jan 2024 15:21:12 -0500 Subject: [PATCH] DX_GNULIB_SYMFILES: Don't use "awk -f -". Even though a filename of "-" is specified by POSIX to read the program from standard input and works with almost every awk implementation out there, it seems it does not work on AIX 7.2 awk (which tries to read the program from a file named "-" instead). How wonderful. In this case, it is easy enough to use a quoted string for the program instead of a here-document. --- m4/gnulib-shared.m4 | 50 ++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 26 deletions(-) diff --git a/m4/gnulib-shared.m4 b/m4/gnulib-shared.m4 index 94af008..4d2e273 100644 --- a/m4/gnulib-shared.m4 +++ b/m4/gnulib-shared.m4 @@ -1,4 +1,4 @@ -dnl Copyright © 2022-2023 Nick Bowler +dnl Copyright © 2022-2024 Nick Bowler dnl dnl Hack to reduce glsym transformations to a subset of gnulib sources. dnl @@ -53,34 +53,32 @@ m4_bpatsubst(m4_indir([m4_include], [$1]), [[.][^/.]*$], [ x]) EOF $JOIN -a1 "$ac_tmp/gl_syms.1" "$ac_tmp/gl_syms.2" >"$ac_tmp/gl_syms.3" # Now replace default gnulib_symfiles assignment with the computed list - $AWK -f - f="$ac_tmp/gl_syms.3" "$gl_of" >"$ac_tmp/gl_tmp.mk" <<'EOF' -$[1] "/" $[2] "/" $[3] == "gnulib_symfiles/=/$(gnulib_all_symfiles)" { - objlst = symlst = ""; - while ((rc = getline < f) > 0) { - if ($[3] == "x") { - symlst = symlst " " $[1] ".glsym"; - } else { - m4_ifnblank([$2], [sub(/[[^\/]]*$/, "$2-&", $[1]); - ])objlst = objlst " " $[1] $[2]; + $AWK '$[1] "/" $[2] "/" $[3] == "gnulib_symfiles/=/$(gnulib_all_symfiles)" { + objlst = symlst = ""; + while ((rc = getline < f) > 0) { + if ($[3] == "x") { + symlst = symlst " " $[1] ".glsym"; + } else { + m4_ifnblank([$2], [sub(/[[^\/]]*$/, "$2-&", $[1]); + ])objlst = objlst " " $[1] $[2]; + } } - } - if (rc < 0) - exit 1; + if (rc < 0) + exit 1; - print "gnulib_symfiles =" symlst; - print "gnulib_extra_objects =" objlst; - next; -} -# add ourself to Automake's generated rebuild rules -$[2] == "=" && $[1] ~ /^am__(depfiles_maybe|maybe_remake_depfiles)$/ { - for (i = 3; i <= NF; i++) - if ($i == "gnulib-symfiles") - break; - $i = "gnulib-symfiles"; -} -{ print } -EOF + print "gnulib_symfiles =" symlst; + print "gnulib_extra_objects =" objlst; + next; + } + # add ourself to Automake-generated rebuild rules + $[2] == "=" && $[1] ~ /^am__(depfiles_maybe|maybe_remake_depfiles)$/ { + for (i = 3; i <= NF; i++) + if ($i == "gnulib-symfiles") + break; + $i = "gnulib-symfiles"; + } + { print; }' f="$ac_tmp/gl_syms.3" "$gl_of" >"$ac_tmp/gl_tmp.mk" mv -f "$ac_tmp/gl_tmp.mk" "$gl_of" break # should be max one makefile needing patching done], [: "\${MAKE=${MAKE-make}}" "\${JOIN=$JOIN}"])]) -- 2.43.2