logo       

Re: CLFS Embedded: The ABI setting: msg#00026

linux.lfs.clfs.devel

Subject: Re: CLFS Embedded: The ABI setting

M.Canales.es wrote:
> El Sábado, 9 de Diciembre de 2006 18:21, Jim Gifford escribió:
>
>> -mabi is for all MIPS.
>>
>> Now any MIPS that supports 64bit supports N32.
>>
>
> I know that in CLFS-1.x for MIPS multilib -mabi=32, -mabi=n32, and -mabi=64
> are used to build the diferent library flavours.
>
> What I don't know and isn't clear in the cross-tools/common/abi.xml CLFS
> Embedded page is what of them must be used for each MIPS processor type
> listed in the table found in cross-tools/mips/variables.xml.
>
> I need be sure that in jhalfs the proper ABI value is selected for the
> choosen
> target-triple for both MIPS and x86 archs.
>
> At this moment we have this:
>
> config ABI
> string
> depends BOOK_CLFS3
> default "-m32" if DATA_32 && ARCH_X86
> default "-m64" if DATA_64 && ARCH_X86
> default "-mabi=32" if DATA_32 && ARCH_MIPS && PROC_mipsel
> default "-mabi=64" if DATA_64 && ARCH_MIPS && PROC_mipsel
> default "-mabi=n32" if DATA_32 && ARCH_MIPS && PROC_mips
> default "-mabi=n64" if DATA_64 && ARCH_MIPS && PROC_mips
>
> I think that -m64 isn't supported yet by the book and that some of the MIPS
> settings are wrong.
>
http://techpubs.sgi.com/library/tpl/cgi-bin/getdoc.cgi/0640/bks/SGI_Developer/books/Mpro_n32_ABI/sgi_html/ch01.html#id73069

o32 = -mabi=32 . Uses 32bit integers, a 32bit instruction set (mips1/2),
and 32bit registers on a 32bit processor.
n32 = -mabi=n32. Uses 32bit integers, a 64bit instruction set (mips3/4),
and 64bit registers (with 32bit numbers) on a 64bit processor.
n64 = -mabi=64. Uses 64bit integers, a 64bit instructions set (mips3/4),
and 64bit registers on a 64bit processor.

To sum it down. -mabi=32 is good for 32bit processors. o32 is for 32bit
processors only but if you have a 64bit processor all three options are
valid, regardless if the system is big endian (mips) or little endian
(mipsel).

I would change the above to something like this.

choice
prompt "Mips64 Build ABI"
depends ARCH_MIPS && BOOK_CLFS3 && DATA_64
default CLFS3_MIPS64_64

config CLFS3_MIPS64_N32
bool "n32"

config CLFS3_MIPS64_64
bool "64"
endchoice

config ABI
string
depends BOOK_CLFS3
default "-m32" if DATA_32 && !ARCH_MIPS
default "-m64" if DATA_64 && !ARCH_MIPS
default "-mabi=32" if DATA_32 && ARCH_MIPS
default "-mabi=n32" if DATA_64 && ARCH_MIPS && CLFS3_MIPS64_N32
default "-mabi=64" if DATA_64 && ARCH_MIPS && CLFS3_MIPS64_64

>
>> Every other architecture supports the standard -m32 and -m64 including
>> x86_64.
>>
>
> CLFS Embedded support at this momment x86_64 or not?
>
>
What is on the main page has been tested and works. I personally have
not tried for x86_64 yet.


<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise