mips64 problems

Carmelo AMOROSO carmelo.amoroso at st.com
Fri Nov 2 09:19:46 UTC 2012


On 02/11/2012 10.04, Carmelo AMOROSO wrote:
> On 26/09/2012 16.54, Waldemar Brodkorb wrote:
>> Hi,
>>
> 
> Hello,
> 
>> when building a buildroot based system for the target qemu-mips64-malta I get following output
>> generated:
>> wbx at neon:~/adk/buildroot $ ./output/host/usr/bin/mips64-linux-readelf -a output/target/bin/busybox |grep interpreter                                       
>>       [Requesting program interpreter: /lib/ld64-uClibc.so.0]
>> wbx at neon:~/adk/buildroot $ ls -la output/target/lib/ld-uClibc*                                                                                             
>> -rwxr-xr-x  1 wbx  admin  32280 Sep 26 15:51 output/target/lib/ld-uClibc-0.9.33.2.so
>> lrwxr-xr-x  1 wbx  admin     21 Sep 26 14:25 output/target/lib/ld-uClibc.so.0 -> ld-uClibc-0.9.33.2.so
>>
>> The problem is this line in Rules.mak:
>> 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
>> endif
>>
>> TARGET_ARCH can not be set to mips64 via make menuconfig or any .config.
> 
>> How is it supposed to work?
>>
> 
> it's not working indeed.
>> Would be the use of TARGET_SUBARCH a solution?
> 
> I don't think so, as it's not a SUBARCH, even if I'm not expert of the
> MIPS platform.
> 
> We could add a Config.mips64 to make it selectable as a mips64 arch, but
> this will have hge impact on the current mips specific code that is
> generic for the different ABI and implement internally a check wrt to
> the ABI.
> 
> Anyway, looking at Config.mips, I can see that is possible to configure
> it as a 64bit (by setting the Target ABI to CONFIG_MIPS_N64_ABI), but I
> don't know exactly the implications (the only use I can see is to pass
> -mips64 to the compiler, that should generate MIPS64 ABI compatible code
> only).
> 
> 
> 
>> Something like that:
>> diff -Nur uClibc-0.9.33.2.orig/Rules.mak uClibc-0.9.33.2/Rules.mak
>> --- uClibc-0.9.33.2.orig/Rules.mak	2012-05-15 09:20:09.000000000 +0200
>> +++ uClibc-0.9.33.2/Rules.mak	2012-09-21 19:28:45.000000000 +0200
>> @@ -118,7 +118,7 @@
>>  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 ),)
>> +ifneq ($(findstring  $(TARGET_SUBARCH) , hppa64 ia64 mips64 powerpc64 s390x sparc64 x86_64 ),)
> 
> this will have an overall impact on all others. I think we should do an
> exception for mips.
> 
>>  UCLIBC_LDSO_NAME := ld64-uClibc
>>  ARCH_NATIVE_BIT := 64
>>  else
>> diff -Nur uClibc-0.9.33.2.orig/extra/Configs/Config.in uClibc-0.9.33.2/extra/Configs/Config.in
>> --- uClibc-0.9.33.2.orig/extra/Configs/Config.in	2012-05-15 09:20:09.000000000 +0200
>> +++ uClibc-0.9.33.2/extra/Configs/Config.in	2012-09-21 19:29:11.000000000 +0200
>> @@ -235,6 +235,7 @@
>>  	default "i486" if CONFIG_486
>>  	default "i586" if CONFIG_586 || CONFIG_586MMX
>>  	default "i686" if TARGET_ARCH = "i386"
>> +	default "mips64" if CONFIG_MIPS_ISA_MIPS64
> 

> this looks fine

I meant does not look fine, as I sais, it is not a SUBARCH in my
understanding.

Carmelo

> 
>>  	default ""
>>  
>>  source "extra/Configs/Config.in.arch"
>>
>> Any feedback is appreciated. 
>>
>>  thanks in advance
>>  Waldemar
>>
> 
> I'll try to post a patch.
> Carmelo
> 
>> _______________________________________________
>> uClibc mailing list
>> uClibc at uclibc.org
>> http://lists.busybox.net/mailman/listinfo/uclibc
>>
>>
> 
> _______________________________________________
> uClibc mailing list
> uClibc at uclibc.org
> http://lists.busybox.net/mailman/listinfo/uclibc
> 
> 



More information about the uClibc mailing list