I might be out of touch.  Who are considered "normal users" for MIPS
today?  I always thought for a long time MIPS users are pretty much just
developers, which means they would need build-essentials.  Having
crossbuild is just a convenient way to enable development for both 32bit
and 64bit on 64bit machine, because I thought, which could be wrong, 32bit
crossbuild are simply the same as 32bit native build tools (as in the case
of ARM and x86, I presume).

In any case, multilib works as expected so far.  Thanks for your help.  I
will move on down the path of multilib for now.

Cheers.

Jun


On Sun, Dec 29, 2019 at 5:02 PM YunQiang Su <[email protected]> wrote:

> Jun Sun <[email protected]> 于2019年12月30日周一 上午6:01写道:
> >
> > Multiarch is the first thing I tried.  It generally works in terms of
> adding foreign architecture, finding/install packages with proper
> dependencies, runtime support, linkers and etc.  The only thing seemingly
> broken is the crossbuild-essential-mipsel, (or build-essential:mipsel, I
> think), which is needed to develop 32bit in this multiarch environment.
> See my earlier email on this.
> >
>
> Sorry. My stack is toooo shallow.
> build-essential make no sense for normal user at all.
> It is used to make sbuild/pbuilder happier.
> In fact you should not install crossbuild-essential-* manually at all.
>
>
> > I think multiarch is the future for debian.  We should get it working on
> 64bit MIPS.  It does not seem too far to fix it.  From surface, the
> crossbuild has some unnecessary conflict with native build essential
> package.  Maybe removing those should be fine?
>
> In fact it is too hard to fix.
> For a suggestion, the normal user should choose only on from mutlilib
> and multiarch.
>
> For example, if you want to use multiarch, you'd have to purge
> multilib packages.
>
> >
> > Cheers.
> >
> > Jun
> >
> >
> > On Sun, Dec 29, 2019 at 4:59 AM YunQiang Su <[email protected]> wrote:
> >>
> >> YunQiang Su <[email protected]> 于2019年12月29日周日 下午8:43写道:
> >> >
> >> > 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.
> >> >
> >>
> >> there is another way is that maybe you can have a try multiarch:
> >>    https://wiki.debian.org/Multiarch/HOWTO
> >>
> >> > > 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
> >>
> >>
> >>
> >> --
> >> YunQiang Su
>
>
>
> --
> YunQiang Su
>

Reply via email to