Jun Sun <[email protected]> 于2019年12月29日周日 下午3:33写道:
>
> Thanks for the info, YunQiang.
>
> For simple compiling, I can see "gcc -mabl=32" working well. If we want to 
> port complex project and build in 32 bit, we would need to supply CC, AS, LD, 
> AR, CXX, etc.  Do we just use all the 64bit versions with "-mabi=32"?  For 
> compiling C++ code, what additional package should we install?
>

If only stdc++ is needed, install g++-multlib is enough.

If you need more libraries like boost etc, the best choice for you is
to use mipsel port:

sudo apt install debootstrap systemd-container
sudo debootstrap sid sid-mipsel http://ftp.cn.debian.org/debian  # I
suppose you are in China.
sudo systemd-nspawn -D sid-mipsel

Or you can have a try of lxc.

> Cheers.
>
> Jun
>
>
>
>
> On Sat, Dec 28, 2019 at 9:28 PM YunQiang Su <[email protected]> wrote:
>>
>> Jun Sun <[email protected]> 于2019年12月29日周日 上午9:43写道:
>> >
>> > installing g++-mipsel-linux-gnu gives an error below.  Any suggestions?  
>> > Also, what is the recommended way to set up full 32bit dev environment on 
>> > 64bit host if crossbuild is not the one?
>> >
>> > Jun
>> >
>> > root@debian-mips:/home/debian# apt install g++-mipsel-linux-gnu
>> > Reading package lists... Done
>> > Building dependency tree
>> > Reading state information... Done
>> > Package g++-mipsel-linux-gnu is not available, but is referred to by 
>> > another package.
>> > This may mean that the package is missing, has been obsoleted, or
>> > is only available from another source
>> >
>> > E: Package 'g++-mipsel-linux-gnu' has no installation candidate
>>
>> Ohh, sorry. you are on a mips64el system...
>> We don't have that compiler, while you can just
>>     apt install libc6-dev-mips32
>>     gcc -mabi=32
>>
>> >
>> >
>> >
>> > On Sat, Dec 28, 2019 at 4:14 PM YunQiang Su <[email protected]> wrote:
>> >>
>> >> Jun Sun <[email protected]> 于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 <[email protected]> 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 <[email protected]> wrote:
>> >> >>>
>> >> >>> Jun Sun <[email protected]> 于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
>>
>>
>>
>> --
>> YunQiang Su



-- 
YunQiang Su

Reply via email to