OpenJDK for PowerPC64
Andreas Tobler
andreast-list at fgznet.ch
Sat Oct 31 22:50:13 UTC 2015
On 30.10.15 22:38, Andreas Tobler wrote:
> On 30.10.15 21:46, Andreas Tobler wrote:
>> On 30.10.15 16:36, Curtis Hamilton wrote:
>>> Steve,
>>>
>>> I'll work on the patch. In the meantime, if you'd like to give them a try,
>>> I've built OpenJDK7/8 Zero VM for powerpc64. It's available at the below
>>> URL:
>>>
>>> https://drive.google.com/folderview?id=0Bz7VO-WP3rlpM3BabUd6ejlya3c&usp=shar
>>> ing
>>
>> Do you need 32-bit powerpc stuff to bootstrap OpenJDK?
>>
>> If not, you can speed up the gcc build with the attached patch.
>> It gives you the possibility to choose java for powerpc64 and to
>> disable/enable multilibs for powerpc64.
>>
>> I just successfully built the gcc5-devel on my quad, including multilibs)
>>
>> The other versions are part of my todo, after fixing gcc trunk....
>>
>> The multilib switch is part of John Merino's work.
Here I have to apologize, it's the work from Julio Merino. I seem to mix
John Marino and Julio Merino, sorry.
>> I recommend to use a compiler as new as possible, although, not the
>> 6.0-devel since it is broken, at least for me.
>>
>> You can use USES_GCC = 5.2 in the ports Makefile to say which gcc
>> compiler you wan to use.
>
> I just noticed some weird stuff with gcc5-devel, Try to use the gcc49,
> the patch applies there too. I'll run some tests on gcc49 during the night.
The gcc49 and below are not usable due to the fact that they do not
install properly. The reason is the multilib part for soft-float which
is not working properly. But this part is not needed.
> The gcc5-devel part I solve later.
It is solved, patch pending for gcc trunk and gcc-5. A leftover from
adding PIE support. My fault, but I do not run all combinations of
bootstrapping all the time since the machine is very power hungry...
Attached the patch I used to build a gcc-49 with multilib and java support.
Hth,
Andreas
Btw, it would be great if you (@Curtis) could describe how you did the
OpenJDK bootstrap.
-------------- next part --------------
Index: Makefile
===================================================================
--- Makefile (revision 400554)
+++ Makefile (working copy)
@@ -45,12 +45,23 @@
OPTIONS_DEFINE= BOOTSTRAP
OPTIONS_DEFINE_i386= JAVA
OPTIONS_DEFINE_amd64= JAVA
+OPTIONS_DEFINE_powerpc64= JAVA
OPTIONS_DEFAULT= BOOTSTRAP
OPTIONS_DEFAULT_i386= JAVA
OPTIONS_DEFAULT_amd64= JAVA
+OPTIONS_DEFAULT_powerpc64= JAVA
OPTIONS_EXCLUDE_DragonFly= JAVA
BOOTSTRAP_DESC= Build using a full bootstrap
+.if exists(/usr/lib32/libc.so)
+OPTIONS_DEFINE_powerpc64+= MULTILIB
+OPTIONS_DEFAULT_powerpc64+= MULTILIB
+MULTILIB_CONFIGURE_ENABLE= multilib
+MULTILIB_DESC= Build support for 32-bit and 64-bit targets
+.else
+CONFIGURE_ARGS+= --disable-multilib
+.endif
+
.include <bsd.port.pre.mk>
.if ${ARCH} == "amd64"
Index: files/patch-ppc-remove-soft-float.diff
===================================================================
--- files/patch-ppc-remove-soft-float.diff (nonexistent)
+++ files/patch-ppc-remove-soft-float.diff (working copy)
@@ -0,0 +1,16 @@
+--- gcc/config/rs6000/t-freebsd64.orig 2015-10-31 10:16:38.988785000 +0100
++++ gcc/config/rs6000/t-freebsd64 2015-10-31 10:17:11.464913000 +0100
+@@ -21,11 +21,9 @@
+ # On FreeBSD the 32-bit libraries are found under /usr/lib32.
+ # Set MULTILIB_OSDIRNAMES according to this.
+
+-MULTILIB_OPTIONS = m32 msoft-float
+-MULTILIB_DIRNAMES = 32 nof
++MULTILIB_OPTIONS = m32
++MULTILIB_DIRNAMES = 32
+ MULTILIB_EXTRA_OPTS = fPIC mstrict-align
+ MULTILIB_EXCEPTIONS =
+-MULTILIB_EXCLUSIONS = !m32/msoft-float
+ MULTILIB_OSDIRNAMES = ../lib32
+-#MULTILIB_MATCHES = $(MULTILIB_MATCHES_FLOAT)
+
Property changes on: files/patch-ppc-remove-soft-float.diff
___________________________________________________________________
Added: fbsd:nokeywords
## -0,0 +1 ##
+yes
\ No newline at end of property
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property
Added: svn:mime-type
## -0,0 +1 ##
+text/plain
\ No newline at end of property
More information about the freebsd-ppc
mailing list