Re: o32 != n32
YunQiang Su <[email protected]>
| Newsgroups | gmane.linux.debian.ports.mips |
|---|---|
| Message-ID | <CAKcpw6VTV=9cutxo0iw61H6ciZm_ygci0JVeJgP-d24+rUOnQQ@mail.gmail.com> |
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. > > Thanks again for your time and clarification ! > > > -- > To UNSUBSCRIBE, email to [email protected] > with a subject of "unsubscribe". Trouble? Contact [email protected] > Archive: https://lists.debian.org/CA+7wUsxX0+N==t1HZPGbwK=w7qEKGVdn_Kd=pNRba=euN4SM_A@mail.gmail.com > -- YunQiang Su