code review round 0 for Full Debug Symbols on MacOS X hotspot (7165611)

Staffan Larsen staffan.larsen at oracle.com
Tue Oct 1 09:36:13 PDT 2013


On 1 okt 2013, at 18:01, "Daniel D. Daugherty" <daniel.daugherty at oracle.com> wrote:

> On 9/30/13 12:00 PM, Staffan Larsen wrote:
>> On 30 sep 2013, at 15:44, Daniel D. Daugherty <daniel.daugherty at oracle.com> wrote:
>> 
>>> 
>>> I'm presuming that you're trying with a forest that includes
>>> closed repos. If so, then you'll need the jdk/make/closed change
>>> in order for the build to work.
>> Yes, I was running with closed repos. I now have the additional patch, but what I get now is a bit strange. The libjvm.dylib.dSYM directory should be copied from
>> build/macosx-x86_64-normal-server-slowdebug/hotspot/bsd_amd64_compiler2/debug/ to
>> build/macosx-x86_64-normal-server-slowdebug/hotspot/dist/jre/lib/server/ to
>> build/macosx-x86_64-normal-server-slowdebug/jdk/lib/server/
>> 
>> But what I get is for each copy, the result is different:
>> 
>> build/macosx-x86_64-normal-server-slowdebug/hotspot/bsd_amd64_compiler2/debug/libjvm.dylib.dSYM/:
>> Contents
>> 
>> build/macosx-x86_64-normal-server-slowdebug/hotspot/dist/jre/lib/server/libjvm.dylib.dSYM/:
>> Info.plist	libjvm.dylib
>> 
>> build/macosx-x86_64-normal-server-slowdebug/jdk/lib/server/libjvm.dylib.dSYM:
>> libjvm.dylib
>> 
>> 
>> Looks like the recursive copy isn't working as expected.
> 
> Yesterday, I did a JPRT control build and here's what I see:
> 
> $ unzip -l macosx_x64_10.7-product.zip | grep .diz
>     2333  10-01-2013 00:13   jre/lib/libjsig.diz
>     3747  10-01-2013 00:13   jre/lib/libsaproc.diz
>      204  10-01-2013 00:13   jre/lib/server/libjsig.diz
> 132330347  10-01-2013 00:14   jre/lib/server/libjvm.diz
> 
> And inside libjvm.diz:
> 
> $ unzip -l jre/lib/server/libjvm.diz
> Archive:  jre/lib/server/libjvm.diz
>  Length      Date    Time    Name
> ---------  ---------- -----   ----
>        0  09-30-2013 23:59   libjvm.dylib.dSYM/
>        0  09-30-2013 23:59   libjvm.dylib.dSYM/Contents/
>      641  09-30-2013 23:59 libjvm.dylib.dSYM/Contents/Info.plist
>        0  09-30-2013 23:59 libjvm.dylib.dSYM/Contents/Resources/
>        0  09-30-2013 23:59 libjvm.dylib.dSYM/Contents/Resources/DWARF/
> 326461252  09-30-2013 23:59 libjvm.dylib.dSYM/Contents/Resources/DWARF/libjvm.dylib
> ---------                     -------
> 326461893                     6 files
> 
> so it looks like JPRT is doing the "right thing" for control builds.
> I had previously verified that a hotspot only JPRT was doing the right
> thing before my vacation.
> 
> My personal manual hotspot builds on my MacMini also did the right
> thing so I'll have to check out what's going on with your style of
> build invocation.

The problem I am seeing is with the option --disable-zip-debug-info to configure (which is very useful when compiling and debugging on the same system).

> 
> 
>>>> Another comment: There are some makefile logic for BSD, non-darwin platforms. Have you had a chance to test this logic? (hotspot/make/bsd/makefiles/vm.make)
>>> No, I don't have access to a BSD (non-darwin) platform. However, I'll
>>> be pinging Dmitri Samersoff to ask a few questions...
>> OK. If we can't verify the logic, then maybe should leave it out.
> 
> I'll work with Dmitry S. on getting this tested. If we can't verify
> that proposed changes work on BSD, then I'll back out that portion.

Good.

/Staffan

> 
> Dan
> 
> 
>> 
>>> 
>>>> Nit: hotspot/make/bsd/makefiles/vm.make: L345, L356: wrong indentation.
>>> These are make cmd lines:
>>> 
>>> 344   else
>>> 345         $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO)
>>> 346         $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@
>>> 347     ifeq ($(STRIP_POLICY),all_strip)
>>> 
>>> so they have to be indented by a tab. Very ugly, but necessary.
>> Ouch. :-(
>> 
>> /Staffan
>> 
>>> Dan
>>> 
>>> 
>>>> 
>>>> /Staffan
>>>> 
>>>> 
>>>> 
>>>> On 21 sep 2013, at 05:36, Daniel D. Daugherty <daniel.daugherty at oracle.com> wrote:
>>>> 
>>>>> Greetings,
>>>>> 
>>>>> I have the initial support for Full Debug Symbols (FDS) on MacOS X done
>>>>> and ready for review:
>>>>> 
>>>>>    7165611 implement Full Debug Symbols on MacOS X hotspot
>>>>>    https://bugs.openjdk.java.net/browse/JDK-7165611
>>>>> 
>>>>> Here is the JDK8/HSX-25 webrev URL:
>>>>> 
>>>>> OpenJDK: http://cr.openjdk.java.net/~dcubed/fds_revamp/7165611-webrev/0-jdk8/
>>>>> Internal: http://javaweb.us.oracle.com/~ddaugher/fds_revamp/7165611-webrev/0-jdk8/
>>>>> 
>>>>> This webrev includes changes for the follow repos:
>>>>> 
>>>>>    jdk8
>>>>>    jdk8/hotspot
>>>>>    jdk8/jdk
>>>>>    jdk8/jdk/make/closed
>>>>> 
>>>>> Once these changes are approved, I'm planning to push them to
>>>>> RT_Baseline. From there, they can follow the normal path to
>>>>> Main_Baseline and eventually JDK8.
>>>>> 
>>>>> This work enables FDS on MacOS X for the 'hotspot' repo; the changes in
>>>>> the other repos are necessary to support importing the .diz files from
>>>>> the MacOS X 'hotspot' build into the forest build. I also fixed a few
>>>>> FDS related errors in the magic incantations for the new build. This is
>>>>> mostly a port from Linux -> MacOS X/BSD with the dtrace changes ported
>>>>> from Solaris. In other words, this is Frankenstein's monster...
>>>>> 
>>>>> Thanks to Staffan Larsen for providing an initial set of changes
>>>>> which I morphed into what you see here.
>>>>> 
>>>>> Testing:
>>>>> - JPRT HSX build and test on all platforms; verification of .diz
>>>>>  files in the MacOS X JPRT bundles
>>>>> - JPRT JDK8 forest build and test on all platforms; verification of
>>>>>  .diz files in the MacOS X JPRT bundles
>>>>>  Note: In previous FDS changesets, I also did a standalone 'jdk'
>>>>>  repo build and test, but that no longer seems to work.
>>>>> 
>>>>> As always, comments, questions and suggestions are welcome.
>>>>> 
>>>>> Dan
> 



More information about the serviceability-dev mailing list