diff options
Diffstat (limited to 'gitlab/issues/target_missing/host_missing/accel_missing/1805.toml')
| -rw-r--r-- | gitlab/issues/target_missing/host_missing/accel_missing/1805.toml | 78 |
1 files changed, 0 insertions, 78 deletions
diff --git a/gitlab/issues/target_missing/host_missing/accel_missing/1805.toml b/gitlab/issues/target_missing/host_missing/accel_missing/1805.toml deleted file mode 100644 index e81aac89..00000000 --- a/gitlab/issues/target_missing/host_missing/accel_missing/1805.toml +++ /dev/null @@ -1,78 +0,0 @@ -id = 1805 -title = "build-user-hexagon CI job is not actually testing hexagon" -state = "closed" -created_at = "2023-08-03T13:45:52.856Z" -closed_at = "2023-08-04T11:20:14.508Z" -labels = ["kind::Bug"] -url = "https://gitlab.com/qemu-project/qemu/-/issues/1805" -host-os = "n/a" -host-arch = "n/a" -qemu-version = "n/a" -guest-os = "n/a" -guest-arch = "n/a" -description = """Look at the output from the `build-user-hexagon` CI job and see what compiler meson reports it is using: - - https://gitlab.com/qemu-project/qemu/-/jobs/4790457871 - -``` -Project name: qemu -Project version: 8.0.91 -C compiler for the host machine: cc -m64 -mcx16 (gcc 10.2.1 "cc (Debian 10.2.1-6) 10.2.1 20210110") -C linker for the host machine: cc -m64 -mcx16 ld.bfd 2.35.2 -Host machine cpu family: x86_64 -Host machine cpu: x86_64 -``` - -What is 'cc' resolving to ? - -``` -$ podman run -it registry.gitlab.com/qemu-project/qemu/qemu/debian-hexagon-cross cc -v | grep Target -Target: x86_64-linux-gnu -``` - -That is a x86_64 target native compiler, not a hexagon target cross compiler. - -The ``tests/docker/dockerfiles/debian-hexagon-cross.docker`` file installs the hexagon toolchain under ``/opt`` and adds the dir to ``$PATH`` with: - -``` -ENV PATH $PATH:${TOOLCHAIN_INSTALL}/${TOOLCHAIN_BASENAME}/x86_64-linux-gnu/bin -``` - -This toolchain just installs a `clang` binary, not ``cc`` - -So when ``configure`` runs it looks for ``cc`` first and finds the naitve x86_64 GCC install from the container, not the clang cross compiler - -It is also not possible to merely set ``CC=clang`` because meson will assume it is a native compiler and crash and burn when unable to run binaries - -``` -# CC=clang ./configure --target-list=x86_64-softmmu -Using './build' as the directory for build output -...snip... -Sphinx not found/usable, disabling docs. -Disabling PIE due to missing toolchain support -The Meson build system -Version: 1.2.0 -Source dir: /qemu -Build dir: /qemu/build -Build type: native build -Project name: qemu -Project version: 8.0.92 - -../meson.build:1:0: ERROR: Executables created by c compiler clang -m64 -mcx16 are not runnable. -``` - -AFAICT, the root problem here is that the hexagon container is not setup in the same way as the other cross compiler containers. - -We need the toolchain binaries to be named after the target triplet - ie not ``clang`` but ``hexagon-unknown-linux-musl-clang`` - -This used to be done but was thrown away when switching to a pre-built toolchain in b9052d36342c947b36447558ed0a0dd3fb3fb8f4 - -Then the container also needs to set the configure args for the cross target - -``` -ENV QEMU_CONFIGURE_OPTS --cross-prefix=hexagon-unknown-linux-musl- -``` - -AFAICT, this was never done, so even before switching to the pre-built toolchain, I think the `build-user-hexagon` CI job was running a native built not hexagon build.""" -reproduce = "n/a" -additional = "n/a" |