Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 12 Feb 2016 08:11:58 -0500
From:      "Curtis Hamilton" <hamiltcl@verizon.net>
To:        <bsd-port-dev@openjdk.java.net>,	<java@freebsd.org>
Subject:   FreeBSD PowerPC Port
Message-ID:  <012601d16597$1a53c660$4efb5320$@verizon.net>

next in thread | raw e-mail | index | archive | help
This is a multipart message in MIME format.

------=_NextPart_000_012C_01D1656D.317EA8C0
Content-Type: text/plain;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

I'm working on a native PowerPC port of JDK8.   I've been successful in =
building a Zero JVM.

I originally posted information on this effort to the AIX-PPC list, =
however, it was recommended to post to the BSD list(s) as well. See the =
attached for background.

To date, using the Linux PPC code set, I've been able to build a =
partially working native PPC64 JVM.  I developed initial patches that =
can be used to build using the latest FreeBSD port.

I can make this work available to anyone interested in helping in this =
effort.

Regards,
Curtis

------=_NextPart_000_012C_01D1656D.317EA8C0
Content-Type: message/rfc822
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment

Received: from acsinet41.oracle.com ([141.146.126.229])
 by vms172063.mailsrvcs.net
 (Oracle Communications Messaging Server 7.0.5.34.0 64bit (built Oct 14 2014))
 with ESMTPS id <0O2F00898E74ZR50@vms172063.mailsrvcs.net> for
 hamiltcl@verizon.net; Fri, 12 Feb 2016 02:28:23 -0600 (CST)
Received: from aojmv0009 (unknown [137.254.59.6]) by acsinet41.oracle.com with
 smtp	id 08e6_13da_072b6eb7_11a9_4f22_867c_68f7f93b0316;	Fri,
 12 Feb 2016 08:28:15 +0000
Received: from aojmv0009.oracle.com (localhost [127.0.0.1])
 by aojmv0009 (Postfix) with ESMTP id 88A99168D92	for <hamiltcl@verizon.net>;
 Fri, 12 Feb 2016 08:28:15 +0000 (UTC)
Return-Path: <ppc-aix-port-dev-bounces@openjdk.java.net>
Reply-To: <ppc-aix-port-dev@openjdk.java.net>
From: <ppc-aix-port-dev-request@openjdk.java.net>
Sender: "ppc-aix-port-dev" <ppc-aix-port-dev-bounces@openjdk.java.net>
To: <ppc-aix-port-dev@openjdk.java.net>
Subject: ppc-aix-port-dev Digest, Vol 44, Issue 3
Date: Fri, 12 Feb 2016 03:28:14 -0500
Message-ID: <mailman.31873.1455265694.25018.ppc-aix-port-dev@openjdk.java.net>
MIME-Version: 1.0
Content-Type: multipart/mixed;
	boundary="----=_NextPart_000_0127_01D1656D.317E81B0"
X-Mailer: Microsoft Outlook 15.0
X-Originating-IP: [141.146.126.229]
List-Unsubscribe: <http://mail.openjdk.java.net/mailman/options/ppc-aix-port-dev>, <mailto:ppc-aix-port-dev-request@openjdk.java.net?subject=unsubscribe>
X-BeenThere: ppc-aix-port-dev@openjdk.java.net
X-Mailman-Version: 2.1.17
List-Subscribe: <http://mail.openjdk.java.net/mailman/listinfo/ppc-aix-port-dev>, <mailto:ppc-aix-port-dev-request@openjdk.java.net?subject=subscribe>
List-Help: <mailto:ppc-aix-port-dev-request@openjdk.java.net?subject=help>
Thread-Index: AQLFkSbc8ISatwtWnDE4gLBdlwAr2w==

This is a multipart message in MIME format.

------=_NextPart_000_0127_01D1656D.317E81B0
Content-Type: text/plain;
	boundary="===============0540756525==";
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

Send ppc-aix-port-dev mailing list submissions to
	ppc-aix-port-dev@openjdk.java.net

To subscribe or unsubscribe via the World Wide Web, visit
	http://mail.openjdk.java.net/mailman/listinfo/ppc-aix-port-dev
or, via email, send a message with subject or body 'help' to
	ppc-aix-port-dev-request@openjdk.java.net

You can reach the person managing the list at
	ppc-aix-port-dev-owner@openjdk.java.net

When replying, please edit your Subject line so it is more specific
than "Re: Contents of ppc-aix-port-dev digest..."

------=_NextPart_000_0127_01D1656D.317E81B0
Content-Type: text/plain;
	name="Today's Topics (2 messages).txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename="Today's Topics (2 messages).txt"

Today's Topics:

   1. RE: PPC-AIX Port to FreeBSD PowerPC Support (Lindenmaier, Goetz)
   2. Re: PPC-AIX Port to FreeBSD PowerPC Support (Volker Simonis)

------=_NextPart_000_0127_01D1656D.317E81B0
Content-Type: message/rfc822
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment

