|
 |
On 2/12/23 18:43, William F Pokorny wrote:
> My current fight is with autotools as upgraded. I cannot re-generate a
> configure script cleanly - even with unchanged source! There are
> multiple problems and the first ones looked at aren't making much sense
> to me after spending a big chunk of time on it today. I'll probably next
> try completely uninstalling / reinstalling - fingers and toes crossed.
OK. Spent another day or so banging away and I can now create updated
configure scripts which work.
For the record...
- A chunk of the issues had to do with local M4 files in need of update
due autotool changes.
- One update looks to be a change in the internals of the Ubuntu 22.04
autoconf code tightening up on something previously allowed with an
internal M4 macro - which probably should not have been. This tripped up
one of the M4 macros I re-wrote for the dual (v1.2/v2.0) Simple Direct
media Layer version support.
- The last autotools issue is another change internal to autoconf, which
at the moment, I believe a mistake. On generation of configure there is
some checking done on whether an automake and libtool script called
'missing' runs. The previous generated code looked like:
---
# Expand $ac_aux_dir to an absolute path.
am_aux_dir=`cd "$ac_aux_dir" && pwd`
if test x"${MISSING+set}" != xset; then
case $am_aux_dir in
*\ * | *\ *)
MISSING="\${SHELL} \"\"$am_aux_dir\"/missing\"" ;;
*)
MISSING="\${SHELL} \"$am_aux_dir\"/missing" ;;
esac
fi
# Use eval to expand $SHELL
if eval "$MISSING --is-lightweight"; then
am_missing_run="$MISSING "
else
am_missing_run=
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is
too old or missing" >&5
$as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;}
fi
---
The new failing code looks like:
# Expand $ac_aux_dir to an absolute path.
am_aux_dir=`cd "$ac_aux_dir" && pwd`
if test x"${MISSING+set}" != xset; then
MISSING="\${SHELL} '\"$am_aux_dir\"/missing'"
fi
# Use eval to expand $SHELL
if eval "$MISSING --is-lightweight"; then
am_missing_run="$MISSING "
else
am_missing_run=
{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing'
script is too old or missing" >&5
printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing"
>&2;}
fi
However, the eval "$MISSING --is-lightweight"; now always fails and
am_missing_run gets set to null / nothing. We get a warning over an
error as it is not a problem unless some autotools program later needed
is truly missing. This won't usually happen - excepting maybe in
corrupted autotools packages or disk failures and such.
Aside: I think someone noticed that case always selected only one of the
MISSING forms, but when things got hard coded they set up a MISSING var
which doesn't run! If I hard code the one previously always picked or
change the code to look as it previously did, MISSING runs and the
am_missing_run variable gets set up correctly. In the near term guess
I'm stuck patching the generated configuration file(a) or letting the
issue go. For the latter, users will, with a few exceptions, see an ugly
warning message, but things will work.
There were also some necessary autoconf am updates and source code
updates to hush a new BOOST warning on generic bind variables in the
global name space(a). This warning doesn't prevent compilation, but it
makes povr's clean output look ugly.
Bill P.
(a) - The bind methods available in newer c++ versions can perhaps
replace the BOOST bind code, but I've not gotten around to attempting it.
Post a reply to this message
|
 |