Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compiler warnings about format string mismatches #952

Open
MastaG opened this issue Jan 16, 2023 · 4 comments
Open

Compiler warnings about format string mismatches #952

MastaG opened this issue Jan 16, 2023 · 4 comments

Comments

@MastaG
Copy link

MastaG commented Jan 16, 2023

Hi there,

Building for armv7h (32bit) using meson, seems to produce broken binaries.
build log:

$ arch-meson $pkgname build
+ exec meson setup --prefix /usr --libexecdir lib --sbindir bin --buildtype plain --auto-features enabled --wrap-mode nodownload -D b_lto=false -D b_pie=true build
The Meson build system
Version: 1.0.0
Source dir: /mnt/src/odroid/alarm/PKGBUILD/xdg-desktop-portal/xdg-desktop-portal
Build dir: /mnt/src/odroid/alarm/PKGBUILD/xdg-desktop-portal/xdg-desktop-portal/build
Build type: native build
Project name: xdg-desktop-portal
Project version: 1.16.0
C compiler for the host machine: cc (gcc 12.1.0 "cc (GCC) 12.1.0")
C linker for the host machine: cc ld.bfd 2.38
Host machine cpu family: arm
Host machine cpu: armv7l
Found pkg-config: /usr/bin/pkg-config (1.8.0)
Run-time dependency flatpak found: YES 1.15.1
Compiler for C supports arguments -Wno-unused-parameter: YES 
Compiler for C supports arguments -Wno-sign-compare: YES 
Compiler for C supports arguments -Wno-missing-field-initializers: YES 
Checking for function "renameat2" : YES 
Has header "sys/vfs.h" : YES 
Has header "sys/mount.h" : YES 
Has header "sys/statfs.h" : YES 
Has header "sys/xattr.h" : YES 
Has header "sys/extattr.h" : NO 
Run-time dependency glib-2.0 found: YES 2.74.4
Run-time dependency gio-2.0 found: YES 2.74.4
Run-time dependency gio-unix-2.0 found: YES 2.74.4
Run-time dependency json-glib-1.0 found: YES 1.6.6
Run-time dependency fuse3 found: YES 3.12.0
Run-time dependency gdk-pixbuf-2.0 found: YES 2.42.10
Run-time dependency libgeoclue-2.0 found: YES 2.6.0
Run-time dependency libportal found: YES 0.6
Run-time dependency libpipewire-0.3 found: YES 0.3.63
Run-time dependency libsystemd found: YES 252
Program bwrap found: YES (/usr/bin/bwrap)
Program xmlto found: YES (/usr/bin/xmlto)
Configuring xdg-desktop-portal.pc using configuration
Program gdbus-codegen found: YES (/usr/bin/gdbus-codegen)
Found pkg-config: /usr/bin/pkg-config (1.8.0)
Program gdbus-codegen found: YES (/usr/bin/gdbus-codegen)
Program gdbus-codegen found: YES (/usr/bin/gdbus-codegen)
Program gdbus-codegen found: YES (/usr/bin/gdbus-codegen)
Program glib-compile-resources found: YES (/usr/bin/glib-compile-resources)
Configuring xdg-desktop-portal.service using configuration
Configuring org.freedesktop.portal.Desktop.service using configuration
Configuring xdg-desktop-portal-rewrite-launchers.service using configuration
Program gdbus-codegen found: YES (/usr/bin/gdbus-codegen)
Configuring xdg-permission-store.service using configuration
Program gdbus-codegen found: YES (/usr/bin/gdbus-codegen)
Configuring xdg-document-portal.service using configuration
Configuring org.freedesktop.portal.Documents.service using configuration
Configuring org.freedesktop.impl.portal.PermissionStore.service using configuration
Configuring org.freedesktop.portal.Documents.service using configuration
Configuring org.freedesktop.impl.portal.PermissionStore.service using configuration
Program pytest-3 pytest found: NO
Program python3 (dbus, dbusmock, gi) found: NO modules: dbus, gi
Program msgfmt found: YES (/usr/bin/msgfmt)
Program msginit found: YES (/usr/bin/msginit)
Program msgmerge found: YES (/usr/bin/msgmerge)
Program xgettext found: YES (/usr/bin/xgettext)
Configuring portal-docs.xml using configuration
Configuring config.h using configuration
Build targets in project: 61
NOTICE: Future-deprecated features used:
 * 0.64.0: {'copy arg in configure_file'}

