RFR(S) Solaris Full Debug Symbols (FDS) fix for 8033602 and 8034005
Daniel D. Daugherty
daniel.daugherty at oracle.com
Tue Nov 11 15:40:32 UTC 2014
Thanks for the quick review!
Replies embedded below...
On 11/11/14 1:35 AM, Dmitry Samersoff wrote:
> 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!
> On 2014-11-11 03:00, Daniel D. Daugherty wrote:
>> 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
>> WARNING: patch 149064-01 or newer contains the correct Solaris 10 X86
>> 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
>> JDK-8034005 cannot debug in synchronizer.o or objectMonitor.o on
>> Solaris X86
>> Here is the webrev URL:
>> - 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.
More information about the build-dev