Bug #12120
closed[target/sh4] error: 'asm' operand requires impossible reload
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
Updated by nobu (Nobuyoshi Nakada) almost 9 years ago
- Description updated (diff)
- Status changed from Open to Feedback
What constraints does DTRACE_PROBE4
macro have?
Updated by glaubitz (John Paul Adrian Glaubitz) over 8 years ago
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
Updated by glaubitz (John Paul Adrian Glaubitz) over 8 years ago
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
Updated by jeremyevans0 (Jeremy Evans) over 5 years ago
- Status changed from Feedback to Closed