PPC Linux 64 needs -fsigned-char option for gcc
zhouyx at linux.vnet.ibm.com
Fri Jan 11 10:02:38 UTC 2013
Do you have any idea about the modification considering David Holmes'
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:
> 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)
> CFLAGS_REQUIRED_arm += -fsigned-char -D_LITTLE_ENDIAN
> CFLAGS_REQUIRED_ppc += -fsigned-char -D_BIG_ENDIAN
> CFLAGS_REQUIRED_ppc64 += -m64
> LDFLAGS_COMMON_ppc64 += -m64 -L/lib64 -Wl,-melf64ppc
> Notice that we don't set '-D_BIG_ENDIAN' 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.
> On Fri, Dec 21, 2012 at 10:40 AM, Sean Chou <zhouyx at linux.vnet.ibm.com>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