[Mesa-dev] [PATCH] glsl: fix compile errors with mingw due to missing PRIx64 definitions
Roland Scheidegger
sroland at vmware.com
Tue Jan 24 18:15:01 UTC 2017
Am 24.01.2017 um 14:23 schrieb Jose Fonseca:
> On 23/01/17 19:21, sroland at vmware.com wrote:
>> From: Roland Scheidegger <sroland at vmware.com>
>>
>> define __STDC_FORMAT_MACROS and include <inttypes.h> (same as
>> ir_builder_print_visitor.cpp already does).
>>
>> Otherwise, some mingw build errors out (since
>> 8e7e1ae0365ddc7edb0d4d98250ab46728e6c14a and
>> bbce1c538dc0cb8bf3769510283d11847dc07540 presumably) with:
>> src/compiler/glsl/ir_print_visitor.cpp:479:40: error: expected ‘)’
>> before ‘PRIu64’
>> case GLSL_TYPE_UINT64:fprintf(f, "%" PRIu64, ir->value.u64[i]); break;
>>
>> (Note even with that fix I get other format specifier warnings:
>> src/compiler/glsl/ir_print_visitor.cpp:473:47:
>> warning: unknown conversion type character ‘a’ in format [-Wformat=]
>> fprintf(f, "%a", ir->value.f[i]);
>> ^
>> src/compiler/glsl/ir_print_visitor.cpp:473:47:
>> warning: too many arguments for format [-Wformat-extra-args]
>> but it still compiles at least)
>> ---
>> src/compiler/glsl/glsl_parser_extras.cpp | 2 ++
>> src/compiler/glsl/ir_print_visitor.cpp | 2 ++
>> 2 files changed, 4 insertions(+)
>>
>> diff --git a/src/compiler/glsl/glsl_parser_extras.cpp
>> b/src/compiler/glsl/glsl_parser_extras.cpp
>> index e888090..3d2fc14 100644
>> --- a/src/compiler/glsl/glsl_parser_extras.cpp
>> +++ b/src/compiler/glsl/glsl_parser_extras.cpp
>> @@ -20,6 +20,8 @@
>> * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
>> * DEALINGS IN THE SOFTWARE.
>> */
>> +#define __STDC_FORMAT_MACROS 1
>> +#include <inttypes.h> /* for PRIx64 macro */
>> #include <stdio.h>
>> #include <stdarg.h>
>> #include <string.h>
>> diff --git a/src/compiler/glsl/ir_print_visitor.cpp
>> b/src/compiler/glsl/ir_print_visitor.cpp
>> index 0763277..debbdad 100644
>> --- a/src/compiler/glsl/ir_print_visitor.cpp
>> +++ b/src/compiler/glsl/ir_print_visitor.cpp
>> @@ -21,6 +21,8 @@
>> * DEALINGS IN THE SOFTWARE.
>> */
>>
>> +#define __STDC_FORMAT_MACROS 1
>> +#include <inttypes.h> /* for PRIx64 macro */
>> #include "ir_print_visitor.h"
>> #include "compiler/glsl_types.h"
>> #include "glsl_parser_extras.h"
>>
>
> Reviewed-by: Jose Fonseca <jfonseca at vmware.com>
>
> But I think it might be more efficient to define this on configure.ac
> and scons/gallium.py like we already do for other __STDC_xxxx_MACROS
>
> Jose
Sounds reasonable, but I'll leave that to someone else...
Roland
More information about the mesa-dev
mailing list