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 commit 191d9a5195c0d4871e264a73781dbf8b4368fcb7 Author: Ian Romanick <ian.d.romanick@intel.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 parameter. Signed-off-by: Ian Romanick <ian.d.romanick@intel.com> Reviewed-by: Iago Toral Quiroga <itoral@igalia.com> Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com> :040000 040000 d6b9965d3e1d0d0cb67740302b2c23a3cadc6b93 05efc521b335efa6554f5c8975422cce6b9ee90e M src bisect run success
Should be fixed with commit d881e1c024bc75025d5752b090f8205cb227c1cd Author: Brian Paul <brianp@vmware.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 <sroland@vmware.com>
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 #ifndef PRIx64 #define PRIx64 "lx" #endif in ir_builder_print_visitor.cpp 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
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.