Skip to contentSkip to conversation

xserver_xorg-server: libunwind support is broken on MIPS64 n32

PATCH New Vicente Olivert Riera 2 participants 3 messages Dec 1, 2014

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 xserver_xorg-server: libunwind support is broken on MIPS64 n32

Amend the former commit and disable xorg-server with libunwind support only for MIPS64 n32, as stated in the bug report:

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

---
 .../xserver_xorg-server/xserver_xorg-server.mk     |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
package/x11r7/xserver_xorg-server/xserver_xorg-server.mk +2 -2
index 4e06d5f..4164ccf 100644
@@ -144,9 +144,9 @@ ifeq ($(BR2_PACKAGE_FREETYPE),y)
 XSERVER_XORG_SERVER_DEPENDENCIES += freetype
 endif
 
-# libunwind support is broken on mips64
+# libunwind support is broken on MIPS64 n32
 # https://bugs.freedesktop.org/show_bug.cgi?id=79939
-ifeq ($(BR2_PACKAGE_LIBUNWIND)-$(BR2_mips64el),y-)
+ifeq ($(BR2_PACKAGE_LIBUNWIND)-$(BR2_MIPS_NABI32),y-)
 XSERVER_XORG_SERVER_DEPENDENCIES += libunwind
 else
 XSERVER_XORG_SERVER_CONF_OPTS += --disable-libunwind
Signature · 1 line
1.7.1
#1 lore raw

PATCH 1/1 xserver_xorg-server: libunwind support is broken on MIPS64 n32

Also, the former patch was a bit weird. In the commit log you said you wanted to disable libunwind support for MIPS64, but you only did it for MIPS64 Little Endian (BR2_mips64el). Why only the little endian variant and not both big and little endian variants?

Anyway, this is not related to the endianess or the bitness. It's related to the ABI. In the bug report is explained that it fails only for the n32 ABI because libunwind assumes a 64bit word size for all MIPS64 variants, which is wrong. MIPS64 n32 has a 32bit word size. Then, xorg-server tries to do a conversion of a 64bit variable provided by libunwind into a (void *), which is 32bit in MIPS64 n32, and it fails with a message like this one:

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

Signature · 5 lines
Vicente Olivert Riera
Graduate Software Engineer, MIPS Platforms
Imagination Technologies Limited
t: +44 (0)113 2429814
www.imgtec.com
#2 lore raw

PATCH 1/1 xserver_xorg-server: libunwind support is broken on MIPS64 n32

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

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

Amend the former commit and disable xorg-server with libunwind support only for MIPS64 n32, as stated in the bug report:

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

Committed, thanks.

Signature · 2 lines
Venlig hilsen,
Peter Korsgaard