On 19/10/14 16:59, Ilia Mirkin wrote: > On Sun, Oct 19, 2014 at 11:41 AM, Emil Velikov <emil.l.veli...@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.
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. -Emil > -ilia > >>> On Sun, Oct 19, 2014 at 11:16 AM, Emil Velikov <emil.l.veli...@gmail.com> >>> wrote: >>>> From: Mauro Rossi <issor.or...@gmail.com> >>>> >>>> Otherwise the android build will fail. >>>> >>>> Cc: "10.2 10.3" <mesa-sta...@lists.freedesktop.org> >>>> --- >>>> src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp | 8 +++----- >>>> 1 file changed, 3 insertions(+), 5 deletions(-) >>>> >>>> diff --git a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp >>>> b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp >>>> index 719f980..b9744e3 100644 >>>> --- a/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp >>>> +++ b/src/gallium/drivers/nouveau/codegen/nv50_ir_peephole.cpp >>>> @@ -24,9 +24,7 @@ >>>> #include "codegen/nv50_ir_target.h" >>>> #include "codegen/nv50_ir_build_util.h" >>>> >>>> -extern "C" { >>>> -#include "util/u_math.h" >>>> -} >>>> +#include <cmath> >>>> >>>> namespace nv50_ir { >>>> >>>> @@ -416,9 +414,9 @@ ConstantFolding::expr(Instruction *i, >>>> case OP_FMA: >>>> case OP_MUL: >>>> if (i->dnz && i->dType == TYPE_F32) { >>>> - if (!isfinite(a->data.f32)) >>>> + if (!std::isfinite(a->data.f32)) >>>> a->data.f32 = 0.0f; >>>> - if (!isfinite(b->data.f32)) >>>> + if (!std::isfinite(b->data.f32)) >>>> b->data.f32 = 0.0f; >>>> } >>>> switch (i->dType) { >>>> -- >>>> 2.1.0 >>>> >>>> _______________________________________________ >>>> mesa-dev mailing list >>>> mesa-dev@lists.freedesktop.org >>>> http://lists.freedesktop.org/mailman/listinfo/mesa-dev >> _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev