[Mesa-dev] [PATCH 2/3] gallium/nouveau: use std::isfinite in c++ sources

Ilia Mirkin imirkin at alum.mit.edu
Sun Oct 19 10:39:53 PDT 2014


On Sun, Oct 19, 2014 at 1:23 PM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
> On 19/10/14 16:59, Ilia Mirkin wrote:
>> On Sun, Oct 19, 2014 at 11:41 AM, Emil Velikov <emil.l.velikov at gmail.com> wrote:
>>> On 19/10/14 16:23, Ilia Mirkin wrote:
>>>> Can you provide more detail as to why the util/u_math.h include is
>>>> insufficient? Perhaps it should be fixed up similarly to how
>>>> mesa/main/imports.h does it?
>>>>
>>> The actual error message is quite explanatory
>>> external/mesa/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp:421:35:
>>> *error: 'isfinite' was not declared in this scope*
>>>
>>> Whereas which branch of the ifdef spaghetti the compiler takes in order
>>> to get there is a good question. I doubt that I'll get the chance to
>>
>> Well, u_math.h actually only provides an isfinite for msvc (and
>> assumes the rest will have it).
>>
>>> look into it any time soon. Yet it makes sense to use C++ headers for
>>> C++ code - don't you agree ?
>>
>> The current contract is that u_math.h makes isfinite work. There's
>> other code in the tree that uses isfinite (admittedly only in vega).
>> I'd be perfectly happy with this patch if it also removed isfinite
>> references from u_math.h. However as long as u_math.h provides some
>> isfinite support, it should be fixed there.
>>
> I believe that "contract" was made before any C++ code started using it.
> From my earlier investigation -std=c99 is not set (nor it makes sense as
> we're compiling C++ code) so isfinite is not defined.

Either you should be able to include u_math.h and have isfinite
defined, or u_math.h should have nothing to do with isfinite. I don't
really care which way it goes, but having it be part-way is going to
cause annoyance. [TBH I haven't the slightest clue where isfinite is
even supposed to come from... C intrinsic? math.h? no idea.]

>
> I would love to investigate and fix it properly but building for Android
> is a major pain in the a**. If you have 20GiB of space + extra
> processing power to contribute that would be appreciated.

$ df -h .
Filesystem      Size  Used Avail Use% Mounted on
/dev/root        74G   70G   47M 100% /

Perhaps another time :)


More information about the mesa-dev mailing list