xserver-xorg
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
Laurentiu Palcu
Reviewed-by Daniel StoneHi 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 errorsThe target machine is a
x86_64. Looks like the compiler doesn't like how the__GLX_GET_DOUBLEmacro 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
@@ -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
@@ -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
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
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