Trying to compile 0.11.1 with a custom config which enables MGA 400 DRI support for both X 4.0.3 and 4.1, I get: make[4]: Leaving directory `/build/linux-2.4.7-0.11.1/drivers/char/drm' make[3]: Leaving directory `/build/linux-2.4.7-0.11.1/drivers/char/drm' make -C drm41 make[3]: Entering directory `/build/linux-2.4.7-0.11.1/drivers/char/drm41' make all_targets make[4]: Entering directory `/build/linux-2.4.7-0.11.1/drivers/char/drm41' gcc -D__KERNEL__ -I/build/linux-2.4.7-0.11.1/include -Wall -Wstrict-prototypes -Wno-trigraphs -O2 -fomit-frame-pointer -fno-strict-aliasing -fno-common -Wno-unused -pipe -mpreferred-stack-boundary=2 -march=i686 -DEXPORT_SYMTAB -c mga_drv.c In file included from mga_drv.c:68: drm_bufs.h:391:2: warning: #warning DRM(realloc) can return NULL! drm_bufs.h:690:2: warning: #warning LEAK !! drm_bufs.h:716:2: warning: #warning DRM(realloc) can return NULL! In file included from mga_drv.c:69: drm_context.h:80:2: warning: #warning DRM(realloc) can return NULL! drm_context.h:88:2: warning: #warning What to do is this allocation fails ? In file included from mga_drv.c:69: drm_context.h: In function `mga_setsareactx': drm_context.h:174: warning: `r_list' might be used uninitialized in this function In file included from mga_drv.c:72: drm_drv.h: At top level: drm_drv.h:216: `__setup_str_DRM' declared as function returning an array drm_drv.h:216: warning: parameter names (without types) in function declaration drm_drv.h:216: function `__setup_str_DRM' is initialized like a variable drm_drv.h:216: warning: parameter names (without types) in function declaration drm_drv.h:216: function `__setup_DRM' is initialized like a variable drm_drv.h:216: `options' undeclared here (not in a function) drm_drv.h:216: invalid initializer drm_drv.h:216: (near initialization for `__setup_DRM') drm_drv.h:216: warning: excess elements in scalar initializer drm_drv.h:216: warning: (near initialization for `__setup_DRM') In file included from mga_drv.c:80: drm_stub.h:87:2: warning: #warning what if the memory allocation fails make[4]: *** [mga_drv.o] Error 1 make[4]: Leaving directory `/build/linux-2.4.7-0.11.1/drivers/char/drm41' make[3]: *** [first_rule] Error 2 make[3]: Leaving directory `/build/linux-2.4.7-0.11.1/drivers/char/drm41' make[2]: *** [_subdir_drm41] Error 2 make[2]: Leaving directory `/build/linux-2.4.7-0.11.1/drivers/char' make[1]: *** [_subdir_char] Error 2 make[1]: Leaving directory `/build/linux-2.4.7-0.11.1/drivers' make: *** [_dir_drivers] Error 2 [kaboom@verdande linux-2.4.7-0.11.1]$
Ehm you can't have BOTH old and new DRM.... (yes I really really hate that part of DRM) But it seems there is another bug hiding as well; in -0.12.0 I changed DRM a lot (basically I upgraded it to a new version and changed directories to match Alan's and Linus' tree) and while I could spend time trying to fix -0.11.1 I'd much prefer to see/know if -0.12 is also broken and then fix THAT. Could you attach your .config ?
This defect is considered MUST-FIX for Fairfax.
Created attachment 27153 [details] kernel config for 2.4.7-0.11.1
Config attached, which works other than the dueling DRM issue. If you put 0.12 some place I can get to it, I'll try it instead ;-)
should be fixed now in 2.4.7-0.14.0