Actions
Bug #18156
closed3.0.2 configuration checks by default for C++ compiler instead of C?
Status:
Closed
Assignee:
-
Target version:
-
ruby -v:
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux]
Description
It seems that with git|c32375883a696fcf8e9e99875f1339ee5474a255 the configure script does not check for C compiler but for C++ using Autoconf 2.71. This is the difference between 2.69 1 and 2.71 2:
--- 2.69
+++ 2.71
@@ -1,40 +1,27 @@
-+ ./configure --prefix=/home/chkbuild/chkbuild/tmp/build/20210908T123006Z --with-baseruby=/home/chkbuild/.rbenv/versions/3.0.2/bin/ruby --enable-debug-env --with-valgrind
-downloading config.guess ... done
-downloading config.sub ... done
++ ./configure --prefix=/home/chkbuild/chkbuild/tmp/build/20210908T120006Z --with-baseruby=/home/chkbuild/.rbenv/versions/3.0.2/bin/ruby --enable-debug-env --with-valgrind
+tool/config.guess already exists
+tool/config.sub already exists
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 for gcc... gcc
checking for ld... ld
checking for gcc-ar... gcc-ar
-checking for g++... no
+checking for g++... g++
checking for gcc-nm... gcc-nm
checking for gcc-ranlib... gcc-ranlib
-checking for gcc... (cached) gcc
-checking whether the C compiler works... yes
-checking for C compiler default output file name... a.out
+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 we are using the GNU C compiler... yes
+checking whether the compiler supports GNU C++... yes
+checking whether g++ accepts -g... yes
+checking for g++ option to enable C++11 features... none needed
+checking for gcc... (cached) gcc
+checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
-checking for gcc option to accept ISO C89... none needed
-checking for gcc option to accept ISO C99... none needed
-checking for g++... no
-checking for c++... no
-checking for gpp... no
-checking for aCC... no
-checking for CC... no
-checking for cxx... no
-checking for cc++... no
-checking for cl.exe... no
-checking for FCC... no
-checking for KCC... no
-checking for RCC... no
-checking for xlC_r... no
-checking for xlC... no
-checking whether we are using the GNU C++ compiler... no
-checking whether g++ accepts -g... no
+checking for gcc option to enable C11 features... none needed
checking how to run the C preprocessor... gcc -E
checking for ranlib... (cached) gcc-ranlib
checking for gas... no
@@ -45,22 +32,20 @@
checking for objdump... objdump
checking for gstrip... no
checking for strip... strip
-checking for grep that handles long lines and -e... /usr/bin/grep
-checking for egrep... /usr/bin/grep -E
-checking for ANSI C header files... yes
-checking for sys/types.h... yes
-checking for sys/stat.h... yes
+checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
-checking for memory.h... yes
-checking for strings.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 minix/config.h usability... no
-checking minix/config.h presence... no
+checking for wchar.h... yes
checking for minix/config.h... no
+checking for vfork.h... no
checking whether it is safe to define __EXTENSIONS__... yes
+checking whether _XOPEN_SOURCE should be defined... no
checking whether the linker is GNU ld... yes
checking whether gcc -E accepts -o... yes
checking for gcc... /usr/bin/gcc
@@ -68,7 +53,7 @@
checking whether ln -s works... yes
checking whether make sets $(MAKE)... yes
checking for a BSD-compatible install... /usr/bin/install -c
-checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
+checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for dtrace... no
checking for dot... no
checking for doxygen... no
@@ -126,157 +111,64 @@
checking whether -fexcess-precision=standard is accepted as CFLAGS... yes
checking whether -fp-model precise is accepted as CFLAGS... no
checking whether compiler has statement and declarations in expressions... yes
-configure: Test skipped due to lack of a C++ compiler.
+checking whether CXXFLAGS is valid... yes
checking for crypt in -lcrypt... yes
checking for dlopen in -ldl... yes
checking for shl_load in -ldld... no
checking for shutdown in -lsocket... no
checking for dirent.h that defines DIR... yes
checking for library containing opendir... none required
+checking for _Bool... yes
checking for stdbool.h that conforms to C99... yes
-checking for _Bool... yes
checking for sys/wait.h that is POSIX.1 compatible... yes
-checking atomic.h usability... no
-checking atomic.h presence... no
checking for atomic.h... no
-checking copyfile.h usability... no
-checking copyfile.h presence... no
checking for copyfile.h... no
-checking direct.h usability... no
-checking direct.h presence... no
checking for direct.h... no
-checking grp.h usability... yes
-checking grp.h presence... yes
checking for grp.h... yes
-checking fcntl.h usability... yes
-checking fcntl.h presence... yes
checking for fcntl.h... yes
-checking float.h usability... yes
-checking float.h presence... yes
checking for float.h... yes
-checking ieeefp.h usability... no
-checking ieeefp.h presence... no
checking for ieeefp.h... no
-checking intrinsics.h usability... no
-checking intrinsics.h presence... no
checking for intrinsics.h... no
-checking langinfo.h usability... yes
-checking langinfo.h presence... yes
checking for langinfo.h... yes
-checking limits.h usability... yes
-checking limits.h presence... yes
checking for limits.h... yes
-checking locale.h usability... yes
-checking locale.h presence... yes
checking for locale.h... yes
-checking malloc.h usability... yes
-checking malloc.h presence... yes
checking for malloc.h... yes
-checking malloc/malloc.h usability... no
-checking malloc/malloc.h presence... no
checking for malloc/malloc.h... no
-checking malloc_np.h usability... no
-checking malloc_np.h presence... no
checking for malloc_np.h... no
-checking net/socket.h usability... no
-checking net/socket.h presence... no
checking for net/socket.h... no
-checking process.h usability... no
-checking process.h presence... no
checking for process.h... no
-checking pwd.h usability... yes
-checking pwd.h presence... yes
checking for pwd.h... yes
-checking sanitizer/asan_interface.h usability... yes
-checking sanitizer/asan_interface.h presence... yes
checking for sanitizer/asan_interface.h... yes
-checking sanitizer/msan_interface.h usability... no
-checking sanitizer/msan_interface.h presence... no
checking for sanitizer/msan_interface.h... no
-checking setjmpex.h usability... no
-checking setjmpex.h presence... no
checking for setjmpex.h... no
-checking stdalign.h usability... yes
-checking stdalign.h presence... yes
checking for stdalign.h... yes
-checking sys/attr.h usability... no
-checking sys/attr.h presence... no
checking for sys/attr.h... no
-checking sys/eventfd.h usability... yes
-checking sys/eventfd.h presence... yes
checking for sys/eventfd.h... yes
-checking sys/fcntl.h usability... yes
-checking sys/fcntl.h presence... yes
checking for sys/fcntl.h... yes
-checking sys/file.h usability... yes
-checking sys/file.h presence... yes
checking for sys/file.h... yes
-checking sys/id.h usability... no
-checking sys/id.h presence... no
checking for sys/id.h... no
-checking sys/ioctl.h usability... yes
-checking sys/ioctl.h presence... yes
checking for sys/ioctl.h... yes
-checking sys/mkdev.h usability... no
-checking sys/mkdev.h presence... no
checking for sys/mkdev.h... no
-checking sys/param.h usability... yes
-checking sys/param.h presence... yes
checking for sys/param.h... yes
-checking sys/prctl.h usability... yes
-checking sys/prctl.h presence... yes
checking for sys/prctl.h... yes
-checking sys/random.h usability... yes
-checking sys/random.h presence... yes
checking for sys/random.h... yes
-checking sys/resource.h usability... yes
-checking sys/resource.h presence... yes
checking for sys/resource.h... yes
-checking sys/select.h usability... yes
-checking sys/select.h presence... yes
checking for sys/select.h... yes
-checking sys/sendfile.h usability... yes
-checking sys/sendfile.h presence... yes
checking for sys/sendfile.h... yes
-checking sys/socket.h usability... yes
-checking sys/socket.h presence... yes
checking for sys/socket.h... yes
-checking sys/syscall.h usability... yes
-checking sys/syscall.h presence... yes
checking for sys/syscall.h... yes
-checking sys/sysmacros.h usability... yes
-checking sys/sysmacros.h presence... yes
checking for sys/sysmacros.h... yes
-checking sys/time.h usability... yes
-checking sys/time.h presence... yes
checking for sys/time.h... yes
-checking sys/times.h usability... yes
-checking sys/times.h presence... yes
checking for sys/times.h... yes
-checking sys/uio.h usability... yes
-checking sys/uio.h presence... yes
checking for sys/uio.h... yes
-checking sys/utime.h usability... no
-checking sys/utime.h presence... no
checking for sys/utime.h... no
-checking syscall.h usability... yes
-checking syscall.h presence... yes
checking for syscall.h... yes
-checking time.h usability... yes
-checking time.h presence... yes
checking for time.h... yes
-checking ucontext.h usability... yes
-checking ucontext.h presence... yes
checking for ucontext.h... yes
-checking utime.h usability... yes
-checking utime.h presence... yes
checking for utime.h... yes
-checking x86intrin.h usability... yes
-checking x86intrin.h presence... yes
checking for x86intrin.h... yes
-checking gmp.h usability... no
-checking gmp.h presence... no
-checking for gmp.h... no
+checking for gmp.h... yes
+checking for library containing __gmpz_init... -lgmp
checking for special C compiler options needed for large files... no
checking for _FILE_OFFSET_BITS value needed for large files... no
checking whether byte ordering is bigendian... no
@@ -285,7 +177,7 @@
checking for inline... inline
checking for working volatile... yes
checking for typeof syntax and keyword spelling... typeof
-checking for C/C++ restrict keyword... __restrict
+checking for C/C++ restrict keyword... __restrict__
checking for long long... yes
checking for off_t... yes
checking char bit... 8
@@ -331,7 +223,7 @@
checking for DEPRECATED_BY function attribute... __attribute__ ((__deprecated__("by "#n))) x
checking for NOINLINE function attribute... __attribute__ ((__noinline__)) x
checking for ALWAYS_INLINE function attribute... __attribute__ ((__always_inline__)) x
-checking for NO_SANITIZE function attribute... x
+checking for NO_SANITIZE function attribute... __attribute__ ((__no_sanitize__(san))) x
checking for NO_SANITIZE_ADDRESS function attribute... __attribute__ ((__no_sanitize_address__)) x
checking for NO_ADDRESS_SAFETY_ANALYSIS function attribute... __attribute__ ((__no_address_safety_analysis__)) x
checking for WARN_UNUSED_RESULT function attribute... __attribute__ ((__warn_unused_result__)) x
@@ -339,8 +231,8 @@
checking for ERRORFUNC function attribute... __attribute__ ((__error__ mesg)) x
checking for WARNINGFUNC function attribute... __attribute__ ((__warning__ mesg)) x
checking for WEAK function attribute... __attribute__ ((__weak__)) x
-checking for __attribute__((__depreacted__(msg))) in C++... no
-checking for std::nullptr_t... no
+checking for __attribute__((__depreacted__(msg))) in C++... yes
+checking for std::nullptr_t... yes
checking for FUNC_STDCALL function attribute... x
checking for FUNC_CDECL function attribute... x
checking for FUNC_FASTCALL function attribute... x
@@ -354,7 +246,8 @@
checking for RUBY_FUNC_NONNULL function attribute... __attribute__ ((__nonnull__(n))) x
checking for function name string predefined identifier... __func__
checking if enum over int is allowed... yes
-checking whether sys_nerr is declared... yes
+checking for gcc options needed to detect all undeclared functions... none needed
+checking whether sys_nerr is declared... no
checking whether getenv is declared... yes
checking for size_t... yes
checking size of size_t... 8
@@ -413,6 +306,8 @@
checking size of ssize_t... 8
checking for printf prefix for int64_t... NONE
checking for stack end address... __libc_stack_end
+checking for grep that handles long lines and -e... /usr/bin/grep
+checking for egrep... /usr/bin/grep -E
checking for uid_t in sys/types.h... (cached) yes
checking type of array argument to getgroups... gid_t
checking for working alloca.h... yes
@@ -440,13 +335,8 @@
checking for strlcpy... no
checking for strstr... yes
checking for tgamma... yes
-checking sys/pstat.h usability... no
-checking sys/pstat.h presence... no
checking for sys/pstat.h... no
checking for pid_t... (cached) yes
-checking vfork.h usability... no
-checking vfork.h presence... no
-checking for vfork.h... no
checking for fork... yes
checking for vfork... yes
checking for working fork... yes
@@ -514,7 +404,7 @@
checking for isfinite... no
checking for issetugid... no
checking for killpg... yes
-checking for lchmod... no
+checking for lchmod... yes
checking for lchown... yes
checking for link... yes
checking for llabs... yes
@@ -591,8 +481,6 @@
checking for __sinpi... no
checking for statx... yes
checking if getcwd allocates buffer if NULL is given... yes
-checking crypt.h usability... yes
-checking crypt.h presence... yes
checking for crypt.h... yes
checking for struct crypt_data.initialized... yes
checking for __builtin_alloca_with_align... yes
@@ -659,27 +547,17 @@
checking for getcontext... yes
checking for setcontext... yes
checking if fork works with pthread... yes
-checking sys/user.h usability... yes
-checking sys/user.h presence... yes
checking for sys/user.h... yes
checking whether PAGE_SIZE is compile-time const... yes
checking ioctl request type... unsigned long
checking whether ELF binaries are produced... yes
-checking elf.h usability... yes
-checking elf.h presence... yes
checking for elf.h... yes
-checking elf_abi.h usability... no
-checking elf_abi.h presence... no
checking for elf_abi.h... no
checking for uncompress in -lz... yes
-checking mach-o/loader.h usability... no
-checking mach-o/loader.h presence... no
checking for mach-o/loader.h... no
checking whether OS depend dynamic link works... yes
checking for backtrace... yes
checking for broken backtrace... no
-checking valgrind/memcheck.h usability... no
-checking valgrind/memcheck.h presence... no
checking for valgrind/memcheck.h... no
checking for strip flags... -S -x
checking whether -fPIE is accepted as CFLAGS... yes
@@ -692,8 +570,6 @@
checking for sigsetjmp as a macro or function... no
checking for setjmp type... __builtin_setjmp
checking for prefix of external symbols... NONE
-checking pthread.h usability... yes
-checking pthread.h presence... yes
checking for pthread.h... yes
checking if make is GNU make... yes
.ext/include/x86_64-linux/ruby/config.h updated
@@ -704,7 +580,7 @@
---
Configuration summary for ruby version 3.1.0
- * Installation prefix: /home/chkbuild/chkbuild/tmp/build/20210908T123006Z
+ * Installation prefix: /home/chkbuild/chkbuild/tmp/build/20210908T120006Z
* exec prefix: ${prefix}
* arch: x86_64-linux
* site arch: ${arch}
Not sure what is the practical impact other than that the OpenSUSE CI is going break once it update to Autoconf 2.71, because there is not C++ compiler installed (and something similar already happened on Fedora 3, that is why I am looking into this).
Actions
Like0
Like0Like0Like0Like1Like0Like0Like0Like0Like0Like0Like0Like0