Bug 473459 - undefined macros in drm/drm.h break userspace compilation (__user and DEPRECATED)
Summary: undefined macros in drm/drm.h break userspace compilation (__user and DEPRECA...
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: kernel
Version: 10
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Dave Airlie
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2008-11-28 16:08 UTC by Hans Ulrich Niedermann
Modified: 2008-11-30 08:29 UTC (History)
3 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2008-11-30 08:29:19 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description Hans Ulrich Niedermann 2008-11-28 16:08:42 UTC
Description of problem:

  drm/drm.h makes extensive use of the C preprocessor macros
  __user and DEPRECATED.

  Howver, in F10 drm/drm.h does not define those macros any more
  like it did in F9. Those two macros are usually undefined in
  userspace software, and thus compilation will fail.

  The drm/drm.h in F9 (from libdrm-devel) used to contain

    #ifndef __user
    #define __user
    #endif
    [...]
    #ifdef __GNUC__
    # define DEPRECATED  __attribute__ ((deprecated))
    #else
    # define DEPRECATED
    #endif

  which prevents the problem.

Version-Release number of selected component (if applicable):

  [F-9]$ rpm -qf /usr/include/drm/drm.h
  libdrm-devel-2.4.0-0.13.fc9.i386

  [F-10]$ rpm -qf /usr/include/drm/drm.h
  kernel-headers-2.6.27.5-117.fc10.x86_64

How reproducible:

  100%

Steps to Reproduce:
0. Compile any userspace software which uses drm/drm.h, without
   explicitly defining the __user and DEPRECATED macros, e.g.
1. git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-radeonhd
2. cd xf86-video-radeonhd
3. ./autogen.sh
4. make
  
Actual results:

  Compile error in radeon_drm.h due to effects of undefined __user
  and DEPRECATED in code included from drm/drm.h

Expected results:

  Compiles.

Additional info:

  I guess we can also add workarounds to all userspace software which
  includes drm/drm.h... but that might be the wrong place to fix it.

Comment 1 Dave Airlie 2008-11-30 08:29:19 UTC
this is a bug in the radeonhd driver, please don't bother us with it.

they include their own radeon_drm.h which they need to fix.


Note You need to log in before you can comment on or make changes to this bug.