From: mliska@... Date: 2014-04-01T15:05:51+00:00 Subject: [ruby-core:61801] [ruby-trunk - Bug #9692] __builtin_longjmp is called with a value greater than 1 (GCC compilation error) Issue #9692 has been updated by Martin Li��ka. File ruby-configure-builtin_longjmp.patch added ---------------------------------------- Bug #9692: __builtin_longjmp is called with a value greater than 1 (GCC compilation error) https://bugs.ruby-lang.org/issues/9692#change-46036 * Author: Martin Li��ka * Status: Open * Priority: Normal * Assignee: * Category: * Target version: * ruby -v: 2.0.0-p353 * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN ---------------------------------------- Hello, during testing of LTO on a gentoo machine: Linux qemubox 3.12.13-gentoo #2 SMP Fri Mar 28 22:30:38 Local time zone must be set--see zic x86_64 Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz GenuineIntel GNU/Linux Configure detects: checking for __builtin_setjmp... yes checking for setjmp type... __builtin_setjmp Problem is that ruby calls longjmp with value greater than 1, e.g. TAG_RAISE (0x6). With -flto compiler proves that __builtin_longjmp is always called with such a value and following errors are displayed: eval.c: In function ���rb_jump_tag���: eval.c:668:5: error: ���__builtin_longjmp��� second argument must be 1 JUMP_TAG(tag); ^ thread.c: In function ���rb_threadptr_to_kill���: thread.c:1887:5: error: ���__builtin_longjmp��� second argument must be 1 TH_JUMP_TAG(th, TAG_FATAL); ^ vm.c: In function ���vm_exec���: vm.c:1413:3: error: ���__builtin_longjmp��� second argument must be 1 JUMP_TAG(state); ^ eval.c: In function ���setup_exception���: eval.c:437:34: error: ���__builtin_longjmp��� second argument must be 1 if (INTERNAL_EXCEPTION_P(mesg)) JUMP_TAG(TAG_FATAL); ^ eval.c:502:2: error: ���__builtin_longjmp��� second argument must be 1 JUMP_TAG(TAG_FATAL); ^ eval.c: In function ���rb_raise_jump���: eval.c:662:5: error: ���__builtin_longjmp��� second argument must be 1 JUMP_TAG(TAG_RAISE); ^ eval.c: In function ���rb_longjmp���: eval.c:521:5: error: ���__builtin_longjmp��� second argument must be 1 JUMP_TAG(tag); ^ gc.c: In function ���rb_memerror���: gc.c:3417:2: error: ���__builtin_longjmp��� second argument must be 1 JUMP_TAG(TAG_RAISE); ^ gcc --version: gcc (GCC) 4.9.0 20140331 (experimental) ---Files-------------------------------- ruby-configure-builtin_longjmp.patch (573 Bytes) -- https://bugs.ruby-lang.org/