3.13.0 vs. edge - cmake fails to detect C compiler ABI info
Ran into this issue while updating/fixing testing/galera
for #12307 (closed) ...
3.13.0 works...
% docker run --rm -it alpine:latest /bin/sh
/ # apk -U upgrade
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/v3.12/community/x86_64/APKINDEX.tar.gz
(1/8) Upgrading musl (1.1.24-r8 -> 1.1.24-r10)
(2/8) Upgrading busybox (1.31.1-r16 -> 1.31.1-r19)
Executing busybox-1.31.1-r19.post-upgrade
(3/8) Upgrading alpine-baselayout (3.2.0-r6 -> 3.2.0-r7)
Executing alpine-baselayout-3.2.0-r7.pre-upgrade
Executing alpine-baselayout-3.2.0-r7.post-upgrade
(4/8) Upgrading libcrypto1.1 (1.1.1g-r0 -> 1.1.1i-r0)
(5/8) Upgrading libssl1.1 (1.1.1g-r0 -> 1.1.1i-r0)
(6/8) Upgrading ca-certificates-bundle (20191127-r2 -> 20191127-r4)
(7/8) Upgrading ssl_client (1.31.1-r16 -> 1.31.1-r19)
(8/8) Upgrading musl-utils (1.1.24-r8 -> 1.1.24-r10)
Executing busybox-1.31.1-r19.trigger
OK: 6 MiB in 14 packages
/ # apk add build-base cmake
(1/35) Installing libgcc (9.3.0-r2)
(2/35) Installing libstdc++ (9.3.0-r2)
(3/35) Installing binutils (2.34-r1)
(4/35) Installing libmagic (5.38-r0)
(5/35) Installing file (5.38-r0)
(6/35) Installing gmp (6.2.0-r0)
(7/35) Installing isl (0.18-r0)
(8/35) Installing libgomp (9.3.0-r2)
(9/35) Installing libatomic (9.3.0-r2)
(10/35) Installing libgphobos (9.3.0-r2)
(11/35) Installing mpfr4 (4.0.2-r4)
(12/35) Installing mpc1 (1.1.0-r1)
(13/35) Installing gcc (9.3.0-r2)
(14/35) Installing musl-dev (1.1.24-r10)
(15/35) Installing libc-dev (0.7.2-r3)
(16/35) Installing g++ (9.3.0-r2)
(17/35) Installing make (4.3-r0)
(18/35) Installing fortify-headers (1.1-r0)
(19/35) Installing patch (2.7.6-r6)
(20/35) Installing build-base (0.5-r2)
(21/35) Installing libacl (2.2.53-r0)
(22/35) Installing libbz2 (1.0.8-r1)
(23/35) Installing expat (2.2.9-r1)
(24/35) Installing lz4-libs (1.9.2-r0)
(25/35) Installing xz-libs (5.2.5-r0)
(26/35) Installing zstd-libs (1.4.5-r0)
(27/35) Installing libarchive (3.4.3-r1)
(28/35) Installing ca-certificates (20191127-r4)
(29/35) Installing nghttp2-libs (1.41.0-r0)
(30/35) Installing libcurl (7.69.1-r3)
(31/35) Installing ncurses-terminfo-base (6.2_p20200523-r0)
(32/35) Installing ncurses-libs (6.2_p20200523-r0)
(33/35) Installing rhash-libs (1.3.9-r1)
(34/35) Installing libuv (1.38.1-r0)
(35/35) Installing cmake (3.17.2-r0)
Executing busybox-1.31.1-r19.trigger
Executing ca-certificates-20191127-r4.trigger
OK: 252 MiB in 49 packages
/ # cat > CMakeLists.txt
message(STATUS "CMake version ${CMAKE_VERSION}")
cmake_minimum_required(VERSION 2.8)
project(galera-4)
/ # cmake .
-- CMake version 3.17.2
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc - works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ - works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: /
edge does not...
% docker run --rm -it alpine:latest /bin/sh -l
6a62cabdcfba:/# cat > /etc/apk/repositories
http://dl-cdn.alpinelinux.org/alpine/edge/main
http://dl-cdn.alpinelinux.org/alpine/edge/community
http://dl-cdn.alpinelinux.org/alpine/edge/testing
6a62cabdcfba:/# apk -U upgrade
fetch http://dl-cdn.alpinelinux.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
fetch http://dl-cdn.alpinelinux.org/alpine/edge/testing/x86_64/APKINDEX.tar.gz
Upgrading critical system libraries and apk-tools:
(1/2) Upgrading musl (1.1.24-r8 -> 1.2.2-r0)
(2/2) Upgrading apk-tools (2.10.5-r1 -> 2.12.0-r4)
Executing busybox-1.31.1-r16.trigger
Continuing the upgrade transaction with new apk-tools:
(1/8) Upgrading busybox (1.31.1-r16 -> 1.32.1-r0)
Executing busybox-1.32.1-r0.post-upgrade
(2/8) Upgrading alpine-baselayout (3.2.0-r6 -> 3.2.0-r8)
Executing alpine-baselayout-3.2.0-r8.pre-upgrade
Executing alpine-baselayout-3.2.0-r8.post-upgrade
(3/8) Upgrading libcrypto1.1 (1.1.1g-r0 -> 1.1.1i-r0)
(4/8) Upgrading libssl1.1 (1.1.1g-r0 -> 1.1.1i-r0)
(5/8) Upgrading ca-certificates-bundle (20191127-r2 -> 20191127-r5)
(6/8) Upgrading ssl_client (1.31.1-r16 -> 1.32.1-r0)
(7/8) Upgrading scanelf (1.2.6-r0 -> 1.2.8-r0)
(8/8) Upgrading musl-utils (1.1.24-r8 -> 1.2.2-r0)
Executing busybox-1.32.1-r0.trigger
OK: 6 MiB in 14 packages
6a62cabdcfba:/# apk add build-base cmake
(1/36) Installing libgcc (10.2.1_pre1-r3)
(2/36) Installing libstdc++ (10.2.1_pre1-r3)
(3/36) Installing binutils (2.35.1-r1)
(4/36) Installing libmagic (5.39-r0)
(5/36) Installing file (5.39-r0)
(6/36) Installing libgomp (10.2.1_pre1-r3)
(7/36) Installing libatomic (10.2.1_pre1-r3)
(8/36) Installing libgphobos (10.2.1_pre1-r3)
(9/36) Installing gmp (6.2.1-r0)
(10/36) Installing isl22 (0.22-r0)
(11/36) Installing mpfr4 (4.1.0-r0)
(12/36) Installing mpc1 (1.2.0-r0)
(13/36) Installing gcc (10.2.1_pre1-r3)
(14/36) Installing musl-dev (1.2.2-r0)
(15/36) Installing libc-dev (0.7.2-r3)
(16/36) Installing g++ (10.2.1_pre1-r3)
(17/36) Installing make (4.3-r0)
(18/36) Installing fortify-headers (1.1-r0)
(19/36) Installing patch (2.7.6-r6)
(20/36) Installing build-base (0.5-r2)
(21/36) Installing libacl (2.2.53-r0)
(22/36) Installing libbz2 (1.0.8-r1)
(23/36) Installing expat (2.2.10-r1)
(24/36) Installing lz4-libs (1.9.2-r0)
(25/36) Installing xz-libs (5.2.5-r0)
(26/36) Installing zstd-libs (1.4.5-r3)
(27/36) Installing libarchive (3.5.1-r0)
(28/36) Installing ca-certificates (20191127-r5)
(29/36) Installing brotli-libs (1.0.9-r3)
(30/36) Installing nghttp2-libs (1.42.0-r1)
(31/36) Installing libcurl (7.74.0-r0)
(32/36) Installing ncurses-terminfo-base (6.2_p20210109-r0)
(33/36) Installing ncurses-libs (6.2_p20210109-r0)
(34/36) Installing rhash-libs (1.4.1-r0)
(35/36) Installing libuv (1.40.0-r1)
(36/36) Installing cmake (3.18.4-r1)
Executing busybox-1.32.1-r0.trigger
Executing ca-certificates-20191127-r5.trigger
OK: 245 MiB in 50 packages
6a62cabdcfba:/# cat > CMakeLists.txt
message(STATUS "CMake version ${CMAKE_VERSION}")
cmake_minimum_required(VERSION 2.8)
project(galera-4)
6a62cabdcfba:/# cmake .
-- CMake version 3.18.4
-- The C compiler identification is GNU 10.2.1
-- The CXX compiler identification is GNU 10.2.1
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - failed
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc - broken
CMake Error at usr/share/cmake/Modules/CMakeTestCCompiler.cmake:66 (message):
The C compiler
"/usr/bin/cc"
is not able to compile a simple test program.
It fails with the following output:
Change Dir: //CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_9a0ab/fast && /usr/bin/make -f CMakeFiles/cmTC_9a0ab.dir/build.make CMakeFiles/cmTC_9a0ab.dir/build
make: /usr/bin/make: Operation not permitted
make: *** [Makefile:140: cmTC_9a0ab/fast] Error 127
CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
//CMakeLists.txt:3 (project)
-- Configuring incomplete, errors occurred!
See also "//CMakeFiles/CMakeOutput.log".
See also "//CMakeFiles/CMakeError.log".
6a62cabdcfba:/# cat CMakeFiles/CMakeOutput.log
The system is: Linux - 4.19.121-linuxkit - x86_64
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
Compiler: /usr/bin/cc
Build flags:
Id flags:
The output was:
0
Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
The C compiler identification is GNU, found in "//CMakeFiles/3.18.4/CompilerIdC/a.out"
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
Compiler: /usr/bin/c++
Build flags:
Id flags:
The output was:
0
Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
The CXX compiler identification is GNU, found in "//CMakeFiles/3.18.4/CompilerIdCXX/a.out"
6a62cabdcfba:/# cat CMakeFiles/CMakeError.log
Detecting C compiler ABI info failed to compile with the following output:
Change Dir: //CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_9dbd3/fast && /usr/bin/make -f CMakeFiles/cmTC_9dbd3.dir/build.make CMakeFiles/cmTC_9dbd3.dir/build
make: /usr/bin/make: Operation not permitted
make: *** [Makefile:140: cmTC_9dbd3/fast] Error 127
Determining if the C compiler works failed with the following output:
Change Dir: //CMakeFiles/CMakeTmp
Run Build Command(s):/usr/bin/make cmTC_9a0ab/fast && /usr/bin/make -f CMakeFiles/cmTC_9a0ab.dir/build.make CMakeFiles/cmTC_9a0ab.dir/build
make: /usr/bin/make: Operation not permitted
make: *** [Makefile:140: cmTC_9a0ab/fast] Error 127