OpenJDK7 port to the little endian PowerPC64

Lindenmaier, Goetz goetz.lindenmaier at sap.com
Thu Mar 6 05:20:37 PST 2014


Hi Sasha,

I opened a bug for this next change:
https://bugs.openjdk.java.net/browse/JDK-8036767

I had a look at the webrev for 7 you mailed around:

A small issue is in bytes_linux_ppc.inline.hpp:
+#ifndef OS_CPU_LINUX_PPC_VM_BYTES_LINUX_PPC_INLINE_HPP
+#define OS_CPU_LINUX_PPCLE_VM_BYTES_LINUX_PPC_INLINE_HPP
defines the wrong macro.
Also you need to add a copyright header.

You need to protect #include "bytes_linux_ppc.inline.hpp"
in bytes_ppc.hpp by #ifdef TARGET_OS_ARCH_linux_ppc, else it breaks the
aix build.
The comment above  get_Java_u2 is misleading, I guess ;)

os_linux.cpp does not build on non-ppc platforms because PPC64_ELFDATA2XSB
is not defined.

With the fixes mentioned above I tested it.  It works fine on our linuxppc64, aix
and linuxx86_64.

Can you please send a RFR to the hotspot-dev list as you did for the other change?

Best regards,
  Goetz.







From: Alexander Smundak [mailto:asmundak at google.com]
Sent: Dienstag, 4. März 2014 20:29
To: Lindenmaier, Goetz; Volker Simonis
Cc: ppc-aix-port-dev at openjdk.java.net
Subject: Re: OpenJDK7 port to the little endian PowerPC64

The second revision of the Hotspot patch to support little-endian PowerPC64 running Linux has been uploaded to http://cr.openjdk.java.net/~rasbold/ppc64le/hotspot/webrev.01
Compared to the previous revision, this one is much smaller as the patch to support ELFv2 ABI has been submitted (thanks, Goetz!). It addresses the reviewers' comments.
Please take a look.


On Tue, Feb 18, 2014 at 5:52 PM, Alexander Smundak <asmundak at google.com<mailto:asmundak at google.com>> wrote:
> I would propose to split the hotspot change into the fixes for the
> new abi and those for the endianess. The abi changes are almost ppc-only
> and thus easier to get reviewed. I prepared a change including only
> that:
> http://cr.openjdk.java.net/~goetz/webrevs/abi_elfv2/
Thank you for doing this. Your patch works, and the remaining patch is
much smaller.
My only question is why it was necessary to have explicit
#include "macroAssembler_ppc.inline.hpp"
in src/cpu/ppc/vm/vm_version_ppc.cpp as  "assembler_ppc.inline.hpp"
which is one line above, already does that.

> Please have a look at this change and test it.  . Feel free to further
> change it.  If the change is ok for you I'll push it right away
Yes, please do.

I've addressed your remaining comments and will post revised diff once
you submit elfv2 change and I pull it.
Do you have any comments on jdk/ change?

> For the remaining changes to hotspot it would be great if we could
> avoid all the duplication of files.... I think you just need to change
> arch_model and os_arch_model in platform_ppc64le.
Yes, this works.

> I would prefer if you use VM_LITTLE_ENDIAN to distinguish in C-code
Done.

> Did you build and use SA? Does it work? So far, we never tried to.
Yes, I've built it, but it's not very useful until
agent/src/share/classes/sun/jvm/hotspot/runtime/ contains powerpc64-specific
classes. It's not worth putting it into this patch.

> Your change in os_linux.cpp to arch_array looks wrong. As you use
> the same code entry for both ppc64, in the loop below, running_arch_code
> will always point to your new entry.
Fixed that.

> Further I think, the CPU architecture string should be
>
> #elif defined(PPC64)
> #ifdef VM_LITTLE_ENDIAN
> static char cpu_arch[] = "ppc64le";
> #else
> static char cpu_arch[] = "ppc64";
> #endif
Done.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/ppc-aix-port-dev/attachments/20140306/c1791aec/attachment-0001.html 


More information about the ppc-aix-port-dev mailing list