From: "Lindenmaier, Goetz" <goetz.lindenmaier@sap.com>
To: =?utf-8?Q?Thomas_St=C3=BCfe?= <thomas.stuefe@gmail.com>,
	"Curtis	Hamilton" <hamiltcl@verizon.net>
Cc: <ppc-aix-port-dev@openjdk.java.net>,
	<bsd-port-dev@openjdk.java.net>
References: <011601d14baf$e0305940$a0910bc0$@verizon.net>	<CA+3eh11UBaufhiZn4nicb0On91i38kFqyjP5CAC9AJUn=92Gbw@mail.gmail.com>	<001201d14c7b$4f210ef0$ed632cd0$@verizon.net>	<CAA-vtUynZyN5+BbkssFQCyKFy0QJARgHigd65cyJs9w25Q6htQ@mail.gmail.com>	<00f201d1655e$465323c0$d2f96b40$@verizon.net>	<CAA-vtUxxYCzD7E4apU-c81xgP6qR7t7m35T9=TWx=voe2JdCfQ@mail.gmail.com>
In-Reply-To: <CAA-vtUxxYCzD7E4apU-c81xgP6qR7t7m35T9=TWx=voe2JdCfQ@mail.gmail.com>
Subject: RE: PPC-AIX Port to FreeBSD PowerPC Support
Date: Fri, 12 Feb 2016 03:27:45 -0500
Message-ID: <87a664accf3f4760b00d2d8411e9aedf@DEWDFE13DE09.global.corp.sap>
MIME-Version: 1.0
Content-Type: text/plain;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Outlook 15.0
Thread-Index: AQC01HELAKDeFy2IggIP3TYfXYj6EgFkdHC9AsRtEJkB3RkJ6wHRE2z2AcTpogUBRrKCoA==

Hi Curtis,

If SIGTRAP ist he problem, you could try -XX:-UseSIGTRAP.
This slows down null checks a bit, but this should not matter for now.

Best regards,
  Goetz

> -----Original Message-----
> From: ppc-aix-port-dev [mailto:ppc-aix-port-dev-
> bounces@openjdk.java.net] On Behalf Of Thomas St=C3=BCfe
> Sent: Freitag, 12. Februar 2016 08:08
> To: Curtis Hamilton <hamiltcl@verizon.net>
> Cc: ppc-aix-port-dev@openjdk.java.net; bsd-port-dev@openjdk.java.net
> Subject: Re: PPC-AIX Port to FreeBSD PowerPC Support
>
> Hi Curtis,
>
> I think it makes sense to post this on the bsd list too.
>
> See my comments inline.
>
> On Fri, Feb 12, 2016 at 7:26 AM, Curtis Hamilton <hamiltcl@verizon.net
> <mailto:hamiltcl@verizon.net> > wrote:
>
>
>       Thomas/Volker,
>
>
>
>       Just wanted to give you an update on my bsd/ppc64 porting =
effort.
> I=E2=80=99m using the standard bsd openjdk8 port, as the bsd mercurial =
needs
> freebsd specific patches.
>
>
>
>       I=E2=80=99ve made progress modding the linux/ppc files to work =
under bsd
> and can successfully build a native (ppc64) JVM.  Here=E2=80=99s the =
output I get
> executing =E2=80=98java =E2=80=93version=E2=80=99
>
>
>
>       root@lenoil8:/usr/ports/java/openjdk8/work/openjdk/build/bsd-
> ppc64-normal-server-slowdebug/jdk/bin # ./java -version
>       openjdk version "1.8.0_72-debug"
>       OpenJDK Runtime Environment (build 1.8.0_72-debug-b15)
>       OpenJDK 64-Bit Server VM (build 25.72-b15-debug, mixed mode)
>       root@lenoil8:/usr/ports/java/openjdk8/work/openjdk/build/bsd-
> ppc64-normal-server-slowdebug/jdk/bin #
>
>
> Great Job!
>
>
>
>       I can compile and execute the basic =E2=80=9Chello =
world=E2=80=9D.  However,
> compiling more complicated java code results in a core dump.  See the
> following:
>
>
>
>       root@lenoil8:/usr/ports/java/openjdk8/work/openjdk/build/bsd-
> ppc64-normal-server-slowdebug/jdk/bin # ./javac HelloWorld.java
>       root@lenoil8:/usr/ports/java/openjdk8/work/openjdk/build/bsd-
> ppc64-normal-server-slowdebug/jdk/bin # ./java HelloWorld
>       Hello, World
>       root@lenoil8:/usr/ports/java/openjdk8/work/openjdk/build/bsd-
> ppc64-normal-server-slowdebug/jdk/bin # ./javac zip.java
>       Trace/BPT trap (core dumped)
>       root@lenoil8:/usr/ports/java/openjdk8/work/openjdk/build/bsd-
> ppc64-normal-server-slowdebug/jdk/bin # ./javac LargeZip.java
>       Trace/BPT trap (core dumped)
>       root@lenoil8:/usr/ports/java/openjdk8/work/openjdk/build/bsd-
> ppc64-normal-server-slowdebug/jdk/bin #
>
>       As you can see this is a debug build and I=E2=80=99ve been able =
to tell from the
> core dump, using gdb, that it=E2=80=99s getting a signal 5 at abort.
>
>
>
>
> I think SIGTRAP is used by the ppc JIT for some things (implicit =
nullchecks?
> Volker would know better). So, SIGTRAP must be handled for this to =
work.
>
> The JVM has a central signal handler, entry point is "signalHandler" =
in
> os_<os>.cpp, and then it goes on to, in your case, =
JVM_handler_bsd_signal()
> in os_bsd_ppc.cpp.
>
> So, make sure that
>
> 1) SIGTRAP is handled by this signal handler - I think, by default bsd =
does not
> install a signal handler for SIGTRAP. See =
os::Bsd::install_signal_handlers(),
> and compare it with the Linux version.
>
> 2) Then, SIGTRAP must be handled in JVM_handler_bsd_signal(). Compare
> with the SIGTRAP handling for Linux (os_linux_ppc.cpp). But if you =
copied
> that code, maybe SIGTRAP handling is already in place and (1) was all =
that
> was missing.
>
> Also note: The jvm normally writes a error log on crashes which is =
very useful
> ("hs_err_<pid>") but in your case it was not written at all, because =
no signal
> handler was installed for SIGTRAP. So, if you took care of (1) but (2) =
is still
> missing, you may still crash but with a real error report log this =
time.
>
> Side note: Magnus Ihse Bursie is cleaning up and repairing the BSD =
port, see:
> http://mail.openjdk.java.net/pipermail/bsd-port-dev/2016-
> January/002739.html
>
> His changes are not yet committed, but he posted a webrev with his =
changes
> (http://cr.openjdk.java.net/~ihse/JDK-8147795_addendum-bsd-source-
> patches/webrev.01/). It may make sense to integrate this in your =
build, he
> did some worthwhile fixes.
>
> Kind Regards, Thomas
>
>
>
>
>       Any recommendations on what to look at or how to further debug?
>
>
>
>       Regards,
>
>
>
>       Curtis
>
>
>
>       From: Curtis Hamilton [mailto:hamiltcl@verizon.net
> <mailto:hamiltcl@verizon.net> ]
>       Sent: Monday, January 11, 2016 3:29 PM
>       To: 'Thomas St=C3=BCfe' <thomas.stuefe@gmail.com
> <mailto:thomas.stuefe@gmail.com> >
>       Cc: 'Volker Simonis' <volker.simonis@gmail.com
> <mailto:volker.simonis@gmail.com> >; =
'ppc-aix-port-dev@openjdk.java.net
> <mailto:ppc-aix-port-dev@openjdk.java.net> ' <ppc-aix-port-
> dev@openjdk.java.net <mailto:ppc-aix-port-dev@openjdk.java.net> >
>       Subject: RE: PPC-AIX Port to FreeBSD PowerPC Support
>
>
>
>       Thomas,
>
>
>
>       Thanks for the vector check!
>
>
>
>       I agree that the AIX os is quite different from other unices (I =
have an
> old PowerStation 220 in my collection).  However, the ppc-aix-port was =
the
> first that contained code specific to the ppc.  Since there =
isn=E2=80=99t a ppc-bsd port,
> I needed somewhere to start.  PPC code for both AIX and Linux can be =
found
> in the same port.   The ports available on FreeBSD currently do =
contain any of
> the ppc headers or code.  So I decided to use a port that already had =
the ppc
> code and go from there.
>
>
>
>       Now that ppc code is being integrated into a more universal =
port, I
> just need to check which jdk8 port to work with.
>
>
>
>       Any recommendation?
>
>
>
>       Regards,
>
>       Curtis
>
>
>
>       From: Thomas St=C3=BCfe [mailto:thomas.stuefe@gmail.com
> <mailto:thomas.stuefe@gmail.com> ]
>       Sent: Monday, January 11, 2016 11:23 AM
>       To: Curtis Hamilton <hamiltcl@verizon.net
> <mailto:hamiltcl@verizon.net> >
>       Cc: Volker Simonis <volker.simonis@gmail.com
> <mailto:volker.simonis@gmail.com> >; ppc-aix-port-dev@openjdk.java.net
> <mailto:ppc-aix-port-dev@openjdk.java.net>
>
>
>       Subject: Re: PPC-AIX Port to FreeBSD PowerPC Support
>
>
>
>
>
>       Hi Curtis,
>
>
>
>       I am not sure that AIX ppc would be the best source for an BSD =
port.
> AIX os port contains a large number of AIX specifics and it is quite a =
bit
> different (sometimes, needlessly) from the other Unices. It is also a =
moving
> target, at least on jdk9, as we changed a lot in the AIX os port and =
will change
> more until the next feature close.
>
>
>
>       So, it may be that linux ppc would be a better porting source =
for a bsd
> ppc port.
>
>
>
>       Kind Regards, Thomas
>
>
>
>
>
>
>
>
>
>
>
>       On Mon, Jan 11, 2016 at 3:21 PM, Curtis Hamilton
> <hamiltcl@verizon.net <mailto:hamiltcl@verizon.net> > wrote:
>
>               Volker,
>
>
>
>               Thanks for the response.
>
>
>
>               Yes, I=E2=80=99m using the mercurial jdk7u ppc-aix =
version.  The
> reason I used this port version was because I was more familiar with =
the build
> layout of jdk7 versus jdk8/jdk9.  And it seemed like an easier target =
to start
> with, since it already supported ppc64 on AIX and Linux.
>
>
>
>               Full disclosure, I=E2=80=99ve been successful in =
building zero vm for
> both jdk7 and jdk8 on ppc64/FreeBSD.   They both work great.  The =
system
> performance is somewhat sluggish, but usable.  So I decided to see if =
I could
> build native ppc64 versions leveraging the existing AIX and Linux =
ppc64
> support in the ppc-aix-port, since the bsd-port lacks support for =
PowerPC.
>
>
>
>               I=E2=80=99m aware of the integration effort for jdk9.  =
So on your
> advice, I will start working with ppc-aix jdk8u.  I don=E2=80=99t want =
anyone to waste
> time with jdk7u. Although my efforts with this older version is not =
completely
> wasted.
>
>
>
>               I look forward to contributing to the ppc64/bsd port =
OpenJDK
> integration effort.
>
>
>
>               Regards,
>
>               Curtis
>
>
>
>               From: Volker Simonis [mailto:volker.simonis@gmail.com
> <mailto:volker.simonis@gmail.com> ]
>               Sent: Monday, January 11, 2016 5:22 AM
>               To: Curtis Hamilton <hamiltcl@verizon.net
> <mailto:hamiltcl@verizon.net> >
>               Cc: ppc-aix-port-dev@openjdk.java.net =
<mailto:ppc-aix-port-
> dev@openjdk.java.net>
>               Subject: Re: PPC-AIX Port to FreeBSD PowerPC Support
>
>
>
>               Hi Curtis,
>
>               no, I'm not aware of any effort to port the ppc64 port =
to BSD.
>
>               My first question is why are you building jdk7. It is =
quite old
> and we don't actually support it any more. It was also never =
integrated into
> the main jdk7u branch. I'd strongly recommend to use at least the =
jdk8u
> version. If you plan to contribute the ppc64/bsd port for integration =
into the
> OpenJDK, this has to be done into the head revision (currently jdk9) =
anyway.
> Once it's there, it may be possible to downport it to jdk8u (but not =
to jdk7u
> because that on doesn't even contain the ppc64 port).
>
>               That said, which version of jdk7u are you using? Is it =
the one
> from http://hg.openjdk.java.net/ppc-aix-port/jdk7u/ ?
>
>               One problem you may encounter with jdk7u is that it was
> never compiled with new versions of gcc. I see you are using gcc4.8 =
but we
> used 4.1.2 back then when we were doing the port.
>
>               Another problem is that we didn't support the =
serviceability
> agent in jdk7u. Support for the SA agent on Linux/ppc64 (but not for =
AIX) was
> added in jdk8. The error you see in vmStructs.cpp is most probably =
from SA
> coding. How does your file vmStructs_bsd_ppc.hpp looks like. As you =
can
> see, vmStructs_linux_ppc.hpp is empty in jdk7u for the ppc64 port =
while it
> has some code in jdk8u-dev and jdk9.
>
>               Unfortunately the place in vmStructs.cpp where the error
> happens is deeply nested macro coding so it's hard to say what's wrong =
from
> the error message. You could preprocess the file and post that to the =
list,
> maybe we can see more. Just issue the following command from a shell =
from
> within /usr/ports/tmp/jdk7u/build/bsd-
> ppc/hotspot/outputdir/bsd_ppc64_compiler2/product:
>
>                g++48 -DBSD -DPPC64 -D_ALLBSD_SOURCE -
> D_GNU_SOURCE -DPRODUCT  -
> I/usr/ports/tmp/jdk7u/hotspot/src/share/vm/prims -
> I/usr/ports/tmp/jdk7u/hotspot/src/share/vm -
> I/usr/ports/tmp/jdk7u/hotspot/src/share/vm/precompiled -
> I/usr/ports/tmp/jdk7u/hotspot/src/cpu/ppc/vm -
> I/usr/ports/tmp/jdk7u/hotspot/src/os_cpu/bsd_ppc/vm -
> I/usr/ports/tmp/jdk7u/hotspot/src/os/bsd/vm -
> I/usr/ports/tmp/jdk7u/hotspot/src/os/posix/vm -I../generated -
> DHOTSPOT_RELEASE_VERSION=3D"\"24.80-b11\"" -
> DHOTSPOT_BUILD_TARGET=3D"\"product\"" -
> DHOTSPOT_BUILD_USER=3D"\"root\"" -DHOTSPOT_LIB_ARCH=3D\"ppc\" -
> DHOTSPOT_VM_DISTRO=3D"\"OpenJDK\"" -
> DDEFAULT_LIBPATH=3D"\"/lib:/usr/lib:/usr/local/lib\"" -
> DTARGET_OS_FAMILY_bsd -DTARGET_ARCH_ppc -
> DTARGET_ARCH_MODEL_ppc_64 -DTARGET_OS_ARCH_bsd_ppc -
> DTARGET_OS_ARCH_MODEL_bsd_ppc_64 -DTARGET_COMPILER_gcc -
> DCOMPILER2 -fPIC -fno-rtti -fno-exceptions -pthread -fcheck-new -
> mpowerpc64 -pipe -DDONT_USE_PRECOMPILED_HEADER -O3 -fno-strict-
> aliasing -D_LP64=3D1 -m64 -mminimal-toc -mcpu=3Dpowerpc64 =
-mtune=3Dpower5 -
> minsert-sched-nops=3Dregroup_exact -mno-multiple -mno-string -
> DSAFEFETCH_STUBS -DINCLUDE_TRACE=3D1 -Werror -Wpointer-arith -
> Wconversion -Wsign-compare    -E
> /usr/ports/tmp/jdk7u/hotspot/src/share/vm/runtime/vmStructs.cpp
>
>               Regards,
>
>               Volker
>
>
>
>               On Sun, Jan 10, 2016 at 3:04 PM, Curtis Hamilton
> <hamiltcl@verizon.net <mailto:hamiltcl@verizon.net> > wrote:
>
>                       Hello,
>
>                       I=E2=80=99d like to know if there=E2=80=99s been =
any work done to
> support PPC for *BSD?
>
>                       I=E2=80=99ve hacked both the AIX and Linux PPC =
headers but
> have been unsuccessful in building HotSpot.  All modules seem to build =
with
> the exception of VMStructs.cpp with the below error.
>
>
>       /usr/ports/tmp/jdk7u/hotspot/src/share/vm/runtime/vmStructs.cp
> p: In static member function 'static void VMStructs::init()':
>
>       /usr/ports/tmp/jdk7u/hotspot/src/share/vm/runtime/vmStructs.cp
> p:3015: error: cannot convert 'pthread**' to 'pid_t*' in =
initialization
>
>                       Build log is attached.
>
>                       Thanks in advance!
>
>
>
>                       Curtis
>
>
>
>
>
>
>


------=_NextPart_000_0127_01D1656D.317E81B0
Content-Type: message/rfc822
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment

From: "Volker Simonis" <volker.simonis@gmail.com>
To: =?utf-8?Q?Thomas_St=C3=BCfe?= <thomas.stuefe@gmail.com>
Cc: "Curtis Hamilton" <hamiltcl@verizon.net>,
	<ppc-aix-port-dev@openjdk.java.net>,
	<bsd-port-dev@openjdk.java.net>
References: <011601d14baf$e0305940$a0910bc0$@verizon.net>	<CA+3eh11UBaufhiZn4nicb0On91i38kFqyjP5CAC9AJUn=92Gbw@mail.gmail.com>	<001201d14c7b$4f210ef0$ed632cd0$@verizon.net>	<CAA-vtUynZyN5+BbkssFQCyKFy0QJARgHigd65cyJs9w25Q6htQ@mail.gmail.com>	<00f201d1655e$465323c0$d2f96b40$@verizon.net>	<CAA-vtUxxYCzD7E4apU-c81xgP6qR7t7m35T9=TWx=voe2JdCfQ@mail.gmail.com>
In-Reply-To: <CAA-vtUxxYCzD7E4apU-c81xgP6qR7t7m35T9=TWx=voe2JdCfQ@mail.gmail.com>
Subject: Re: PPC-AIX Port to FreeBSD PowerPC Support
Date: Fri, 12 Feb 2016 03:28:10 -0500
Message-ID: <CA+3eh12yZuMaLKixTNruMTffY5wGStyHRMxk+TvVq49QG0+Tqg@mail.gmail.com>
MIME-Version: 1.0
Content-Type: text/plain;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable
X-Mailer: Microsoft Outlook 15.0
Thread-Index: AQC01HELAKDeFy2IggIP3TYfXYj6EgFkdHC9AsRtEJkB3RkJ6wHRE2z2AcTpogUClgA6ww==

