Skip to content

Remove GCC from run/* images #34

@LukasVik

Description

@LukasVik

Realated to #32. Specifically #32 (comment) and #32 (comment)

Background/summary

115 MB could be saved in mcode images by not installing gcc and libc6-dev in run_debian.dockerfile. This does however affect the testsuite of ghdl. The following tests fail without gcc:

testsuite/gna/bug097
testsuite/gna/issue1226
testsuite/gna/issue1228
testsuite/gna/issue1233
testsuite/gna/issue1256
testsuite/gna/issue1326
testsuite/gna/issue450
testsuite/gna/issue531
testsuite/gna/issue98
testsuite/vpi/vpi001
testsuite/vpi/vpi002
testsuite/vpi/vpi003

Saving 115 MB from the mcode image is very tempting. That would make it very minimal, and perfect for CI.

GCC is added to mcode images for co-simulation purposes. When LLVM or GCC backends are used, GHDL can build C sources "internally". This allows providing VHDL sources and C sources, and let GHDL do the magic. With mcode, that's not possible, because it can only interact with pre-built shared libraries. Hence, a C compiler is required for users to convert their co-simulation C/C++ sources into a shared library. Providing it in the runtime image is convenient because it ensures that any image can be used for co-simulation with foreign languages.

We should not force all the users to download GCC, unless they need/want to.

Roadmap

  • Skip tests in GHDL's testsuite if a C compiler is not available. (Skip some tests if gcc is not installed ghdl#1510)
  • Create ghdl/cosim:mcode, ghdl/cosim:py and ghdl/cosim:vunit-cocotb for replacing current ghdl/ghdl:-mcode and ghdl/vunit:llvm images.
  • Remove GCC from ghdl/run:* images.
  • Remove make and curl from ghdl/vunit:* images.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions