RFR(S) Solaris Full Debug Symbols (FDS) fix for 8033602 and 8034005

Dmitry Samersoff dmitry.samersoff at oracle.com
Tue Nov 11 16:21:36 UTC 2014


Dan,

Thank you for the explanation.

The fix looks good for me.

-Dmitry

On 2014-11-11 18:40, Daniel D. Daugherty wrote:
> Dmitry,
> 
> Thanks for the quick review!
> 
> Replies embedded below...
> 
> 
> On 11/11/14 1:35 AM, Dmitry Samersoff wrote:
>> Dan,
>>
>> 1. defs.make:
>>
>> It might be better to join obcopy version check and condition at ll.190
> 
> I looked at that... The seemingly natural place to put the version check
> is actually in the else branch on line 194... However, if the version
> check is bad, then you have to make a second check for a reset OBJCOPY
> value (along with indenting all the code another level or two).
> 
> It just looked ugly... it seemed better to keep the version check
> separate from the other logic.
> 
> 
>> otherwise the user will have a wrong version warning and then misleading
>> message "no objcopy cmd found"
> 
> However, part of that wrong version warning is this line:
> 
> WARNING: ignoring above objcopy command.
> 
> so in reality that "no objcopy cmd found" is just confirming
> that we are indeed ignoring the objcopy cmd that we found...
> 
> 
>> 2. Did you consider moving objcopy detection to configure?
> 
> No because this fix has to be backported to JDK8u and JDK7 since
> we support FDS in those releases...
> 
> Of course, the build-infra team is always welcome to use a new
> bug to evolve this code for JDK9 and newer.
> 
> Again, thanks for the review!
> 
> Dan
> 
> 
>>
>>
>> -Dmitry
>>
>>
>> On 2014-11-11 03:00, Daniel D. Daugherty wrote:
>>> Greetings,
>>>
>>> I have a Solaris Full Debug Symbols (FDS) fix ready for review.
>>> Yes, it is a small fix, but it is in Makefiles so feel free to
>>> run screaming from the room... :-)  On the plus side the fix does
>>> delete two work around source files (Coleen would say that's a
>>> Good Thing (TM)!)
>>>
>>> The fix is to detect the version of GNU objcopy that is being
>>> used on the machine and only enable Full Debug Symbols when that
>>> version is 2.21.1 or newer. If you don't have the right version,
>>> then the build drops back to pre-FDS build configs with a message
>>> like this:
>>>
>>> WARNING: /usr/sfw/bin/gobjcopy --version info:
>>> WARNING: GNU objcopy 2.15
>>> WARNING: an objcopy version of 2.21.1 or newer is needed to create valid
>>> .debuginfo files.
>>> WARNING: ignoring above objcopy command.
>>> WARNING: patch 149063-01 or newer contains the correct Solaris 10 SPARC
>>> version.
>>> WARNING: patch 149064-01 or newer contains the correct Solaris 10 X86
>>> version.
>>> WARNING: Solaris 11 Update 1 contains the correct version.
>>> INFO: no objcopy cmd found so cannot create .debuginfo files.
>>> INFO: ENABLE_FULL_DEBUG_SYMBOLS=0
>>>
>>> This work is being tracked by the following bug IDs:
>>>
>>>      JDK-8033602 wrong stabs data in libjvm.debuginfo on JDK 8 - SPARC
>>>      https://bugs.openjdk.java.net/browse/JDK-8033602
>>>
>>>      JDK-8034005 cannot debug in synchronizer.o or objectMonitor.o on
>>> Solaris X86
>>>      https://bugs.openjdk.java.net/browse/JDK-8034005
>>>
>>> Here is the webrev URL:
>>>
>>> http://cr.openjdk.java.net/~dcubed/8033602-webrev/0-jdk9-hs-rt/
>>>
>>> Testing:
>>>
>>> - JPRT test jobs to verify that the current JPRT Solaris hosts
>>>    are happy
>>> - local builds on my Solaris 10 X86 machine to verify that the
>>>    wrong version of GNU objcopy is caught
>>>
>>> Thanks, in advance, for any comments, questions or suggestions.
>>>
>>> Dan
>>
> 


-- 
Dmitry Samersoff
Oracle Java development team, Saint Petersburg, Russia
* I would love to change the world, but they won't give me the sources.



More information about the build-dev mailing list