From: "shyouhei (Shyouhei Urabe)" Date: 2022-04-19T09:05:55+00:00 Subject: [ruby-core:108291] [Ruby master Misc#18726] CI Error on c99 and c2x Issue #18726 has been updated by shyouhei (Shyouhei Urabe). alanwu (Alan Wu) wrote in #note-8: > I feel that C2X with > pre-release versions of Clang is too much of a moving target. Maybe it's > best to wait a few months for things to mature. More warnings and errors > are under development and a more up-to-date standard draft should help with > understanding Clang. Yes, I agree with this part. I didn't expect WG14 to become this aggressive. Clang-15 is a sooner-or-later thing, we also have to deal with C23 someday. But why not avoid mixing the two? ---------------------------------------- Misc #18726: CI Error on c99 and c2x https://bugs.ruby-lang.org/issues/18726#change-97312 * Author: znz (Kazuhiro NISHIYAMA) * Status: Open * Priority: Normal * Assignee: shyouhei (Shyouhei Urabe) ---------------------------------------- https://github.com/ruby/ruby/runs/6013849896?check_suite_focus=true ``` checking char bit... 8 checking size of int... 0 checking size of short... 0 checking size of long... 0 configure: error: in `/__w/ruby/ruby/build': configure: error: cannot compute sizeof (long long) See `config.log' for more details checking size of long long... Error: Process completed with exit code 77. ``` I investigate it, the cause is that autoconf is old in `ghcr.io/ruby/ruby-ci-image:clang-15`. (Autoconf 2.69) Autoconf 2.71 generates with `void`. How to reproduce: ``` % docker run --rm -it ghcr.io/ruby/ruby-ci-image:clang-15 $ sudo apt update $ sudo apt install git $ git clone --depth=1 https://github.com/ruby/ruby $HOME/src $ mkdir $HOME/build $ cd $HOME/build $ ../src/autogen.sh $ ../src/configure -C --enable-debug-env --disable-install-doc --with-ext=-test-/cxxanyargs,+ --without-valgrind --without-jemalloc --without-gmp --with-gcc="clang-15 -std=c99 -Werror=pedantic -pedantic-errors" --enable-shared optflags=-O1 debugflags=-ggdb3 ``` Tail of configure output: ``` checking char bit... 8 checking size of int... 0 checking size of short... 0 checking size of long... 0 checking size of long long... configure: error: in `/home/ci/build': configure: error: cannot compute sizeof (long long) See `config.log' for more details ``` Quote from config.log: ``` configure:13939: checking size of int configure:13944: clang-15 -std=c99 -Werror=pedantic -pedantic-errors -o conftest -O1 -fno-fast-math -ggdb3 -fdeclspec -fstack-protector-strong conftest.c -lm >&5 conftest.c:107:25: error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes] static long int longval () { return (long int) (sizeof (int)); } ^ void conftest.c:108:35: error: a function declaration without a prototype is deprecated in all versions of C [-Werror,-Wstrict-prototypes] static unsigned long int ulongval () { return (long int) (sizeof (int)); } ^ void 2 errors generated. ``` -- https://bugs.ruby-lang.org/ Unsubscribe: