diff mbox

xserver_xorg-server: libunwind support is broken on MIPS64 n32

Message ID 1417436666-54652-1-git-send-email-Vincent.Riera@imgtec.com
State Accepted
Commit 789fc2dc3293a6fd7b8d2374ef71c11f1adfc820
Headers show

Commit Message

Vicente Olivert Riera Dec. 1, 2014, 12:24 p.m. UTC
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

Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>
---
 .../xserver_xorg-server/xserver_xorg-server.mk     |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

Comments

Vicente Olivert Riera Dec. 1, 2014, 12:33 p.m. UTC | #1
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]
Peter Korsgaard Dec. 1, 2014, 12:38 p.m. UTC | #2
>>>>> "Vicente" == Vicente Olivert Riera <Vincent.Riera@imgtec.com> 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

 > Signed-off-by: Vicente Olivert Riera <Vincent.Riera@imgtec.com>

Committed, thanks.
diff mbox

Patch

diff --git a/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk b/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
index 4e06d5f..4164ccf 100644
--- a/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
+++ b/package/x11r7/xserver_xorg-server/xserver_xorg-server.mk
@@ -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