Solaris jdk9 build problem

David Holmes david.holmes at oracle.com
Wed Jun 3 08:07:24 UTC 2015


On 2/06/2015 11:50 PM, Magnus Ihse Bursie wrote:
> On 2015-06-02 15:21, Semyon Sadetsky wrote:
>> Hello,
>>
>> Hate to disturb you again but I got yet another show stopper for my
>> Solaris build:
>>
>> Generating solaris_amd64_docs/jvmti.html
>> Creating libverify.so from 2 file(s)
>> Creating libjava.so from 60 file(s)
>> Creating libfdlibm.a from 62 file(s)
>> Creating libzip.so from 21 file(s)
>> Creating libjli.so from 15 file(s)
>> Creating libnet.so from 21 file(s)
>> Creating libnio.so from 23 file(s)
>> Compiling 3 properties into resource bundles for jdk.jdi
>> Compiling 246 files for jdk.jdi
>> "/jdk9/client/jdk/src/java.base/unix/native/libjava/childproc.c", line
>> 384: error: statement not reached (E_STATEMENT_NOT_REACHED)
>> cc: acomp failed for
>> /jdk9/client/jdk/src/java.base/unix/native/libjava/childproc.c
>> gmake[3]: ***
>> [/jdk9/client/build/solaris-x86_64-normal-server-fastdebug/support/native/java.base/libjava/childproc.o]
>> Error 2
>> gmake[3]: *** Waiting for unfinished jobs....
>> gmake[2]: *** [java.base-libs] Error 1
>
> I belive the rest of the log says: "please try again with
> --disable-warnings-as-errors" or something like that.
>
> Do it! :)
>
> An even better solution is to investigate the warning and fix the code.
>
> I can't really say why you're getting this warning, though. Your version
> of the compiler might differ too much from the official ones.

It isn't the version of the compiler but the version of the header files 
that is too new. They have the "no return" attribute so the compiler 
complains that a following statement is unreachable. As per the other 
thread on this you either need to use a Solaris 10u6 or 10u10 build 
machine, or else use a devkit with those headers.

David

