Skip to contentSkip to conversation

Recent xserver-kdrive failure and util-macros update

DISCUSSION Saul Wold 5 participants 7 messages Jan 4, 2012

lore
Share & tools
lore

Saul Wold

author
#0 lore raw

We seem to have a relatively new failure in xserver-kdrive, which appeared in the last set of change. I tried to run though a bisect but was not able to find the problem.

The problem seems to be related to configure.ac setting of XSERVER_CFLAGS='$(CWARNFLAGS)' and then using -Werror=address, which is what causes the failure.

This seems to be related to the util-macros update to 1.16, which adds more warnings to errors. Since we are still using the older xserver-kdrive, there are warnings that are now errors with the update.

We could patch the current xserver-kdrive, revert the 1.16 update to util-macros or update xserver-kdrive (which is in the works, but I think had some issues). This also seems to affect the libxp package on x86-64.

Thoughts, I know we don't like to revert, but we may have to in this case as we don't have the kdrive update yet and would need to further investigate the libxp failure.

Signature · 5 lines
    Sau!

Saul Wold
Yocto Component Wrangler @ Intel
Yocto Project / Poky Build System
#1 lore raw
Quoted 11 lines · Saul Wold

We seem to have a relatively new failure in xserver-kdrive, which appeared in the last set of change. I tried to run though a bisect but was not able to find the problem.

The problem seems to be related to configure.ac setting of XSERVER_CFLAGS='$(CWARNFLAGS)' and then using -Werror=address, which is what causes the failure.

This seems to be related to the util-macros update to 1.16, which adds more warnings to errors. Since we are still using the older xserver-kdrive, there are warnings that are now errors with the update.

We could patch the current xserver-kdrive, revert the 1.16 update to util-macros or update xserver-kdrive (which is in the works, but I think had some issues). This also seems to affect the libxp package on x86-64.

Thoughts, I know we don't like to revert, but we may have to in this case as we don't have the kdrive update yet and would need to further investigate the libxp failure.

Hi Saul,

Do you have any suggestion my previous patches to update xserver-kdrive ?

http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=xiaofeng/update

#2 lore raw

Xiaofeng Yan wrote on 2012-01-04:

Quoted 9 lines · Saul Wold
Quoted 8 lines

We seem to have a relatively new failure in xserver-kdrive, which appeared in the last set of change. I tried to run though a bisect but was not able to find the problem.

The problem seems to be related to configure.ac setting of XSERVER_CFLAGS='$(CWARNFLAGS)' and then using -Werror=address, which is what causes the failure.

Hi Saul,
Can we patch this to make it not fail?
I'll try to look into this...

Quoted 8 lines
Quoted 8 lines

This seems to be related to the util-macros update to 1.16, which adds more warnings to errors. Since we are still using the older xserver-kdrive, there are warnings that are now errors with the update.

We could patch the current xserver-kdrive, revert the 1.16 update to util-macros or update xserver-kdrive (which is in the works, but I think had some issues). This also seems to affect the libxp package on x86-64.

I don't see any libxp failure(I build libxp with MACHINE=qemux86 on an X86-64 host). By saying "on x86-64", did you mean "qemux86-64"?

Quoted 8 lines
Quoted 4 lines

Thoughts, I know we don't like to revert, but we may have to in this case as we don't have the kdrive update yet and would need to further investigate the libxp failure.

Hi Saul,
Do you have any suggestion my previous patches to update xserver-kdrive ?
http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=xiaofeng/update

I can build Xiaofeng's xserver-kdrive 1.11.2 fine with util-macro_1.16. Can we use the new xserver-kdriver and remove the old one?

Thanks,
-- Dexuan

#3 lore raw
In reply to Saul Wold
Quoted 5 lines · Saul Wold

We seem to have a relatively new failure in xserver-kdrive, which appeared in the last set of change. I tried to run though a bisect but was not able to find the problem.

Quoted 8 lines

The problem seems to be related to configure.ac setting of XSERVER_CFLAGS='$(CWARNFLAGS)' and then using -Werror=address, which is what causes the failure.

This seems to be related to the util-macros update to 1.16, which adds more warnings to errors. Since we are still using the older xserver-kdrive, there are warnings that are now errors with the update.

