On Wed, 2020-03-11 at 14:17 +0000, Jonathan Wakely wrote:
> On Mon, 9 Mar 2020 at 21:56, Paul Smith wrote:
> > The tricky bit is that although both the host and target are always
> > x86_64/i686 GNU/Linux systems, I need the generated compiler to run on
> > much older systems than the one I build it on.
> 
> I suggest using containers for this. Once you've got a working
> Dockerfile it makes life much easier in my experience.
> 
> The podman and buildah utilities are great alternatives to docker itself.
> 
> By building in a container using something like "FROM centos:6" you
> know you're using those packages, not trying to convince GCC to use a
> cobbled-together sysroot based on old RPMs.

That's a good idea, certainly for building the compiler: it would save me
having to build the initial compiler ("step 1" in Joseph's email): I can
skip that step and just build the target compiler in a container.

Unfortunately currently I target RHEL/CentOS 6.5 and there's no official
docker image for that, but that's not a major problem.

However I don't think, at least for now, I can switch to having developers
build in a docker container.  Getting that integrated with all the
tooling/IDE environments everyone uses, etc. will be a lot of change. 
Since I want to use a much newer version of GCC than was provided in these
older releases, a docker image won't save me having to build the compiler
anyway; it would only change the way the compiler is distributed and used
(inside a docker image/container vs. stand-alone with a sysroot).

Luckily for me our product only relies on a handful of system libraries and
I have a simple script that will extract them from RPMs via cpio.  It's
actually quite easy and robust to create the sysroot and the entire thing
is only 16M.


Reply via email to