Hi Curtis,

congratulations from my side as well. Running HelloWorld is always an
important milestone when porting the OpenJDK to a new platform!

I think Thomas already gave you the right hints. It's true that
SIGTRAP is used a lot within HotSpot and you really need to handle it
correctly.

As a quick workaround you could also try to use -XX:-UseSIGTRAP which
should switch off the usage of SIGTRAP within the VM. You also have to
use this switch when debugging the VM in a native debugger like gdb
because the debugger also uses SIGTRAP internally.

Regards,
Volker


On Fri, Feb 12, 2016 at 8:08 AM, Thomas St=C3=BCfe =
<thomas.stuefe@gmail.com> wrote:
> Hi Curtis,
>
> I think it makes sense to post this on the bsd list too.
>
> See my comments inline.
>
> On Fri, Feb 12, 2016 at 7:26 AM, Curtis Hamilton =
<hamiltcl@verizon.net>
> wrote:
>>
>> Thomas/Volker,
>>
>>
>>
>> Just wanted to give you an update on my bsd/ppc64 porting effort.  =
I=E2=80=99m
>> using the standard bsd openjdk8 port, as the bsd mercurial needs =
freebsd
>> specific patches.
>>
>>
>>
>> I=E2=80=99ve made progress modding the linux/ppc files to work under =
bsd and can
>> successfully build a native (ppc64) JVM.  Here=E2=80=99s the output I =
get executing
>> =E2=80=98java =E2=80=93version=E2=80=99
>>
>>
>>
>>
>> =
root@lenoil8:/usr/ports/java/openjdk8/work/openjdk/build/bsd-ppc64-normal=
-server-slowdebug/jdk/bin
>> # ./java -version
>> openjdk version "1.8.0_72-debug"
>> OpenJDK Runtime Environment (build 1.8.0_72-debug-b15)
>> OpenJDK 64-Bit Server VM (build 25.72-b15-debug, mixed mode)
>>
>> =
root@lenoil8:/usr/ports/java/openjdk8/work/openjdk/build/bsd-ppc64-normal=
-server-slowdebug/jdk/bin
>> #
>
>
> Great Job!
>>
>> I can compile and execute the basic =E2=80=9Chello world=E2=80=9D.  =
However, compiling
>> more complicated java code results in a core dump.  See the =
following:
>>
>>
>>
>>
>> =
root@lenoil8:/usr/ports/java/openjdk8/work/openjdk/build/bsd-ppc64-normal=
-server-slowdebug/jdk/bin
>> # ./javac HelloWorld.java
>>
>> =
root@lenoil8:/usr/ports/java/openjdk8/work/openjdk/build/bsd-ppc64-normal=
-server-slowdebug/jdk/bin
>> # ./java HelloWorld
>> Hello, World
>>
>> =
root@lenoil8:/usr/ports/java/openjdk8/work/openjdk/build/bsd-ppc64-normal=
-server-slowdebug/jdk/bin
>> # ./javac zip.java
>> Trace/BPT trap (core dumped)
>>
>> =
root@lenoil8:/usr/ports/java/openjdk8/work/openjdk/build/bsd-ppc64-normal=
-server-slowdebug/jdk/bin
>> # ./javac LargeZip.java
>> Trace/BPT trap (core dumped)
>>
>> =
root@lenoil8:/usr/ports/java/openjdk8/work/openjdk/build/bsd-ppc64-normal=
-server-slowdebug/jdk/bin
>> #
>>
>> As you can see this is a debug build and I=E2=80=99ve been able to =
tell from the
>> core dump, using gdb, that it=E2=80=99s getting a signal 5 at abort.
>>
>>
>
>
> I think SIGTRAP is used by the ppc JIT for some things (implicit =
nullchecks?
> Volker would know better). So, SIGTRAP must be handled for this to =
work.
>
> The JVM has a central signal handler, entry point is "signalHandler" =
in
> os_<os>.cpp, and then it goes on to, in your case, =
JVM_handler_bsd_signal()
> in os_bsd_ppc.cpp.
>
> So, make sure that
>
> 1) SIGTRAP is handled by this signal handler - I think, by default bsd =
does
> not install a signal handler for SIGTRAP. See
> os::Bsd::install_signal_handlers(), and compare it with the Linux =
version.
>
> 2) Then, SIGTRAP must be handled in JVM_handler_bsd_signal(). Compare =
with
> the SIGTRAP handling for Linux (os_linux_ppc.cpp). But if you copied =
that
> code, maybe SIGTRAP handling is already in place and (1) was all that =
was
> missing.
>
> Also note: The jvm normally writes a error log on crashes which is =
very
> useful ("hs_err_<pid>") but in your case it was not written at all, =
because
> no signal handler was installed for SIGTRAP. So, if you took care of =
(1) but
> (2) is still missing, you may still crash but with a real error report =
log
> this time.
>
> Side note: Magnus Ihse Bursie is cleaning up and repairing the BSD =
port,
> see:
> =
http://mail.openjdk.java.net/pipermail/bsd-port-dev/2016-January/002739.h=
tml
>
> His changes are not yet committed, but he posted a webrev with his =
changes
> =
(http://cr.openjdk.java.net/~ihse/JDK-8147795_addendum-bsd-source-patches=
/webrev.01/).
> It may make sense to integrate this in your build, he did some =
worthwhile
> fixes.
>
> Kind Regards, Thomas
>
>>
>> Any recommendations on what to look at or how to further debug?
>>
>>
>>
>> Regards,
>>
>>
>>
>> Curtis
>>
>>
>>
>> From: Curtis Hamilton [mailto:hamiltcl@verizon.net]
>> Sent: Monday, January 11, 2016 3:29 PM
>> To: 'Thomas St=C3=BCfe' <thomas.stuefe@gmail.com>
>> Cc: 'Volker Simonis' <volker.simonis@gmail.com>;
>> 'ppc-aix-port-dev@openjdk.java.net' =
<ppc-aix-port-dev@openjdk.java.net>
>> Subject: RE: PPC-AIX Port to FreeBSD PowerPC Support
>>
>>
>>
>> Thomas,
>>
>>
>>
>> Thanks for the vector check!
>>
>>
>>
>> I agree that the AIX os is quite different from other unices (I have =
an
>> old PowerStation 220 in my collection).  However, the ppc-aix-port =
was the
>> first that contained code specific to the ppc.  Since there =
isn=E2=80=99t a ppc-bsd
>> port, I needed somewhere to start.  PPC code for both AIX and Linux =
can be
>> found in the same port.   The ports available on FreeBSD currently do
>> contain any of the ppc headers or code.  So I decided to use a port =
that
>> already had the ppc code and go from there.
>>
>>
>>
>> Now that ppc code is being integrated into a more universal port, I =
just
>> need to check which jdk8 port to work with.
>>
>>
>>
>> Any recommendation?
>>
>>
>>
>> Regards,
>>
>> Curtis
>>
>>
>>
>> From: Thomas St=C3=BCfe [mailto:thomas.stuefe@gmail.com]
>> Sent: Monday, January 11, 2016 11:23 AM
>> To: Curtis Hamilton <hamiltcl@verizon.net>
>> Cc: Volker Simonis <volker.simonis@gmail.com>;
>> ppc-aix-port-dev@openjdk.java.net
>>
>>
>> Subject: Re: PPC-AIX Port to FreeBSD PowerPC Support
>>
>>
>>
>> Hi Curtis,
>>
>>
>>
>> I am not sure that AIX ppc would be the best source for an BSD port. =
AIX
>> os port contains a large number of AIX specifics and it is quite a =
bit
>> different (sometimes, needlessly) from the other Unices. It is also a =
moving
>> target, at least on jdk9, as we changed a lot in the AIX os port and =
will
>> change more until the next feature close.
>>
>>
>>
>> So, it may be that linux ppc would be a better porting source for a =
bsd
>> ppc port.
>>
>>
>>
>> Kind Regards, Thomas
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> On Mon, Jan 11, 2016 at 3:21 PM, Curtis Hamilton =
<hamiltcl@verizon.net>
>> wrote:
>>
>> Volker,
>>
>>
>>
>> Thanks for the response.
>>
>>
>>
>> Yes, I=E2=80=99m using the mercurial jdk7u ppc-aix version.  The =
reason I used
>> this port version was because I was more familiar with the build =
layout of
>> jdk7 versus jdk8/jdk9.  And it seemed like an easier target to start =
with,
>> since it already supported ppc64 on AIX and Linux.
>>
>>
>>
>> Full disclosure, I=E2=80=99ve been successful in building zero vm for =
both jdk7
>> and jdk8 on ppc64/FreeBSD.   They both work great.  The system =
performance
>> is somewhat sluggish, but usable.  So I decided to see if I could =
build
>> native ppc64 versions leveraging the existing AIX and Linux ppc64 =
support in
>> the ppc-aix-port, since the bsd-port lacks support for PowerPC.
>>
>>
>>
>> I=E2=80=99m aware of the integration effort for jdk9.  So on your =
advice, I will
>> start working with ppc-aix jdk8u.  I don=E2=80=99t want anyone to =
waste time with
>> jdk7u. Although my efforts with this older version is not completely =
wasted.
>>
>>
>>
>> I look forward to contributing to the ppc64/bsd port OpenJDK =
integration
>> effort.
>>
>>
>>
>> Regards,
>>
>> Curtis
>>
>>
>>
>> From: Volker Simonis [mailto:volker.simonis@gmail.com]
>> Sent: Monday, January 11, 2016 5:22 AM
>> To: Curtis Hamilton <hamiltcl@verizon.net>
>> Cc: ppc-aix-port-dev@openjdk.java.net
>> Subject: Re: PPC-AIX Port to FreeBSD PowerPC Support
>>
>>
>>
>> Hi Curtis,
>>
>> no, I'm not aware of any effort to port the ppc64 port to BSD.
>>
>> My first question is why are you building jdk7. It is quite old and =
we
>> don't actually support it any more. It was also never integrated into =
the
>> main jdk7u branch. I'd strongly recommend to use at least the jdk8u =
version.
>> If you plan to contribute the ppc64/bsd port for integration into the
>> OpenJDK, this has to be done into the head revision (currently jdk9) =
anyway.
>> Once it's there, it may be possible to downport it to jdk8u (but not =
to
>> jdk7u because that on doesn't even contain the ppc64 port).
>>
>> That said, which version of jdk7u are you using? Is it the one from
>> http://hg.openjdk.java.net/ppc-aix-port/jdk7u/ ?
>>
>> One problem you may encounter with jdk7u is that it was never =
compiled
>> with new versions of gcc. I see you are using gcc4.8 but we used =
4.1.2 back
>> then when we were doing the port.
>>
>> Another problem is that we didn't support the serviceability agent in
>> jdk7u. Support for the SA agent on Linux/ppc64 (but not for AIX) was =
added
>> in jdk8. The error you see in vmStructs.cpp is most probably from SA =
coding.
>> How does your file vmStructs_bsd_ppc.hpp looks like. As you can see,
>> vmStructs_linux_ppc.hpp is empty in jdk7u for the ppc64 port while it =
has
>> some code in jdk8u-dev and jdk9.
>>
>> Unfortunately the place in vmStructs.cpp where the error happens is =
deeply
>> nested macro coding so it's hard to say what's wrong from the error =
message.
>> You could preprocess the file and post that to the list, maybe we can =
see
>> more. Just issue the following command from a shell from within
>> =
/usr/ports/tmp/jdk7u/build/bsd-ppc/hotspot/outputdir/bsd_ppc64_compiler2/=
product:
>>
>>  g++48 -DBSD -DPPC64 -D_ALLBSD_SOURCE -D_GNU_SOURCE -DPRODUCT
>> -I/usr/ports/tmp/jdk7u/hotspot/src/share/vm/prims
>> -I/usr/ports/tmp/jdk7u/hotspot/src/share/vm
>> -I/usr/ports/tmp/jdk7u/hotspot/src/share/vm/precompiled
>> -I/usr/ports/tmp/jdk7u/hotspot/src/cpu/ppc/vm
>> -I/usr/ports/tmp/jdk7u/hotspot/src/os_cpu/bsd_ppc/vm
>> -I/usr/ports/tmp/jdk7u/hotspot/src/os/bsd/vm
>> -I/usr/ports/tmp/jdk7u/hotspot/src/os/posix/vm -I../generated
>> -DHOTSPOT_RELEASE_VERSION=3D"\"24.80-b11\""
>> -DHOTSPOT_BUILD_TARGET=3D"\"product\"" =
-DHOTSPOT_BUILD_USER=3D"\"root\""
>> -DHOTSPOT_LIB_ARCH=3D\"ppc\" -DHOTSPOT_VM_DISTRO=3D"\"OpenJDK\""
>> -DDEFAULT_LIBPATH=3D"\"/lib:/usr/lib:/usr/local/lib\"" =
-DTARGET_OS_FAMILY_bsd
>> -DTARGET_ARCH_ppc -DTARGET_ARCH_MODEL_ppc_64 -DTARGET_OS_ARCH_bsd_ppc
>> -DTARGET_OS_ARCH_MODEL_bsd_ppc_64 -DTARGET_COMPILER_gcc -DCOMPILER2 =
-fPIC
>> -fno-rtti -fno-exceptions -pthread -fcheck-new -mpowerpc64 -pipe
>> -DDONT_USE_PRECOMPILED_HEADER -O3 -fno-strict-aliasing -D_LP64=3D1 =
-m64
>> -mminimal-toc -mcpu=3Dpowerpc64 -mtune=3Dpower5
>> -minsert-sched-nops=3Dregroup_exact -mno-multiple -mno-string
>> -DSAFEFETCH_STUBS -DINCLUDE_TRACE=3D1 -Werror -Wpointer-arith =
-Wconversion
>> -Wsign-compare    -E
>> /usr/ports/tmp/jdk7u/hotspot/src/share/vm/runtime/vmStructs.cpp
>>
>> Regards,
>>
>> Volker
>>
>>
>>
>> On Sun, Jan 10, 2016 at 3:04 PM, Curtis Hamilton =
<hamiltcl@verizon.net>
>> wrote:
>>
>> Hello,
>>
>> I=E2=80=99d like to know if there=E2=80=99s been any work done to =
support PPC for *BSD?
>>
>> I=E2=80=99ve hacked both the AIX and Linux PPC headers but have been =
unsuccessful
>> in building HotSpot.  All modules seem to build with the exception of
>> VMStructs.cpp with the below error.
>>
>> /usr/ports/tmp/jdk7u/hotspot/src/share/vm/runtime/vmStructs.cpp: In =
static
>> member function 'static void VMStructs::init()':
>> /usr/ports/tmp/jdk7u/hotspot/src/share/vm/runtime/vmStructs.cpp:3015:
>> error: cannot convert 'pthread**' to 'pid_t*' in initialization
>>
>> Build log is attached.
>>
>> Thanks in advance!
>>
>>
>>
>> Curtis
>>
>>
>>
>>
>>
>>
>
>


------=_NextPart_000_0127_01D1656D.317E81B0--

------=_NextPart_000_012C_01D1656D.317EA8C0--




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?012601d16597$1a53c660$4efb5320$>