[Mesa-dev] swr forces c++11 for whole compilation

Jose Fonseca jfonseca at vmware.com
Wed Apr 13 12:48:45 UTC 2016


On 13/04/16 11:43, Ilia Mirkin wrote:
> Hi Tim,
>
> It seems like building swr forces c++11 mode for the whole build, even
> other drivers being built that aren't necessarily ready for it.
> Unfortunately c++11 isn't backwards compatible with c++03, so the switch
> can't be made unilaterally. Could you have a look at why this is happening?
>
> An example of something that does this properly is clover, which also
> requires c++11 to be built.
>
> Thanks,
>
>    -ilia
>

Ilia,

Even before SWR was merged and today's isinf fix was commited, 
nv50_ir_ra.cpp already has code to make it portable for C++11 (see below).

I honestly don't understand what you're trying to achieve with this 
thread...

Are you seriously plan to require C++03 to build nouveau?  It would be 
insane try to do that once GCC 6 is widely available.

Rather than see you swimming upstream, I much rather see you helping me 
helping you to keep nouveau C++11 portable...

Jose


$ git grep -C3 __cplusplus 
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp-#include <algorithm>
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp-#include <stack>
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp-#include <limits>
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp:#if __cplusplus >= 
201103L
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp-#include <unordered_map>
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp-#else
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp-#include 
<tr1/unordered_map>
--
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp-
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp-namespace nv50_ir {
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp-
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp:#if __cplusplus >= 
201103L
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp-using std::hash;
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp-using std::unordered_map;
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp-#elif !defined(ANDROID)
--
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp- 
bestScore = score;
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp-            }
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp-         }
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp:#if __cplusplus >= 
201103L
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp-         if 
(std::isinf(bestScore)) {
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp-#else
src/gallium/drivers/nouveau/codegen/nv50_ir_ra.cpp-         if 
(isinf(bestScore)) {




More information about the mesa-dev mailing list