> /Magnus
>
>>
>> --Semyon
>>
>>
>>
>> On 6/2/2015 1:40 PM, Semyon Sadetsky wrote:
>>>
>>> On 6/2/2015 1:33 PM, Magnus Ihse Bursie wrote:
>>>> On 2015-06-02 12:22, David Holmes wrote:
>>>>> On 2/06/2015 8:12 PM, Semyon Sadetsky wrote:
>>>>>>
>>>>>> On 6/2/2015 1:06 PM, Magnus Ihse Bursie wrote:
>>>>>>> On 2015-06-02 11:25, Semyon Sadetsky wrote:
>>>>>>>>
>>>>>>>> On 6/2/2015 11:47 AM, Magnus Ihse Bursie wrote:
>>>>>>>>> On 2015-06-02 08:20, Semyon Sadetsky wrote:
>>>>>>>>>> On 6/2/2015 2:35 AM, Magnus Ihse Bursie wrote:
>>>>>>>>>>> On 2015-06-01 21:17, Semyon Sadetsky wrote:
>>>>>>>>>>>> Hello,
>>>>>>>>>>>>
>>>>>>>>>>>> Could you help me to resolve 9 build problem on Solaris 11.2:
>>>>>>>>>>>>
>>>>>>>>>>>> /usr/ccs/bin/nm: solaris_x86_64.o: No such file or directory
>>>>>>>>>>>> gmake[8]: *** [libjvm.so] Error 1
>>>>>>>>>>>> gmake[8]: Leaving directory
>>>>>>>>>>>> `/jdk9/client/build/solaris-x86_64-normal-server-fastdebug/hotspot/solaris_amd64_compiler2/fastdebug'
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> gmake[7]: *** [the_vm] Error 2
>>>>>>>>>>>> gmake[7]: Leaving directory
>>>>>>>>>>>> `/jdk9/client/build/solaris-x86_64-normal-server-fastdebug/hotspot/solaris_amd64_compiler2/fastdebug'
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> and earlier in the log:
>>>>>>>>>>>>
>>>>>>>>>>>> Assembling
>>>>>>>>>>>> /jdk9/client/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_64.s
>>>>>>>>>>>> rm -f solaris_x86_64.o
>>>>>>>>>>>> xarch=amd64 -o solaris_x86_64.o
>>>>>>>>>>>> /jdk9/client/hotspot/src/os_cpu/solaris_x86/vm/solaris_x86_64.s
>>>>>>>>>>>> /usr/bin/bash: -o: command not found
>>>>>>>>>>>> gmake[8]: [solaris_x86_64.o] Error 127 (ignored)
>>>>>>>>>>>> Compiling /jdk9/client/hotspot/src/share/vm/gc/shared/space.cpp
>>>>>>>>>>>> rm -f space.o
>>>>>>>>>>>> /opt/solarisstudio12.3/bin/CC -DSOLARIS -DSPARC_WORKS -
>>>>>>>>>>>> ...
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> I guess there should be cc before xarch, but it's omited.
>>>>>>>>>>> I'm guessing that .s is an assembly file, so most likely it is
>>>>>>>>>>> $(AS) that resolves to empty. Can you check your spec.gmk for
>>>>>>>>>>> the
>>>>>>>>>>> value of AS?
>>>>>>>>>>>
>>>>>>>>>>> /Magnus
>>>>>>>>>>>
>>>>>>>>>> Yes, AS was empty.
>>>>>>>>>> after I set it to /opt/solarisstudio12.3/bin/cc the first error
>>>>>>>>>> message has gone but then I got:
>>>>>>>>> You cannot set it manually. If configure has failed to detect it,
>>>>>>>>> all bets are off. I'm a bit surprised that configure allowed AS to
>>>>>>>>> be empty, it should have aborted.
>>>>>>>>>
>>>>>>>>> Try running configure with
>>>>>>>>> --with-toolchain-path=/opt/solarisstudio12.3/bin. Does that
>>>>>>>>> help you
>>>>>>>>> get a proper value of AS.
>>>>>>>>>
>>>>>>>>> /Magnus
>>>>>>>>
>>>>>>>> AS remains empty:
>>>>>>>> ====================================================
>>>>>>>> A new configuration has been successfully created in
>>>>>>>> /jdk9/client/build/solaris-x86_64-normal-server-fastdebug
>>>>>>>> using configure arguments '--enable-debug
>>>>>>>> --with-toolchain-path=/opt/solarisstudio12.3/bin'.
>>>>>>>>
>>>>>>>> Configuration summary:
>>>>>>>> * Debug level:    fastdebug
>>>>>>>> * HS debug level: fastdebug
>>>>>>>> * JDK variant:    normal
>>>>>>>> * JVM variants:   server
>>>>>>>> * OpenJDK target: OS: solaris, CPU architecture: x86, address
>>>>>>>> length: 64
>>>>>>>>
>>>>>>>> Tools summary:
>>>>>>>> * Boot JDK:       java version "1.8.0_45" Java(TM) SE Runtime
>>>>>>>> Environment (build 1.8.0_45-b14) Java HotSpot(TM) 64-Bit Server VM
>>>>>>>> (build 25.45-b02, mixed mode)  (at /usr/jdk/instances/jdk1.8.0_45)
>>>>>>>> * Toolchain:      solstudio (Oracle Solaris Studio)
>>>>>>>> * C Compiler:     Version 5.12 (at /opt/solarisstudio12.3/bin/cc)
>>>>>>>> * C++ Compiler:   Version 5.12 (at /opt/solarisstudio12.3/bin/CC)
>>>>>>>>
>>>>>>>> Build performance summary:
>>>>>>>> * Cores to use:   2
>>>>>>>> * Memory limit:   2048 MB
>>>>>>>>
>>>>>>>> dev at solaris1:/jdk9/client$ grep "AS:"
>>>>>>>> /jdk9/client/build/solaris-x86_64-normal-server-fastdebug/spec.gmk
>>>>>>>> AS:=
>>>>>>>
>>>>>>> Do you have an as in your path or in /opt/solarisstudio12.3/bin
>>>>>>> then?
>>>>>>> Have you even built jdk successfully on this machine?
>>>>>>>
>>>>>>> /Magnus
>>>>>>>
>>>>>> No it's a new installation. And I'm building jdk on Solaris for the
>>>>>> first time.
>>>>>> as is absent in  /opt/solarisstudio12.3/bin.
>>>>>>
>>>>>> dev at solaris1:/jdk9/client$ ls /opt/solstudio12.2/bin
>>>>>> CC              cscope          er_bit          f90
>>>>>> rtc_patch_area  sunf90
>>>>>> CCadmin         ctc             er_cp           f95
>>>>>> rxm             sunf95
>>>>>> amd64           ctcr            er_export       fbe rxs sunstudio
>>>>>> analyzer        ctrace          er_generic      fdumpmod smctl tcov
>>>>>> bcheck          cxref           er_html         fpp
>>>>>> solstudio       tha
>>>>>> binopt          dbx             er_kernel       fpr
>>>>>> spot            uncover
>>>>>> c++filt         dbxtool         er_mpipp        fsplit spot_diff
>>>>>> version
>>>>>> c89             dem             er_mv           gen_custom
>>>>>> ss_attach       whatdir
>>>>>> c99             discover        er_otfdump      getmsg sunCC
>>>>>> xprof_atob
>>>>>> cb              dlight          er_print        indent sunas
>>>>>> xprof_btoa
>>>>>> cc              dmake           er_rm           lint sunc89
>>>>>> cc-5.0          dumpstabs       er_src          lock_lint sunc99
>>>>>> cflow           dwarfdump       er_vtunify      ptclean suncc
>>>>>> collect         er_archive      f77             ripc sunf77
>>>>>>
>>>>>> Should it be there?
>>>>>
>>>>> No it is in a separate package apparently (not installed by default
>>>>> on Solaris 11):
>>>>>
>>>>> pkg install pkg:/developer/assembler
>>>>
>>>> Thanks for the information David!
>>>>
>>>> I opened https://bugs.openjdk.java.net/browse/JDK-8081676 to track
>>>> that we should verify that AS is properly detected on Solaris, and
>>>> to print the help about pkg install in case as is missing.
>>>>
>>>> /Magnus
>>>>
>>> Possible it would be worth to add this information to the readme as
>>> well. On other linuxes gcc is used instead of as and configure does
>>> not produce any warnings about it. It is not trivial to find the
>>> reason for people building solaris jdk for the first time.
>>>
>>> --Semyon
>>>
>>>>>
>>>>> David
>>>>> -----
>>>>>
>>>>>>
>>>>>>
>>>>>>>> dev at solaris1:/jdk9/client$
>>>>>>>>
>>>>>>>>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> cc: Warning: -xarch=amd64 is deprecated, use -m64 to create
>>>>>>>>>> 64-bit
>>>>>>>>>> programs
>>>>>>>>>> ld: fatal: file solaris_x86_64.o: not an ELF object
>>>>>>>>>> gmake[8]: *** [solaris_x86_64.o] Error 2
>>>>>>>>>> gmake[8]: *** Waiting for unfinished jobs....
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>
>>>
>>
>



More information about the build-dev mailing list