Re: Compile 32bit MIPS program on 64bit MIPS - possible?
Jun Sun <jsun@junsun.net> 于2019年12月29日周日 上午5:43写道:
>
> re-surfacing my own old thread ...
>
> On ARM, I was able to do something really simple to obtain complete 32bit development on a 64bit host:
>
> apt install -y build-essential # this install 64bit dev environment
> apt install -y crossbuild-essential-armhf # this install 32bit cross-dev environment
> apt install -y libc6:armhf
> apt install -y libstdc++6:armhf
yep. we don't have the crossbuild-essential-mipsel package.
While for normal user, it is not useful at all.
crossbuild-essential-armhf depends on g++-arm-linux-gnueabihf &&
gcc-arm-linux-gnueabihf
So, you can do the same thing just by
apt install g++-mipsel-linux-gnu # gcc-mipsel-linux-gnu is not
needed, since g++ depeds on gcc.
>
> However, similar steps don't work on mips64. Specifically it is apparent crossbuild-essential-mipsel dependency is broken, and if you try to fix the dependencies and it ended up conflicting with build-essential.
>
> Are there more better way to install a complete 32bit dev environment than what is mentioned earlier in this thread?
>
> Thanks!
>
> Jun
>
>
>
> On Sun, May 19, 2019 at 9:10 PM Jun Sun <jsun@junsun.net> wrote:
>>
>> This is very cool! It worked! Thanks.
>>
>> For a complete record here is what I did:
>>>
>>> dpkg --add-architecture mipsel
>>>
>>> apt-get update
>>>
>>> apt-get install gcc-multilib
>>>
>>>
>>
>>
>> Earlier I was using "-m32" option which was not recognized. but -march=mips32 -mabi=32 worked just fine.
>>
>> Also, just for the record, if one likes to install 32bit library later, you would just add ":mipsel" to the package name. For example, you would do "apt install zlib1g:mipsel" to install 32bit version of zlib.
>>
>> Cheers.
>>
>> Jun
>>
>>
>> On Sun, May 19, 2019 at 5:55 PM YunQiang Su <wzssyqa@gmail.com> wrote:
>>>
>>> Jun Sun <jsun@junsun.net> 于2019年5月20日周一 上午7:42写道:
>>> >
>>> > Recently I came across a piece of great work by blahcat who created 64bit MIPSEL debian image that runs on qemu. See https://blahcat.github.io/2017/07/14/building-a-debian-stretch-qemu-image-for-mipsel/
>>> >
>>> > I tried to install multilib in the hope to compile 32bit mips code on this 64bit machine. But it does not seem to work.
>>> >
>>> how did you install it?
>>> it should be done like:
>>>
>>> apt-get install libc6-dev-mips32 gcc
>>> and
>>> gcc -march=mips32 -mabi=32 xx.c
>>>
>>> If your app needs libc only, it is enough.
>>>
>>> > Does anybody know for sure whether this is a dead end or just a hiccup which I should overcome?
>>>
>>> If your app depends on more libraries, you may need to use an mipsel
>>> env, or use multiarch.
>>> https://wiki.debian.org/Multiarch/HOWTO
>>>
>>> >
>>> > Thanks.
>>> >
>>> > Jun
>>>
>>>
>>>
>>> --
>>> YunQiang Su
--
YunQiang Su
Reply to: