[Bug,109587] "xf86drm: Add drmIsMaster()" commit breaks X server builds
diff mbox series

Message ID bug-109587-502@http.bugs.freedesktop.org/
State New
Headers show
  • [Bug,109587] "xf86drm: Add drmIsMaster()" commit breaks X server builds
Related show

Commit Message

bugzilla-daemon@freedesktop.org Feb. 8, 2019, 11:59 a.m. UTC

            Bug ID: 109587
           Summary: "xf86drm: Add drmIsMaster()" commit breaks X server
           Product: DRI
           Version: XOrg git
          Hardware: All
                OS: All
            Status: NEW
          Severity: major
          Priority: medium
         Component: libdrm
          Assignee: dri-devel@lists.freedesktop.org
          Reporter: eero.t.tamminen@intel.com

Following commit:
commit 17dfe3ac93217b43f93bc81d1129bd38a89d0368
Author:     Christopher James Halse Rogers
AuthorDate: Wed Jan 23 15:38:45 2019 +1100
Commit:     Emil Velikov <emil.l.velikov@gmail.com>
CommitDate: Thu Feb 7 17:43:01 2019 +0000

    xf86drm: Add drmIsMaster()
In file included from /path/to/include/xf86drm.h:40:0,
                 from /path/to/hw/xfree86/dri2/dri2.c:39:
/path/to/hw/xfree86/common/xf86Opt.h:44:10: error: two or more data types in
declaration specifiers
     Bool bool;
In file included from /path/to/hw/xfree86/common/xf86str.h:43:0,
                 from /path/to/hw/xfree86/common/xf86.h:44,
                 from /path/to/hw/xfree86/dri2/dri2.c:48:
/path/to/hw/xfree86/common/xf86Opt.h:44:14: warning: declaration does not
declare anything
     Bool bool;

Because couple of structures in X source code are using struct members named as
"bool" (added in 2012):
./hw/xfree86/common/xf86Opt.h:    Bool bool;
./hw/xwin/winconfig.h:    Bool bool;

(FYI: Bool is defined as "int" in several X headers.)

Please revert the part adding "stdbool.h" include / "bool" typedef to the
xf86drm.h header used by X server, until somebody renames those badly named
struct members in X server sources.


bugzilla-daemon@freedesktop.org Feb. 11, 2019, 4:42 p.m. UTC | #1

Eero Tamminen <eero.t.tamminen@intel.com> changed:

           What    |Removed                     |Added
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #1 from Eero Tamminen <eero.t.tamminen@intel.com> ---
Fixed by:
commit eba6609b7bee5a56fa5334992b1e6f3aef8d244a
Author: Eric Engestrom <eric.engestrom@intel.com>
Date:   Fri Feb 8 14:46:07 2019 +0000

    xf86drm: fix return type for drmIsMaster()

    Xserver has struct members named `bool`, which means the last commit
    breaks its build with errors like this:

      error: two or more data types in declaration specifiers
      Bool bool;

    Fix this by making it return a 0/1 integer, with the same semantic as
    the boolean it was before.

    Bug: https://bugs.freedesktop.org/show_bug.cgi?id=109587
    Fixes: 17dfe3ac93217b43f93b "xf86drm: Add drmIsMaster()"
    Cc: Christopher James Halse Rogers <christopher.halse.rogers@canonical.com>
    Signed-off-by: Eric Engestrom <eric.engestrom@intel.com>
    Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

I hope somebody fixes also those X server xf86Opt.h & winconfig.h headers soon
as even some of X server code itself is using stdbool.h:
$ git grep stdbool.h
hw/xquartz/GL/capabilities.h:#include <stdbool.h>
hw/xquartz/mach-startup/bundle-main.c:#include <stdbool.h>
hw/xwin/winmultiwindowicons.c:#include <stdbool.h>
test/damage/primitives.c:#include <stdbool.h>
test/simple-xinit.c:#include <stdbool.h>
bugzilla-daemon@freedesktop.org Feb. 19, 2019, 3:58 p.m. UTC | #2

Michel Dänzer <michel@daenzer.net> changed:

           What    |Removed                     |Added
                 CC|                            |pedretti.fabio@gmail.com

--- Comment #2 from Michel Dänzer <michel@daenzer.net> ---
*** Bug 109678 has been marked as a duplicate of this bug. ***

diff mbox series

--- a/xf86drm.h
+++ b/xf86drm.h
@@ -37,6 +37,7 @@ 
 #include <stdarg.h>
 #include <sys/types.h>
 #include <stdint.h>
+#include <stdbool.h>

Breaks X server build:
FAILED: hw/xfree86/dri2/xorg_dri2@sta/dri2.c.o