autoreconf from autoconf-2.70 creates broken configure script #3491

Closed
opened 2021-01-10 15:11:47 +01:00 by Polynomial-C · 9 comments
Polynomial-C commented 2021-01-10 15:11:47 +01:00 (Migrated from github.com)

This has initially been reported downstream at Gentoo: https://bugs.gentoo.org/751190

BUT this was with a autoconf-2.70-beta version. The error message with autoconf-2.70-final has changed but the outcome has not. The configure script created by autoreconf from autoconf-2.70 is broken and fails to finish:

./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-dependency-tracking --disable-si
lent-rules --docdir=/usr/share/doc/varnish-6.5.1 --htmldir=/usr/share/doc/varnish-6.5.1/html --with-sysroot=/ --libdir=/usr/lib64 --disable-static --disable-pcre-jit --without-jemalloc
checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether x86_64-pc-linux-gnu-gcc accepts -g... yes
checking for x86_64-pc-linux-gnu-gcc option to enable C11 features... none needed
checking whether x86_64-pc-linux-gnu-gcc understands -c and -o together... yes
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for wchar.h... yes
checking for minix/config.h... no
checking whether it is safe to define __EXTENSIONS__... yes
checking whether _XOPEN_SOURCE should be defined... no
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking target system type... x86_64-pc-linux-gnu
checking whether to enable maintainer-specific portions of Makefiles... no
checking for a BSD-compatible install... /usr/lib/portage/python3.9/ebuild-helpers/xattr/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports the include directive... yes (GNU style)
checking whether make supports nested variables... yes
checking dependency style of x86_64-pc-linux-gnu-gcc... none
checking whether make supports nested variables... (cached) yes
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by x86_64-pc-linux-gnu-gcc... /usr/x86_64-pc-linux-gnu/bin/ld
checking if the linker (/usr/x86_64-pc-linux-gnu/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/x86_64-pc-linux-gnu-nm -B
checking the name lister (/usr/bin/x86_64-pc-linux-gnu-nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/x86_64-pc-linux-gnu/bin/ld option to reload object files... -r
checking for x86_64-pc-linux-gnu-objdump... x86_64-pc-linux-gnu-objdump
checking how to recognize dependent libraries... pass_all
checking for x86_64-pc-linux-gnu-dlltool... no
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for x86_64-pc-linux-gnu-ar... x86_64-pc-linux-gnu-ar
checking for archiver @FILE support... @
checking for x86_64-pc-linux-gnu-strip... x86_64-pc-linux-gnu-strip
checking for x86_64-pc-linux-gnu-ranlib... x86_64-pc-linux-gnu-ranlib
checking command to parse /usr/bin/x86_64-pc-linux-gnu-nm -B output from x86_64-pc-linux-gnu-gcc object... ok
checking for sysroot... /
checking for a working dd... /bin/dd
checking how to truncate binary pipes... /bin/dd bs=4096 count=1
checking for x86_64-pc-linux-gnu-mt... no
checking for mt... no
checking if : is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if x86_64-pc-linux-gnu-gcc supports -fno-rtti -fno-exceptions... no
checking for x86_64-pc-linux-gnu-gcc option to produce PIC... -fPIC -DPIC
checking if x86_64-pc-linux-gnu-gcc PIC flag -fPIC -DPIC works... yes
checking if x86_64-pc-linux-gnu-gcc static flag -static works... yes
checking if x86_64-pc-linux-gnu-gcc supports -c -o file.o... yes
checking if x86_64-pc-linux-gnu-gcc supports -c -o file.o... (cached) yes
checking whether the x86_64-pc-linux-gnu-gcc linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... no
checking for x86_64-pc-linux-gnu-gcc... (cached) x86_64-pc-linux-gnu-gcc
checking whether the compiler supports GNU C... (cached) yes
checking whether x86_64-pc-linux-gnu-gcc accepts -g... (cached) yes
checking for x86_64-pc-linux-gnu-gcc option to enable C11 features... (cached) none needed
checking whether x86_64-pc-linux-gnu-gcc understands -c and -o together... (cached) yes
checking how to run the C preprocessor... x86_64-pc-linux-gnu-gcc -E
checking whether x86_64-pc-linux-gnu-gcc is Clang... no
checking whether pthreads work with -pthread... yes
checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE
checking whether more special flags are required for pthreads... no
checking for PTHREAD_PRIO_INHERIT... yes
./configure: 14673: Syntax error: newline unexpected (expecting ")")

I've tried to attach the config.log file to this issue but GitHub won't let me. So I've uploaded the config.log file to my personal web space: https://www.gentoofan.org/gentoo/misc/varnish-6.5.1-config.log

This has initially been reported downstream at Gentoo: https://bugs.gentoo.org/751190 BUT this was with a autoconf-2.70-beta version. The error message with autoconf-2.70-final has changed but the outcome has not. The `configure` script created by autoreconf from autoconf-2.70 is broken and fails to finish: ``` ./configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --disable-dependency-tracking --disable-si lent-rules --docdir=/usr/share/doc/varnish-6.5.1 --htmldir=/usr/share/doc/varnish-6.5.1/html --with-sysroot=/ --libdir=/usr/lib64 --disable-static --disable-pcre-jit --without-jemalloc checking for x86_64-pc-linux-gnu-gcc... x86_64-pc-linux-gnu-gcc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether the compiler supports GNU C... yes checking whether x86_64-pc-linux-gnu-gcc accepts -g... yes checking for x86_64-pc-linux-gnu-gcc option to enable C11 features... none needed checking whether x86_64-pc-linux-gnu-gcc understands -c and -o together... yes checking for stdio.h... yes checking for stdlib.h... yes checking for string.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for strings.h... yes checking for sys/stat.h... yes checking for sys/types.h... yes checking for unistd.h... yes checking for wchar.h... yes checking for minix/config.h... no checking whether it is safe to define __EXTENSIONS__... yes checking whether _XOPEN_SOURCE should be defined... no checking build system type... x86_64-pc-linux-gnu checking host system type... x86_64-pc-linux-gnu checking target system type... x86_64-pc-linux-gnu checking whether to enable maintainer-specific portions of Makefiles... no checking for a BSD-compatible install... /usr/lib/portage/python3.9/ebuild-helpers/xattr/install -c checking whether build environment is sane... yes checking for a race-free mkdir -p... /bin/mkdir -p checking for gawk... gawk checking whether make sets $(MAKE)... yes checking whether make supports the include directive... yes (GNU style) checking whether make supports nested variables... yes checking dependency style of x86_64-pc-linux-gnu-gcc... none checking whether make supports nested variables... (cached) yes checking how to print strings... printf checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by x86_64-pc-linux-gnu-gcc... /usr/x86_64-pc-linux-gnu/bin/ld checking if the linker (/usr/x86_64-pc-linux-gnu/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/x86_64-pc-linux-gnu-nm -B checking the name lister (/usr/bin/x86_64-pc-linux-gnu-nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop checking for /usr/x86_64-pc-linux-gnu/bin/ld option to reload object files... -r checking for x86_64-pc-linux-gnu-objdump... x86_64-pc-linux-gnu-objdump checking how to recognize dependent libraries... pass_all checking for x86_64-pc-linux-gnu-dlltool... no checking for dlltool... no checking how to associate runtime and link libraries... printf %s\n checking for x86_64-pc-linux-gnu-ar... x86_64-pc-linux-gnu-ar checking for archiver @FILE support... @ checking for x86_64-pc-linux-gnu-strip... x86_64-pc-linux-gnu-strip checking for x86_64-pc-linux-gnu-ranlib... x86_64-pc-linux-gnu-ranlib checking command to parse /usr/bin/x86_64-pc-linux-gnu-nm -B output from x86_64-pc-linux-gnu-gcc object... ok checking for sysroot... / checking for a working dd... /bin/dd checking how to truncate binary pipes... /bin/dd bs=4096 count=1 checking for x86_64-pc-linux-gnu-mt... no checking for mt... no checking if : is a manifest tool... no checking for dlfcn.h... yes checking for objdir... .libs checking if x86_64-pc-linux-gnu-gcc supports -fno-rtti -fno-exceptions... no checking for x86_64-pc-linux-gnu-gcc option to produce PIC... -fPIC -DPIC checking if x86_64-pc-linux-gnu-gcc PIC flag -fPIC -DPIC works... yes checking if x86_64-pc-linux-gnu-gcc static flag -static works... yes checking if x86_64-pc-linux-gnu-gcc supports -c -o file.o... yes checking if x86_64-pc-linux-gnu-gcc supports -c -o file.o... (cached) yes checking whether the x86_64-pc-linux-gnu-gcc linker (/usr/x86_64-pc-linux-gnu/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... no checking for x86_64-pc-linux-gnu-gcc... (cached) x86_64-pc-linux-gnu-gcc checking whether the compiler supports GNU C... (cached) yes checking whether x86_64-pc-linux-gnu-gcc accepts -g... (cached) yes checking for x86_64-pc-linux-gnu-gcc option to enable C11 features... (cached) none needed checking whether x86_64-pc-linux-gnu-gcc understands -c and -o together... (cached) yes checking how to run the C preprocessor... x86_64-pc-linux-gnu-gcc -E checking whether x86_64-pc-linux-gnu-gcc is Clang... no checking whether pthreads work with -pthread... yes checking for joinable pthread attribute... PTHREAD_CREATE_JOINABLE checking whether more special flags are required for pthreads... no checking for PTHREAD_PRIO_INHERIT... yes ./configure: 14673: Syntax error: newline unexpected (expecting ")") ``` I've tried to attach the config.log file to this issue but GitHub won't let me. So I've uploaded the config.log file to my personal web space: https://www.gentoofan.org/gentoo/misc/varnish-6.5.1-config.log
nigoroll commented 2021-01-10 17:43:50 +01:00 (Migrated from github.com)

my rough guess would be an issue with the AC_PROG_INSTALL macro. Can you also make available the generated configure script?

my rough guess would be an issue with the `AC_PROG_INSTALL` macro. Can you also make available the generated `configure` script?
Polynomial-C commented 2021-01-10 18:54:16 +01:00 (Migrated from github.com)
Sure. Here it is: https://www.gentoofan.org/gentoo/misc/varnish-6.5.1-configure
nigoroll commented 2021-01-11 10:07:10 +01:00 (Migrated from github.com)

This looks clearly broken: # <== here added

if test ${ac_cv_prog_RST2MAN+y}
then :
  printf %s "(cached) " >&6
else $as_nop
  if test -n "$RST2MAN"; then
  ac_cv_prog_RST2MAN="$RST2MAN" # 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 #(((
    ''
fi  # <== here
 as_dir=./ ;;
    */) ;;
    *) as_dir=$as_dir/ ;;
  esac

