[ruby-core:68832] [Ruby trunk - Bug #11030] Ruby 2.2.1 fails to compile with hardened GCC

From: ruby@...
Date: 2015-04-10 17:00:30 UTC
List: ruby-core #68832
Issue #11030 has been updated by Vadim A. Misbakh-Soloviov.


Uh... Sorry for delay! Somewhy I didn't get email notification from your re=
dmine :(

So, I'm not wure if this is exactly what you need (if it is not =E2=80=94 I=
'd be happy to provide output of any gdb command you tell ;) ), but:

~~~
(gdb)  cont
Continuing.

Program received signal SIGSEGV, Segmentation fault.
0x0000555555704b9f in reserve_stack ()
(gdb)  bt
#0  0x0000555555704b9f in reserve_stack ()
#1  0x0000555555707a4b in ruby_init_stack ()
#2  0x000055555557ce32 in main ()
(gdb) info all
rax            0x7fcca0 8375456
rbx            0x7fffff7ff100   140737479962880
rcx            0x7fffff7fed60   140737479961952
rdx            0x7fc000 8372224
rsi            0x7fffffffbd80   140737488338304
rdi            0x3      3
rbp            0x7fffffffbeb0   0x7fffffffbeb0
rsp            0x7fffff7fed60   0x7fffff7fed60
r8             0x5555559e3f20   93824997015328
r9             0x5555559e3f20   93824997015328
r10            0x5555559e3f10   93824997015312
r11            0x246    582
r12            0x7fdf00 8380160
r13            0x7fffffffc020   140737488338976
r14            0x0      0
r15            0x0      0
rip            0x555555704b9f   0x555555704b9f <reserve_stack+175>
eflags         0x10206  [ PF IF RF ]
cs             0x33     51
ss             0x2b     43
ds             0x0      0
es             0x0      0
fs             0x0      0
gs             0x0      0
st0            0        (raw 0x00000000000000000000)
st1            0        (raw 0x00000000000000000000)
st2            0        (raw 0x00000000000000000000)
st3            0        (raw 0x00000000000000000000)
st4            0        (raw 0x00000000000000000000)
st5            0        (raw 0x00000000000000000000)
st6            0        (raw 0x00000000000000000000)
st7            0        (raw 0x00000000000000000000)
fctrl          0x37f    895
fstat          0x0      0
ftag           0xffff   65535
fiseg          0x0      0
fioff          0x0      0
foseg          0x0      0
fooff          0x0      0
fop            0x0      0
mxcsr          0x1f80   [ IM DM ZM OM UM PM ]
ymm0           {v8_float =3D {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_d=
ouble =3D {0x0, 0x0, 0x0, 0x0}, v32_int8 =3D {0x0, 0xff, 0x0, 0x0, 0x0, 0x0=
, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0 <repeats 20 times>}, v16_int16 =3D {0x=
ff00,
    0x0, 0x0, 0x0, 0x0, 0xff00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0=
, 0x0}, v8_int32 =3D {0xff00, 0x0, 0xff000000, 0x0, 0x0, 0x0, 0x0, 0x0}, v4=
_int64 =3D {0xff00, 0xff000000, 0x0, 0x0}, v2_int128 =3D {
    0x00000000ff000000000000000000ff00, 0x00000000000000000000000000000000}}
ymm1           {v8_float =3D {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_d=
ouble =3D {0x0, 0x0, 0x0, 0x0}, v32_int8 =3D {0x0 <repeats 32 times>}, v16_=
int16 =3D {0x0 <repeats 16 times>}, v8_int32 =3D {0x0, 0x0, 0x0, 0x0, 0x0, =
0x0,
    0x0, 0x0}, v4_int64 =3D {0x0, 0x0, 0x0, 0x0}, v2_int128 =3D {0x00000000=
000000000000000000000000, 0x00000000000000000000000000000000}}
ymm2           {v8_float =3D {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_d=
ouble =3D {0x0, 0x0, 0x0, 0x0}, v32_int8 =3D {0x0 <repeats 32 times>}, v16_=
int16 =3D {0x0 <repeats 16 times>}, v8_int32 =3D {0x0, 0x0, 0x0, 0x0, 0x0, =
0x0,
    0x0, 0x0}, v4_int64 =3D {0x0, 0x0, 0x0, 0x0}, v2_int128 =3D {0x00000000=
000000000000000000000000, 0x00000000000000000000000000000000}}
ymm3           {v8_float =3D {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_d=
ouble =3D {0x0, 0x0, 0x0, 0x0}, v32_int8 =3D {0x0 <repeats 32 times>}, v16_=
int16 =3D {0x0 <repeats 16 times>}, v8_int32 =3D {0x0, 0x0, 0x0, 0x0, 0x0, =
0x0,
    0x0, 0x0}, v4_int64 =3D {0x0, 0x0, 0x0, 0x0}, v2_int128 =3D {0x00000000=
000000000000000000000000, 0x00000000000000000000000000000000}}
ymm4           {v8_float =3D {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_d=
ouble =3D {0x0, 0x0, 0x0, 0x0}, v32_int8 =3D {0x0 <repeats 32 times>}, v16_=
int16 =3D {0x0 <repeats 16 times>}, v8_int32 =3D {0x0, 0x0, 0x0, 0x0, 0x0, =
0x0,
    0x0, 0x0}, v4_int64 =3D {0x0, 0x0, 0x0, 0x0}, v2_int128 =3D {0x00000000=
000000000000000000000000, 0x00000000000000000000000000000000}}
ymm5           {v8_float =3D {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_d=
ouble =3D {0x0, 0x0, 0x0, 0x0}, v32_int8 =3D {0x0 <repeats 32 times>}, v16_=
int16 =3D {0x0 <repeats 16 times>}, v8_int32 =3D {0x0, 0x0, 0x0, 0x0, 0x0, =
0x0,
---Type <return> to continue, or q <return> to quit---
    0x0, 0x0}, v4_int64 =3D {0x0, 0x0, 0x0, 0x0}, v2_int128 =3D {0x00000000=
000000000000000000000000, 0x00000000000000000000000000000000}}
ymm6           {v8_float =3D {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_d=
ouble =3D {0x0, 0x0, 0x0, 0x0}, v32_int8 =3D {0x0 <repeats 32 times>}, v16_=
int16 =3D {0x0 <repeats 16 times>}, v8_int32 =3D {0x0, 0x0, 0x0, 0x0, 0x0, =
0x0,
    0x0, 0x0}, v4_int64 =3D {0x0, 0x0, 0x0, 0x0}, v2_int128 =3D {0x00000000=
000000000000000000000000, 0x00000000000000000000000000000000}}
ymm7           {v8_float =3D {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_d=
ouble =3D {0x0, 0x0, 0x0, 0x0}, v32_int8 =3D {0x0 <repeats 32 times>}, v16_=
int16 =3D {0x0 <repeats 16 times>}, v8_int32 =3D {0x0, 0x0, 0x0, 0x0, 0x0, =
0x0,
    0x0, 0x0}, v4_int64 =3D {0x0, 0x0, 0x0, 0x0}, v2_int128 =3D {0x00000000=
000000000000000000000000, 0x00000000000000000000000000000000}}
ymm8           {v8_float =3D {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_d=
ouble =3D {0x0, 0x0, 0x0, 0x0}, v32_int8 =3D {0x0 <repeats 32 times>}, v16_=
int16 =3D {0x0 <repeats 16 times>}, v8_int32 =3D {0x0, 0x0, 0x0, 0x0, 0x0, =
0x0,
    0x0, 0x0}, v4_int64 =3D {0x0, 0x0, 0x0, 0x0}, v2_int128 =3D {0x00000000=
000000000000000000000000, 0x00000000000000000000000000000000}}
ymm9           {v8_float =3D {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_d=
ouble =3D {0x0, 0x0, 0x0, 0x0}, v32_int8 =3D {0x0 <repeats 32 times>}, v16_=
int16 =3D {0x0 <repeats 16 times>}, v8_int32 =3D {0x0, 0x0, 0x0, 0x0, 0x0, =
0x0,
    0x0, 0x0}, v4_int64 =3D {0x0, 0x0, 0x0, 0x0}, v2_int128 =3D {0x00000000=
000000000000000000000000, 0x00000000000000000000000000000000}}
ymm10          {v8_float =3D {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_d=
ouble =3D {0x0, 0x0, 0x0, 0x0}, v32_int8 =3D {0x0 <repeats 32 times>}, v16_=
int16 =3D {0x0 <repeats 16 times>}, v8_int32 =3D {0x0, 0x0, 0x0, 0x0, 0x0, =
0x0,
    0x0, 0x0}, v4_int64 =3D {0x0, 0x0, 0x0, 0x0}, v2_int128 =3D {0x00000000=
000000000000000000000000, 0x00000000000000000000000000000000}}
ymm11          {v8_float =3D {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_d=
ouble =3D {0x0, 0x0, 0x0, 0x0}, v32_int8 =3D {0x0 <repeats 32 times>}, v16_=
int16 =3D {0x0 <repeats 16 times>}, v8_int32 =3D {0x0, 0x0, 0x0, 0x0, 0x0, =
0x0,
    0x0, 0x0}, v4_int64 =3D {0x0, 0x0, 0x0, 0x0}, v2_int128 =3D {0x00000000=
000000000000000000000000, 0x00000000000000000000000000000000}}
ymm12          {v8_float =3D {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_d=
ouble =3D {0x0, 0x8000000000000000, 0x0, 0x0}, v32_int8 =3D {0x0, 0xff, 0x0=
, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff,
    0x0 <repeats 16 times>}, v16_int16 =3D {0xff00, 0x0, 0xff00, 0x0, 0xff0=
0, 0x0, 0x0, 0xff00, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v8_int32 =3D =
{0xff00, 0xff00, 0xff00, 0xff000000, 0x0, 0x0, 0x0, 0x0}, v4_int64 =3D {
    0xff000000ff00, 0xff0000000000ff00, 0x0, 0x0}, v2_int128 =3D {0xff00000=
00000ff000000ff000000ff00, 0x00000000000000000000000000000000}}
ymm13          {v8_float =3D {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_d=
ouble =3D {0x0, 0x0, 0x0, 0x0}, v32_int8 =3D {0x0 <repeats 32 times>}, v16_=
int16 =3D {0x0 <repeats 16 times>}, v8_int32 =3D {0x0, 0x0, 0x0, 0x0, 0x0, =
0x0,
    0x0, 0x0}, v4_int64 =3D {0x0, 0x0, 0x0, 0x0}, v2_int128 =3D {0x00000000=
000000000000000000000000, 0x00000000000000000000000000000000}}
ymm14          {v8_float =3D {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_d=
ouble =3D {0x0, 0x0, 0x0, 0x0}, v32_int8 =3D {0x0 <repeats 32 times>}, v16_=
int16 =3D {0x0 <repeats 16 times>}, v8_int32 =3D {0x0, 0x0, 0x0, 0x0, 0x0, =
0x0,
    0x0, 0x0}, v4_int64 =3D {0x0, 0x0, 0x0, 0x0}, v2_int128 =3D {0x00000000=
000000000000000000000000, 0x00000000000000000000000000000000}}
ymm15          {v8_float =3D {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, v4_d=
ouble =3D {0x0, 0x0, 0x0, 0x0}, v32_int8 =3D {0x0 <repeats 32 times>}, v16_=
int16 =3D {0x0 <repeats 16 times>}, v8_int32 =3D {0x0, 0x0, 0x0, 0x0, 0x0, =
0x0,
    0x0, 0x0}, v4_int64 =3D {0x0, 0x0, 0x0, 0x0}, v2_int128 =3D {0x00000000=
000000000000000000000000, 0x00000000000000000000000000000000}}
(gdb)

~~~

----------------------------------------
Bug #11030:  Ruby 2.2.1 fails to compile with hardened GCC
https://bugs.ruby-lang.org/issues/11030#change-52097

* Author: Vadim A. Misbakh-Soloviov
* Status: Feedback
* Priority: Normal
* Assignee:=20
* ruby -v: 2.2.1
* Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN
----------------------------------------
Hi there!
I've discovered, that Ruby 2.2.1 can't be built using Hardened GCC (4.8 and=
 4.9).
Probably, that was introduced in that commit: http://svn.ruby-lang.org/cgi-=
bin/viewvc.cgi/tags/v2_2_1/thread_pthread.c?r1=3D48992&r2=3D49578&diff_form=
at=3Dh

Additional info and build logs can be found on downstream bug tracker: http=
s://bugs.gentoo.org/show_bug.cgi?id=3D542610
(unfortunately, ruby maintainers in downstream are slackers, so I going to =
report that to upstream myself).



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

In This Thread

Prev Next