PPC Linux 64 needs -fsigned-char option for gcc
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.
On 21/12/2012 7:40 PM, Sean Chou wrote:
> 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