POV-Ray : Newsgroups : povray.beta-test : Spline causing 3.8 beta 2 to crash : Re: Spline causing 3.8 beta 2 to crash Server Time
25 Apr 2024 04:44:53 EDT (-0400)
  Re: Spline causing 3.8 beta 2 to crash  
From: William F Pokorny
Date: 13 Feb 2023 12:07:40
Message: <63ea6e5c$1@news.povray.org>
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

Copyright 2003-2023 Persistence of Vision Raytracer Pty. Ltd.