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

Daniel D. Daugherty daniel.daugherty at oracle.com
Wed Oct 9 16:06:59 UTC 2013


On 10/9/13 9:03 AM, Daniel D. Daugherty wrote:
> Replies also inline...
>
>
> On 10/9/13 6:02 AM, David Holmes wrote:
>> inline ...
>>
>> On 9/10/2013 8:59 AM, Daniel D. Daugherty wrote:
>>> On 10/1/13 8:52 PM, David Holmes wrote:
>>
>>>> - make/bsd/makefiles/universal.gmk
>>>>
>>>> I did not understand the additional logic here:
>>>>
>>>>   63 # Copy built non-universal binaries in place
>>>>   64 $(UNIVERSAL_COPY_LIST):
>>>>   65         BUILT_COPY_FILES="`find
>>>> $(EXPORT_JRE_LIB_DIR)/{i386,amd64}/$(subst $(EXPORT_JRE_LIB_DIR)/,,$@)
>>>> 2>/dev/null`"; \
>>>>   66         if [ -n "$${BUILT_COPY_FILES}" ]; then \
>>>>   67           for i in $${BUILT_COPY_FILES}; do \
>>>>   68             if [ -f $${i} ]; then \
>>>>   69               $(MKDIR) -p $(shell dirname $@); \
>>>>   70               $(CP) -R $${i} $@; \
>>>>   71             fi; \
>>>>   72             if [ -d $${i} ]; then \
>>>>   73               $(MKDIR) -p $@; \
>>>>   74             fi; \
>>>>   75           done; \
>>>>   76         fi
>>>>
>>>> until I realized that foo.dSYM is a directory not a file! Even so
>>>> don't you want to copy the contents of the directory across ?
>>>
>>> BUILT_COPY_FILES includes both files and directories so everything
>>> should get copied across. I've added some commments to the rule
>>> header and reorganized the logic a bit to hopefully be more clear.
>>
>> Doesn't this assume that the directory will appear before the files 
>> within it? Is that guaranteed?
>
> The way find works is that it lists the directory prior to listing
> the files within the directory. However, even if find didn't, the
> containing directory would be created via line 69 above. The one
> non-obvious feature of lines 72-74 is that an empty directory named
> in the BUILD_COPY_FILES list would get 'copied' to the destination.
>
> Please check out the latest version when I get it out for review.

It turns out that the above block was the reason for the flat hierarchy
reported by Staffan when:

     ZIP_DEBUGINFO_FILES=0 a.k.a. '--disable-zip-debug-info'

is used. I've redone this block again in a much simpler fashion
and that seems to be working.

Dan




More information about the build-dev mailing list