Skip to contentSkip to conversation

xserver_xorg-server: disable libunwind on MIPS with 32-bit pointers

PATCH New Vicente Olivert Riera 3 participants 3 messages Dec 5, 2014 – Dec 7, 2014

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 xserver_xorg-server: disable libunwind on MIPS with 32-bit pointers

libunwind support in xorg-server is not only broken for MIPS64 n32 but for all MIPS variants with 32-bit pointers. The reason is exactly the same one. libunwind defines a uint64 variable to store the words. Then, xorg-server casts that variable (64-bit) into a pointer (32-bit), and the compilation fails:

backtrace.c:98:13: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]

Related:
https://bugs.freedesktop.org/show_bug.cgi?id=79939

Fixes:
http://autobuild.buildroot.net/results/87b/87be2c95957f9925c1258812e536df72689fc5da/

---
 .../xserver_xorg-server/xserver_xorg-server.mk     |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
package/x11r7/xserver_xorg-server/xserver_xorg-server.mk +3 -2
index 4164ccf..91b4f03 100644
@@ -144,10 +144,11 @@ ifeq ($(BR2_PACKAGE_FREETYPE),y)
 XSERVER_XORG_SERVER_DEPENDENCIES += freetype
 endif
 
-# libunwind support is broken on MIPS64 n32
+# libunwind support is broken on all MIPS variants with 32-bit pointers
 # https://bugs.freedesktop.org/show_bug.cgi?id=79939
-ifeq ($(BR2_PACKAGE_LIBUNWIND)-$(BR2_MIPS_NABI32),y-)
+ifeq ($(BR2_PACKAGE_LIBUNWIND)-$(BR2_MIPS_OABI32)-$(BR2_MIPS_NABI32),y--)
 XSERVER_XORG_SERVER_DEPENDENCIES += libunwind
+XSERVER_XORG_SERVER_CONF_OPTS += --enable-libunwind
 else
 XSERVER_XORG_SERVER_CONF_OPTS += --disable-libunwind
 endif
Signature · 1 line
1.7.1
#1 lore raw

PATCH 1/1 xserver_xorg-server: disable libunwind on MIPS with 32-bit pointers

Dear Vicente Olivert Riera,

Quoted 9 lines · Vicente Olivert Riera

libunwind support in xorg-server is not only broken for MIPS64 n32 but for all MIPS variants with 32-bit pointers. The reason is exactly the same one. libunwind defines a uint64 variable to store the words. Then, xorg-server casts that variable (64-bit) into a pointer (32-bit), and the compilation fails:

backtrace.c:98:13: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]

Quoted 7 lines

Related:
https://bugs.freedesktop.org/show_bug.cgi?id=79939

Fixes:
http://autobuild.buildroot.net/results/87b/87be2c95957f9925c1258812e536df72689fc5da/

Applied, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#2 lore raw

PATCH 1/1 xserver_xorg-server: disable libunwind on MIPS with 32-bit pointers

In reply to Vicente Olivert Riera
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Vicente" == Vicente Olivert Riera <[email protected]> writes:

Hi,

Quoted 25 lines

libunwind support in xorg-server is not only broken for MIPS64 n32 but for all MIPS variants with 32-bit pointers. The reason is exactly the same one. libunwind defines a uint64 variable to store the words. Then, xorg-server casts that variable (64-bit) into a pointer (32-bit), and the compilation fails:

backtrace.c:98:13: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast]

Related:
https://bugs.freedesktop.org/show_bug.cgi?id=79939

Fixes:
http://autobuild.buildroot.net/results/87b/87be2c95957f9925c1258812e536df72689fc5da/

---
 .../xserver_xorg-server/xserver_xorg-server.mk     |    5 +++--
 1 files changed, 3 insertions(+), 2 deletions(-)
package/x11r7/xserver_xorg-server/xserver_xorg-server.mk +0 -0
index 4164ccf..91b4f03 100644

package/x11r7/xserver_xorg-server/xserver_xorg-server.mk ifeq ($(BR2_PACKAGE_FREETYPE),y) · line 149

Quoted 8 lines
package/x11r7/xserver_xorg-server/xserver_xorg-server.mk +2 -2
@@ -144,10 +144,11 @@ ifeq ($(BR2_PACKAGE_FREETYPE),y)
 XSERVER_XORG_SERVER_DEPENDENCIES += freetype
 endif
 
-# libunwind support is broken on MIPS64 n32
+# libunwind support is broken on all MIPS variants with 32-bit pointers
 # https://bugs.freedesktop.org/show_bug.cgi?id=79939
-ifeq ($(BR2_PACKAGE_LIBUNWIND)-$(BR2_MIPS_NABI32),y-)
+ifeq ($(BR2_PACKAGE_LIBUNWIND)-$(BR2_MIPS_OABI32)-$(BR2_MIPS_NABI32),y--)

The dash (-) between _OABI32 and _NABI32 is not strictly needed. The only reason we had it before is that we wanted to detect libunwind AND !NABI32, so when they expand to 'y' and '', and not confuse it with !libunwind ('') AND NABI32 ('y'), so we needed a separator.

Signature · 1 line
Bye, Peter Korsgaard