Issue #14480 has been updated by vo.x (Vit Ondruch).


This appears to be longstanding GCC issue on aarch64, which was recently exposed by change in GCC defaults [1]. However, the GCC upstream is questioning usage of \_\_builtin_setjmp/\_\_builtin_longjmp. Can somebody provide answer to this question [2]:


> I notice that in our builds, RUBY_SETJMP is using "__builtin_setjmp", rather
> than "setjmp".
> 
> This seems to come from the "configure" check; the rpm build log has:
>   "checking for setjmp type... __builtin_setjmp"
> 
> Is this the default for upstream Ruby?
> 
> A GCC upstream developer notes:
> > To me any use of \_\_builtin_setjmp/\_\_builtin_longjmp is almost always incorrect.
> (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521#c3)

[1]: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84521
[2]: https://bugzilla.redhat.com/show_bug.cgi?id=1545239#c30

----------------------------------------
Bug #14480: miniruby crashing when compiled with -O2 or -O1 on aarch64
https://bugs.ruby-lang.org/issues/14480#change-70611

* Author: vo.x (Vit Ondruch)
* Status: Open
* Priority: Normal
* Assignee: 
* Target version: 
* ruby -v: ruby 2.5.0p0 (2017-12-25 revision 61468) [aarch64-linux]
* Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN
----------------------------------------
Recently, it is not possible to build Ruby 2.5.0 on aarch64 on Fedora Rawhide, because miniruby fails during build:

~~~
... snip ...

./miniruby -I./lib -I. -I.ext/common  -n \
-e 'BEGIN{version=ARGV.shift;mis=ARGV.dup}' \
-e 'END{abort "UNICODE version mismatch: #{mis}" unless mis.empty?}' \
-e '(mis.delete(ARGF.path); ARGF.close) if /ONIG_UNICODE_VERSION_STRING +"#{Regexp.quote(version)}"/o' \
10.0.0 ./enc/unicode/10.0.0/casefold.h ./enc/unicode/10.0.0/name2ctype.h 
generating encdb.h
./miniruby -I./lib -I. -I.ext/common  ./tool/generic_erb.rb -c -o encdb.h ./template/encdb.h.tmpl ./enc enc
generating prelude.c
./miniruby -I./lib -I. -I.ext/common  ./tool/generic_erb.rb -I. -c -o prelude.c \
	./template/prelude.c.tmpl ./prelude.rb ./gem_prelude.rb ./abrt_prelude.rb
*** stack smashing detected ***: <unknown> terminated
encdb.h updated

... snip ...
~~~

This might by Ruby or gcc issue. Not sure yet. However, there is already lengthy analysis available in Fedora's Bugzilla [1]. Would be anybody able to help to resolve this issue?


[1]: https://bugzilla.redhat.com/show_bug.cgi?id=1545239

---Files--------------------------------
Dockerfile (573 Bytes)


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

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>