I do not think we can do anything about it, but would like to ask @Dridi to have a second look.

This looks clearly broken: `# <== here` added ``` if test ${ac_cv_prog_RST2MAN+y} then : printf %s "(cached) " >&6 else $as_nop if test -n "$RST2MAN"; then ac_cv_prog_RST2MAN="$RST2MAN" # 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 #((( '' fi # <== here as_dir=./ ;; */) ;; *) as_dir=$as_dir/ ;; esac ``` I do not think we can do anything about it, but would like to ask @Dridi to have a second look.
simonvik commented 2021-01-12 14:44:41 +01:00 (Migrated from github.com)

I can recreate it on arch, it works in autoconf-2.69 but not in autoconf-2.70

I can recreate it on arch, it works in `autoconf-2.69` but not in `autoconf-2.70`
simonvik commented 2021-01-12 15:30:20 +01:00 (Migrated from github.com)

https://www.winehq.org/pipermail/wine-devel/2020-October/176324.html describes the problem and :

diff --git a/configure.ac b/configure.ac
index e44b61fff..3763b3f34 100644
--- a/configure.ac
+++ b/configure.ac
@@ -40,9 +40,9 @@ AC_PROG_INSTALL
 AC_ARG_WITH([rst2man],
   AS_HELP_STRING([--with-rst2man=PATH], [Location of rst2man (auto)]),
   [RST2MAN="$withval"],
-  AC_CHECK_PROGS(RST2MAN,
+  [AC_CHECK_PROGS(RST2MAN,
     [rst2man-3.6 rst2man-3 rst2man rst2man.py],
-    [no]))
+    [no])])
 if test "x$RST2MAN" = "xno"; then
   AC_MSG_ERROR(
     [rst2man is needed to build Varnish, please install python3-docutils.])
