RFR (M): 8036767 PPC64: Support for little endian execution model
Lindenmaier, Goetz
goetz.lindenmaier at sap.com
Fri Mar 21 09:06:57 UTC 2014
Hi Sasha,
I tried to test your change (02), but it does not work.
On linux ppc be;) I get
make[4]: Leaving directory `/net/usr.work/d045726/oJ/builds/8036767-comp-ld9502-dbg/linux_ppc64_compiler2/debug'
make[4]: Entering directory `/net/usr.work/d045726/oJ/builds/8036767-comp-ld9502-dbg/linux_ppc64_compiler2/debug'
/sapmnt/home1/d045726/oJ/8036767-hs-comp/make/linux/makefiles/ppc64.make:30: *** OPENJDK_TARGET_CPU_ENDIAN has not been passed to this makefile. Stop.
which is just what you discussed with David.
On Aix I get
"/sapmnt/home1/d045726/oJ/8036767-aix-hs-comp/src/cpu/ppc/vm/bytes_ppc.hpp", line 277.10: 1540-0836 (S) The #include file "bytes_linux_ppc.inline.hpp" is not found.
I think we fixed this before, you need to add
#ifdef TARGET_OS_ARCH_linux_ppc
around the include.
Also, you need to fix os_linux.cpp: remove
+ #if defined(PPC64)
else other platforms will not build (linux x86_64):
/sapmnt/home/d045726/oJ/8036767-hs-comp/src/os/linux/vm/os_linux.cpp:1972: error: ‘PPC64_ELFDATA2XSB’ was not declared in this scope
Thanks for undoing the change in make/linux/Makefile!
Best regards,
Goetz.
-----Original Message-----
From: hotspot-dev [mailto:hotspot-dev-bounces at openjdk.java.net] On Behalf Of Alexander Smundak
Sent: Friday, March 21, 2014 7:15 AM
To: David Holmes
Cc: build-dev; HotSpot Open Source Developers
Subject: Re: RFR (M): 8036767 PPC64: Support for little endian execution model
Revised the patch to use OPENJDK_TARGET_CPU_ENDIAN instead. The new
version is at:
http://cr.openjdk.java.net/~martin/asmundak/8036767/hotspot/webrev.02
On Thu, Mar 20, 2014 at 8:57 PM, David Holmes <david.holmes at oracle.com> wrote:
> On 21/03/2014 1:42 PM, Alexander Smundak wrote:
>>
>> On Thu, Mar 20, 2014 at 7:39 PM, David Holmes <david.holmes at oracle.com>
>> wrote:
>>>
>>> The build changes look much cleaner to me - thanks.
>>
>> It's at the expense of platform directory being ppc64/ instead of the
>> conventional ppc64le/, and having rather ugly check in the ppc64.make
>> file.
>>
>>
>>> Why are you not using OPENJDK_TARGET_CPU_ENDIAN directly? Ah! Because it
>>> doesn't reach down into the <arch>.make files. ZERO_ENDIANNESS does but
>>> seems inappropriate if this is not Zero specific. (I'm also not seeing
>>> how
>>> ZERO_ENDIANNESS reaches down that far either ??).
>>
>> configure script writes hotspot-spec.gmk file to the top-level build
>> directory,
>> and it contains
>> ZERO_ENDIANNESS=$(OPENJDK_TARGET_CPU_ENDIAN)
>
>
> Yes but my query was how does ZERO_ENDIANNESS become visible in ppc64.make?
> The answer to which is that the generated flags.make file has an explicit
> include of hotspot-spec.gmk. In which case you don't need to use
> ZERO_ENDIANNESS you can just use $(OPENJDK_TARGET_CPU_ENDIAN) directly.
> (Which now begs the question as to why ZERO_ENDIANNESS even exists - perhaps
> it predates the integration with the new build.)
>
> David
> -----
>
>
>> The patch contains the fuse in ppc64.make, the build will fail unless
>> ZERO_ENDIANNESS is set.
>>
>>>> jdk: http://cr.openjdk.java.net/~martin/asmundak/8036767/jdk/webrev.01
>>>
>>>
>>>
>>> This change:
>>>
>>> - LDFLAGS_SUFFIX := $(ALSA_LIBS) -ljava -ljvm, \
>>> + LDFLAGS_SUFFIX := $(ALSA_LIBS) $(LIBDL) $(LIBM) -lpthread -ljava
>>> -ljvm, \
>>>
>>> seems unrelated to endianness. Why is it needed, and why is it being
>>> applied
>>> to all platforms?
>>
>> Sorry, this is not needed, it's the problem with the toolchain I am using.
>>
>> Please ignore this patch.
>>
>
More information about the build-dev
mailing list