(XS) RFR: 8077674: BSD build failures due to undefined macros
David Holmes
david.holmes at oracle.com
Tue Apr 21 01:33:13 UTC 2015
Thanks Harold!
David
On 20/04/2015 11:02 PM, harold seigel wrote:
> Hi David,
>
> The changes look good.
>
> Thanks, Harold
>
> On 4/20/2015 3:36 AM, David Holmes wrote:
>> Thanks Dmitry.
>>
>> Just realized I still need a (R)eviewer from runtime please. <sigh>
>>
>> David
>>
>> On 20/04/2015 5:01 PM, Dmitry Samersoff wrote:
>>> David,
>>>
>>> Looks good for me.
>>>
>>> -Dmitry
>>>
>>> On 2015-04-20 04:32, David Holmes wrote:
>>>> Hi Dmitry,
>>>>
>>>> Can we get closure on this. Are you okay with:
>>>>
>>>> http://cr.openjdk.java.net/~dholmes/8077674/webrev.v2/
>>>>
>>>> If not please advise exactly how you think this should be fixed.
>>>>
>>>> Thanks,
>>>> David
>>>>
>>>> On 16/04/2015 5:32 PM, David Holmes wrote:
>>>>> On 16/04/2015 5:00 PM, Dmitry Samersoff wrote:
>>>>>> David,
>>>>>>
>>>>>>> True but "normal" programming style for mutually exclusive
>>>>>>> conditions is to use if/else style logic.
>>>>>>
>>>>>> Agree in general, but I vote for better readability/error resistance
>>>>>> here.
>>>>>
>>>>> It might be more readable in the sense it is minimalist, but IMHO
>>>>> it is
>>>>> less understandable to treat mutually exclusive conditions as if they
>>>>> were not mutually exclusive. I don't see the error resistance
>>>>> argument ??
>>>>>
>>>>>> Also, you may consider to add "sanity" block to the top of file to
>>>>>> defend to incorrect defines (multiple variants, VAR = 0 etc)
>>>>>
>>>>> Not sure what you mean but this seems to be exploding beyond the
>>>>> simple
>>>>> build fix I was trying to quickly get out.
>>>>>
>>>>> Thanks,
>>>>> David
>>>>>
>>>>>> -Dmitry
>>>>>>
>>>>>>
>>>>>> On 2015-04-16 09:47, David Holmes wrote:
>>>>>>> On 16/04/2015 4:43 PM, Dmitry Samersoff wrote:
>>>>>>>> David,
>>>>>>>>
>>>>>>>> As __FreeBSD__ and __OpenBSD__ etc is unlikely defined together
>>>>>>>> you don't need #else here.
>>>>>>>
>>>>>>> True but "normal" programming style for mutually exclusive
>>>>>>> conditions is
>>>>>>> to use if/else style logic.
>>>>>>>
>>>>>>> It's a third option I suppose, but I find it less appealing.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> David
>>>>>>>
>>>>>>>> i.e.
>>>>>>>>
>>>>>>>> #ifdef __FreeBSD__
>>>>>>>> ...
>>>>>>>> #endif
>>>>>>>>
>>>>>>>> #ifdef __OpenBSD__
>>>>>>>> ...
>>>>>>>> #endif
>>>>>>>>
>>>>>>>> etc.
>>>>>>>>
>>>>>>>> -Dmitry
>>>>>>>>
>>>>>>>> On 2015-04-16 08:25, David Holmes wrote:
>>>>>>>>> Here's an alternate webrev based on Kim's findings in the other
>>>>>>>>> thread.
>>>>>>>>>
>>>>>>>>> http://cr.openjdk.java.net/~dholmes/8077674/webrev.v2/
>>>>>>>>>
>>>>>>>>> Basically #elif XXX is replaced with #else #ifdef XXX #endif".
>>>>>>>>> With
>>>>>>>>> lots
>>>>>>>>> of new lines of course.
>>>>>>>>>
>>>>>>>>> I don't know what the normal style rules are for nesting
>>>>>>>>> preprocessing
>>>>>>>>> conditionals. I prefer to see the # lines indented, but I know
>>>>>>>>> people
>>>>>>>>> like to see the real code at the indent it would be if there
>>>>>>>>> were no
>>>>>>>>> conditional.
>>>>>>>>>
>>>>>>>>> As I wrote here:
>>>>>>>>>
>>>>>>>>> http://mail.openjdk.java.net/pipermail/build-dev/2015-April/014801.html
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> It seems to me there are two choices here:
>>>>>>>>>
>>>>>>>>> a) Use the [original] change proposed but verify that the
>>>>>>>>> variables
>>>>>>>>> concerned are ones that if defined will never be defined to be
>>>>>>>>> zero
>>>>>>>>> (which I believe to be the case but may have trouble proving :( )
>>>>>>>>>
>>>>>>>>> b) Replace the 'elif XXX' with 'else ifdef XXX' [v2]
>>>>>>>>>
>>>>>>>>> For the few cases involved here (b) seems the easier path.
>>>>>>>>>
>>>>>>>>> Comments/suggestions welcomed.
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> David
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 16/04/2015 11:50 AM, David Holmes wrote:
>>>>>>>>>> Still need Review for this please (with plans to backport to 8u).
>>>>>>>>>>
>>>>>>>>>> Thanks,
>>>>>>>>>> David
>>>>>>>>>>
>>>>>>>>>> On 15/04/2015 6:25 AM, David Holmes wrote:
>>>>>>>>>>> Hi Dmitry,
>>>>>>>>>>>
>>>>>>>>>>> On 14/04/2015 9:25 PM, Dmitry Samersoff wrote:
>>>>>>>>>>>> David,
>>>>>>>>>>>>
>>>>>>>>>>>> It's better to change
>>>>>>>>>>>>
>>>>>>>>>>>> #ifdef __APPLE__
>>>>>>>>>>>>
>>>>>>>>>>>> to
>>>>>>>>>>>>
>>>>>>>>>>>> #if defined(__APPLE__)
>>>>>>>>>>>
>>>>>>>>>>> Why? They seem 100% equivalent. Plus that would mean a lot of
>>>>>>>>>>> changes.
>>>>>>>>>>> Plus we use that pattern in many, many, many places.
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>> David
>>>>>>>>>>>
>>>>>>>>>>>> -Dmitry
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On 2015-04-14 13:20, David Holmes wrote:
>>>>>>>>>>>>> webrev:
>>>>>>>>>>>>>
>>>>>>>>>>>>> http://cr.openjdk.java.net/~dholmes/8077674/webrev/
>>>>>>>>>>>>>
>>>>>>>>>>>>> From the original error report:
>>>>>>>>>>>>>> "-Wundef option causes GCC to warn whenever it encounters an
>>>>>>>>>>>>>> identifier
>>>>>>>>>>>>>> which is not a macro in an ‘#if’. "
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hence we should be using
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> #elif defined(__FreeBSD__)
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> etc in this context.
>>>>>>>>>>>>>
>>>>>>>>>>>>> I also founds similar suspect usages in os_linux.cpp and
>>>>>>>>>>>>> os_windows.cpp.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Thanks,
>>>>>>>>>>>>> David
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>>
>>>
>>>
>
More information about the hotspot-runtime-dev
mailing list