slowproduct build

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Thu Apr 12 12:03:36 UTC 2018


On 2018-04-11 07:12, Ioi Lam wrote:
>
>
>
> On 4/10/18 2:21 PM, Magnus Ihse Bursie wrote:
>>
>> On 2018-04-10 23:08, Ioi Lam wrote:
>>> Yes that’s what I want.
>>>
>>> Yesterday I was using gdb to step into the interpreter generation 
>>> code to see what’s generated for a particular routine for 
>>> MethodHandles. The debug build contains a LOT of runtime 
>>> verification code in the generated code and I couldn’t figure out 
>>> what’s happening. The product build just generates 10 instructions.
>> So you want to have a way to force -O0 for all compiled files? 
>> Something like "bash configure --with-debug-level=release 
>> --with-optimization=none", or possibly "make OPTIMIZATION=NONE"?
>>
> Hi Magnus,
>
> I like the --with-optimization=none flag. This doesn't seem to exist 
> yet. Any plans to add it?

Yes, it does not exist yet. :) I'm trying out various scenarios here to 
understand what you need and how we can fix it.

I have opened https://bugs.openjdk.java.net/browse/JDK-8201485, however 
to be frank, it is of quite low priority (infrequence and odd use case, 
workaround exists) so I assume it will take a while before I or anyone 
else comes around to it.

/Magnus


>
> The way I would use it is:
>
>     bash configure --with-debug-level=product --with-optimization=none
>
> Thanks
> - Ioi
>
>> Or are you happy with the optimization level of a slowdebug build, 
>> and only want to adjust the value of PRODUCT and ASSERT for hotspot 
>> to match what's done for a release build? Something like "bash 
>> configure --enable-hotspot-product-build"?
>>
>> /Magnus
>>
>>>
>>> Thanks
>>> Ioi
>>>
>>> On Apr 10, 2018, at 1:47 PM, Thomas Stüfe <thomas.stuefe at gmail.com 
>>> <mailto:thomas.stuefe at gmail.com>> wrote:
>>>
>>>> If I understand Ioi correctly, he wants a build with PRODUCT and 
>>>> !ASSERT but with debug symbols and no optimizations? So, no 
>>>> assertions and all switches with product defaults?
>>>>
>>>> I can see that this could make sense in certain scenarios.
>>>>
>>>> ..Thomas
>>>>
>>>> On Tue, Apr 10, 2018 at 10:27 PM, Magnus Ihse Bursie 
>>>> <magnus.ihse.bursie at oracle.com 
>>>> <mailto:magnus.ihse.bursie at oracle.com>> wrote:
>>>>
>>>>     On 2018-04-10 02:00, Ioi Lam wrote:
>>>>
>>>>         Sometimes I want to debug the product build (I can't bother
>>>>         with turning off all the trueInDebug options in the hotspot
>>>>         globals.hpp). The only way that I have found to do this is:
>>>>
>>>>             configure --with-native-debug-symbols=internal
>>>>             mv spec.gmk spec.gmk.old
>>>>             cat spec.gmk | sed -e 's/[-]O[0-9s]/-O0/g' > spec.gmk
>>>>
>>>>         Is there (or should there be) a more elegant way to do it,
>>>>         like "configure --with-debug-level=slowproduct" :-)
>>>>
>>>>     I'm not entirely sure of what you want to achieve.
>>>>
>>>>     As I interepret your snippet above, you want no optimization
>>>>     and internal debug symbols..? How is that debugging a "product"
>>>>     build?
>>>>
>>>>     /Magnus
>>>>
>>>>
>>>>         Thanks
>>>>         - Ioi
>>>>
>>>>
>>>>
>>
>




More information about the build-dev mailing list