On Thu, May 7, 2015 at 4:24 PM, YunQiang Su <[email protected]> wrote: > On Thu, May 7, 2015 at 6:01 PM, Mathieu Malaterre <[email protected]> wrote: >> On Thu, May 7, 2015 at 11:41 AM, James Cowgill <[email protected]> >> wrote: >>> On Thu, 2015-05-07 at 11:25 +0200, Mathieu Malaterre wrote: >>>> On Thu, May 7, 2015 at 10:57 AM, James Cowgill <[email protected]> >>>> wrote: >>>> > On Thu, 2015-05-07 at 09:27 +0200, Mathieu Malaterre wrote: >>>> >> Hello MIPS gurus, >>>> >> >>>> >> Could someone please let me know if this is possible to have a >>>> >> dual-ABI system (eg: n32 & o32) on MIPS. On my x86-64 system I can run >>>> >> a multi-arch system (x86 & x86-64), thanks to the recent multi-arch >>>> >> effort. >>>> >> >>>> >> Is it possible on MIPS ? Does it make sense ? >>>> > >>>> > If you have a 64-bit kernel then that should completely work (all Debian >>>> > kernels except for 4kc are 64-bit). >>>> > >>>> > If you then install gcc-multilib you should be able to pass -mabi=n32 to >>>> > gcc to get n32 binaries (or -mabi=64 for n64 binaries). I haven't done a >>>> > huge amount of testing with it, but you should also be able to add the >>>> > mips64el debian repo which contains everything recompiled with n64. Then >>>> > you should be able to do proper multiarch. >>>> > >>>> > See: http://mipsdebian.imgtec.com/ >>>> >>>> I haven't received my Creator CI20 board yet, but I still fail to >>>> understand how that's possible. On my x86-64 there is a *single* ABI, >>>> and thus I can have a single `/usr/lib/x86_64-linux-gnu/libpthread.so` >>>> installed from libc6-dev:amd64 which wont conflict with >>>> `/usr/lib/i386-linux-gnu/libpthread.so` installed from libc6-dev:i386. >>> >>> The processor in the CI20 is 32-bit only so you won't be able to do any >>> of this on that unfortunately. >>> >>> If you use mipsel / mips64el multiarch, the setup use on amd64 is >>> identical on mips. Multilib places libraries in /lib32 or /lib64 just >>> link it does on x86. >>> >>>> I may sound dumb, but I fail to understand how multi-abi can be >>>> handled when directories are setup to handle (single) per-arch object >>>> files. >>> >>> The directories *are* setup to handle multiple ABIs. 'i386-linux-gnu' is >>> the ABI used on i386 and it is completely different to the >>> 'x86_64-linux-gnu' ABI (you can't link amd64 and i386 objects together). >> >> My original post was about mixing n32 and o32. So if I try to >> summarize your post (little endian ABI only): >> >> - debian `mipsel` refers to ABI `o32` >> - debian `mips64el` refers to ABI `o64` >> (https://gcc.gnu.org/projects/mipso64-abi.html) >> >> Debian has not been working officially on any of the n32 or n64 ABIs. >> >> Now let me rephrase my original question into: >> >> Since Debian `mipsel` is using the old o32 ABI, would it make sense to >> use n32 ABI on Creator CI20 ? > > O32 is like i386, > N32 is like x32 > N64 is like x86-64 aka amd64. > > N32 and N64 ask for 64bit CPU, while CI20 uses a 32bit only CPU, > so you cannot use N32 and N64 on it. > >> >> As per your comment, I will not be able to use (=link to) the o32 >> `libc` provided by the default debian `mipsel` package when building >> an n32 application (gcc -mabi=n32). In which case the location >> `/usr/lib/mipsel-linux-gnu/` will be reserved for object files with >> o32 ABI, while something like `/usr/lib/mipsel-n32-linux-gnu/` may be >> used for n32 ABI. > > `/usr/lib/mipsel-n32-linux-gnu/` -> /usr/lib/mips64el-linux-gnuabin32 > > We also have > /usr/lib/mips64el-linux-gnuabi64 for N64.
Crystal clear ! -- To UNSUBSCRIBE, email to [email protected] with a subject of "unsubscribe". Trouble? Contact [email protected] Archive: https://lists.debian.org/CA+7wUswziSRdMDPqKRvMF2SFq+6OiLX_YQGVoEjCf0mPj6=f...@mail.gmail.com