Fix xserver-kdrive

#4 lore raw
Quoted 10 lines · Khem Raj
Quoted 9 lines · Saul Wold

We seem to have a relatively new failure in xserver-kdrive, which appeared in the last set of change. I tried to run though a bisect but was not able to find the problem.

The problem seems to be related to configure.ac setting of XSERVER_CFLAGS='$(CWARNFLAGS)' and then using -Werror=address, which is what causes the failure.

Quoted 6 lines
Quoted 4 lines

This seems to be related to the util-macros update to 1.16, which adds more warnings to errors. Since we are still using the older xserver-kdrive, there are warnings that are now errors with the update.

Fix xserver-kdrive

In this case, I don't see why this is an error. All of the errors (that I've found so far) stem from lines like this:

	REGION_INIT(pGC->pScreen, &rgnDst, &box, 1);

where the macro REGION_INIT is defined as:

#define REGION_INIT(_pScreen, _pReg, _rect, _size) \

{ \
    if ((_rect) != NULL)				\
    { \
        (_pReg)->extents = *(_rect); \
        (_pReg)->data = (RegDataPtr)NULL; \
    } \
    else \
    { \
        (_pReg)->extents = miEmptyBox; \
        if (((_size) > 1) && ((_pReg)->data = \
                             (RegDataPtr)xalloc(REGION_SZOF(_size)))) \
        { \
            (_pReg)->data->size = (_size); \
            (_pReg)->data->numRects = 0; \
        } \
        else \
            (_pReg)->data = &miEmptyData; \
    } \

}

This doesn't look like an error to me, but rather an opportunity (to remove never used code).

Signature · 4 lines
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------
author
#5 lore raw
Quoted 16 lines · Gary Thomas
Quoted 15 lines · Khem Raj
Quoted 13 lines · Saul Wold

We seem to have a relatively new failure in xserver-kdrive, which appeared in the last set of change. I tried to run though a bisect but was not able to find the problem.

The problem seems to be related to configure.ac setting of XSERVER_CFLAGS='$(CWARNFLAGS)' and then using -Werror=address, which is what causes the failure.

This seems to be related to the util-macros update to 1.16, which adds more warnings to errors. Since we are still using the older xserver-kdrive, there are warnings that are now errors with the update.

Quoted 6 lines
Quoted 1 line

Fix xserver-kdrive

In this case, I don't see why this is an error. All of the errors (that I've found so far) stem from lines like this:
REGION_INIT(pGC->pScreen, &rgnDst, &box, 1);

Not all, the newer code has this snippet as a static inline and does not have the failure because it a function.

There's at least one place that it's called with a real pointer in a function.

Sau!

Quoted 26 lines

where the macro REGION_INIT is defined as:

#define REGION_INIT(_pScreen, _pReg, _rect, _size) \
{ \
if ((_rect) != NULL) \
{ \
(_pReg)->extents = *(_rect); \
(_pReg)->data = (RegDataPtr)NULL; \
} \
else \
{ \
(_pReg)->extents = miEmptyBox; \
if (((_size) > 1) && ((_pReg)->data = \
(RegDataPtr)xalloc(REGION_SZOF(_size)))) \
{ \
(_pReg)->data->size = (_size); \
(_pReg)->data->numRects = 0; \
} \
else \
(_pReg)->data = &miEmptyData; \
} \
}

This doesn't look like an error to me, but rather an opportunity (to remove never used code).

#6 lore raw
Quoted 19 lines · Saul Wold
Quoted 18 lines · Gary Thomas
Quoted 16 lines · Khem Raj
Quoted 5 lines · Saul Wold

We seem to have a relatively new failure in xserver-kdrive, which appeared in the last set of change. I tried to run though a bisect but was not able to find the problem.

Quoted 8 lines

The problem seems to be related to configure.ac setting of XSERVER_CFLAGS='$(CWARNFLAGS)' and then using -Werror=address, which is what causes the failure.

This seems to be related to the util-macros update to 1.16, which adds more warnings to errors. Since we are still using the older xserver-kdrive, there are warnings that are now errors with the update.

Fix xserver-kdrive

Quoted 7 lines
Quoted 4 lines

In this case, I don't see why this is an error. All of the errors (that I've found so far) stem from lines like this:
REGION_INIT(pGC->pScreen, &rgnDst, &box, 1);

