mesa: a5e88e66e633aaeb587b274d80e21cd46c8ee2cb (master 13.1.0-devel)
MinGW build error
Compiling src/compiler/glsl/ir_builder_print_visitor.cpp ...
src/compiler/glsl/ir_builder_print_visitor.cpp: In member function 'virtual ir_visitor_status ir_builder_print_visitor::visit(ir_constant*)':
src/compiler/glsl/ir_builder_print_visitor.cpp:401:67: error: expected ')' before 'PRIx64'
print_without_indent("r%04X_data.u64[%u] = 0x%016" PRIx64 "; /* %g */\n",
191d9a5195c0d4871e264a73781dbf8b4368fcb7 is the first bad commit
Author: Ian Romanick <email@example.com>
Date: Thu Sep 15 11:36:16 2016 -0700
glsl: Add a C++ code generator that uses ir_builder to rebuild a program
This is only in libstandalone currently because it will only be used in
the stand-alone compiler.
v2: Change the signature of the generated function. The ir_factory is
created in the generator, and an availability predicate is taken as a
Signed-off-by: Ian Romanick <firstname.lastname@example.org>
Reviewed-by: Iago Toral Quiroga <email@example.com>
Reviewed-by: Nicolai Hähnle <firstname.lastname@example.org>
:040000 040000 d6b9965d3e1d0d0cb67740302b2c23a3cadc6b93 05efc521b335efa6554f5c8975422cce6b9ee90e M src
bisect run success
Should be fixed with
Author: Brian Paul <email@example.com>
Date: Thu Nov 10 17:29:28 2016 -0700
glsl: include inttypes.h for PRIx64 macro
To fix MinGW build.
Reviewed-by: Roland Scheidegger <firstname.lastname@example.org>
Actually, this is still failing with our Jenkins build. Hmm...
(In reply to Brian Paul from comment #3)
> Actually, this is still failing with our Jenkins build. Hmm...
I've got some feeling this is due this being in c++ code?
(In reply to Roland Scheidegger from comment #4)
> (In reply to Brian Paul from comment #3)
> > Actually, this is still failing with our Jenkins build. Hmm...
> I've got some feeling this is due this being in c++ code?
Yes. It looks like this is the first place we've compiled a .cpp file with PRIx64 with MinGW.
My local MinGW build is picking up inttypes.h from /usr/include/inttypes.h but on Jenkins it's picking /usr/i686-w64-mingw32/include/inttypes.h. Don't know why. In the later, the PRI* macros are not defined for __cplusplus.
It looks like we have to add something like
#define PRIx64 "lx"
But then I get additional warnings about the format string and argument type not agreeing. And defining PRIx64 to "llx" yields other warnings in my test:
pri64.cpp:17:42: warning: unknown conversion type character ‘l’ in format [-Wformat]
pri64.cpp:17:42: warning: too many arguments for format [-Wformat-extra-args]
I think I'll just have to add the #ifndef stuff and live with the warning.
Fixed w/ commit 92ec47a6bad2f1198148dbbab4271d87c5a469a3