Hi! Compilation of xserver-xorg-video-ati from git show these problems:
../../src/radeon_kms.c: In function 'radeon_sync_scanout_pixmaps': ../../src/radeon_kms.c:481:2: warning: implicit declaration of function 'RegionDuplicate' [-Wimplicit- function-declaration] ../../src/radeon_kms.c:481:14: warning: assignment makes pointer from integer without a cast [enabled by default] Function `RegionDuplicate' implicitly converted to pointer at ../../src/radeon_kms.c:481 ../../src/radeon_kms.c: At top level: ../../src/radeon_kms.c:406:1: warning: 'transform_region' defined but not used [-Wunused-function]
Due to error 'Function `RegionDuplicate' implicitly converted to pointer' gcc refuse to accept it...
From: Michel Dänzer michel.daenzer@amd.com
It was only added in xserver 1.15. Fixes build against older xserver.
Reported-by: Pali Rohár pali.rohar@gmail.com Signed-off-by: Michel Dänzer michel.daenzer@amd.com --- configure.ac | 6 ++++++ src/radeon.h | 19 +++++++++++++++++++ 2 files changed, 25 insertions(+)
diff --git a/configure.ac b/configure.ac index 394f45a..8dc55d8 100644 --- a/configure.ac +++ b/configure.ac @@ -137,6 +137,12 @@ else fi AM_CONDITIONAL(GLAMOR, test x$GLAMOR != xno)
+AC_CHECK_DECL(RegionDuplicate, + [AC_DEFINE(HAVE_REGIONDUPLICATE, 1, + [Have RegionDuplicate API])], [], + [#include <xorg-server.h> + #include <regionstr.h>]) + AC_CHECK_DECL(fbGlyphs, [AC_DEFINE(HAVE_FBGLYPHS, 1, [Have fbGlyphs API])], [], [#include <X11/Xmd.h> diff --git a/src/radeon.h b/src/radeon.h index f3a3e1c..590966f 100644 --- a/src/radeon.h +++ b/src/radeon.h @@ -96,6 +96,25 @@
struct _SyncFence;
+#ifndef HAVE_REGIONDUPLICATE + +static inline RegionPtr +RegionDuplicate(RegionPtr pOld) +{ + RegionPtr pNew; + + pNew = RegionCreate(&pOld->extents, 0); + if (!pNew) + return NULL; + if (!RegionCopy(pNew, pOld)) { + RegionDestroy(pNew); + return NULL; + } + return pNew; +} + +#endif + #ifndef MAX #define MAX(a,b) ((a)>(b)?(a):(b)) #endif
dri-devel@lists.freedesktop.org