code review round 0 for Full Debug Symbols on MacOS X hotspot (7165611)
Daniel D. Daugherty
daniel.daugherty at oracle.com
Tue Oct 1 16:01:48 UTC 2013
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.
>>> 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.
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 build-dev
mailing list