From: Nick Bowler Date: Mon, 1 Jan 2024 20:21:12 +0000 (-0500) Subject: DX_GNULIB_SYMFILES: Don't use "awk -f -". X-Git-Url: https://git.draconx.ca/gitweb/dxcommon.git/commitdiff_plain/99a96390b8c18144311c1679ab78461d9ecc7bd4 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. --- 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}"])])