Not all, the newer code has this snippet as a static inline and does not have the failure because it a function.

There's at least one place that it's called with a real pointer in a function.

True, not all of the calls to REGION_INIT are problematic, but all of the errors are uses of that macro with static pointers. The attached patch fixes these errors.

Quoted 26 lines
Quoted 26 lines

where the macro REGION_INIT is defined as:

#define REGION_INIT(_pScreen, _pReg, _rect, _size) \
{ \
if ((_rect) != NULL) \
{ \
(_pReg)->extents = *(_rect); \
(_pReg)->data = (RegDataPtr)NULL; \
} \
else \
{ \
(_pReg)->extents = miEmptyBox; \
if (((_size) > 1) && ((_pReg)->data = \
(RegDataPtr)xalloc(REGION_SZOF(_size)))) \
{ \
(_pReg)->data->size = (_size); \
(_pReg)->data->numRects = 0; \
} \
else \
(_pReg)->data = &miEmptyData; \
} \
}

This doesn't look like an error to me, but rather an opportunity (to remove never used code).

Signature · 4 lines
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------

From 8cd004c7bdce0a843fc98a0c9431ee18e391c9b1 Mon Sep 17 00:00:00 2001
From: Gary Thomas <[email protected]>
Date: Wed, 4 Jan 2012 13:35:26 -0700
Subject: [PATCH] xserver-kdrive: work around issues with -Werror=address

---
 .../error-address-work-around.patch                |  362 ++++++++++++++++++++
 .../xorg-xserver/xserver-kdrive_1.7.99.2.bb        |    3 +-
 2 files changed, 364 insertions(+), 1 deletions(-)
 create mode 100644 meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/error-address-work-around.patch
meta/recipes-graphics/xorg-xserver/xserver-kdrive-1.7.99.2/error-address-work-around.patch new file +362 -0
new file mode 100644
index 0000000..3052372
@@ -0,0 +1,362 @@
+diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/dix/window.c xorg-server-1.7.99.2/dix/window.c
+--- xorg-server-1.7.99.2.ORIG/dix/window.c	2012-01-04 13:12:40.417640130 -0700
++++ xorg-server-1.7.99.2/dix/window.c	2012-01-04 12:13:20.678605493 -0700
+@@ -559,10 +559,10 @@
+     box.y1 = 0;
+     box.x2 = pScreen->width;
+     box.y2 = pScreen->height;
+-    REGION_INIT(pScreen, &pWin->clipList, &box, 1);
+-    REGION_INIT(pScreen, &pWin->winSize, &box, 1);
+-    REGION_INIT(pScreen, &pWin->borderSize, &box, 1);
+-    REGION_INIT(pScreen, &pWin->borderClip, &box, 1);
++    REGION_INIT2(pScreen, &pWin->clipList, &box, 1);
++    REGION_INIT2(pScreen, &pWin->winSize, &box, 1);
++    REGION_INIT2(pScreen, &pWin->borderSize, &box, 1);
++    REGION_INIT2(pScreen, &pWin->borderClip, &box, 1);
+ 
+     pWin->drawable.class = InputOutput;
+     pWin->optional->visual = pScreen->rootVisual;
+diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_accel.c xorg-server-1.7.99.2/exa/exa_accel.c
+--- xorg-server-1.7.99.2.ORIG/exa/exa_accel.c	2009-12-11 11:20:48.000000000 -0700
++++ xorg-server-1.7.99.2/exa/exa_accel.c	2012-01-04 12:58:11.218616328 -0700
+@@ -1275,7 +1275,7 @@
+ 	Box.x2 = Box.x1 + w;
+ 	Box.y2 = Box.y1 + h;
+ 
+-	REGION_INIT(pScreen, &Reg, &Box, 1);
++	REGION_INIT2(pScreen, &Reg, &Box, 1);
+ 
+ 	pixmaps[0].as_dst = FALSE;
+ 	pixmaps[0].as_src = TRUE;
+diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa.c xorg-server-1.7.99.2/exa/exa.c
+--- xorg-server-1.7.99.2.ORIG/exa/exa.c	2009-12-11 11:20:48.000000000 -0700
++++ xorg-server-1.7.99.2/exa/exa.c	2012-01-04 12:56:30.592593427 -0700
+@@ -161,7 +161,7 @@
+     if (box.x1 >= box.x2 || box.y1 >= box.y2)
+ 	return;
+ 
+-    REGION_INIT(pScreen, &region, &box, 1);
++    REGION_INIT2(pScreen, &region, &box, 1);
+     DamageRegionAppend(&pPix->drawable, &region);
+     DamageRegionProcessPending(&pPix->drawable);
+     REGION_UNINIT(pScreen, &region);
+diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_classic.c xorg-server-1.7.99.2/exa/exa_classic.c
+--- xorg-server-1.7.99.2.ORIG/exa/exa_classic.c	2009-11-28 13:44:58.000000000 -0700
++++ xorg-server-1.7.99.2/exa/exa_classic.c	2012-01-04 12:54:50.586576675 -0700
+@@ -131,8 +131,8 @@
+     box.y1 = 0;
+     box.x2 = w;
+     box.y2 = h;
+-    REGION_INIT(pScreen, &pExaPixmap->validSys, &box, 0);
+-    REGION_INIT(pScreen, &pExaPixmap->validFB, &box, 0);
++    REGION_INIT2(pScreen, &pExaPixmap->validSys, &box, 0);
++    REGION_INIT2(pScreen, &pExaPixmap->validFB, &box, 0);
+ 
+     exaSetAccelBlock(pExaScr, pExaPixmap,
+                      w, h, bpp);
+diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_migration_classic.c xorg-server-1.7.99.2/exa/exa_migration_classic.c
+--- xorg-server-1.7.99.2.ORIG/exa/exa_migration_classic.c	2009-11-28 13:44:58.000000000 -0700
++++ xorg-server-1.7.99.2/exa/exa_migration_classic.c	2012-01-04 12:54:43.077500333 -0700
+@@ -177,7 +177,7 @@
+ 		box.x2 = max(pValidExt->x2, pDamageExt->x2);
+ 		box.y2 = max(pValidExt->y2, pDamageExt->y2);
+ 
+-		REGION_INIT(pScreen, &closure, &box, 0);
++		REGION_INIT2(pScreen, &closure, &box, 0);
+ 		REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, &closure);
+ 	    } else
+ 		REGION_INTERSECT(pScreen, &CopyReg, &CopyReg, pending_damage);
+diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_render.c xorg-server-1.7.99.2/exa/exa_render.c
+--- xorg-server-1.7.99.2.ORIG/exa/exa_render.c	2009-11-28 13:44:58.000000000 -0700
++++ xorg-server-1.7.99.2/exa/exa_render.c	2012-01-04 12:59:18.234297490 -0700
+@@ -576,7 +576,7 @@
+ 	 * (see use of DamagePendingRegion in exaCopyDirty)
+ 	 */
+ 
+-	REGION_INIT(pScreen, &region, &box, 1);
++	REGION_INIT2(pScreen, &region, &box, 1);
+     
+ 	DamageRegionAppend(pDst->pDrawable, &region);
+ 
+diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/exa/exa_unaccel.c xorg-server-1.7.99.2/exa/exa_unaccel.c
+--- xorg-server-1.7.99.2.ORIG/exa/exa_unaccel.c	2009-12-11 11:20:48.000000000 -0700
++++ xorg-server-1.7.99.2/exa/exa_unaccel.c	2012-01-04 12:59:25.915375559 -0700
+@@ -344,7 +344,7 @@
+ 	Box.x2 = Box.x1 + w;
+ 	Box.y2 = Box.y1 + h;
+ 
+-	REGION_INIT(pScreen, &Reg, &Box, 1);
++	REGION_INIT2(pScreen, &Reg, &Box, 1);
+ 
+ 	pExaScr->prepare_access_reg(pPix, EXA_PREPARE_SRC, &Reg);
+     } else
+diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/fb/fboverlay.c xorg-server-1.7.99.2/fb/fboverlay.c
+--- xorg-server-1.7.99.2.ORIG/fb/fboverlay.c	2009-11-04 09:25:50.000000000 -0700
++++ xorg-server-1.7.99.2/fb/fboverlay.c	2012-01-04 12:24:43.855400893 -0700
+@@ -147,7 +147,7 @@
+ 					    pbits))
+ 	    return FALSE;
+ 	pScrPriv->layer[i].u.run.pixmap = pPixmap;
+-	REGION_INIT(pScreen, &pScrPriv->layer[i].u.run.region, &box, 0);
++	REGION_INIT2(pScreen, &pScrPriv->layer[i].u.run.region, &box, 0);
+     }
+     pScreen->devPrivate = pScrPriv->layer[0].u.run.pixmap;
+     return TRUE;
+diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/hw/kdrive/src/kdrive.c xorg-server-1.7.99.2/hw/kdrive/src/kdrive.c
+--- xorg-server-1.7.99.2.ORIG/hw/kdrive/src/kdrive.c	2012-01-04 13:12:40.418640141 -0700
++++ xorg-server-1.7.99.2/hw/kdrive/src/kdrive.c	2012-01-04 13:05:08.771897914 -0700
+@@ -144,8 +144,8 @@
+ 	box.y2 = pScreen->height;
+ 	pWin->drawable.width = pScreen->width;
+ 	pWin->drawable.height = pScreen->height;
+-	REGION_INIT (pScreen, &pWin->winSize, &box, 1);
+-	REGION_INIT (pScreen, &pWin->borderSize, &box, 1);
++	REGION_INIT2 (pScreen, &pWin->winSize, &box, 1);
++	REGION_INIT2 (pScreen, &pWin->borderSize, &box, 1);
+ 	REGION_RESET(pScreen, &pWin->borderClip, &box);
+ 	REGION_BREAK (pWin->drawable.pScreen, &pWin->clipList);
+     }
+diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/hw/kdrive/src/kxv.c xorg-server-1.7.99.2/hw/kdrive/src/kxv.c
+--- xorg-server-1.7.99.2.ORIG/hw/kdrive/src/kxv.c	2008-11-14 14:27:05.000000000 -0700
++++ xorg-server-1.7.99.2/hw/kdrive/src/kxv.c	2012-01-04 13:07:32.625411023 -0700
+@@ -674,7 +674,7 @@
+   WinBox.y2 = WinBox.y1 + portPriv->drw_h;
+   
+   /* clip to the window composite clip */
+-  REGION_INIT(portPriv->pDraw->pScreen, &WinRegion, &WinBox, 1);
++  REGION_INIT2(portPriv->pDraw->pScreen, &WinRegion, &WinBox, 1);
+   REGION_INIT(portPriv->pDraw->pScreen, &ClipRegion, NullBox, 1);
+   REGION_INTERSECT(portPriv->pDraw->pScreen, &ClipRegion, &WinRegion, portPriv->pCompositeClip); 
+   
+@@ -738,7 +738,7 @@
+   WinBox.y2 = WinBox.y1 + portPriv->drw_h;
+   
+   /* clip to the window composite clip */
+-  REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
++  REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
+   REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
+   REGION_INTERSECT(Screen, &ClipRegion, &WinRegion, portPriv->pCompositeClip); 
+ 
+@@ -752,7 +752,7 @@
+      VPBox.x2 = screen->width;
+      VPBox.y2 = screen->height;
+ 
+-     REGION_INIT(pScreen, &VPReg, &VPBox, 1);
++     REGION_INIT2(pScreen, &VPReg, &VPBox, 1);
+      REGION_INTERSECT(Screen, &ClipRegion, &ClipRegion, &VPReg); 
+      REGION_UNINIT(pScreen, &VPReg);
+   }
+@@ -827,7 +827,7 @@
+   WinBox.y2 = WinBox.y1 + portPriv->drw_h;
+   
+   /* clip to the window composite clip */
+-  REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
++  REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
+   REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
+   REGION_INTERSECT(Screen, &ClipRegion, &WinRegion, portPriv->pCompositeClip); 
+ 
+@@ -841,7 +841,7 @@
+      VPBox.x2 = screen->width;
+      VPBox.y2 = screen->height;
+ 
+-     REGION_INIT(pScreen, &VPReg, &VPBox, 1);
++     REGION_INIT2(pScreen, &VPReg, &VPBox, 1);
+      REGION_INTERSECT(Screen, &ClipRegion, &ClipRegion, &VPReg); 
+      REGION_UNINIT(pScreen, &VPReg);
+   }
+@@ -1337,7 +1337,7 @@
+   WinBox.x2 = WinBox.x1 + drw_w;
+   WinBox.y2 = WinBox.y1 + drw_h;
+   
+-  REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
++  REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
+   REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
+   REGION_INTERSECT(pScreen, &ClipRegion, &WinRegion, pGC->pCompositeClip);   
+ 
+@@ -1350,7 +1350,7 @@
+      VPBox.x2 = screen->width;
+      VPBox.y2 = screen->height;
+ 
+-     REGION_INIT(pScreen, &VPReg, &VPBox, 1);
++     REGION_INIT2(pScreen, &VPReg, &VPBox, 1);
+      REGION_INTERSECT(Screen, &ClipRegion, &ClipRegion, &VPReg); 
+      REGION_UNINIT(pScreen, &VPReg);
+   }
+@@ -1490,7 +1490,7 @@
+   WinBox.x2 = WinBox.x1 + drw_w;
+   WinBox.y2 = WinBox.y1 + drw_h;
+   
+-  REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
++  REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
+   REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
+   REGION_INTERSECT(pScreen, &ClipRegion, &WinRegion, pGC->pCompositeClip);   
+ 
+@@ -1637,7 +1637,7 @@
+   WinBox.x2 = WinBox.x1 + drw_w;
+   WinBox.y2 = WinBox.y1 + drw_h;
+   
+-  REGION_INIT(pScreen, &WinRegion, &WinBox, 1);
++  REGION_INIT2(pScreen, &WinRegion, &WinBox, 1);
+   REGION_INIT(pScreen, &ClipRegion, NullBox, 1);
+   REGION_INTERSECT(pScreen, &ClipRegion, &WinRegion, pGC->pCompositeClip);   
+ 
+@@ -1650,7 +1650,7 @@
+      VPBox.x2 = pScreen->width;
+      VPBox.y2 = pScreen->height;
+ 
+-     REGION_INIT(pScreen, &VPReg, &VPBox, 1);
++     REGION_INIT2(pScreen, &VPReg, &VPBox, 1);
+      REGION_INTERSECT(Screen, &ClipRegion, &ClipRegion, &VPReg); 
+      REGION_UNINIT(pScreen, &VPReg);
+   }
+diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/include/regionstr.h xorg-server-1.7.99.2/include/regionstr.h
+--- xorg-server-1.7.99.2.ORIG/include/regionstr.h	2009-11-04 09:25:50.000000000 -0700
++++ xorg-server-1.7.99.2/include/regionstr.h	2012-01-04 12:13:06.174461574 -0700
+@@ -152,6 +152,12 @@
+     } \
+  }
+ 
++#define REGION_INIT2(_pScreen, _pReg, _rect, _size) \
++{ \
++        (_pReg)->extents = *(_rect); \
++        (_pReg)->data = (RegDataPtr)NULL; \
++ }
++
+ 
+ #define REGION_UNINIT(_pScreen, _pReg) \
+ { \
+diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/mi/micopy.c xorg-server-1.7.99.2/mi/micopy.c
+--- xorg-server-1.7.99.2.ORIG/mi/micopy.c	2009-11-04 09:25:50.000000000 -0700
++++ xorg-server-1.7.99.2/mi/micopy.c	2012-01-04 12:44:17.003144611 -0700
+@@ -315,7 +315,7 @@
+ 	box.y1 = box_y1;
+ 	box.x2 = box_x2;
+ 	box.y2 = box_y2;
+-	REGION_INIT(pGC->pScreen, &rgnDst, &box, 1);
++	REGION_INIT2(pGC->pScreen, &rgnDst, &box, 1);
+     }
+     
+     /* Clip against complex source if needed */
+diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/mi/miexpose.c xorg-server-1.7.99.2/mi/miexpose.c
+--- xorg-server-1.7.99.2.ORIG/mi/miexpose.c	2009-11-04 09:25:50.000000000 -0700
++++ xorg-server-1.7.99.2/mi/miexpose.c	2012-01-04 12:46:29.400478668 -0700
+@@ -206,7 +206,7 @@
+ 	box.x2 = pSrcDrawable->width;
+ 	box.y2 = pSrcDrawable->height;
+ 	prgnSrcClip = &rgnSrcRec;
+-	REGION_INIT(pscr, prgnSrcClip, &box, 1);
++	REGION_INIT2(pscr, prgnSrcClip, &box, 1);
+ 	pSrcWin = NULL;
+     }
+ 
+@@ -239,11 +239,11 @@
+ 	box.x2 = pDstDrawable->width;
+ 	box.y2 = pDstDrawable->height;
+ 	prgnDstClip = &rgnDstRec;
+-	REGION_INIT(pscr, prgnDstClip, &box, 1);
++	REGION_INIT2(pscr, prgnDstClip, &box, 1);
+     }
+ 
+     /* drawable-relative source region */
+-    REGION_INIT(pscr, &rgnExposed, &srcBox, 1);
++    REGION_INIT2(pscr, &rgnExposed, &srcBox, 1);
+ 
+     /* now get the hidden parts of the source box*/
+     REGION_SUBTRACT(pscr, &rgnExposed, &rgnExposed, prgnSrcClip);
+@@ -491,7 +491,7 @@
+ 	    box = *REGION_EXTENTS( pWin->drawable.pScreen, exposures);
+ 	    if (exposures == prgn) {
+ 		exposures = &expRec;
+-		REGION_INIT( pWin->drawable.pScreen, exposures, &box, 1);
++		REGION_INIT2( pWin->drawable.pScreen, exposures, &box, 1);
+ 		REGION_RESET( pWin->drawable.pScreen, prgn, &box);
+ 	    } else {
+ 		REGION_RESET( pWin->drawable.pScreen, exposures, &box);
+diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/mi/mioverlay.c xorg-server-1.7.99.2/mi/mioverlay.c
+--- xorg-server-1.7.99.2.ORIG/mi/mioverlay.c	2009-11-04 09:25:50.000000000 -0700
++++ xorg-server-1.7.99.2/mi/mioverlay.c	2012-01-04 12:47:50.114300224 -0700
+@@ -209,8 +209,8 @@
+ 		fullBox.y1 = 0;
+ 		fullBox.x2 = pScreen->width;
+ 		fullBox.y2 = pScreen->height;
+-		REGION_INIT(pScreen, &(pTree->borderClip), &fullBox, 1);
+-		REGION_INIT(pScreen, &(pTree->clipList), &fullBox, 1);
++		REGION_INIT2(pScreen, &(pTree->borderClip), &fullBox, 1);
++		REGION_INIT2(pScreen, &(pTree->clipList), &fullBox, 1);
+ 	    }
+ 	} else xfree(pTree);
+     }
+@@ -1027,7 +1027,7 @@
+ 	    box = *REGION_EXTENTS(pScreen, exposures);
+ 	    if (exposures == prgn) {
+ 		exposures = &expRec;
+-		REGION_INIT(pScreen, exposures, &box, 1);
++		REGION_INIT2(pScreen, exposures, &box, 1);
+ 		REGION_RESET(pScreen, prgn, &box);
+ 	    } else {
+ 		REGION_RESET(pScreen, exposures, &box);
+@@ -1672,7 +1672,7 @@
+     box.x1 = x1; box.x2 = x2;
+     box.y1 = y1; box.y2 = y2;
+ 
+-    REGION_INIT(pScreen, &reg, &box, 1);
++    REGION_INIT2(pScreen, &reg, &box, 1);
+ 
+     REGION_INTERSECT(pScreen, &reg, &reg, clipList);
+     if (generateExposures)
+diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/mi/miwindow.c xorg-server-1.7.99.2/mi/miwindow.c
+--- xorg-server-1.7.99.2.ORIG/mi/miwindow.c	2009-11-04 09:25:50.000000000 -0700
++++ xorg-server-1.7.99.2/mi/miwindow.c	2012-01-04 12:48:38.055787835 -0700
+@@ -111,7 +111,7 @@
+     box.y2 = y2;
+ 
+     pScreen = pWin->drawable.pScreen;
+-    REGION_INIT(pScreen, &reg, &box, 1);
++    REGION_INIT2(pScreen, &reg, &box, 1);
+ 
+     REGION_INTERSECT(pScreen, &reg, &reg, &pWin->clipList);
+     if (generateExposures)
+diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/miext/damage/damage.c xorg-server-1.7.99.2/miext/damage/damage.c
+--- xorg-server-1.7.99.2.ORIG/miext/damage/damage.c	2009-11-04 09:25:50.000000000 -0700
++++ xorg-server-1.7.99.2/miext/damage/damage.c	2012-01-04 12:51:04.883281430 -0700
+@@ -324,7 +324,7 @@
+ 		box.y1 = draw_y;
+ 		box.x2 = draw_x + pDamage->pDrawable->width;
+ 		box.y2 = draw_y + pDamage->pDrawable->height;
+-		REGION_INIT(pScreen, &pixClip, &box, 1);
++		REGION_INIT2(pScreen, &pixClip, &box, 1);
+ 		REGION_INTERSECT (pScreen, pDamageRegion, pRegion, &pixClip);
+ 		REGION_UNINIT(pScreen, &pixClip);
+ 	    }
+@@ -2085,7 +2085,7 @@
+ 	    box.y1 = pDrawable->y;
+ 	    box.x2 = pDrawable->x + pDrawable->width;
+ 	    box.y2 = pDrawable->y + pDrawable->height;
+-	    REGION_INIT (pDrawable->pScreen, &pixmapClip, &box, 1);
++	    REGION_INIT2 (pDrawable->pScreen, &pixmapClip, &box, 1);
+ 	    pClip = &pixmapClip;
+ 	}
+ 	REGION_TRANSLATE (pDrawable->pScreen, &pDamage->damage, pDrawable->x, pDrawable->y);
+diff -ur --exclude='*.lo' --exclude='config*' --exclude='Make*' --exclude='ac*' xorg-server-1.7.99.2.ORIG/Xext/xace.c xorg-server-1.7.99.2/Xext/xace.c
+--- xorg-server-1.7.99.2.ORIG/Xext/xace.c	2009-11-04 09:25:50.000000000 -0700
++++ xorg-server-1.7.99.2/Xext/xace.c	2012-01-04 12:49:36.850385965 -0700
+@@ -255,7 +255,7 @@
+     imageBox.y1 = y;
+     imageBox.x2 = x + w;
+     imageBox.y2 = y + h;
+-    REGION_INIT(pScreen, &imageRegion, &imageBox, 1);
++    REGION_INIT2(pScreen, &imageRegion, &imageBox, 1);
+     REGION_NULL(pScreen, &censorRegion);
+ 
+     /* censorRegion = imageRegion - visibleRegion */
+--- xorg-server-1.7.99.2.ORIG/mi/mibank.c	2009-11-04 09:25:50.000000000 -0700
++++ xorg-server-1.7.99.2/mi/mibank.c	2012-01-04 12:37:42.251184747 -0700
+@@ -772,7 +772,7 @@
+         }
+         else
+         {
+-            REGION_INIT(pScreen, &rgnDst, &fastBox, 1);
++            REGION_INIT2(pScreen, &rgnDst, &fastBox, 1);
+             REGION_INTERSECT(pScreen, &rgnDst, &rgnDst, prgnSrcClip);
+             pBox = REGION_RECTS(&rgnDst);
+             nBox = REGION_NUM_RECTS(&rgnDst);
meta/recipes-graphics/xorg-xserver/xserver-kdrive_1.7.99.2.bb +2 -1
index c810e1b..3b3a004 100644
@@ -7,7 +7,7 @@ RDEPENDS_${PN} += "xkeyboard-config"
 EXTRA_OECONF += "--disable-glx"
 
 PE = "1"
-PR = "r27"
+PR = "r28"
 
 SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
 	file://extra-kmodes.patch \
@@ -19,6 +19,7 @@ SRC_URI = "${XORG_MIRROR}/individual/xserver/xorg-server-${PV}.tar.bz2 \
 	file://fbdev_xrandr_ioctl.patch \
 	file://fix-newer-xorg-headers.patch \
 	file://crosscompile.patch \
+	file://error-address-work-around.patch \
 	file://nodolt.patch"
 #	file://kdrive-evdev.patch
 #	file://kdrive-use-evdev.patch
Signature · 1 line
1.7.7.5