[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bypassing the 2/3/4GB virtual memory space on 32-bit ports



On 2019-08-08 22:23, Ben Hutchings wrote:
> On Thu, 2019-08-08 at 22:38 +0200, Aurelien Jarno wrote:
> [...]
> > 1) Build a 64-bit compiler targeting the 32-bit corresponding
> >    architecture and install it in the 32-bit chroot with the other
> >    64-bit dependencies. This is still a kind of cross-compiler, but the
> >    rest of the build is unchanged and the testsuite can be run. I guess
> >    it *might* be something acceptable. release-team, could you please
> >    confirm?
> >    
> >    In the past it would have been enough to "just" do that for GCC, but
> >    nowadays, it will also be needed for rustc, clang and many more. The
> >    clang case is interesting as it is already a cross-compiler
> >    supporting all the architectures, but it default to the native
> >    target. I wonder if we should make mandatory the "-target" option,
> >    just like we do not call "gcc" anymore but instead "$(triplet)-gcc".
> >    Alternatively instead of creating new packages, we might just want
> >    to use the corresponding multiarch 64-bit package and use a wrapper
> >    to change the native target, ie passing -m32 to gcc or -target to
> >    clang.
> [...]
> > Any comments, ideas, or help here?
> [...]
> 
> 1a. Require 32-bit build environments to be multiarch with the
>     related 64-bit architecture also enabled.

Indeed, but that looks like the first step. From there do you think
a) the package is responsible for build-depending on the 64-bit
   toolchain and calling it with the right option to generate 32-bit
   binaries?
or
b) the build environment should be already configured to make the
   64-bit toolchain available transparently

I had option b) in mind, but option a) looks way easier to implement on
the infrastructure side, although a bit less on the packaging side. It
can also be a first step towards b). In that case we should also make
sure that using a 64-bit compiler doesn't switch the package build
system to a cross-compilation mode, where notably the testsuite is
disabled.

Aurelien

-- 
Aurelien Jarno                          GPG: 4096R/1DDD8C9B
aurelien@aurel32.net                 http://www.aurel32.net

Attachment: signature.asc
Description: PGP signature


Reply to: