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