Help building the UMS branch of xf86-video-ati on a modern Linux distro

Nicol?s Colla nicolascolla at mail.ru
Thu Sep 19 18:19:50 UTC 2019


Hello everyone,

I desperately need to bring back userland mode setting (UMS) support on my machine for hardware compatibility reasons. As you probably know, UMS support was removed some years ago, and a new git branch was created with the UMS-compatible source code of the driver.

I cloned the UMS branch on my system and tried to build it, but it is very difficult because of the amomunt of "bit rot" this branch seems to have experienced. First, it complained about the lack of a "xaa.h", so I grabbed the XAA header files from the last XAA-supported xorg-server version (1.12) and put them in /usr/include/xorg.

That let me advance a bit, somehow, but shortly after the start of the second try, I got other errors (included below). Is there any way in which I could make this branch compile on a modern Linux distro with a modern xorg version? 

radeon_driver.c:3383:6: error: too many arguments to function ‘pScreen->BlockHandler’
(*pScreen->BlockHandler) (BLOCKHANDLER_ARGS);
~^~~~~~~~~~~~~~~~~~~~~~~
radeon_driver.c:3384:27: warning: assignment to ‘ScreenBlockHandlerProcPtr’ {aka ‘void (*)(struct _Screen *, void *)’} from incompatible pointer type void (*)(struct _Screen *, void *, void *)’ [-Wincompatible-pointer-types]
pScreen->BlockHandler = RADEONBlockHandler;
^
radeon_driver.c: In function ‘RADEONScreenInit’:
radeon_driver.c:3740:12: warning: assignment discards ‘const’ qualifier from pointer target type [-Wdiscarded-qualifiers]
if ((s = xf86GetOptValString(info->Options, OPTION_SUBPIXEL_ORDER))) {
^
radeon_driver.c:3759:5: warning: implicit declaration of function ‘miInitializeBackingStore’; did you mean ‘InitializeSprite’? [-Wimplicit-function-declaration]
miInitializeBackingStore(pScreen);
^~~~~~~~~~~~~~~~~~~~~~~~
InitializeSprite
radeon_driver.c:3899:24: warning: assignment to ‘void (*)(struct _Screen *, void *, void *)’ from incompatible pointer type ‘ScreenBlockHandlerProcPtr’ {aka ‘void (*)(struct _Screen *, void *)’} [-Wincompatible-pointer-types]
info->BlockHandler = pScreen->BlockHandler;
^
radeon_driver.c:3900:27: warning: assignment to ‘ScreenBlockHandlerProcPtr’ {aka ‘void (*)(struct _Screen *, void *)’} from incompatible pointer type void (*)(struct _Screen *, void *, void *)’ [-Wincompatible-pointer-types]
pScreen->BlockHandler = RADEONBlockHandler;
^
radeon_driver.c: In function ‘RADEONEnterVT’:
radeon_driver.c:6313:3: warning: implicit declaration of function ‘R600LoadShaders’ [-Wimplicit-function-declaration]
R600LoadShaders(pScrn);
^~~~~~~~~~~~~~~
radeon_driver.c: In function ‘RADEONCloseScreen’:
radeon_driver.c:6443:19: warning: passing argument 1 of ‘DamageUnregister’ from incompatible pointer type [-Wincompatible-pointer-types]
DamageUnregister(&pPix->drawable, info->dri->pDamage);
^~~~~~~~~~~~~~~
In file included from /usr/include/xorg/pixmapstr.h:53,
from /usr/include/xorg/xf86str.h:40,
from radeon.h:46,
from radeon_driver.c:72:
/usr/include/xorg/damage.h:77:29: note: expected ‘DamagePtr’ {aka ‘struct _damage *’} but argument is of type ‘DrawableRec *’ {aka ‘struct _Drawable *’}
DamageUnregister(DamagePtr pDamage);
~~~~~~~~~~^~~~~~~
radeon_driver.c:6443:2: error: too many arguments to function ‘DamageUnregister’
DamageUnregister(&pPix->drawable, info->dri->pDamage);
^~~~~~~~~~~~~~~~
In file included from /usr/include/xorg/pixmapstr.h:53,
from /usr/include/xorg/xf86str.h:40,
from radeon.h:46,
from radeon_driver.c:72:
/usr/include/xorg/damage.h:77:2: note: declared here
DamageUnregister(DamagePtr pDamage);
^~~~~~~~~~~~~~~~
radeon_driver.c:6497:27: warning: assignment to ‘ScreenBlockHandlerProcPtr’ {aka ‘void (*)(struct _Screen *, void *)’} from incompatible pointer type void (*)(struct _Screen *, void *, void *)’ [-Wincompatible-pointer-types]
pScreen->BlockHandler = info->BlockHandler;
^
make[2]: *** [Makefile:900: radeon_driver.lo] Error 1
make[2]: Leaving directory '/root/src/xf86-video-ati-ums/src'
make[1]: *** [Makefile:448: all-recursive] Error 1
make[1]: Leaving directory '/root/src/xf86-video-ati-ums'
make: *** [Makefile:380: all] Error 2 Thank you very much!


Nicolás Colla
nicolascolla at mail.ru
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20190919/980ea939/attachment-0001.html>


More information about the amd-gfx mailing list