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

