PPC Linux 64 needs -fsigned-char option for gcc (original) (raw)

Sean Chou zhouyx at linux.vnet.ibm.com
Fri Jan 11 10:02:38 UTC 2013


Hi Volker,

Do you have any idea about the modification considering David Holmes' comments ?

On Fri, Dec 21, 2012 at 6:48 PM, Volker Simonis <volker.simonis at gmail.com>wrote:

Hi Sean,

honestly speaking, I wasn't aware of this problem until now and I just checked that we currently don't use this option, neither internally nor in our port. I found the following nice explanation of the issue: http://www.network-theory.co.uk/docs/gccintro/gccintro71.html It seems that you only get problems if your programs relies on the fact that 'char' is either unsigned or signed. I suppose that the current OpenJDK doesn't rely on such assumptions (which is good) because we didn't saw any of them until now. If I understand you right, you add some closed code the the JDK which has problems because it makes such assumptions. Is that right? If yes, you should probably first fix that code in the way described in the referenced document. Wouldn't that be possible? Regarding your patch: I suppose you took it against an original JDK and not our port, because in our port we already have the following lines (at least in http://hg.openjdk.java.net/ppc-aix-port/jdk7u//jdk because we haven't started to work on jdk8 until now) CFLAGSREQUIREDarm += -fsigned-char -DLITTLEENDIAN CFLAGSREQUIREDppc += -fsigned-char -DBIGENDIAN CFLAGSREQUIREDppc64 += -m64 LDFLAGSCOMMONppc64 += -m64 -L/lib64 -Wl,-melf64ppc Notice that we don't set '-DBIGENDIAN' because it is the default. Didn't you observed your problems with jdk7 on Linux/PPC? I think we should patch JDK7 first if this is really necessary. Regards, Volker

On Fri, Dec 21, 2012 at 10:40 AM, Sean Chou <zhouyx at linux.vnet.ibm.com>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 CFLAGSREQUIREDppc 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 @@ LDFLAGSCOMMONsparc += -m32 -mcpu=v9 CFLAGSREQUIREDarm += -fsigned-char -DLITTLEENDIAN CFLAGSREQUIREDppc += -fsigned-char -DBIGENDIAN +CFLAGSREQUIREDppc64 += -fsigned-char -DBIGENDIAN ifeq ($(ZEROBUILD), true) CFLAGSREQUIRED = $(ZEROARCHFLAG) ifeq ($(ZEROENDIANNESS), little)

-- Best Regards, Sean Chou

-- Best Regards, Sean Chou



More information about the core-libs-dev mailing list