RFR (M): 8036767 PPC64: Support for little endian execution model
David Holmes
david.holmes at oracle.com
Fri Mar 21 06:16:56 UTC 2014
On 21/03/2014 4:14 PM, Alexander Smundak wrote:
> 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
Thanks Alexander - the build changes look good to me.
David
-----
> 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