Skip to contentSkip to conversation

xserver-xorg

DISCUSSION Marc Ferland 3 participants 4 messages Jul 16, 2012 – Jul 17, 2012

lore
Share & tools
lore
#0 lore raw

Hi all,

I'm having trouble building the xserver-xorg package. The build fails with:

| render2.c: In function '__glXDisp_Map1d':
| render2.c:104:5: error: the comparison will always evaluate as 'true' for the address of 'u1' will never be NULL [-Werror=address]
| render2.c:105:5: error: the comparison will always evaluate as 'true' for the address of 'u2' will never be NULL [-Werror=address]
| render2.c: In function '__glXDisp_Map2d':
| render2.c:147:5: error: the comparison will always evaluate as 'true' for the address of 'u1' will never be NULL [-Werror=address]
| render2.c:148:5: error: the comparison will always evaluate as 'true' for the address of 'u2' will never be NULL [-Werror=address]
| render2.c:149:5: error: the comparison will always evaluate as 'true' for the address of 'v1' will never be NULL [-Werror=address]
| render2.c:150:5: error: the comparison will always evaluate as 'true' for the address of 'v2' will never be NULL [-Werror=address]
| cc1: some warnings being treated as errors

The target machine is a x86_64. Looks like the compiler doesn't like how the __GLX_GET_DOUBLE macro tests the address of stack variables against NULL.

I would like to know if there is a patch upstream or if this is a known issue? What surprises me the most is that this machine looks a lot like the meta-sugarbay which builds correctly.

Regards,

Marc

Reviewed-by Daniel Stone
#1 lore raw

Hi Marc,

Apparently, these tests were removed upstream. As we are going to upgrade xserver-xorg package to 1.12.3, those fixes will be included too. However, if you need the fix now, I attached the patch.

Thanks,
Laurentiu

Quoted 23 lines · Marc Ferland

Hi all,

I'm having trouble building the xserver-xorg package. The build fails with:

| render2.c: In function '__glXDisp_Map1d':
| render2.c:104:5: error: the comparison will always evaluate as 'true' for the address of 'u1' will never be NULL [-Werror=address]
| render2.c:105:5: error: the comparison will always evaluate as 'true' for the address of 'u2' will never be NULL [-Werror=address]
| render2.c: In function '__glXDisp_Map2d':
| render2.c:147:5: error: the comparison will always evaluate as 'true' for the address of 'u1' will never be NULL [-Werror=address]
| render2.c:148:5: error: the comparison will always evaluate as 'true' for the address of 'u2' will never be NULL [-Werror=address]
| render2.c:149:5: error: the comparison will always evaluate as 'true' for the address of 'v1' will never be NULL [-Werror=address]
| render2.c:150:5: error: the comparison will always evaluate as 'true' for the address of 'v2' will never be NULL [-Werror=address]
| cc1: some warnings being treated as errors

The target machine is a x86_64. Looks like the compiler doesn't like how the __GLX_GET_DOUBLE macro tests the address of stack variables against NULL.

I would like to know if there is a patch upstream or if this is a known issue? What surprises me the most is that this machine looks a lot like the meta-sugarbay which builds correctly.

Quoted 8 lines

Regards,

Marc
_______________________________________________
yocto mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/yocto

From 63ccaec2c39f4b5742383472c951ee2cd35c9e14 Mon Sep 17 00:00:00 2001
From: Adam Jackson <[email protected]>
Date: Tue, 19 Oct 2010 11:59:23 -0400
Subject: [PATCH] glx: warning fixes
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

render2.c: In function ‘__glXDisp_Map2d’:
render2.c:127: warning: ‘u1’ may be used uninitialized in this function render2.c: In function ‘__glXDisp_Map1d’:
render2.c:90: warning: ‘u1’ may be used uninitialized in this function

Remove unnecessary test, and change memcpy to memmove as all users were doing overlapping copies.

---
 glx/unpack.h             |    2 +-
 hw/dmx/glxProxy/unpack.h |    2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
glx/unpack.h +1 -1
index a4e6d7e..738e79d 100644
@@ -47,7 +47,7 @@
 ** Fetch a double from potentially unaligned memory.
 */
 #ifdef __GLX_ALIGN64
-#define __GLX_MEM_COPY(dst,src,n)	if (src != NULL && dst != NULL) memcpy(dst,src,n)
+#define __GLX_MEM_COPY(dst,src,n)	memmove(dst,src,n)
 #define __GLX_GET_DOUBLE(dst,src)	__GLX_MEM_COPY(&dst,src,8)
 #else
 #define __GLX_GET_DOUBLE(dst,src)	(dst) = *((GLdouble*)(src))
hw/dmx/glxProxy/unpack.h +1 -1
index f34b6fd..f4a9572 100644
@@ -43,7 +43,7 @@
 ** Fetch a double from potentially unaligned memory.
 */
 #ifdef __GLX_ALIGN64
-#define __GLX_MEM_COPY(dst,src,n)	memcpy(dst,src,n)
+#define __GLX_MEM_COPY(dst,src,n)	memmove(dst,src,n)
 #define __GLX_GET_DOUBLE(dst,src)	__GLX_MEM_COPY(&dst,src,8)
 #else
 #define __GLX_GET_DOUBLE(dst,src)	(dst) = *((GLdouble*)(src))
Signature · 1 line
1.7.9.5
#2 lore raw
Quoted 6 lines · Laurentiu Palcu

Hi Marc,

Apparently, these tests were removed upstream. As we are going to upgrade xserver-xorg package to 1.12.3, those fixes will be included too. However, if you need the fix now, I attached the patch.

Just in case someone else stumbles on this issue, setting the preferred version of xserver-xorg to 1.11.2 in the machine.conf also solves the issue.

PREFERRED_VERSION_xserver-xorg ?= "1.11.2"

Marc

#3 lore raw
Quoted 10 lines · On Tuesday 17 July 2012 09:22:43 Marc Ferland wrote:
Quoted 3 lines · Laurentiu Palcu

Apparently, these tests were removed upstream. As we are going to upgrade xserver-xorg package to 1.12.3, those fixes will be included too. However, if you need the fix now, I attached the patch.

Just in case someone else stumbles on this issue, setting the preferred version of xserver-xorg to 1.11.2 in the machine.conf also solves the issue.

PREFERRED_VERSION_xserver-xorg ?= "1.11.2"

FWIW, setting this kind of thing in the machine config is discouraged. This is really distro policy which is something that belongs in your distro configuration (or local configuration if it's temporary).

Cheers,
Paul

Signature · 2 lines
Paul Eggleton
Intel Open Source Technology Centre