From: jaruga@... Date: 2021-08-10T10:54:27+00:00 Subject: [ruby-core:104866] [Ruby master Bug#18073] test/ruby/test_jit.rb: "error: invalid use of '__builtin_va_arg_pack ()'" on Ruby 2.7.4 on gcc 4.8.5 Issue #18073 has been updated by jaruga (Jun Aruga). > This commit is for configure only. > How the results of configure (config.status and config.h files) differ before and after this commit? I did ssh login to RubyCI CentOS7 server, and checked the files between commits `fd95a18059` (previous commit for `29bbad9399`) and `29bbad9399` (first failure), ``` config.status ./.ext/include/x86_64-linux/ruby/config.h ``` by running the following commands. ``` git clean -fdx autoconf ./configure --enable-shared ``` For the `config.status`, here is the result of the difference. There are some differences by not sorted items. ``` $ \diff -u ok.fd95a18059.config.status err.29bbad9399.config.status --- ok.fd95a18059.config.status 2021-08-10 10:38:05.000139654 +0000 +++ err.29bbad9399.config.status 2021-08-10 10:25:19.967182125 +0000 @@ -791,18 +791,18 @@ S["GNU_LD"]="yes" S["LD"]="ld" S["GCC"]="yes" -S["EGREP"]="/bin/grep -E" -S["GREP"]="/bin/grep" -S["CPP"]="$(CC) -E" S["ac_ct_CXX"]="" S["CXXFLAGS"]="" S["CXX"]="g++" +S["EGREP"]="/bin/grep -E" +S["GREP"]="/bin/grep" +S["CPP"]="gcc -E" S["OBJEXT"]="o" S["EXEEXT"]="" +S["ac_ct_CC"]="gcc" S["CPPFLAGS"]=" $(DEFS) ${cppflags}" S["LDFLAGS"]="-L. -fstack-protector-strong -rdynamic -Wl,-export-dynamic" -S["CFLAGS"]="${cflags} -fPIC" -S["ac_ct_CC"]="gcc" +S["CFLAGS"]="-g -O2 -fPIC" S["CC"]="gcc -std=gnu99" S["target_os"]="linux" S["target_vendor"]="pc" ``` However the essential difference is the following part. ``` -S["CFLAGS"]="${cflags} -fPIC" +S["CFLAGS"]="-g -O2 -fPIC" ``` For the `config.h`, here is the difference. ``` $ \diff -u ok.fd95a18059.config.h err.29bbad9399.config.h --- ok.fd95a18059.config.h 2021-08-10 10:38:04.799141259 +0000 +++ err.29bbad9399.config.h 2021-08-10 10:25:19.775183599 +0000 @@ -169,11 +169,8 @@ #define PRI_SIZE_PREFIX "z" #define PRI_PTRDIFF_PREFIX "t" #define HAVE_STRUCT_STAT_ST_BLKSIZE 1 -#define HAVE_ST_BLKSIZE 1 #define HAVE_STRUCT_STAT_ST_BLOCKS 1 -#define HAVE_ST_BLOCKS 1 #define HAVE_STRUCT_STAT_ST_RDEV 1 -#define HAVE_ST_RDEV 1 #define SIZEOF_STRUCT_STAT_ST_SIZE SIZEOF_OFF_T #define SIZEOF_STRUCT_STAT_ST_BLOCKS SIZEOF_OFF_T #define SIZEOF_STRUCT_STAT_ST_INO SIZEOF_LONG ``` ---------------------------------------- Bug #18073: test/ruby/test_jit.rb: "error: invalid use of '__builtin_va_arg_pack ()'" on Ruby 2.7.4 on gcc 4.8.5 https://bugs.ruby-lang.org/issues/18073#change-93221 * Author: jaruga (Jun Aruga) * Status: Open * Priority: Normal * Backport: 2.6: UNKNOWN, 2.7: REQUIRED, 3.0: DONTNEED ---------------------------------------- I hit the following JIT test failures causing the following error on v2_7_4 tag (Ruby 2.7.4) with gcc 4.8.5 on RHEL 7. The tests work on Ruby 2.7.3 and also works on Ruby 3.0.2. ``` /mnt/git/ruby/ruby/.ext/include/x86_64-linux/rb_mjit_min_header-2.7.4.h: In function 'sprintf': /mnt/git/ruby/ruby/.ext/include/x86_64-linux/rb_mjit_min_header-2.7.4.h:442:3: error: invalid use of '__builtin_va_arg_pack ()' return __builtin___sprintf_chk (__s, 2 - 1, ^ ``` ``` $ which gcc /usr/bin/gcc $ gcc --version gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39) Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. $ git branch * (detached from v2_7_4) ... $ autoconf $ ./configure --enable-shared 2>&1 | tee configure.log $ make 2>&1 | tee make.log ``` Here is one of the failures. I would attach the full long files on this ticket. ``` $ make test-all TESTS="-v test/ruby/test_jit.rb" 2>&1 | tee make_test-all_test_jit.log ... 30) Failure: TestJIT#test_compile_insn_local [/mnt/git/ruby/ruby/test/ruby/test_jit.rb:62]: Expected 1 times of JIT success, but succeeded 0 times. script: """ p proc { foo = 1 foo }.call """ stderr: """ /mnt/git/ruby/ruby/.ext/include/x86_64-linux/rb_mjit_min_header-2.7.4.h: In function 'sprintf': /mnt/git/ruby/ruby/.ext/include/x86_64-linux/rb_mjit_min_header-2.7.4.h:442:3: error: invalid use of '__builtin_va_arg_pack ()' return __builtin___sprintf_chk (__s, 2 - 1, ^ compilation terminated due to -Wfatal-errors. Successful MJIT finish """ .. <1> expected but was <0>. ... Finished tests in 29.837252s, 3.1504 tests/s, 15.7186 assertions/s. 94 tests, 469 assertions, 87 failures, 0 errors, 4 skips ... ``` ---Files-------------------------------- configure.log (27.6 KB) make.log (102 KB) make_test-all_test_jit.log (77 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: