Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 May 2019 20:16:48 -0700
From:      Mark Millard <marklmi@yahoo.com>
To:        ports-list freebsd <freebsd-ports@freebsd.org>, "powerpc@freebsd.org" <powerpc@FreeBSD.org>
Subject:   32-bit powerpc FreeBSD head -r347549 ports -r501994: lang/ruby25 build via poudriere failed via SIGSEGV in lib/csu/powerpc/crtsavres.S
Message-ID:  <5B5EE881-05F4-4256-ACDA-1677B2219696@yahoo.com>

next in thread | raw e-mail | index | archive | help
[The FreeBSD is from a gcc 4.2.1 toolchain based build.]

My poudriere build of lang/ruby25 failed with:

--- compile.o ---
In file included from ./include/ruby.h:33,
                 from internal.h:15,
                 from compile.c:12:
In function 'iseq_build_kw.isra.76',
    inlined from 'rb_iseq_build_from_ary' at compile.c:7865:30:
./include/ruby/ruby.h:1587:36: warning: argument 1 range [2147483648, =
4294967295] exceeds maximum object size 2147483647 =
[-Walloc-size-larger-than=3D]
 #define RB_ALLOC_N(type,n) =
((type*)ruby_xmalloc2((size_t)(n),sizeof(type)))
                                    =
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./include/ruby/ruby.h:1593:25: note: in expansion of macro 'RB_ALLOC_N'
 #define ALLOC_N(type,n) RB_ALLOC_N(type,n)
                         ^~~~~~~~~~
compile.c:7765:11: note: in expansion of macro 'ALLOC_N'
     dvs =3D ALLOC_N(VALUE, (unsigned int)default_len);
           ^~~~~~~
In file included from ./include/ruby/ruby.h:29,
                 from ./include/ruby.h:33,
                 from internal.h:15,
                 from compile.c:12:
compile.c: In function 'rb_iseq_build_from_ary':
./include/ruby/defines.h:195:18: note: in a call to allocation function =
'ruby_xmalloc2' declared here
 #define xmalloc2 ruby_xmalloc2
                  ^~~~~~~~~~~~~
./include/ruby/defines.h:208:7: note: in expansion of macro 'xmalloc2'
 void *xmalloc2(size_t,size_t) RUBY_ATTR_ALLOC_SIZE((1,2));
       ^~~~~~~~
--- miniruby ---
linking miniruby
--- .rbconfig.time ---
--- encdb.h ---
generating encdb.h
--- .rbconfig.time ---
Segmentation fault (core dumped)
*** [.rbconfig.time] Error code 139

make[1]: stopped in /wrkdirs/usr/ports/lang/ruby25/work/ruby-2.5.5
--- encdb.h ---
Segmentation fault (core dumped)
*** [encdb.h] Error code 139

make[1]: stopped in /wrkdirs/usr/ports/lang/ruby25/work/ruby-2.5.5
2 errors


The segmentation faults have backtraces like:

Core was generated by `./miniruby -I./lib -I. -I.ext/common -n -e =
BEGIN{version=3DARGV.shift;mis=3DARGV.dup'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  _restgpr_30_x () at /usr/src/lib/csu/powerpc/crtsavres.S:186
186	RESTGPR_X(30)
(gdb) bt
#0  _restgpr_30_x () at /usr/src/lib/csu/powerpc/crtsavres.S:186
#1  0x0198d998 in rb_sym_intern (ptr=3Dptr@entry=3D0x1a0f3b8 "begin", =
len=3Dlen@entry=3D-1317676078, enc=3D<optimized out>) at symbol.c:1026
#2  0x0198da38 in rb_sym_intern_ascii (ptr=3Dptr@entry=3D0x1a0f3b8 =
"begin", len=3D-1317676078) at symbol.c:1038
#3  0x0198da6c in rb_sym_intern_ascii_cstr (ptr=3Dptr@entry=3D0x1a0f3b8 =
"begin") at symbol.c:1044
#4  0x01987b3c in struct_make_members_list (ar=3Dar@entry=3D0xffffcef4) =
at struct.c:359
#5  0x0198a810 in rb_struct_define_without_accessor =
(class_name=3Dclass_name@entry=3D0x1a116c0 "Range", super=3D1107060600, =
alloc=3Dalloc@entry=3D0x1922b70 <range_alloc>) at struct.c:420
#6  0x01925664 in Init_Range () at range.c:1314
#7  0x018ac2d4 in rb_call_inits () at inits.c:43
#8  0x018869c8 in ruby_setup () at eval.c:61
#9  0x01888a8c in ruby_init () at eval.c:78
#10 0x01812f50 in main (argc=3D<optimized out>, argv=3D<optimized out>) =
at ./main.c:41


Core was generated by `./miniruby -I./lib -I. -I.ext/common =
./tool/generic_erb.rb -c -o encdb.h ./templ'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  _restgpr_30_x () at /usr/src/lib/csu/powerpc/crtsavres.S:186
186	RESTGPR_X(30)
(gdb) bt
#0  _restgpr_30_x () at /usr/src/lib/csu/powerpc/crtsavres.S:186
#1  0x0198d998 in rb_sym_intern (ptr=3Dptr@entry=3D0x1a0f3b8 "begin", =
len=3Dlen@entry=3D789211824, enc=3D<optimized out>) at symbol.c:1026
#2  0x0198da38 in rb_sym_intern_ascii (ptr=3Dptr@entry=3D0x1a0f3b8 =
"begin", len=3D789211824) at symbol.c:1038
#3  0x0198da6c in rb_sym_intern_ascii_cstr (ptr=3Dptr@entry=3D0x1a0f3b8 =
"begin") at symbol.c:1044
#4  0x01987b3c in struct_make_members_list (ar=3Dar@entry=3D0xffffcfd4) =
at struct.c:359
#5  0x0198a810 in rb_struct_define_without_accessor =
(class_name=3Dclass_name@entry=3D0x1a116c0 "Range", super=3D1107060600, =
alloc=3Dalloc@entry=3D0x1922b70 <range_alloc>) at struct.c:420
#6  0x01925664 in Init_Range () at range.c:1314
#7  0x018ac2d4 in rb_call_inits () at inits.c:43
#8  0x018869c8 in ruby_setup () at eval.c:61
#9  0x01888a8c in ruby_init () at eval.c:78
#10 0x01812f50 in main (argc=3D<optimized out>, argv=3D<optimized out>) =
at ./main.c:41

Where /usr/src/lib/csu/powerpc/crtsavres.S has the ma ro below in use:

#define RESTGPR_X(r)    _CRTENTRY(__CONCAT(__CONCAT(_restgpr_,r),_x))   =
\
        lwz     r,(-128 + r*4)(11)


For reference:

(gdb) disass
Dump of assembler code for function _restgpr_30_x:
=3D> 0x41b3ced8 <+0>:	lwz     r30,-8(r11)

(gdb) info reg r11
r11            0x6f                111


=3D=3D=3D
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5B5EE881-05F4-4256-ACDA-1677B2219696>