OpenJDK build system might need to be adapted for Sun Solaris Sparc/SmartOS
David Holmes
david.holmes at oracle.com
Mon May 29 02:40:42 UTC 2017
Hi Mani,
I've dropped build-infra-dev as it is no longer actively used (it was
for the new build system a couple of years ago).
Not sure about relevance to adoption-discuss ??
On 29/05/2017 9:15 AM, Mani Sarkar wrote:
> Hi,
>
> While building OpenJDK8 on SmartOS (a fork of Sun Solaris), we came across
> a number of anomalies and would like your help and support.
Happy to help, not sure what "support" entails? ;-)
> Here is the info from configure so you know a little bit more about the
> platform we are talking about:
<snip>
> * C Compiler: Sun Studio version 5.12 (at
> /root/SolarisStudio12.3-solaris-x86-bin/solarisstudio12.3/prod/bin/cc)
> * C++ Compiler: Sun Studio version 5.12 (at
> /root/SolarisStudio12.3-solaris-x86-bin/solarisstudio12.3/prod/bin/CC)
The official toolset for 8u is SS12u1, so using 12u3 may encounter
problems ...
> Firstly we had to apply the below patch in order to overcome couple of
> initial issues:
>
> --- a/hotspot/make/solaris/makefiles/build_vm_def.sh
> +++ b/hotspot/make/solaris/makefiles/build_vm_def.sh
> @@ -1,6 +1,6 @@
> #!/bin/sh
>
> -/usr/ccs/bin/nm -p $* \
> +/opt/local/bin/nm -p $* \
The use of nm should really be via a NM variable set by configure, but
the hotspot build isn't fully integrated with configure in 8u.
> --- a/hotspot/make/solaris/makefiles/sparcWorks.make
> +++ b/hotspot/make/solaris/makefiles/sparcWorks.make
> @@ -112,7 +112,7 @@ ARCHFLAG_OLD/sparcv9 = -xarch=v9
> ARCHFLAG_NEW/sparcv9 = -m64 -xarch=sparc
> ARCHFLAG_OLD/i486 =
> ARCHFLAG_NEW/i486 = -m32
> -ARCHFLAG_OLD/amd64 = -xarch=amd64
> +ARCHFLAG_OLD/amd64 = -march=amdfam10
... this is the kind of problem you may get with a too recent toolset.
> We think that these values are hard-coded and there is no way (or at least
> we couldn't find one) to pass the custom values via a configure
> command-line option or environment variable.
May be possible to do this via EXTRA_CFLAGS variable ...
> And then finally after patching it manually, we landed with this issue:
>
> Compiling /home/jenkins/workspace/openjdk_build_x86-64_smartOS/openjdk/hotspot/src/share/vm/runtime/vm_version.cpp
> Linking vm...
> ld: warning: symbol '__JvmOffsets' has differing types:
> (file JvmOffsets.o type=OBJT; file dtrace.o type=FUNC);
> ld: warning: symbol 'CodeCache::_heap' has differing types:
> (file codeCache.o type=OBJT; file dtrace.o type=FUNC);
> ld: warning: symbol 'BufferBlob::__vtbl' has differing types:
> (file codeBlob.o type=OBJT; file dtrace.o type=FUNC);
> ld: warning: symbol 'Method::__vtbl' has differing types:
> (file dtrace.o type=FUNC; file method.o type=OBJT);
> ld: warning: symbol 'nmethod::__vtbl' has differing types:
> (file dtrace.o type=FUNC; file nmethod.o type=OBJT);
> ld: warning: symbol 'Universe::_collectedHeap' has differing types:
> (file dtrace.o type=FUNC; file universe.o type=OBJT);
These warnings are well known and seemingly harmless.
> BFD: libjvm.debuginfo: Not enough room for program headers, try linking with -N
> /opt/local/bin//gobjcopy:libjvm.debuginfo[.note]: Bad value
> BFD: libjvm.debuginfo: Not enough room for program headers, try linking with -N
> /opt/local/bin//gobjcopy:libjvm.debuginfo: Bad value
> /home/jenkins/workspace/openjdk_build_x86-64_smartOS/openjdk/hotspot/make/solaris/makefiles/vm.make:296:
> recipe for target 'libjvm.so' failed
> gmake[6]: *** [libjvm.so] Error 1
> /home/jenkins/workspace/openjdk_build_x86-64_smartOS/openjdk/hotspot/make/solaris/makefiles/top.make:112:
> recipe for target 'the_vm' failed
> gmake[5]: *** [the_vm] Error 2
> /home/jenkins/workspace/openjdk_build_x86-64_smartOS/openjdk/hotspot/make/solaris/Makefile:226:
> recipe for target 'product' failed
> gmake[4]: *** [product] Error 2
> Makefile:230: recipe for target 'generic_build2' failed
> gmake[3]: *** [generic_build2] Error 2
> Makefile:177: recipe for target 'product' failed
> gmake[2]: *** [product] Error 2
> HotspotWrapper.gmk:44: recipe for target
> '/home/jenkins/workspace/openjdk_build_x86-64_smartOS/openjdk/build/solaris-x86_64-normal-server-release/hotspot/_hotspot.timestamp'
> failed
> gmake[1]: *** [/home/jenkins/workspace/openjdk_build_x86-64_smartOS/openjdk/build/solaris-x86_64-normal-server-release/hotspot/_hotspot.timestamp]
> Error 2
> /home/jenkins/workspace/openjdk_build_x86-64_smartOS/openjdk//make/Main.gmk:108:
> recipe for target 'hotspot-only' failed
> make: *** [hotspot-only] Error 2
>
>
> I see this has already been reported and resolved via
> https://bugs.openjdk.java.net/browse/JDK-8033602, so how come we still get
> this issue.
This was re-raised recently as well. See:
http://mail.openjdk.java.net/pipermail/build-dev/2017-May/019081.html
but again it relates to toolkits.
Cheers,
David
-----
> Any ideas or thoughts about the above?
>
> Thanks.
>
> Cheers,
> Mani
>
More information about the build-dev
mailing list