United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-7165598 enable FDS on Solaris X64 when 7165593 is fixed
JDK-7165598 : enable FDS on Solaris X64 when 7165593 is fixed

Details
Type:
Bug
Submit Date:
2012-05-01
Status:
Resolved
Updated Date:
2013-07-19
Project Name:
JDK
Resolved Date:
2012-06-02
Component:
hotspot
OS:
solaris,windows
Sub-Component:
build
CPU:
x86,generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
hs23.2,hs24,7u6
Fixed Versions:
hs24 (b13)

Related Reports
Backport:
Backport:
Backport:
Duplicate:
Relates:

Sub Tasks

Description
The Full Debug Symbols (FDS) feature is disabled for Java on
Solaris X64 by the following code:

make/solaris/makefiles/defs.make:

   129    ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
   130      # Default OBJCOPY comes from the SUNWbinutils package:
   131      DEF_OBJCOPY=/usr/sfw/bin/gobjcopy
   132      ifeq ($(VM_PLATFORM),solaris_amd64)
   133        # On Solaris AMD64/X64, gobjcopy is not happy and fails:
   134        #
   135        # usr/sfw/bin/gobjcopy --add-gnu-debuglink=<lib>.debuginfo <lib>.s
o
   136        # BFD: stKPaiop: Not enough room for program headers, try linking
with -N
   137        # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
   138        # BFD: stKPaiop: Not enough room for program headers, try linking
with -N
   139        # /usr/sfw/bin/gobjcopy: libsaproc.debuginfo: Bad value
   140        # BFD: stKPaiop: Not enough room for program headers, try linking
with -N
   141        # /usr/sfw/bin/gobjcopy: stKPaiop: Bad value
   142        _JUNK_ := $(shell \
   143          echo >&2 "INFO: $(DEF_OBJCOPY) is not working on Solaris AMD64/X
64")            
   144        OBJCOPY=
   145      else
   146        OBJCOPY=$(shell test -x $(DEF_OBJCOPY) && echo $(DEF_OBJCOPY))
   147        ifneq ($(ALT_OBJCOPY),)
   148          _JUNK_ := $(shell echo >&2 "INFO: ALT_OBJCOPY=$(ALT_OBJCOPY)")
   149          OBJCOPY=$(shell test -x $(ALT_OBJCOPY) && echo $(ALT_OBJCOPY))
   150        endif
   151      endif


Once a Solaris 10 patch for the following bug is available:

    7165593 2/3 gobjcopy fails with 64-bit libjvm.so on Solaris X64

then the FDS feature can be enabled on Solaris X64 and further
testing can be done.

                                    

Comments
EVALUATION

Work around the 'gobjcopy' crash by adding a temporary tool that
removes the SHF_ALLOC flag from "empty" section headers. An "empty"
section header has sh_addr == 0 and sh_size == 0.
                                     
2012-05-23
SUGGESTED FIX

See the attached 7165598-webrev-cr0.tgz file for the proposed fix.
                                     
2012-05-23
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-rt/hotspot/rev/9c1709c4c80c
                                     
2012-05-25
EVALUATION

http://hg.openjdk.java.net/hsx/hotspot-main/hotspot/rev/9c1709c4c80c
                                     
2012-05-30
EVALUATION

http://hg.openjdk.java.net/hsx/hsx23.2/hotspot/rev/9c1709c4c80c
                                     
2012-05-30
EVALUATION

http://hg.openjdk.java.net/lambda/lambda/hotspot/rev/9c1709c4c80c
                                     
2012-06-29



Hardware and Software, Engineered to Work Together