From: "xtkoba (Tee KOBAYASHI)" Date: 2022-06-14T03:59:34+00:00 Subject: [ruby-core:108891] [Ruby master Bug#18808] Cannot compile ruby 3.1.2 on powerpc64le-linux without disabling the jit features Issue #18808 has been updated by xtkoba (Tee KOBAYASHI). If `__attribute__ ((__visibility__("default")))` did not go with `extern` on a specific platform, then the following C code failed to compile: ```c __attribute__ ((__visibility__("default"))) extern int foo(void); ``` FWIW, with the following C code (named `ruby-bug18808.c`) ```c static __attribute__ ((__visibility__("default"))) extern int foo(void); ``` I get (on x86_64 GNU/Linux) ``` $ gcc-11.3.0 -Wfatal-errors ruby-bug18808.c -c ruby-bug18808.c:3:1: error: multiple storage classes in declaration specifiers 3 | __attribute__ ((__visibility__("default"))) extern | ^~~~~~~~~~~~~ compilation terminated due to -Wfatal-errors. ``` because `extern` does not go with `static`. The error message from GCC does not seem to be very friendly though. I'm not saying that this is the case here but that we need more information to narrow down the problem. At least we need `config.log` as @mame said, and preferably the whole `rb_mjit_header.h` to investigate the context. ---------------------------------------- Bug #18808: Cannot compile ruby 3.1.2 on powerpc64le-linux without disabling the jit features https://bugs.ruby-lang.org/issues/18808#change-97969 * Author: npn (John Davis) * Status: Feedback * Priority: Normal * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN ---------------------------------------- The system I am trying to compile on is a ppc64el system running RedHat 7 (3.10.0-1160.62.1.el7.ppc64le). I can successfully compile on a x86_64 system running the same version RedHat 7 (3.10.0-1160.62.1.el7.x86_64) When I configure with the following, make completes fine, but if I remove the `--disable-jit-support` it fails with the following error. ./configure --enable-shared --enable-load-relative --disable-install-doc --prefix=$RUBY_PREFIX --exec-prefix=$RUBY_PREFIX/rh_ppc --disable-jit-support building rb_mjit_header.h rb_mjit_header.h updated building .ext/include/powerpc64le-linux/rb_mjit_min_header-3.1.2.h error in final header file: In file included from /tmp/20220525-12786-q2ndz2.c:1:0: /tmp/20220525-12786-vf3xbh.h:16627:1: error: multiple storage classes in declaration specifiers __attribute__ ((__visibility__("default"))) extern ^ compilation terminated due to -Wfatal-errors. make: *** [.ext/include/powerpc64le-linux/rb_mjit_min_header-3.1.2.h] Error 1 -- https://bugs.ruby-lang.org/ Unsubscribe: