From owner-freebsd-java@freebsd.org Fri Feb 12 14:13:35 2016 Return-Path: Delivered-To: freebsd-java@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id BF3EBAA62CC for ; Fri, 12 Feb 2016 14:13:35 +0000 (UTC) (envelope-from hamiltcl@verizon.net) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id 824E0A57 for ; Fri, 12 Feb 2016 14:13:35 +0000 (UTC) (envelope-from hamiltcl@verizon.net) Received: by mailman.ysv.freebsd.org (Postfix) id 8108AAA62CB; Fri, 12 Feb 2016 14:13:35 +0000 (UTC) Delivered-To: java@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 669F1AA62CA for ; Fri, 12 Feb 2016 14:13:35 +0000 (UTC) (envelope-from hamiltcl@verizon.net) Received: from vms173009pub.verizon.net (vms173009pub.verizon.net [206.46.173.9]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 23F0CA56 for ; Fri, 12 Feb 2016 14:13:34 +0000 (UTC) (envelope-from hamiltcl@verizon.net) Received: from vz-proxy-m004.mx.aol.com ([64.236.83.9]) by vms173009.mailsrvcs.net (Oracle Communications Messaging Server 7.0.5.32.0 64bit (built Jul 16 2014)) with ESMTPA id <0O2F00BU3RE0J690@vms173009.mailsrvcs.net> for java@freebsd.org; Fri, 12 Feb 2016 07:13:13 -0600 (CST) X-CMAE-Score: 0 X-CMAE-Analysis: v=2.1 cv=J+9Xl1TS c=1 sm=1 tr=0 a=5pQKvTSR2HhmAqL4+Jv2ig==:117 a=jFJIQSaiL_oA:10 a=DAwyPP_o2Byb1YXLmDAA:9 a=7yDg-MIwZKLh5XNKPxQA:9 a=QEXdDO2ut3YA:10 a=COfzQ7OkAAAA:8 a=a98FYCQttYFqoy3c7MkA:9 a=jycIcMwrilgA:10 a=QT1NkKqw3S6vKgPMDQwA:9 a=j8fZRBd8-_MA:10 a=o1OHuDzbAAAA:8 a=pGLkceISAAAA:8 a=kPJ79kMBhBcLe5XrMzkA:9 a=UYsVu6p7jyVA4AM-:21 a=An8Fkf6QadAOu4SS:21 a=L2oQX68Dlr7uAoH8OqwA:9 a=LvP6NXylxtWPaK0-:21 a=zOTb5kwIv8AJyiHS:21 a=df1QvXH05A4A:10 Received: by 96.255.168.17 with SMTP id 3dd10af1; Fri, 12 Feb 2016 13:13:13 GMT From: "Curtis Hamilton" To: , Subject: FreeBSD PowerPC Port Date: Fri, 12 Feb 2016 08:11:58 -0500 Message-id: <012601d16597$1a53c660$4efb5320$@verizon.net> MIME-version: 1.0 Content-type: multipart/mixed; boundary="----=_NextPart_000_012C_01D1656D.317EA8C0" X-Mailer: Microsoft Outlook 15.0 Thread-index: AdFlkrv+K5rEXvuRRK6Sow7mvrOd4w== Content-language: en-us X-BeenThere: freebsd-java@freebsd.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: Porting Java to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Feb 2016 14:13:35 -0000 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 ; Fri, 12 Feb 2016 08:28:15 +0000 (UTC) Return-Path: Reply-To: From: Sender: "ppc-aix-port-dev" To: Subject: ppc-aix-port-dev Digest, Vol 44, Issue 3 Date: Fri, 12 Feb 2016 03:28:14 -0500 Message-ID: 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: , X-BeenThere: ppc-aix-port-dev@openjdk.java.net X-Mailman-Version: 2.1.17 List-Subscribe: , List-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" To: =?utf-8?Q?Thomas_St=C3=BCfe?= , "Curtis Hamilton" Cc: , References: <011601d14baf$e0305940$a0910bc0$@verizon.net> <001201d14c7b$4f210ef0$ed632cd0$@verizon.net> <00f201d1655e$465323c0$d2f96b40$@verizon.net> In-Reply-To: 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 > 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 > 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_.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_") 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 > ] > Sent: Monday, January 11, 2016 3:29 PM > To: 'Thomas St=C3=BCfe' > > Cc: 'Volker Simonis' >; = 'ppc-aix-port-dev@openjdk.java.net > ' 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 > > Cc: Volker Simonis >; 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 > > 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 > > Cc: ppc-aix-port-dev@openjdk.java.net = 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 > > 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" To: =?utf-8?Q?Thomas_St=C3=BCfe?= Cc: "Curtis Hamilton" , , References: <011601d14baf$e0305940$a0910bc0$@verizon.net> <001201d14c7b$4f210ef0$ed632cd0$@verizon.net> <00f201d1655e$465323c0$d2f96b40$@verizon.net> In-Reply-To: Subject: Re: PPC-AIX Port to FreeBSD PowerPC Support Date: Fri, 12 Feb 2016 03:28:10 -0500 Message-ID: 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 = 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 = > 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_.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_") 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' >> Cc: 'Volker Simonis' ; >> '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 >> Cc: Volker Simonis ; >> 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 = >> 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 >> 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 = >> 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--