From: "nobu (Nobuyoshi Nakada) via ruby-core" <ruby-core@...>
Date: 2023-04-06T04:37:30+00:00
Subject: [ruby-core:113146] [Ruby master Bug#19161] Cannot compile 3.0.5 or 3.1.3 on Red Hat Enterprise Linux 7

Issue #19161 has been updated by nobu (Nobuyoshi Nakada).





WIP https://github.com/nobu/ruby/tree/detect-tls



----------------------------------------

Bug #19161: Cannot compile 3.0.5 or 3.1.3 on Red Hat Enterprise Linux 7

https://bugs.ruby-lang.org/issues/19161#change-102681



* Author: werebus (Matt Moretti)

* Status: Feedback

* Priority: Normal

* Backport: 2.7: DONTNEED, 3.0: REQUIRED, 3.1: DONE, 3.2: DONE

----------------------------------------

When attempting to run `make` on either the 3.0.5 or 3.1.3 release, I get the following error (I included the whole output as it's pretty short):





```

	BASERUBY = /opt/ruby/bin/ruby --disable=gems

	CC = gcc -std=gnu11

	LD = ld

	LDSHARED = gcc -std=gnu11 -shared

	CFLAGS = -O3 -fno-fast-math -ggdb3 -Wall -Wextra -Wdeprecated-declarations -Wimplicit-function-declaration -Wimplicit-int -Wpointer-arith -Wwrite-strings -Wold-style-definition -Wmissing-noreturn -Wno-cast-function-type -Wno-constant-logical-operand -Wno-long-long -Wno-missing-field-initializers -Wno-overlength-strings -Wno-packed-bitfield-compat -Wno-parentheses-equality -Wno-self-assign -Wno-tautological-compare -Wno-unused-parameter -Wno-unused-value -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wunused-variable  

	XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector-strong -fno-strict-overflow -fvisibility=hidden -fexcess-precision=standard -DRUBY_EXPORT -fPIE -I. -I.ext/include/x86_64-linux -I./include -I. -I./enc/unicode/13.0.0

	CPPFLAGS =   

	DLDFLAGS = -Wl,--compress-debug-sections=zlib -fstack-protector-strong -pie  

	SOLIBS = -lz -lpthread -lrt -lrt -ldl -lcrypt -lm 

	LANG = en_US.UTF-8

	LC_ALL = 

	LC_CTYPE = 

	MFLAGS = 

gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44)

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.



compiling ./main.c

compiling dmydln.c

compiling miniinit.c

In file included from vm_core.h:83:0,

                 from iseq.h:14,

                 from mini_builtin.c:3,

                 from miniinit.c:51:

thread_pthread.h:108:43: error: expected ���=���, ���,���, ���;���, ���asm��� or ���__attribute__��� before ���struct���

     RUBY_EXTERN RB_THREAD_LOCAL_SPECIFIER struct rb_execution_context_struct *ruby_current_ec;

                                           ^

In file included from iseq.h:14:0,

                 from mini_builtin.c:3,

                 from miniinit.c:51:

vm_core.h: In function ���rb_current_execution_context���:

vm_core.h:1870:34: error: ���ruby_current_ec��� undeclared (first use in this function)

     rb_execution_context_t *ec = ruby_current_ec;

                                  ^

vm_core.h:1870:34: note: each undeclared identifier is reported only once for each function it appears in

miniinit.c: At top level:

cc1: warning: unrecognized command line option "-Wno-tautological-compare" [enabled by default]

cc1: warning: unrecognized command line option "-Wno-self-assign" [enabled by default]

cc1: warning: unrecognized command line option "-Wno-parentheses-equality" [enabled by default]

cc1: warning: unrecognized command line option "-Wno-constant-logical-operand" [enabled by default]

cc1: warning: unrecognized command line option "-Wno-cast-function-type" [enabled by default]

make: *** [miniinit.o] Error 1



```



Both Ruby 3.0.4 and 3.1.2 build without error and pass (all but one of) the `make check` tests.



I know RHEL 7 is getting to be pretty old; I suspect a factor here are the ancient build tools available to me. But... EOL for Ruby 2.7 comes before the one for RHEL 7, so I'm trying to prioritize.



---Files--------------------------------

ruby322BuildFailure-20230404.Dockerfile (531 Bytes)

ruby-3.0.6-config.status (33.2 KB)

ruby-3.0.6-config.log (1.33 MB)

ruby-3.1.4-config.log (1.36 MB)

ruby-3.1.4-config.status (32.8 KB)

ruby-3.2.2-config.status (33.4 KB)

ruby-3.2.2-config.log (1.44 MB)





-- 

https://bugs.ruby-lang.org/

 ______________________________________________
 ruby-core mailing list -- ruby-core@ml.ruby-lang.org
 To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
 ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/