Bug #12120
closed
[target/sh4] error: 'asm' operand requires impossible reload
Added by glaubitz (John Paul Adrian Glaubitz) over 8 years ago.
Updated over 5 years ago.
Description
Hello!
ruby2.3 fails to build from source on sh4 (Hitachi/Renesas SuperH), the build fails with 1:
gcc -mieee -g -O2 -fstack-protector-strong -Wformat -Werror=format-security -fPIC -D_FORTIFY_SOURCE=2 -fstack-protector -fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT -Wdate-time -D_FORTIFY_SOURCE=2 -I. -I.ext/include/sh4-linux-gnu -I./include -I. -o vm.o -c vm.c
In file included from probes.h:10:0,
from vm.c:23:
vm_exec.c: In function 'vm_exec_core':
probes.h:21:1: error: 'asm' operand requires impossible reload
DTRACE_PROBE4 (ruby, method__entry, arg1, arg2, arg3, arg4)
^
This appears to be a regression in ruby from version 2.2 to 2.3 since ruby2.2 builds fine on the exact same machine 2. Let me know if you need any more input. The logs can be directly viewed in 1 and 2 and you can set up your own sh4 chroot with the documentation in 3.
Thanks,
Adrian
- Description updated (diff)
- Status changed from Open to Feedback
What constraints does DTRACE_PROBE4
macro have?
Hi Nobuyosh!
Nobuyoshi Nakada wrote:
What constraints does DTRACE_PROBE4
macro have?
Sorry for the late reply, I apparently didn't get a notification.
I'm not sure where to retrieve that information. Can you point me to where that macro is defined?
Thanks,
Adrian
Hi!
Just a quick update: I have started a discussion in the gcc bug tracker [1] since I am not so sure whether this is actually a bug in ruby or in gcc. One of the gcc developers, Oleg Endo, has suggested adding "-mlra" to gcc to use the local register allocator and it turns out that vm.c will then build without any issue.
However, adding -mlra as a global gcc option for the whole ruby tree will trigger a different compiler problem. So, unless there is a simple way to pass -mlra to gcc for just vm.c, I haven't found a solution yet.
I'll wait for more feedback from the gcc developers though as I have provided them with the preprocessed source for vm.c. Maybe they'll figure out this is something to be fixed in gcc.
Thanks,
Adrian
[1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70416
- Status changed from Feedback to Closed
Also available in: Atom
PDF
Like0
Like0Like0Like0Like0