Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-125623

DBusConnection name clash

    XMLWordPrintable

Details

    • fc96d9d27 (dev)

    Description

      qt has a `class DBusConnection`, which conflicts with `typedef struct DBusConnection DBusConnection;` in `/usr/include/dbus-1.0/dbus/dbus-connection.h`.

      this causes clang to emit -Wmismatched-tags warnings:

      [879/5298 1.6/sec] Building CXX object qtbase/src/gui/CMakeFiles/Gui.dir/accessible/linux/qspiaccessiblebridge.cpp.o
      In file included from /home/tim/dev/qt6-dev/qtbase/src/gui/accessible/linux/qspiaccessiblebridge.cpp:12:
      In file included from /home/tim/dev/qt6-dev/qtbase/src/gui/accessible/linux/atspiadaptor_p.h:19:
      In file included from /usr/include/at-spi-2.0/atspi/atspi.h:29:
      In file included from /usr/include/at-spi-2.0/atspi/atspi-accessible.h:33:
      In file included from /usr/include/at-spi-2.0/atspi/atspi-application.h:28:
      In file included from /usr/include/dbus-1.0/dbus/dbus.h:31:
      In file included from /usr/include/dbus-1.0/dbus/dbus-bus.h:30:
      /usr/include/dbus-1.0/dbus/dbus-connection.h:52:9: warning: struct 'DBusConnection' was previously declared as a class; this is valid, but may result in linker errors under the Microsoft C++ ABI [-Wmismatched-tags]
         52 | typedef struct DBusConnection DBusConnection;
            |         ^
      /home/tim/dev/qt6-dev/qtbase/src/gui/accessible/linux/qspiaccessiblebridge_p.h:30:7: note: previous use is here
         30 | class DBusConnection;
            |       ^
      1 warning generated.
      

      also i wonder if this may have some effects on LTO builds: `struct DBusConnection` is an opaque type, but it smells like we're violating the one-definition-rule if someone may statically link dbus ...

      afaict `class DBusConnection` is private, so maybe we can simply rename it (or move it into a namespace?)

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              qt.team.quick.subscriptions Qt Quick and Widgets Team
              timblechmann tim blechmann
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes