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

Daniel D. Daugherty daniel.daugherty at oracle.com
Mon Sep 30 15:44:41 UTC 2013


That's the correct name. If you drop them from the targets list, then
the make subsystem won't detect that those expected targets aren't
being built... In any case, I'm curious why this is failing on Windows
since I didn't (intentionally) change Windows code here.

These OpenJDK changes along with the closed changes were run through
JPRT before I went on vacation and I didn't see any failures on any
platform. I'll check out the JPRT job if it is still around.

I suspect that you're having problems because the closed changes aren't
there, but I'm not sure. I still need to send out the closed side code
review request...

Dan



On 9/30/13 9:37 AM, Vadim Pakhnushev wrote:
> No, I don't. I'm just excluding them from the targets list (not sure 
> what's the correct name for that).
> Actual files are created using these lines:
>             ifeq ($(ENABLE_DEBUG_SYMBOLS), true)
>                 ifeq ($(OPENJDK_TARGET_OS), windows)
> $1_EXTRA_LDFLAGS+="-pdb:$$($1_OBJECT_DIR)/$$($1_LIBRARY).pdb" \
>                       "-map:$$($1_OBJECT_DIR)/$$($1_LIBRARY).map"
>                 endif
>
> Thanks,
> Vadim
>
> On 30.09.2013 19:25, Daniel D. Daugherty wrote:
>> On 9/30/13 8:12 AM, Vadim Pakhnushev wrote:
>>> BTW, I have the same issue on windows:
>>> make[2]: *** No rule to make target 
>>> `/cygdrive/c/Vadim/jdk8_2d/build/windows-x86-normal-server-release/jdk/bin/verify.map', 
>>> needed by `all'.  Stop.
>>>
>>> I think it can be fixed by this:
>>>
>>> diff -r d4762f463fe0 common/makefiles/NativeCompilation.gmk
>>> --- a/common/makefiles/NativeCompilation.gmk    Thu Sep 19 09:36:42 
>>> 2013 -0700
>>> +++ b/common/makefiles/NativeCompilation.gmk    Mon Sep 30 18:08:57 
>>> 2013 +0400
>>> @@ -473,10 +473,7 @@
>>>                  && $(ZIP) -q $$@ 
>>> $$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo
>>>                      endif
>>>                  else
>>> -                    ifeq ($(OPENJDK_TARGET_OS), windows)
>>> -                        $1 += $$($1_OUTPUT_DIR)/$$($1_LIBRARY).map \
>>> -                  $$($1_OUTPUT_DIR)/$$($1_LIBRARY).pdb
>>> -                    else
>>> +                    ifneq ($(OPENJDK_TARGET_OS), windows)
>>>                          $1 += 
>>> $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo
>>>                      endif
>>>                  endif
>>>
>>>
>>> Does that look ok?
>>
>> No, that's not right. You are dropping support for .map and .pdb
>> files with the above change.
>>
>> Dan
>>
>>
>>
>>
>>> Thanks,
>>> Vadim
>>>
>>> On 30.09.2013 17:44, Daniel D. Daugherty wrote:
>>>> On 9/30/13 7:13 AM, Staffan Larsen wrote:
>>>>> First: thanks for doing this work - it will make debugging on os x 
>>>>> so much easier!
>>>>
>>>> That's the plan...
>>>>
>>>>
>>>>> I'm not done with the review, but here are a couple of comments so 
>>>>> far.
>>>>>
>>>>> I tried running with:
>>>>>
>>>>> $ sh ./configure --with-debug-level=slowdebug 
>>>>> --disable-zip-debug-info
>>>>> $ make
>>>>>
>>>>> which results in:
>>>>>
>>>>> ## Starting hotspot
>>>>> ...
>>>>> make[5]: *** No rule to make target 
>>>>> `/Users/staffan/mercurial/hotspot-rt-jdk/build/macosx-x86_64-normal-server-slowdebug/hotspot/dist/jre/lib/amd64/libjsig.dylib.dSYM', 
>>>>> needed by `generic_export'.  Stop.
>>>>> make[4]: *** [export_debug] Error 2
>>>>> make[3]: *** [all_debug_universal] Error 2
>>>>> make[2]: *** [universal_debug] Error 2
>>>>> ...
>>>>
>>>> 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.
>>>>
>>>>
>>>>> 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...
>>>>
>>>>
>>>>> 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.
>>>>
>>>> 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