Dear Peter, Michael,
Sorry for reviving the old thread. While trying to build postgres on msys2 by
meson,
I faced the same warning. The OS is Windows 10.
```
$ ninja
[2378/2402] Compiling C object
src/interfaces/ecpg/test/sql/sqlda.exe.p/meson-generated_.._sqlda.c.obj
../postgres/src/interfaces/ecpg/test/sql/sqlda.pgc: In function 'dump_sqlda':
../postgres/src/interfaces/ecpg/test/sql/sqlda.pgc:45:33: warning: format '%d'
expects argument of type 'int', but argument 3 has type 'long long int'
[-Wformat=]
45 | "name sqlda descriptor: '%s' value
%I64d\n",
|
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
......
49 | sqlda->sqlvar[i].sqlname.data, *(long
long int *)sqlda->sqlvar[i].sqldata);
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| |
| long
long int
```
Before building, I did below steps:
1. Installed required software listed in [1].
2. ran `meson setup -Dcassert=true -Ddebug=true /path/to/builddir`
3. moved to /path/to/builddir
4. ran `ninja`
5. got above warning
Attached file summarize the result of meson command, which was output at the
end of it.
Also, belows show the version of meson/ninja.
```
$ ninja --version
1.11.1
$ meson -v
1.2.3
```
I was quite not sure the windows build, but I could see that gcc compiler was
used here. Does it mean that the compiler might not like the format string
"%I64d"?
I modified like below and could be compiled without warnings.
```
--- a/src/interfaces/ecpg/test/sql/sqlda.pgc
+++ b/src/interfaces/ecpg/test/sql/sqlda.pgc
@@ -41,7 +41,7 @@ dump_sqlda(sqlda_t *sqlda)
break;
case ECPGt_long_long:
printf(
-#ifdef _WIN32
+#if !defined(__GNUC__)
"name sqlda descriptor: '%s' value %I64d\n",
#else
"name sqlda descriptor: '%s' value %lld\n",
```
[1]:
https://www.postgresql.org/message-id/9f4f22be-f9f1-b350-bc06-521226b87f7a%40dunslane.net
Best Regards,
Hayato Kuroda
FUJITSU LIMITED
postgresql 17devel
Data layout
data block size : 8 kB
WAL block size : 8 kB
segment size : 1 GB
System
host system : windows x86_64
build system : windows x86_64
Compiler
linker : ld.bfd
C compiler : gcc 13.2.0
Compiler Flags
CPP FLAGS :
C FLAGS, functional : -fno-strict-aliasing -fwrapv
-fexcess-precision=standard
C FLAGS, warnings : -Wmissing-prototypes -Wpointer-arith -Werror=vla
-Wendif-labels -Wmissing-format-attribute -Wimplicit-fallthrough=3
-Wcast-function-type -Wshadow=compatible-local -Wforma
t-security -Wdeclaration-after-statement -Wno-format-truncation
-Wno-stringop-truncation
C FLAGS, modules : -fvisibility=hidden
C FLAGS, user specified:
LD FLAGS : -Wl,--stack,4194304
-Wl,--allow-multiple-definition -Wl,--disable-auto-import
Programs
bison : C:\msys64\usr\bin/bison.EXE 3.8.2
dtrace : NO
flex : C:\msys64\usr\bin/flex.EXE 2.6.4
External libraries
bonjour : NO
bsd_auth : NO
docs : YES
docs_pdf : NO
gss : NO
icu : NO
ldap : YES
libxml : NO
libxslt : NO
llvm : NO
lz4 : NO
nls : YES
openssl : YES 3.1.4
pam : NO
plperl : NO
plpython : NO
pltcl : YES 8.6.12
readline : YES
selinux : NO
systemd : NO
uuid : NO
zlib : YES 1.3
zstd : YES 1.5.5
User defined options
debug : true
cassert : true
Found ninja-1.11.1 at C:\msys64\mingw64\bin/ninja.EXE