PPC Linux 64 needs -fsigned-char option for gcc

David Holmes david.holmes at oracle.com
Fri Dec 21 13:13:42 UTC 2012


One thing that would be nice to come out of this porting effort is 
better organisation of platform specific aspects. I would prefer to see 
an arch.make file for each arch rather than have all these platform 
specific sections. (It was fine when you only had a couple of flavours 
but now the balance has shifted).

The JDK ppc/arm references were simply the minimum we needed for our 
embedded builds to work. They don't really offer proper arm/ppc support. 
For hotspot we rely on setting ARCH and overriding EXTRA_CFLAGS via the 
environment or make invocation, so these architectures are not treated 
as first-class citizens by hotspot.

This particular example is particularly bad because the arm/ppc values 
are completely different to the kinds of values set for the other archs! 
I don't even think we continue to use these in the new build.

David
----

On 21/12/2012 7:40 PM, Sean Chou wrote:
> Hello,
>
> We found -fsigned-char is added to ppc platform, but not added to ppc64
> platform. As they are different platforms, I think it is needed for
> ppc64 as well. Currently I just added one line modification as follow,
> but there may be more places to modify. If some one can give some
> comments, I can make a complete webrev.
>
> The buggy scenario we found needs closed code to reproduce, so it is not
> reproduced with current openjdk build on ppc linux from AIX porting
> project. I tested with ibmjdk, the patch works.
>
> I found CFLAGS_REQUIRED_ppc is from changeset
> http://hg.openjdk.java.net/jdk8/jdk8/jdk/rev/54d8193f177b  . Is it
> enough to add ppc64 option for places ppc appears in that patch?
>
> ///////////////////////// the patch ////////////////////////
>
> diff --git a/make/common/Defs-linux.gmk b/make/common/Defs-linux.gmk
> --- a/make/common/Defs-linux.gmk
> +++ b/make/common/Defs-linux.gmk
> @@ -196,6 +196,7 @@
>   LDFLAGS_COMMON_sparc    += -m32 -mcpu=v9
>   CFLAGS_REQUIRED_arm     += -fsigned-char -D_LITTLE_ENDIAN
>   CFLAGS_REQUIRED_ppc     += -fsigned-char -D_BIG_ENDIAN
> +CFLAGS_REQUIRED_ppc64   += -fsigned-char -D_BIG_ENDIAN
>   ifeq ($(ZERO_BUILD), true)
>     CFLAGS_REQUIRED       =  $(ZERO_ARCHFLAG)
>     ifeq ($(ZERO_ENDIANNESS), little)
>
>
> --
>
> Best Regards,
> Sean Chou



More information about the core-libs-dev mailing list