RFR: JDK-8221851: Use of THIS_FILE in hotspot invalidates precompiled header on Linux/GCC
David Holmes
david.holmes at oracle.com
Fri Apr 5 04:04:01 UTC 2019
Hi Erik,
Build and hotspot changes seem okay.
Thanks,
David
On 5/04/2019 8:03 am, Erik Joelsson wrote:
>
> On 2019-04-04 14:26, Kim Barrett wrote:
>>
>> OK, I can do that.
>>
>> ------------------------------------------------------------------------------
>>
>> src/hotspot/share/utilities/macros.hpp
>> 645 #if FILE_MACRO_OFFSET
>> 646 #define THIS_FILE (__FILE__ + FILE_MACRO_OFFSET)
>> 647 #else
>> 648 #define THIS_FILE __FILE__
>> 649 #endif
>>
>> Is the "#if FILE_MACRO_OFFSET" an intentional test for 0, or is this
>> an implicit test for "defined"?
>>
>> If the former, e.g. we're assuming it will always be defined but might
>> have a 0 value, then I'd skip it and just unconditionally define
>> THIS_FILE as (__FILE__ + FILE_MACRO_OFFSET).
>
> Right, that makes sense. I was sort of hedging for all possibilities
> here, but as the build logic is currently structured, it will always be
> defined, just sometimes 0.
>
> New webrev: http://cr.openjdk.java.net/~erikj/8221851/webrev.02/
>
> /Erik
>
>> If the latter, some compilers will (with some warning levels or
>> options, such as gcc -Wundef) complain about the (specified by the
>> standard) implicit conversion to 0 for an unrecognized identifier in
>> an #if expression, and an #ifdef should be used to protect against
>> that.
>>
>> ------------------------------------------------------------------------------
>>
>>
>>
More information about the build-dev
mailing list