Skip to content
  • Paolo Bonzini's avatar
    cd362def
    tests/tcg: merge configure.sh back into main configure script · cd362def
    Paolo Bonzini authored
    
    
    tests/tcg/configure.sh has a complicated story.
    
    In the beginning its code ran as part of the creation of config-target.mak
    files, and that is where it placed the information on the target compiler.
    However, probing for the buildability of TCG tests required multiple
    inclusions of config-target.mak in the _main_ Makefile (not in
    Makefile.target, which took care of building the QEMU executables in
    the pre-Meson era), which polluted the namespace.
    
    Thus, it was moved to a separate directory.  It created small config-*.mak
    files in $(BUILD_DIR)/tests/tcg.  Those were also included multiple
    times, but at least they were small and manageable; this was also an
    important step in disentangling the TCG tests from Makefile.target.
    
    Since then, Meson has allowed the configure script to go on a diet.
    A few compilation tests survive (mostly for sanitizers) but these days
    it mostly takes care of command line parsing, looking for tools, and
    setting up the environment for Meson to do its stuff.
    
    It's time to extend configure with the capability to build for more
    than just one target: not just tests, but also firmware.  As a first
    step, integrate all the logic to find cross compilers in the configure
    script, and move tests/tcg/configure.sh back there (though as a
    separate loop, not integrated in the one that generates target
    configurations for Meson).
    
    tests/tcg is actually very close to being buildable as a standalone
    project, so I actually expect the compiler tests to move back to
    tests/tcg, as a "configure" script of sorts which would run at Make
    time after the docker images are built.  The GCC tree has a similar idea
    of doing only bare-bones tree-wide configuration and leaving the rest
    for Make time.
    
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Acked-by: default avatarRichard Henderson <richard.henderson@linaro.org>
    Message-Id: <20220517092616.1272238-8-pbonzini@redhat.com>
    Signed-off-by: default avatarAlex Bennée <alex.bennee@linaro.org>
    Message-Id: <20220527153603.887929-19-alex.bennee@linaro.org>
    cd362def
    tests/tcg: merge configure.sh back into main configure script
    Paolo Bonzini authored
    
    
    tests/tcg/configure.sh has a complicated story.
    
    In the beginning its code ran as part of the creation of config-target.mak
    files, and that is where it placed the information on the target compiler.
    However, probing for the buildability of TCG tests required multiple
    inclusions of config-target.mak in the _main_ Makefile (not in
    Makefile.target, which took care of building the QEMU executables in
    the pre-Meson era), which polluted the namespace.
    
    Thus, it was moved to a separate directory.  It created small config-*.mak
    files in $(BUILD_DIR)/tests/tcg.  Those were also included multiple
    times, but at least they were small and manageable; this was also an
    important step in disentangling the TCG tests from Makefile.target.
    
    Since then, Meson has allowed the configure script to go on a diet.
    A few compilation tests survive (mostly for sanitizers) but these days
    it mostly takes care of command line parsing, looking for tools, and
    setting up the environment for Meson to do its stuff.
    
    It's time to extend configure with the capability to build for more
    than just one target: not just tests, but also firmware.  As a first
    step, integrate all the logic to find cross compilers in the configure
    script, and move tests/tcg/configure.sh back there (though as a
    separate loop, not integrated in the one that generates target
    configurations for Meson).
    
    tests/tcg is actually very close to being buildable as a standalone
    project, so I actually expect the compiler tests to move back to
    tests/tcg, as a "configure" script of sorts which would run at Make
    time after the docker images are built.  The GCC tree has a similar idea
    of doing only bare-bones tree-wide configuration and leaving the rest
    for Make time.
    
    Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
    Acked-by: default avatarRichard Henderson <richard.henderson@linaro.org>
    Message-Id: <20220517092616.1272238-8-pbonzini@redhat.com>
    Signed-off-by: default avatarAlex Bennée <alex.bennee@linaro.org>
    Message-Id: <20220527153603.887929-19-alex.bennee@linaro.org>
Loading