DragonFlyBSD / DPorts

The dedicated application build system for DragonFly BSD
Other
89 stars 44 forks source link

openjdk8 build fixes #99

Closed seanwh1te closed 10 years ago

seanwh1te commented 10 years ago

Hello, The tarball builds and works fine for me. https://s3.amazonaws.com/swhite_public/openjdk8.tar.gz Let me know if there are any problems or if this should be in a different format.

Thanks, -Sean

jrmarino commented 10 years ago

Interesting! That saves me from having to do it as it was on my soft "to-do" list. Was this based on the openjdk7 patches? I see the important PlatformInfo patch made it. So none of other openjdk7 dragonfly/ patches are needed for openjdk8?

jrmarino commented 10 years ago

i misread the archive file. the platform patch was not part of the openjdk8 port. It looks like it got included in the tarball accidently.

jrmarino commented 10 years ago

also the openjdk7 makefile on DragonFly is different than the one on FreeBSD, mainly due to bootstrap differences. It looks like your version is stock. It probably needs similar modfifications that were necessary for openjdk7

seanwh1te commented 10 years ago

I started with FBSD's port and fixed and applied the openjdk7 DF patches as needed.

--- /usr/freebsd-ports/java/openjdk8/Makefile   2014-07-05 05:57:02.732141000 +0000
+++ Makefile    2014-07-09 12:29:59.209885000 +0000
@@ -54,6 +54,7 @@
 .else
 JRE_IMAGEDIR=  ${JDK_BUILDDIR}/images/j2re-image
 .endif
+JDK_ARCH=       ${ARCH:S/x86_64/amd64/}
 JDK_OSARCH=    bsd-${ARCH:S/i386/x86/:S/amd64/x86_64/}
 INSTALLDIR=    ${PREFIX}/${PKGBASE}

@@ -229,13 +230,13 @@
        @cd ${JDK_IMAGEDIR} && ${COPYTREE_SHARE} . ${STAGEDIR}${INSTALLDIR}
        @cd ${STAGEDIR}${INSTALLDIR} && \
            ${FIND} bin jre/bin -type f -exec ${CHMOD} ${BINMODE} {} \; && \
-           ${CHMOD} ${BINMODE} jre/lib/${ARCH}/jexec \
-           jre/lib/${ARCH}/jspawnhelper lib/${ARCH}/jexec
+           ${CHMOD} ${BINMODE} jre/lib/${JDK_ARCH}/jexec \
+           jre/lib/${JDK_ARCH}/jspawnhelper lib/${JDK_ARCH}/jexec
 .else
        @cd ${JRE_IMAGEDIR} && ${COPYTREE_SHARE} . ${STAGEDIR}${INSTALLDIR}
        @cd ${STAGEDIR}${INSTALLDIR} && \
            ${FIND} bin -type f -exec ${CHMOD} ${BINMODE} {} \; && \
-           ${CHMOD} ${BINMODE} lib/${ARCH}/jexec lib/${ARCH}/jspawnhelper
+           ${CHMOD} ${BINMODE} lib/${JDK_ARCH}/jexec lib/${JDK_ARCH}/jspawnhelper
 .endif
        @${ECHO} "@unexec ${LOCALBASE}/bin/unregistervm ${INSTALLDIR}/bin/java" >> ${TMPPLIST}
        @${FIND} -s ${STAGEDIR}${INSTALLDIR} -not -type d | ${SORT} | \
jrmarino commented 10 years ago

there are some configure differences between jdk7 & 8 and the PlatformInfo patch is no longer applicable and I believe it is superseded by patch-common-autoconf-platform.m4

okay. The important patch is to jdk/src/solaris/native/java/lang/java_props_md.c which you maintained.

My starting assumption is that the patches are ok but the port Makefile probably needs some work along these lines; https://github.com/DragonFlyBSD/DeltaPorts/tree/master/ports/java/openjdk7/diffs

jrmarino commented 10 years ago

It looks like most of the openjdk7 diffs are not needed, but the parallel build and duplicate header stuff probably still is.

seanwh1te commented 10 years ago

I took a quick look at the Makefile patch. I'm assuming that the bootstrap jdk stuff needs to be added, right? (I had built openjdk7 first and I'm guessing my build picked that up).

The parallel build stuff has changed in openjdk8, the configure script is being passed --with-jobs=${MAKE_JOBS_NUMBER}

jrmarino commented 10 years ago

I agree about --with-jobs, I noticed that later. I think bootstrap stuff is okay as it is as well.

That leaves the JDK_ARCH changes you added and the symlinking of dragonfly headers to freebsd headers. I'm testing all this now.

jrmarino commented 10 years ago

Okay, thanks, it's in dports now. When the generation run occurs, the priority with match freebsd means openjdk7, then openjdk8, and finally openjdk6.

https://github.com/DragonFlyBSD/DeltaPorts/commit/4172507bd584cf1f05f57a74db6981e9fba5d4ce https://github.com/DragonFlyBSD/DPorts/commit/a20019755a50e08301c17dac50a50d33e6d4f247