@@ -51,9 +51,9 @@ fi
 AC_ARG_WITH([sphinx-build],
   AS_HELP_STRING([--with-sphinx-build=PATH], [Location of sphinx-build (auto)]),
   [SPHINX="$withval"],
-  AC_CHECK_PROGS(SPHINX,
+  [AC_CHECK_PROGS(SPHINX,
     [sphinx-build-3.6 sphinx-build-3 sphinx-build],
-    [no]))
+    [no])])
 if test "x$SPHINX" = "xno"; then
   AC_MSG_ERROR(
     [sphinx-build is needed to build Varnish, please install python3-sphinx.])
@@ -62,9 +62,9 @@ fi
 AC_ARG_WITH([rst2html],
   AS_HELP_STRING([--with-rst2html=PATH], [Location of rst2html (auto)]),
   [RST2HTML="$withval"],
-  AC_CHECK_PROGS(RST2HTML,
+  [AC_CHECK_PROGS(RST2HTML,
      [rst2html-3.6 rst2html-3 rst2html rst2html.py],
-     "no"))
+     "no")])
 
 if test "x$RST2HTML" = "xno"; then
    AC_MSG_ERROR(

seems to solve it.

https://www.winehq.org/pipermail/wine-devel/2020-October/176324.html describes the problem and : ``` diff --git a/configure.ac b/configure.ac index e44b61fff..3763b3f34 100644 --- a/configure.ac +++ b/configure.ac @@ -40,9 +40,9 @@ AC_PROG_INSTALL AC_ARG_WITH([rst2man], AS_HELP_STRING([--with-rst2man=PATH], [Location of rst2man (auto)]), [RST2MAN="$withval"], - AC_CHECK_PROGS(RST2MAN, + [AC_CHECK_PROGS(RST2MAN, [rst2man-3.6 rst2man-3 rst2man rst2man.py], - [no])) + [no])]) if test "x$RST2MAN" = "xno"; then AC_MSG_ERROR( [rst2man is needed to build Varnish, please install python3-docutils.]) @@ -51,9 +51,9 @@ fi AC_ARG_WITH([sphinx-build], AS_HELP_STRING([--with-sphinx-build=PATH], [Location of sphinx-build (auto)]), [SPHINX="$withval"], - AC_CHECK_PROGS(SPHINX, + [AC_CHECK_PROGS(SPHINX, [sphinx-build-3.6 sphinx-build-3 sphinx-build], - [no])) + [no])]) if test "x$SPHINX" = "xno"; then AC_MSG_ERROR( [sphinx-build is needed to build Varnish, please install python3-sphinx.]) @@ -62,9 +62,9 @@ fi AC_ARG_WITH([rst2html], AS_HELP_STRING([--with-rst2html=PATH], [Location of rst2html (auto)]), [RST2HTML="$withval"], - AC_CHECK_PROGS(RST2HTML, + [AC_CHECK_PROGS(RST2HTML, [rst2html-3.6 rst2html-3 rst2html rst2html.py], - "no")) + "no")]) if test "x$RST2HTML" = "xno"; then AC_MSG_ERROR( ``` seems to solve it.
dridi commented 2021-01-12 18:41:49 +01:00 (Migrated from github.com)

I can recreate it on arch, it works in autoconf-2.69 but not in autoconf-2.70

@gquintard adding arch to cci should be right around you alley, do we want that?

> I can recreate it on arch, it works in `autoconf-2.69` but not in `autoconf-2.70` @gquintard adding arch to cci should be right around you alley, do we want that?
gquintard commented 2021-01-12 19:00:20 +01:00 (Migrated from github.com)

happy to do it

happy to do it
gquintard commented 2021-01-12 20:31:49 +01:00 (Migrated from github.com)

done

done
gquintard commented 2021-01-12 21:15:37 +01:00 (Migrated from github.com)

I actually went a bit further, the distcheck jobs now make distcheck directly from the git checkout to catch these issues.

I actually went a bit further, the `distcheck` jobs now `make distcheck` directly from the `git` checkout to catch these issues.
This discussion has been locked. Commenting is limited to contributors.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
vinyl-cache/vinyl-cache#3491
No description provided.