RFR 8022183: GCC 4.56 changes default setting for omit-frame-pointer which breaks hotspot stack walking
David Holmes
david.holmes at oracle.com
Wed Aug 21 20:19:20 PDT 2013
Hi Harold,
I know you modelled this on the code in amd64.make but it really seems
to me that this belongs in gcc.make. Note that gcc.make already contains
related flags for clang:
ifeq ($(USE_CLANG), true)
# Before Clang 3.1, we had to pass the stack alignment specification
directly to llvm with the help of '-mllvm'
# Starting with version 3.1, Clang understands the
'-mstack-alignment' (and rejects '-mllvm -stack-alignment')
ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \(
$(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 1 \) \))" "0"
STACK_ALIGNMENT_OPT = -mno-omit-leaf-frame-pointer -mstack-alignment=16
else
STACK_ALIGNMENT_OPT = -mno-omit-leaf-frame-pointer -mllvm
-stack-alignment=16
endif
endif
If placed in gcc.make the code in amd64.make could be removed.
Hmmm, it also seems to me that this change will also add the flag for
clang (as does the existing amd5=64 code). I'm unsure if that is good or
bad? Maybe one of our clang experts could chime in if they are on this list.
Thanks,
David
On 22/08/2013 7:19 AM, harold seigel wrote:
> Hi,
>
> Please review this small fix for bug 8022183. This fix is needed in
> order to build hotspot on 32-bit Linux with newer versions of gcc. The
> fix explicitly specifies "-fno-omit-frame-pointer" in the makefile for
> 32-bit Linux.
>
> The fix was tested using NMT with -version and with GCBasher.
>
> Open webrev at: http://cr.openjdk.java.net/~hseigel/bug_8022183/
> <http://cr.openjdk.java.net/%7Ehseigel/bug_8022183/>
>
> bug: http://bugs.sun.com/view_bug.do?bug_id=8022183
>
> JBS bug: https://jbs.oracle.com/bugs/browse/JDK-8022183
>
> Thanks, Harold
More information about the hotspot-runtime-dev
mailing list