Commit 1c834dd1 authored by Markos Chandras's avatar Markos Chandras Committed by Thomas Petazzoni
Browse files

uClibc: Add uClibc patch to fix MIPS64/n64 interpreter

uClibc picks the wrong interpreter for MIPS64/n64.
This patch fixes this problem by checking the selected
MIPS ABI instead of the MIPS variant.

This patch was sent upstream:
http://lists.uclibc.org/pipermail/uclibc/2013-July/047838.html



Signed-off-by: default avatarMarkos Chandras <markos.chandras@imgtec.com>
Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
parent 309290e1
Loading
Loading
Loading
Loading
+52 −0
Original line number Diff line number Diff line
From b598215c00a1f9df5d47ce2a730399787351b782 Mon Sep 17 00:00:00 2001
From: Markos Chandras <markos.chandras@imgtec.com>
Date: Mon, 1 Jul 2013 09:59:40 +0100
Subject: [PATCH uClibc] Rules.mak: MIPS64: Select correct interpreter

gcc (eg 4.7.3) hardcodes the MIPS64 interpreters like this:
(see gcc/config/linux.h and gcc/config/mips/linux64.h)

o32: UCLIBC_DYNAMIC_LINKER "/lib/ld-uClibc.so.0"
n32: UCLIBC_DYNAMIC_LINKERN32 "/lib32/ld-uClibc.so.0"
n64: UCLIBC_DYNAMIC_LINKER64 "/lib/ld64-uClibc.so.0"

The existing check for MIPS64 in uClibc is wrong because it does
not respect the selected ABI

We fix this by explicitely checking the selected ABI instead of the
selected MIPS variant.

Signed-off-by: Markos Chandras <markos.chandras@imgtec.com>
---
 Rules.mak | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/Rules.mak b/Rules.mak
index 792b794..87eb5ae 100644
--- a/Rules.mak
+++ b/Rules.mak
@@ -138,13 +138,17 @@ export MAJOR_VERSION MINOR_VERSION SUBLEVEL VERSION ABI_VERSION LC_ALL
 LIBC := libc
 SHARED_LIBNAME := $(LIBC).so.$(ABI_VERSION)
 UBACKTRACE_DSO := libubacktrace.so.$(ABI_VERSION)
-ifneq ($(findstring  $(TARGET_ARCH) , hppa64 ia64 mips64 powerpc64 s390x sparc64 x86_64 ),)
-UCLIBC_LDSO_NAME := ld64-uClibc
-ARCH_NATIVE_BIT := 64
-else
+
 UCLIBC_LDSO_NAME := ld-uClibc
 ARCH_NATIVE_BIT := 32
+ifneq ($(findstring  $(TARGET_ARCH) , hppa64 ia64 powerpc64 s390x sparc64 x86_64 ),)
+UCLIBC_LDSO_NAME := ld64-uClibc
+ARCH_NATIVE_BIT := 64
+else ifeq ($(CONFIG_MIPS_N64_ABI),y)
+UCLIBC_LDSO_NAME := ld64-uClibc
+ARCH_NATIVE_BIT := 64
 endif
+
 UCLIBC_LDSO := $(UCLIBC_LDSO_NAME).so.$(ABI_VERSION)
 NONSHARED_LIBNAME := uclibc_nonshared.a
 libc := $(top_builddir)lib/$(SHARED_LIBNAME)
-- 
1.8.2.1