RFR: JDK-8198243: Add build time check for global operator new/delete in object files

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Fri Feb 23 13:27:41 UTC 2018


On 2018-02-22 20:41, Erik Joelsson wrote:
>
>
> On 2018-02-21 21:06, David Holmes wrote:
>> On 22/02/2018 4:07 AM, Erik Joelsson wrote:
>>> Hello,
>>>
>>>
>>> On 2018-02-20 21:33, David Holmes wrote:
>>>>
>>>> a) how much time it adds to the build?
>>>>
>>> I have not done extensive testing, but on my Linux workstation with 
>>> 32 hw threads, building just hotspot release build from a clean 
>>> workspace increased maybe 1 or 2 seconds (at around 90s total), but 
>>> the variance was around the same amount as that.
>>>> b) why this doesn't work for Solaris Studio?
>>>>
>>> I didn't put a lot of effort into trying to figure it out. The check 
>>> used was provided by Kim Barrett, for Linux only. I figured it would 
>>> be simple enough to get it to work on mac and succeeded there. It 
>>> should certainly be possible to implement a similar check on 
>>> Solaris, but is it worth the time to do it? Both development time 
>>> and increased build time on one of the slower build platforms?
>>
>> Depends how concerned we are with detecting this problem in OS 
>> specific source code?
>>
> I investigated this some more. I was able to do it successfully, but 
> the build time cost is way too large here. The culprit is c++filt on 
> Solaris which is incredibly costly, and the gnu version does not 
> demangle Solaris Studio symbols. I don't think we should do this on 
> Solaris.
I agree, it's not worth it.

Not all programmer's mistakes are reasonable to catch in technical 
traps. It we *should* spend time on getting automatic tool for keeping 
code quality up (and, yes, I really do think we should), there's most 
likely to be much better areas to spend that effort in, in making a lot 
of prone-to-break scripts for catching a single kind of problem.

/Magnus

>
> We could grep for the mangled strings for the operators instead, which 
> is super fast. Problem is just figuring out all the possible 
> combinations.
>
> /Erik
>> To be honest I'm not sure this pulls its own weight regardless.
>>
>> David
>>
>>> /Erik
>>>> Thanks,
>>>> David
>>>>
>>>> On 21/02/2018 4:05 AM, Erik Joelsson wrote:
>>>>> Hello,
>>>>>
>>>>> This patch adds a build time check for uses of global operators 
>>>>> new and delete in hotspot C++ code. The check is only run with 
>>>>> toolchains GCC and Clang (Linux and Macos builds). I have also 
>>>>> modified the Oracle devkit on Linux to add the necessary symlink 
>>>>> so that objdump will get picked up by configure.
>>>>>
>>>>> This change is depending on several fixes removing such uses that 
>>>>> are currently in jdk/hs so this change will need to be pushed 
>>>>> there as well.
>>>>>
>>>>> Bug: https://bugs.openjdk.java.net/browse/JDK-8198243
>>>>>
>>>>> Webrev: http://cr.openjdk.java.net/~erikj/8198243/webrev.01/
>>>>>
>>>>> /Erik
>>>>>
>>>
>



More information about the hotspot-runtime-dev mailing list