Note that doing #include <cmath>
is a bad idea too, as it can cause precisely the same error you're trying to fix. This is because on certain implementations of C++ STL, if some other header has '#include <math.h>, then '#include <cmath>' later on, the later include can be a no-op and nothing is declared on std namespace. In short, when mixing C and C++ code, it seems one should always include the standard C headers instead of the C++ <c*> headers. Its also not clear why isfinite is not on the global namespace. I suspect that again, the problem is that some other header is including <cmath> before u_math.h ... If so, then *please* lets stop doing it. I already brought this issue many many times. Not sure why people still think that including <c*> headers in Mesa is a good idea.. Jose ________________________________________ From: mesa-dev <mesa-dev-boun...@lists.freedesktop.org> on behalf of Emil Velikov <emil.l.veli...@gmail.com> Sent: 19 October 2014 08:41 To: Ilia Mirkin Cc: mesa-dev@lists.freedesktop.org; Mauro Rossi; emil.l.veli...@gmail.com; 10.2 10.3 Subject: Re: [Mesa-dev] [PATCH 2/3] gallium/nouveau: use std::isfinite in c++ sources 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 look into it any time soon. Yet it makes sense to use C++ headers for C++ code - don't you agree ? -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 >> https://urldefense.proofpoint.com/v1/url?u=http://lists.freedesktop.org/mailman/listinfo/mesa-dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=NMr9uy2iTjWVixC0wOcYCWEIYhfo80qKwRgdodpoDzA%3D%0A&m=gfofPYjf71jByJAx2C4ZN88t%2F8o679AdH%2FRt%2FdPH%2FKk%3D%0A&s=efd19554ccfca3e28195fab8f3a769caffa8d946ff5d163424d46c76fae325f6 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://urldefense.proofpoint.com/v1/url?u=http://lists.freedesktop.org/mailman/listinfo/mesa-dev&k=oIvRg1%2BdGAgOoM1BIlLLqw%3D%3D%0A&r=NMr9uy2iTjWVixC0wOcYCWEIYhfo80qKwRgdodpoDzA%3D%0A&m=gfofPYjf71jByJAx2C4ZN88t%2F8o679AdH%2FRt%2FdPH%2FKk%3D%0A&s=efd19554ccfca3e28195fab8f3a769caffa8d946ff5d163424d46c76fae325f6 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev