mbox series

[RFC,0/3] lm32: convert to new common tcg infrastructure

Message ID 20190131215611.29341-1-michael@walle.cc (mailing list archive)
Headers show
Series lm32: convert to new common tcg infrastructure | expand

Message

Michael Walle Jan. 31, 2019, 9:56 p.m. UTC
The main problem here is, that there is no prebuilt compiler packages. Thus
I have to build the toolchain from scratch. I don't know if this is OK in
the docker image. For now only binutils is built. But then, I'll have to
pass the LD and AS environment variables, too. And it won't work with the
native host cross toolchain - unless we'll probe for the assembler and
linker, too.

Any ideas?

Michael Walle (3):
  tests/docker: add debian-lm32-cross image
  tests/tcg: also pass AS and LD variables
  tests/tcg/lm32: enable system tests

 tests/docker/Makefile.include                     |   5 +-
 tests/docker/dockerfiles/debian-lm32-cross.docker |  31 +++++++
 tests/tcg/Makefile.include                        |  13 ++-
 tests/tcg/lm32/Makefile                           | 106 ----------------------
 tests/tcg/lm32/Makefile.include                   |   8 ++
 tests/tcg/lm32/Makefile.softmmu-target            |  33 +++++++
 6 files changed, 86 insertions(+), 110 deletions(-)
 create mode 100644 tests/docker/dockerfiles/debian-lm32-cross.docker
 delete mode 100644 tests/tcg/lm32/Makefile
 create mode 100644 tests/tcg/lm32/Makefile.include
 create mode 100644 tests/tcg/lm32/Makefile.softmmu-target

Comments

Alex Bennée Feb. 1, 2019, 5:24 p.m. UTC | #1
Michael Walle <michael@walle.cc> writes:

> The main problem here is, that there is no prebuilt compiler packages. Thus
> I have to build the toolchain from scratch. I don't know if this is OK in
> the docker image.

Well you only have to do it the once - certainly I can't imagine a TCG
developer that hasn't built one or two toolchains in their time. Daniel
has been looking at getting our developer images hosted so that would
lower the cost as well.

I don't think it's a blocker.

> For now only binutils is built. But then, I'll have to
> pass the LD and AS environment variables, too. And it won't work with the
> native host cross toolchain - unless we'll probe for the assembler and
> linker, too.

When I did the original work I tried quite hard to keep to using CC for
everything (as an assembler and linker frontend). I think if it's going
to be difficult to keep doing that we'll want to pass a prefix env
variable to the images instead of piling on more variables. Something
like CROSS_COMPILE or CROSS_PREFIX. However that throws a bit of a spanner
in the works for my future plans of building larger test binaries without having
to deal with autoconf madness.

> Any ideas?

So a couple of ideas:

  - set CROSS_PREFIX and modify our submakes to pick that up if set
  - pass CROSS_PREFIX to docker.py and it expands CC/LD/AS for us

I'm open to other approaches though.

>
> Michael Walle (3):
>   tests/docker: add debian-lm32-cross image
>   tests/tcg: also pass AS and LD variables
>   tests/tcg/lm32: enable system tests
>
>  tests/docker/Makefile.include                     |   5 +-
>  tests/docker/dockerfiles/debian-lm32-cross.docker |  31 +++++++
>  tests/tcg/Makefile.include                        |  13 ++-
>  tests/tcg/lm32/Makefile                           | 106 ----------------------
>  tests/tcg/lm32/Makefile.include                   |   8 ++
>  tests/tcg/lm32/Makefile.softmmu-target            |  33 +++++++
>  6 files changed, 86 insertions(+), 110 deletions(-)
>  create mode 100644 tests/docker/dockerfiles/debian-lm32-cross.docker
>  delete mode 100644 tests/tcg/lm32/Makefile
>  create mode 100644 tests/tcg/lm32/Makefile.include
>  create mode 100644 tests/tcg/lm32/Makefile.softmmu-target


--
Alex Bennée