mirror of https://github.com/xemu-project/xemu.git
dockerfiles: install bindgen from cargo on Ubuntu 22.04
Because Ubuntu 22.04 has a very old version of bindgen, that does not have the important option --allowlist-file, it will not be able to use --enable-rust out of the box. Instead, install the latest version of bindgen-cli via "cargo install" in the container, following QEMU's own documentation. Reviewed-by: Pierrick Bouvier <pierrick.bouvier@linaro.org> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
parent
5b1b5a8ae4
commit
951f71ad67
|
@ -7,7 +7,6 @@
|
|||
packages:
|
||||
- bash
|
||||
- bc
|
||||
- bindgen
|
||||
- bison
|
||||
- bsdextrautils
|
||||
- bzip2
|
||||
|
|
|
@ -7,7 +7,6 @@
|
|||
packages:
|
||||
- bash
|
||||
- bc
|
||||
- bindgen
|
||||
- bison
|
||||
- bsdextrautils
|
||||
- bzip2
|
||||
|
|
|
@ -13,7 +13,6 @@ RUN export DEBIAN_FRONTEND=noninteractive && \
|
|||
eatmydata apt-get install --no-install-recommends -y \
|
||||
bash \
|
||||
bc \
|
||||
bindgen \
|
||||
bison \
|
||||
bsdextrautils \
|
||||
bzip2 \
|
||||
|
@ -150,6 +149,11 @@ ENV LANG "en_US.UTF-8"
|
|||
ENV MAKE "/usr/bin/make"
|
||||
ENV NINJA "/usr/bin/ninja"
|
||||
ENV PYTHON "/usr/bin/python3"
|
||||
ENV CARGO_HOME=/usr/local/cargo
|
||||
ENV PATH=$CARGO_HOME/bin:$PATH
|
||||
RUN DEBIAN_FRONTEND=noninteractive eatmydata \
|
||||
apt install -y --no-install-recommends cargo
|
||||
RUN cargo install bindgen-cli
|
||||
# As a final step configure the user (if env is defined)
|
||||
ARG USER
|
||||
ARG UID
|
||||
|
|
|
@ -1,4 +1,8 @@
|
|||
mappings:
|
||||
# Too old on Ubuntu 22.04; we install it from cargo instead
|
||||
bindgen:
|
||||
Ubuntu2204:
|
||||
|
||||
flake8:
|
||||
OpenSUSELeap15:
|
||||
|
||||
|
|
|
@ -137,6 +137,14 @@ fedora_rustup_nightly_extras = [
|
|||
'RUN /usr/local/cargo/bin/rustup run nightly cargo install bindgen-cli\n',
|
||||
]
|
||||
|
||||
ubuntu2204_bindgen_extras = [
|
||||
"ENV CARGO_HOME=/usr/local/cargo\n",
|
||||
'ENV PATH=$CARGO_HOME/bin:$PATH\n',
|
||||
"RUN DEBIAN_FRONTEND=noninteractive eatmydata \\\n",
|
||||
" apt install -y --no-install-recommends cargo\n",
|
||||
'RUN cargo install bindgen-cli\n',
|
||||
]
|
||||
|
||||
def cross_build(prefix, targets):
|
||||
conf = "ENV QEMU_CONFIGURE_OPTS --cross-prefix=%s\n" % (prefix)
|
||||
targets = "ENV DEF_TARGET_LIST %s\n" % (targets)
|
||||
|
@ -157,7 +165,8 @@ try:
|
|||
trailer="".join(debian12_extras))
|
||||
generate_dockerfile("fedora", "fedora-40")
|
||||
generate_dockerfile("opensuse-leap", "opensuse-leap-15")
|
||||
generate_dockerfile("ubuntu2204", "ubuntu-2204")
|
||||
generate_dockerfile("ubuntu2204", "ubuntu-2204",
|
||||
trailer="".join(ubuntu2204_bindgen_extras))
|
||||
|
||||
#
|
||||
# Non-fatal Rust-enabled build
|
||||
|
|
Loading…
Reference in New Issue