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

Reply via email to