RFR: 8033251: Use DWARF debug symbols for Linux 32-bit as default
Coleen Phillimore
coleen.phillimore at oracle.com
Tue Apr 1 13:28:10 UTC 2014
On 4/1/14 9:03 AM, Erik Helin wrote:
> On 2014-04-01 13:38, Coleen Phillimore wrote:
>>
>> I thought you'd be able to get rid of the entire DEBUG_BINARIES setting
>> with the cleanup too. Or is that additional cleanup?
>
> I view getting rid of DEBUG_BINARIES as an additional cleanup since
> DEBUG_BINARIES are used for platforms other than Linux and this patch
> only changes the Linux makefiles.
>
> Are you ok with this?
Yes, I just misunderstood David's cleanup request. Can you file an RFE
to remove DEBUG_BINARIES (if you haven't already)?
thanks,
Coleen
>
> Thanks,
> Erik
>
>> Coleen
>>
>> On 4/1/14 2:38 AM, David Holmes wrote:
>>> Hi Erik,
>>>
>>> On 31/03/2014 10:28 PM, Erik Helin wrote:
>>>> Hi David,
>>>>
>>>> thanks for having a look! Please see my reply inline.
>>>
>>> Thanks for the additional cleanup!
>>>
>>> Looks good.
>>>
>>> David
>>>
>>>
>>>> On 2014-03-29 05:43, David Holmes wrote:
>>>>> On 29/03/2014 4:26 AM, Coleen Phillimore wrote:
>>>>>>
>>>>>> On 3/28/14 12:44 PM, Erik Helin wrote:
>>>>>>> Hi Coleen,
>>>>>>>
>>>>>>> thanks for having a look at the patch!
>>>>>>>
>>>>>>> On 2014-03-28 17:30, Coleen Phillimore wrote:
>>>>>>>>
>>>>>>>> I thought you'd be able to remove the DEBUG_BINARIES logic with
>>>>>>>> this
>>>>>>>> change. It appears there are no platforms left that use stabs
>>>>>>>> with
>>>>>>>> gcc.
>>>>>>>
>>>>>>> Yeah, I also noticed that this change enables cleanups in the
>>>>>>> Makefiles. However, I think it is better to do these cleanups as a
>>>>>>> second change after this one, what do you think?
>>>>>>
>>>>>> A cleanup CR is fine.
>>>>>
>>>>> Unless the cleanup is coming "tomorrow" I disagree. What have now is
>>>>> comments that make no sense given the change that has been made.
>>>>> And as
>>>>> every defined platform seems to use -g we can get rid of all this
>>>>> per-platform logic and simply check for clang. All of which can be
>>>>> done
>>>>> without doing the DEBUG_BINARIES cleanup. Eg delete the per-platform
>>>>> flags and simply have, for example,
>>>>>
>>>>> # Override per-platform if the default -g doesn't suite
>>>>> OPT_CFLAGS += $(OPT_CFLAGS/$(BUILDARCH))
>>>>> ifeq ($(OPT_CFLAGS/$(BUILDARCH)),)
>>>>> ifeq ($(USE_CLANG), true)
>>>>> # Clang doesn't understand -gstabs
>>>>> OPT_CFLAGS += -g
>>>>> else
>>>>> OPT_CFLAGS += -gstabs
>>>>> endif
>>>>> endif
>>>>
>>>> I wanted this change to only be about changing from STABS to DWARF,
>>>> but
>>>> based on your feedback I cleaned up some code in the makefile as well:
>>>>
>>>> - Incremental webrev:
>>>> http://cr.openjdk.java.net/~ehelin/8033251/webrev.00-01/
>>>> - New webrev:
>>>> http://cr.openjdk.java.net/~ehelin/8033251/webrev.01/
>>>>
>>>> The default is now to use DWARF for all platforms, but this can be
>>>> changed by using CFLAGS, for example FASTDEBUG_CFLAGS/amd64=-gstabs
>>>> will
>>>> give you STABS debug symbols for a fastdebug build on 64-bit Linux.
>>>> Having -g as default also enables us to get rid of all the
>>>> $(USE_CLANG)
>>>> checks.
>>>>
>>>> The new patch also fixes a small bug where FASTDEBUG_CFLAGS was set to
>>>> $(DEBUG_CFLAGS/$(BUILDARCH)), it should be set to
>>>> $(FASTDEBUG_CFLAGS/$(BUILDARCH)).
>>>>
>>>> Testing of new patch:
>>>> - JPRT
>>>> - Building builds for different targets with different debug symbols
>>>> locally.
>>>>
>>>> Thanks,
>>>> Erik
>>>>
>>>>> In the future this flag should also potentially be coming in via
>>>>> spec.gmk.
>>>>>
>>>>> David
>>>>>
>>>>>>>
>>>>>>> On 2014-03-28 17:30, Coleen Phillimore wrote:
>>>>>>>> Does this change add -g for saproc, adlc and jsig compilations
>>>>>>>> also?
>>>>>>> It seems like saproc uses SA_DEBUG_CFLAGS which only is being
>>>>>>> set if
>>>>>>> DEBUG_BINARIES=true. If DEBUG_BINARIES is not true, then it seems
>>>>>>> like
>>>>>>> we don't generate debug symbols (please correct me if I'm wrong).
>>>>>>>
>>>>>>> The above also seems to be the case for libjsig.so.
>>>>>>>
>>>>>>
>>>>>> These seem broken, but I don't know the makefiles well enough to
>>>>>> comment.
>>>>>>
>>>>>> I think this change is good. People have been asking for it for
>>>>>> years
>>>>>> and now that the size problem with dwarf has been fixed, I'm glad
>>>>>> you
>>>>>> are making this change.
>>>>>>
>>>>>> Thanks,
>>>>>> Coleen
>>>>>>> Looking in make/linux/makefiles/adlc.make it seems like adlc is
>>>>>>> using
>>>>>>> -g for GCC 3.3 or newer.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Erik
>>>>>>>
>>>>>>>> Coleen
>>>>>>>>
>>>>>>>> On 3/28/14 12:12 PM, Erik Helin wrote:
>>>>>>>>> Hi all,
>>>>>>>>>
>>>>>>>>> this patch changes the Linux Makefiles to use DWARF as the
>>>>>>>>> default
>>>>>>>>> debug symbol format for Linux 32-bit instead of STABS. The main
>>>>>>>>> arguments for using DWARF are:
>>>>>>>>>
>>>>>>>>> - DWARF provides a superior debugging experience compared to
>>>>>>>>> STABS.
>>>>>>>>> - STABS support in GCC/GDB is in maintenance mode [0].
>>>>>>>>> - External tools (e.g. perf on Linux) often understands
>>>>>>>>> DWARF but
>>>>>>>>> not
>>>>>>>>> STABS.
>>>>>>>>> - Compilation on 32-bit Linux can make use of precompiled
>>>>>>>>> headers.
>>>>>>>>>
>>>>>>>>> Webrev:
>>>>>>>>> http://cr.openjdk.java.net/~ehelin/8033251/webrev.00/
>>>>>>>>>
>>>>>>>>> Testing:
>>>>>>>>> - Compiling with GCC 4.3.4, GCC 4.7.3 and GCC 4.8.1
>>>>>>>>> - JPRT
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Erik
>>>>>>>>>
>>>>>>>>> [0]: https://sourceware.org/ml/binutils/2013-01/msg00028.html
>>>>>>>>
>>>>>>
>>
More information about the hotspot-dev
mailing list