xdg-desktop-portal 1.16.0

  Directories
    DBus service dir            : /usr/share/dbus-1/services
    Flatpak interfaces dir      : /usr/share/dbus-1/interfaces/
    systemd user unit dir       : /usr/lib/systemd/user
    Installed tests dir         : /usr/lib/installed-tests/xdg-desktop-portal

  Optional builds
    Enable docbook documentation: YES
    Enable pipewire support     : YES
    Enable libsystemd support   : YES
    Enable geoclue support      : YES
    Enable libportal support    : YES
    Enable installed tests:     : NO

  User defined options
    auto_features               : enabled
    buildtype                   : plain
    libexecdir                  : lib
    prefix                      : /usr
    sbindir                     : bin
    wrap_mode                   : nodownload
    b_lto                       : false
    b_pie                       : true

Found ninja-1.11.1 at /usr/bin/ninja
[odroid@odroidxu4 xdg-desktop-portal]$ meson compile -C build
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja -C /mnt/src/odroid/alarm/PKGBUILD/xdg-desktop-portal/xdg-desktop-portal/build
ninja: Entering directory `/mnt/src/odroid/alarm/PKGBUILD/xdg-desktop-portal/xdg-desktop-portal/build'
[75/180] Compiling C object document-portal/xdg-document-portal.p/file-transfer.c.o
../document-portal/file-transfer.c: In function ‘file_transfer_start’:
../document-portal/file-transfer.c:174:41: warning: format ‘%lu’ expects argument of type ‘long unsigned int’, but argument 2 has type ‘guint64’ {aka ‘long long unsigned int’} [-Wformat=]
  174 |     transfer->key = g_strdup_printf ("%lu", key);
      |                                       ~~^   ~~~
      |                                         |   |
      |                                         |   guint64 {aka long long unsigned int}
      |                                         long unsigned int
      |                                       %llu
[85/180] Compiling C object document-portal/xdg-document-portal.p/document-portal-fuse.c.o
In file included from /usr/include/glib-2.0/glib.h:64,
                 from /usr/include/glib-2.0/glib-unix.h:35,
                 from ../document-portal/document-portal-fuse.c:5:
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_getattr’:
../document-portal/document-portal-fuse.c:1389:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 1389 |   g_debug ("GETATTR %lx", ino);
      |            ^~~~~~~~~~~~~  ~~~
      |                           |
      |                           fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:1389:23: note: format string is defined here
 1389 |   g_debug ("GETATTR %lx", ino);
      |                     ~~^
      |                       |
      |                       long unsigned int
      |                     %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_setattr’:
../document-portal/document-portal-fuse.c:1429:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 1429 |   g_debug ("SETATTR %lx %s", ino, to_set_string);
      |            ^~~~~~~~~~~~~~~~  ~~~
      |                              |
      |                              fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:1429:23: note: format string is defined here
 1429 |   g_debug ("SETATTR %lx %s", ino, to_set_string);
      |                     ~~^
      |                       |
      |                       long unsigned int
      |                     %llx
../document-portal/document-portal-fuse.c:1439:23: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 1439 |       XdpFile *file = (XdpFile *)fi->fh;
      |                       ^
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_lookup’:
../document-portal/document-portal-fuse.c:1755:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 1755 |   g_debug ("LOOKUP %lx:%s", parent_ino, name);
      |            ^~~~~~~~~~~~~~~  ~~~~~~~~~~
      |                             |
      |                             fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:1755:22: note: format string is defined here
 1755 |   g_debug ("LOOKUP %lx:%s", parent_ino, name);
      |                    ~~^
      |                      |
      |                      long unsigned int
      |                    %llx
../document-portal/document-portal-fuse.c:1805:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 1805 |   g_debug ("LOOKUP %lx:%s => %lx", parent_ino, name, e.ino);
      |            ^~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~
      |                                    |
      |                                    fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:1805:22: note: format string is defined here
 1805 |   g_debug ("LOOKUP %lx:%s => %lx", parent_ino, name, e.ino);
      |                    ~~^
      |                      |
      |                      long unsigned int
      |                    %llx
../document-portal/document-portal-fuse.c:1805:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 1805 |   g_debug ("LOOKUP %lx:%s => %lx", parent_ino, name, e.ino);
      |            ^~~~~~~~~~~~~~~~~~~~~~                    ~~~~~
      |                                                       |
      |                                                       fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:1805:32: note: format string is defined here
 1805 |   g_debug ("LOOKUP %lx:%s => %lx", parent_ino, name, e.ino);
      |                              ~~^
      |                                |
      |                                long unsigned int
      |                              %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_open’:
../document-portal/document-portal-fuse.c:1840:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 1840 |   g_debug ("OPEN %lx %s", ino, open_flags_string);
      |            ^~~~~~~~~~~~~  ~~~
      |                           |
      |                           fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:1840:20: note: format string is defined here
 1840 |   g_debug ("OPEN %lx %s", ino, open_flags_string);
      |                  ~~^
      |                    |
      |                    long unsigned int
      |                  %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_create’:
../document-portal/document-portal-fuse.c:1883:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 1883 |   g_debug ("CREATE %lx %s %s, 0%o", parent_ino, filename, open_flags_string, mode);
      |            ^~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~
      |                                     |
      |                                     fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:1883:22: note: format string is defined here
 1883 |   g_debug ("CREATE %lx %s %s, 0%o", parent_ino, filename, open_flags_string, mode);
      |                    ~~^
      |                      |
      |                      long unsigned int
      |                    %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_read’:
../document-portal/document-portal-fuse.c:1922:19: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 1922 |   XdpFile *file = (XdpFile *)fi->fh;
      |                   ^
../document-portal/document-portal-fuse.c:1924:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 1924 |   g_debug ("READ %lx size %ld off %ld", ino, size, off);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~
      |                                         |
      |                                         fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:1924:20: note: format string is defined here
 1924 |   g_debug ("READ %lx size %ld off %ld", ino, size, off);
      |                  ~~^
      |                    |
      |                    long unsigned int
      |                  %llx
../document-portal/document-portal-fuse.c:1924:12: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=]
 1924 |   g_debug ("READ %lx size %ld off %ld", ino, size, off);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~       ~~~~
      |                                              |
      |                                              size_t {aka unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:1924:29: note: format string is defined here
 1924 |   g_debug ("READ %lx size %ld off %ld", ino, size, off);
      |                           ~~^
      |                             |
      |                             long int
      |                           %d
../document-portal/document-portal-fuse.c:1924:12: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘off_t’ {aka ‘long long int’} [-Wformat=]
 1924 |   g_debug ("READ %lx size %ld off %ld", ino, size, off);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~             ~~~
      |                                                    |
      |                                                    off_t {aka long long int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:1924:37: note: format string is defined here
 1924 |   g_debug ("READ %lx size %ld off %ld", ino, size, off);
      |                                   ~~^
      |                                     |
      |                                     long int
      |                                   %lld
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_write’:
../document-portal/document-portal-fuse.c:1942:19: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 1942 |   XdpFile *file = (XdpFile *)fi->fh;
      |                   ^
../document-portal/document-portal-fuse.c:1946:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 1946 |   g_debug ("WRITE %lx size %ld off %ld", ino, size, off);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~
      |                                          |
      |                                          fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:1946:21: note: format string is defined here
 1946 |   g_debug ("WRITE %lx size %ld off %ld", ino, size, off);
      |                   ~~^
      |                     |
      |                     long unsigned int
      |                   %llx
../document-portal/document-portal-fuse.c:1946:12: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=]
 1946 |   g_debug ("WRITE %lx size %ld off %ld", ino, size, off);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~       ~~~~
      |                                               |
      |                                               size_t {aka unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:1946:30: note: format string is defined here
 1946 |   g_debug ("WRITE %lx size %ld off %ld", ino, size, off);
      |                            ~~^
      |                              |
      |                              long int
      |                            %d
../document-portal/document-portal-fuse.c:1946:12: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘off_t’ {aka ‘long long int’} [-Wformat=]
 1946 |   g_debug ("WRITE %lx size %ld off %ld", ino, size, off);
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~             ~~~
      |                                                     |
      |                                                     off_t {aka long long int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:1946:38: note: format string is defined here
 1946 |   g_debug ("WRITE %lx size %ld off %ld", ino, size, off);
      |                                    ~~^
      |                                      |
      |                                      long int
      |                                    %lld
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_write_buf’:
../document-portal/document-portal-fuse.c:1963:19: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 1963 |   XdpFile *file = (XdpFile *)fi->fh;
      |                   ^
../document-portal/document-portal-fuse.c:1968:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 1968 |   g_debug ("WRITEBUF %lx off %ld", ino, off);
      |            ^~~~~~~~~~~~~~~~~~~~~~  ~~~
      |                                    |
      |                                    fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:1968:24: note: format string is defined here
 1968 |   g_debug ("WRITEBUF %lx off %ld", ino, off);
      |                      ~~^
      |                        |
      |                        long unsigned int
      |                      %llx
../document-portal/document-portal-fuse.c:1968:12: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘off_t’ {aka ‘long long int’} [-Wformat=]
 1968 |   g_debug ("WRITEBUF %lx off %ld", ino, off);
      |            ^~~~~~~~~~~~~~~~~~~~~~       ~~~
      |                                         |
      |                                         off_t {aka long long int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:1968:32: note: format string is defined here
 1968 |   g_debug ("WRITEBUF %lx off %ld", ino, off);
      |                              ~~^
      |                                |
      |                                long int
      |                              %lld
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_fsync’:
../document-portal/document-portal-fuse.c:1987:19: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 1987 |   XdpFile *file = (XdpFile *)fi->fh;
      |                   ^
../document-portal/document-portal-fuse.c:1991:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 1991 |   g_debug ("FSYNC %lx", ino);
      |            ^~~~~~~~~~~  ~~~
      |                         |
      |                         fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:1991:21: note: format string is defined here
 1991 |   g_debug ("FSYNC %lx", ino);
      |                   ~~^
      |                     |
      |                     long unsigned int
      |                   %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_fallocate’:
../document-portal/document-portal-fuse.c:2011:19: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 2011 |   XdpFile *file = (XdpFile *)fi->fh;
      |                   ^
../document-portal/document-portal-fuse.c:2015:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2015 |   g_debug ("FALLOCATE %lx", ino);
      |            ^~~~~~~~~~~~~~~  ~~~
      |                             |
      |                             fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2015:25: note: format string is defined here
 2015 |   g_debug ("FALLOCATE %lx", ino);
      |                       ~~^
      |                         |
      |                         long unsigned int
      |                       %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_flush’:
../document-portal/document-portal-fuse.c:2036:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2036 |   g_debug ("FLUSH %lx", ino);
      |            ^~~~~~~~~~~  ~~~
      |                         |
      |                         fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2036:21: note: format string is defined here
 2036 |   g_debug ("FLUSH %lx", ino);
      |                   ~~^
      |                     |
      |                     long unsigned int
      |                   %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_release’:
../document-portal/document-portal-fuse.c:2045:19: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 2045 |   XdpFile *file = (XdpFile *)fi->fh;
      |                   ^
../document-portal/document-portal-fuse.c:2048:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2048 |   g_debug ("RELEASE %lx", ino);
      |            ^~~~~~~~~~~~~  ~~~
      |                           |
      |                           fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2048:23: note: format string is defined here
 2048 |   g_debug ("RELEASE %lx", ino);
      |                     ~~^
      |                       |
      |                       long unsigned int
      |                     %llx
../document-portal/document-portal-fuse.c: In function ‘forget_one’:
../document-portal/document-portal-fuse.c:2061:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2061 |   g_debug ("FORGET %lx %ld", ino, nlookup);
      |            ^~~~~~~~~~~~~~~~  ~~~
      |                              |
      |                              fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2061:22: note: format string is defined here
 2061 |   g_debug ("FORGET %lx %ld", ino, nlookup);
      |                    ~~^
      |                      |
      |                      long unsigned int
      |                    %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_forget_multi’:
../document-portal/document-portal-fuse.c:2081:12: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 4 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=]
 2081 |   g_debug ("FORGET_MULTI %ld", count);
      |            ^~~~~~~~~~~~~~~~~~  ~~~~~
      |                                |
      |                                size_t {aka unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2081:28: note: format string is defined here
 2081 |   g_debug ("FORGET_MULTI %ld", count);
      |                          ~~^
      |                            |
      |                            long int
      |                          %d
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_opendir’:
../document-portal/document-portal-fuse.c:2198:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2198 |   g_debug ("OPENDIR %lx domain %d", ino, inode->domain->type);
      |            ^~~~~~~~~~~~~~~~~~~~~~~  ~~~
      |                                     |
      |                                     fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2198:23: note: format string is defined here
 2198 |   g_debug ("OPENDIR %lx domain %d", ino, inode->domain->type);
      |                     ~~^
      |                       |
      |                       long unsigned int
      |                     %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_readdir’:
../document-portal/document-portal-fuse.c:2296:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 2296 |   XdpDir *d = (XdpDir *)fi->fh;
      |               ^
../document-portal/document-portal-fuse.c:2301:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2301 |   g_debug ("READDIR %lx %ld %ld", ino, size, off);
      |            ^~~~~~~~~~~~~~~~~~~~~  ~~~
      |                                   |
      |                                   fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2301:23: note: format string is defined here
 2301 |   g_debug ("READDIR %lx %ld %ld", ino, size, off);
      |                     ~~^
      |                       |
      |                       long unsigned int
      |                     %llx
../document-portal/document-portal-fuse.c:2301:12: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=]
 2301 |   g_debug ("READDIR %lx %ld %ld", ino, size, off);
      |            ^~~~~~~~~~~~~~~~~~~~~       ~~~~
      |                                        |
      |                                        size_t {aka unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2301:27: note: format string is defined here
 2301 |   g_debug ("READDIR %lx %ld %ld", ino, size, off);
      |                         ~~^
      |                           |
      |                           long int
      |                         %d
../document-portal/document-portal-fuse.c:2301:12: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘off_t’ {aka ‘long long int’} [-Wformat=]
 2301 |   g_debug ("READDIR %lx %ld %ld", ino, size, off);
      |            ^~~~~~~~~~~~~~~~~~~~~             ~~~
      |                                              |
      |                                              off_t {aka long long int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2301:31: note: format string is defined here
 2301 |   g_debug ("READDIR %lx %ld %ld", ino, size, off);
      |                             ~~^
      |                               |
      |                               long int
      |                             %lld
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_releasedir’:
../document-portal/document-portal-fuse.c:2384:15: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 2384 |   XdpDir *d = (XdpDir *)fi->fh;
      |               ^
../document-portal/document-portal-fuse.c:2387:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2387 |   g_debug ("RELEASEDIR %lx", ino);
      |            ^~~~~~~~~~~~~~~~  ~~~
      |                              |
      |                              fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2387:26: note: format string is defined here
 2387 |   g_debug ("RELEASEDIR %lx", ino);
      |                        ~~^
      |                          |
      |                          long unsigned int
      |                        %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_fsyncdir’:
../document-portal/document-portal-fuse.c:2400:17: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
 2400 |   XdpDir *dir = (XdpDir *)fi->fh;
      |                 ^
../document-portal/document-portal-fuse.c:2404:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2404 |   g_debug ("FSYNCDIR %lx", ino);
      |            ^~~~~~~~~~~~~~  ~~~
      |                            |
      |                            fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2404:24: note: format string is defined here
 2404 |   g_debug ("FSYNCDIR %lx", ino);
      |                      ~~^
      |                        |
      |                        long unsigned int
      |                      %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_mkdir’:
../document-portal/document-portal-fuse.c:2436:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2436 |   g_debug ("MKDIR %lx %s", parent_ino, name);
      |            ^~~~~~~~~~~~~~  ~~~~~~~~~~
      |                            |
      |                            fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2436:21: note: format string is defined here
 2436 |   g_debug ("MKDIR %lx %s", parent_ino, name);
      |                   ~~^
      |                     |
      |                     long unsigned int
      |                   %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_unlink’:
../document-portal/document-portal-fuse.c:2470:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2470 |   g_debug ("UNLINK %lx %s", parent_ino, filename);
      |            ^~~~~~~~~~~~~~~  ~~~~~~~~~~
      |                             |
      |                             fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2470:22: note: format string is defined here
 2470 |   g_debug ("UNLINK %lx %s", parent_ino, filename);
      |                    ~~^
      |                      |
      |                      long unsigned int
      |                    %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_rename’:
../document-portal/document-portal-fuse.c:2556:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2556 |   g_debug ("RENAME %lx %s -> %lx %s (flags: %s)", parent_ino, name,
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~~
      |                                                   |
      |                                                   fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2556:22: note: format string is defined here
 2556 |   g_debug ("RENAME %lx %s -> %lx %s (flags: %s)", parent_ino, name,
      |                    ~~^
      |                      |
      |                      long unsigned int
      |                    %llx
../document-portal/document-portal-fuse.c:2556:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 6 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2556 |   g_debug ("RENAME %lx %s -> %lx %s (flags: %s)", parent_ino, name,
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 2557 |            newparent_ino, newname, rename_flags_string);
      |            ~~~~~~~~~~~~~
      |            |
      |            fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2556:32: note: format string is defined here
 2556 |   g_debug ("RENAME %lx %s -> %lx %s (flags: %s)", parent_ino, name,
      |                              ~~^
      |                                |
      |                                long unsigned int
      |                              %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_access’:
../document-portal/document-portal-fuse.c:2710:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2710 |   g_debug ("ACCESS %lx", ino);
      |            ^~~~~~~~~~~~  ~~~
      |                          |
      |                          fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2710:22: note: format string is defined here
 2710 |   g_debug ("ACCESS %lx", ino);
      |                    ~~^
      |                      |
      |                      long unsigned int
      |                    %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_rmdir’:
../document-portal/document-portal-fuse.c:2761:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2761 |   g_debug ("RMDIR %lx %s", parent_ino, filename);
      |            ^~~~~~~~~~~~~~  ~~~~~~~~~~
      |                            |
      |                            fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2761:21: note: format string is defined here
 2761 |   g_debug ("RMDIR %lx %s", parent_ino, filename);
      |                   ~~^
      |                     |
      |                     long unsigned int
      |                   %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_readlink’:
../document-portal/document-portal-fuse.c:2789:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2789 |   g_debug ("READLINK %lx", ino);
      |            ^~~~~~~~~~~~~~  ~~~
      |                            |
      |                            fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2789:24: note: format string is defined here
 2789 |   g_debug ("READLINK %lx", ino);
      |                      ~~^
      |                        |
      |                        long unsigned int
      |                      %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_symlink’:
../document-portal/document-portal-fuse.c:2820:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2820 |   g_debug ("SYMLINK %s %lx %s", link, parent_ino, name);
      |            ^~~~~~~~~~~~~~~~~~~        ~~~~~~~~~~
      |                                       |
      |                                       fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2820:26: note: format string is defined here
 2820 |   g_debug ("SYMLINK %s %lx %s", link, parent_ino, name);
      |                        ~~^
      |                          |
      |                          long unsigned int
      |                        %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_link’:
../document-portal/document-portal-fuse.c:2859:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2859 |   g_debug ("LINK %lx %lx %s", ino, newparent_ino, newname);
      |            ^~~~~~~~~~~~~~~~~  ~~~
      |                               |
      |                               fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2859:20: note: format string is defined here
 2859 |   g_debug ("LINK %lx %lx %s", ino, newparent_ino, newname);
      |                  ~~^
      |                    |
      |                    long unsigned int
      |                  %llx
../document-portal/document-portal-fuse.c:2859:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 5 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2859 |   g_debug ("LINK %lx %lx %s", ino, newparent_ino, newname);
      |            ^~~~~~~~~~~~~~~~~       ~~~~~~~~~~~~~
      |                                    |
      |                                    fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2859:24: note: format string is defined here
 2859 |   g_debug ("LINK %lx %lx %s", ino, newparent_ino, newname);
      |                      ~~^
      |                        |
      |                        long unsigned int
      |                      %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_statfs’:
../document-portal/document-portal-fuse.c:2899:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2899 |   g_debug ("STATFS %lx", ino);
      |            ^~~~~~~~~~~~  ~~~
      |                          |
      |                          fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2899:22: note: format string is defined here
 2899 |   g_debug ("STATFS %lx", ino);
      |                    ~~^
      |                      |
      |                      long unsigned int
      |                    %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_setxattr’:
../document-portal/document-portal-fuse.c:2928:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2928 |   g_debug ("SETXATTR %lx %s", ino, name);
      |            ^~~~~~~~~~~~~~~~~  ~~~
      |                               |
      |                               fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2928:24: note: format string is defined here
 2928 |   g_debug ("SETXATTR %lx %s", ino, name);
      |                      ~~^
      |                        |
      |                        long unsigned int
      |                      %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_getxattr’:
../document-portal/document-portal-fuse.c:2963:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 2963 |   g_debug ("GETXATTR %lx %s %ld", ino, name, size);
      |            ^~~~~~~~~~~~~~~~~~~~~  ~~~
      |                                   |
      |                                   fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2963:24: note: format string is defined here
 2963 |   g_debug ("GETXATTR %lx %s %ld", ino, name, size);
      |                      ~~^
      |                        |
      |                        long unsigned int
      |                      %llx
../document-portal/document-portal-fuse.c:2963:12: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 6 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=]
 2963 |   g_debug ("GETXATTR %lx %s %ld", ino, name, size);
      |            ^~~~~~~~~~~~~~~~~~~~~             ~~~~
      |                                              |
      |                                              size_t {aka unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:2963:31: note: format string is defined here
 2963 |   g_debug ("GETXATTR %lx %s %ld", ino, name, size);
      |                             ~~^
      |                               |
      |                               long int
      |                             %d
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_listxattr’:
../document-portal/document-portal-fuse.c:3004:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 3004 |   g_debug ("LISTXATTR %lx %ld", ino, size);
      |            ^~~~~~~~~~~~~~~~~~~  ~~~
      |                                 |
      |                                 fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:3004:25: note: format string is defined here
 3004 |   g_debug ("LISTXATTR %lx %ld", ino, size);
      |                       ~~^
      |                         |
      |                         long unsigned int
      |                       %llx
../document-portal/document-portal-fuse.c:3004:12: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 5 has type ‘size_t’ {aka ‘unsigned int’} [-Wformat=]
 3004 |   g_debug ("LISTXATTR %lx %ld", ino, size);
      |            ^~~~~~~~~~~~~~~~~~~       ~~~~
      |                                      |
      |                                      size_t {aka unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:3004:29: note: format string is defined here
 3004 |   g_debug ("LISTXATTR %lx %ld", ino, size);
      |                           ~~^
      |                             |
      |                             long int
      |                           %d
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_removexattr’:
../document-portal/document-portal-fuse.c:3045:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 3045 |   g_debug ("REMOVEXATTR %lx %s", ino, name);
      |            ^~~~~~~~~~~~~~~~~~~~  ~~~
      |                                  |
      |                                  fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:3045:27: note: format string is defined here
 3045 |   g_debug ("REMOVEXATTR %lx %s", ino, name);
      |                         ~~^
      |                           |
      |                           long unsigned int
      |                         %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_getlk’:
../document-portal/document-portal-fuse.c:3076:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 3076 |   g_debug ("GETLK %lx", ino);
      |            ^~~~~~~~~~~  ~~~
      |                         |
      |                         fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:3076:21: note: format string is defined here
 3076 |   g_debug ("GETLK %lx", ino);
      |                   ~~^
      |                     |
      |                     long unsigned int
      |                   %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_setlk’:
../document-portal/document-portal-fuse.c:3090:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 3090 |   g_debug ("SETLK %lx", ino);
      |            ^~~~~~~~~~~  ~~~
      |                         |
      |                         fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:3090:21: note: format string is defined here
 3090 |   g_debug ("SETLK %lx", ino);
      |                   ~~^
      |                     |
      |                     long unsigned int
      |                   %llx
../document-portal/document-portal-fuse.c: In function ‘xdp_fuse_flock’:
../document-portal/document-portal-fuse.c:3103:12: warning: format ‘%lx’ expects argument of type ‘long unsigned int’, but argument 4 has type ‘fuse_ino_t’ {aka ‘long long unsigned int’} [-Wformat=]
 3103 |   g_debug ("FLOCK %lx", ino);
      |            ^~~~~~~~~~~  ~~~
      |                         |
      |                         fuse_ino_t {aka long long unsigned int}
/usr/include/glib-2.0/glib/gmessages.h:362:32: note: in definition of macro ‘g_debug’
  362 |                                __VA_ARGS__)
      |                                ^~~~~~~~~~~
../document-portal/document-portal-fuse.c:3103:21: note: format string is defined here
 3103 |   g_debug ("FLOCK %lx", ino);
      |                   ~~^
      |                     |
      |                     long unsigned int
      |                   %llx
../document-portal/document-portal-fuse.c: At top level:
../document-portal/document-portal-fuse.c:3147:18: warning: initialization of ‘void (*)(struct fuse_req *, fuse_ino_t,  uint64_t)’ {aka ‘void (*)(struct fuse_req *, long long unsigned int,  long long unsigned int)’} from incompatible pointer type ‘void (*)(struct fuse_req *, fuse_ino_t,  long unsigned int)’ {aka ‘void (*)(struct fuse_req *, long long unsigned int,  long unsigned int)’} [-Wincompatible-pointer-types]
 3147 |  .forget       = xdp_fuse_forget,
      |                  ^~~~~~~~~~~~~~~
../document-portal/document-portal-fuse.c:3147:18: note: (near initialization for ‘xdp_fuse_oper.forget’)
[180/180] Generating doc/html with a custom command

Output when running the test-portal program:

Starting program: /mnt/src/odroid/alarm/PKGBUILD/xdg-desktop-portal/xdg-desktop-portal/build/tests/test-portals 

This GDB supports auto-downloading debuginfo from the following URLs:

[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib/libthread_db.so.1".
# random seed: R02S221363ee586ea76a1ace9c74b26a74aa
# xdg-desktop-portal-DEBUG: outdir: /tmp/xdp-test-3UOZY1
# 
[Detaching after vfork from child process 16814]
[Detaching after fork from child process 16815]
[New Thread 0xb649f2e0 (LWP 16816)]
# GLib-GIO-DEBUG: Using cross-namespace EXTERNAL authentication (this will deadlock if server is GDBus < 2.73.3)
[New Thread 0xb5aff2e0 (LWP 16817)]
# xdg-desktop-portal-DEBUG: launching test-backend
# 
[Detaching after fork from child process 16818]
# Launched /mnt/src/odroid/alarm/PKGBUILD/xdg-desktop-portal/xdg-desktop-portal/build/tests/test-backends with pid 16818
# 
# xdg-desktop-portal-DEBUG: Name org.freedesktop.impl.portal.Test disappeared
# 
# xdg-desktop-portal-DEBUG: Name org.freedesktop.impl.portal.Test now owned by :1.1
# 
# xdg-desktop-portal-DEBUG: launching /usr/lib/xdg-permission-store
# 
[Detaching after fork from child process 16822]
**
xdg-desktop-portal:ERROR:../tests/test-portals.c:243:global_setup: assertion failed (error == NULL): Failed to execute child process ?/usr/lib/xdg-permission-store? (No such file or directory) (g-exec-error-quark, 8)
Bail out! xdg-desktop-portal:ERROR:../tests/test-portals.c:243:global_setup: assertion failed (error == NULL): Failed to execute child process ?/usr/lib/xdg-permission-store? (No such file or directory) (g-exec-error-quark, 8)

Thread 1 "test-portals" received signal SIGABRT, Aborted.
__pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
44	      return INTERNAL_SYSCALL_ERROR_P (ret) ? INTERNAL_SYSCALL_ERRNO (ret) : 0;
(gdb) bt -full
#0  __pthread_kill_implementation (threadid=<optimized out>, signo=signo@entry=6, no_tid=no_tid@entry=0) at pthread_kill.c:44
        tid = 16811
        ret = 0
        pd = <optimized out>

                    old_mask = {__val = {0, 0, 3063212184, 0, 3204445800, 1, 2150584320, 32, 5525712, 5335048, 84, 5335048, 2, 3204445900, 2150584320, 3069334216, 5565088, 3070174624, 84, 3204445904, 3204445920, 3204445900, 0, 3069334216, 3063679176, 3204445900, 0, 0, 5525712, 3204445912, 3068722252, 1}}
        ret = <optimized out>
#1  0xb69ae368 in __pthread_kill_internal (signo=6, threadid=<optimized out>) at pthread_kill.c:78
#2  0xb6964708 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#3  0xb694d66c in __GI_abort () at abort.c:79
        save_stage = 1

                  act = {__sigaction_handler = {sa_handler = 0x10, sa_sigaction = 0x10}, sa_mask = {__val = {5532440, 3070174624, 3064706524, 5360640, 3204446104, 5360640, 1, 1, 3063679176, 1, 3069046364, 244, 5532440, 1, 3069063108, 3204446204, 5529816, 0, 0, 1, 2150584320, 4093640704, 5360640, 3070174624, 84, 5174624, 5531936, 3204446204, 5529816, 0, 3063679176, 3069807120}}, sa_flags = 5174624, sa_restorer = 0x51cc00}

                    sigs = {__val = {32, 0, 3064698528, 5345296, 227, 3064706524, 3064707976, 0, 0, 227, 5532432, 3064707976, 5532432, 3064706524, 3204446204, 2048, 255, 3070174624, 5534488, 12, 5532432, 3063668204, 3064706524, 2048, 3070174624, 3204446104, 1, 1, 0, 3063677584, 2048, 2150584320}}
#4  0xb6ee60a0 in g_assertion_message () at /usr/lib/libglib-2.0.so.0
#5  0xb6ee6af4 in g_assertion_message_error () at /usr/lib/libglib-2.0.so.0
#6  0x004bd1d0 in global_setup ()
#7  0x004c1a04 in main ()
(gdb)

It works fine when building it with autoconf / make.

@MastaG
Copy link
Author

MastaG commented Jan 16, 2023

I was wrong, test same errors occur when building with autoconf/make.
Any ideas? (judging from the build log)

@MastaG
Copy link
Author

MastaG commented Jan 16, 2023

I think this comment describes a similar problem:
espressif/esp-idf#9511 (comment)

@smcv
Copy link
Collaborator

smcv commented Jan 16, 2023

Failed to execute child process ?/usr/lib/xdg-permission-store? (No such file or directory)

I think that error message should be fairly self-explanatory? The test expected to find the installed xdg-permission-store executable, but could not find it, and therefore failed. The compiler warnings you have seen about format string mismatches between long (unsigned) int and long long (unsigned) int are unrelated to the reason why this test is failing.

Sorry, the Flatpak/xdg-desktop-portal developers do not really have enough time available to spend it on debugging your test methodology in detail. Note that the tests can be run in two ways: as build-time tests (meson test, similar to Autotools make check) or as "as-installed" tests.

If you are intending to run this as a build-time test, you need to set some environment variables. meson test should do this for you, but if you are running test executables manually, either (a) don't do that, run meson test instead, or (b) set the same environment variables that Meson would (in particular see tests/meson.build).

For comparison, the build-time tests succeed on Debian/Ubuntu's "armhf" architecture, which is also armv7h, although some are probably skipped because the autobuilder is running them in a chroot: Debian, Ubuntu.

If you are intending to run this as an "as-installed" test, make sure you have really installed everything onto the target device before running the tests, and used the paths (libdir, etc.) that you were expecting to use. As an "as-installed" test, typically you would run the test from its installed path below /usr/libexec. The "as-installed" tests are not currently run on Debian's armhf architecture, because they need to be run directly on a real or virtual machine, and Debian's autopkgtest infrastructure currently only supports as-installed testing in lxc containers.

Compiling in one path and copying/mounting on a different path is generally not something that can be supported. Please don't assume that it's a bug for this not to work.

@smcv
Copy link
Collaborator

smcv commented Jan 16, 2023

For the compiler warnings about format string mismatches, merge requests are welcome. Ideally, to make the format string and argument match up on all architectures, x-d-p should be using:

  • some_printf_like_function ("%zu", x) if x is a size_t or gsize
  • some_printf_like_function ("%" G_GUINT64_FORMAT, x) if x is a guint64
  • probably some_printf_like_function ("%llu", (unsigned long long) x) if x is a fuse_ino_t, since fuse_ino_t might be defined as any reasonable type
  • similarly, probably some_printf_like_function ("%lld", (long long) x) if x is an off_t, since off_t might be defined as any reasonable type (currently 64 bits on all reasonable architectures)

If you change these, please check that the warnings go away on both ILP32 architectures (like armv7h and i386) and LP64 architectures (like x86_64 and aarch64).

@GeorgesStavracas GeorgesStavracas changed the title armv7h: compiling with meson produces broken binaries Compiler warnings about format string mismatches Oct 3, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: Triaged
Development

No branches or pull requests

3 participants