autocxx
autocxx copied to clipboard
Can't `#include <immintrin.h>` when both `clang-14` and `libclang1-16` are installed
Describe the bug
When both clang-14
and libclang1-16
are installed, #include <immintrin.h>
fails because autocxx(-bindgen?) runs Clang 14 but also loads libclang-16.so.1*
:
To Reproduce
- Add
#include <immintrin.h>
toexamples/pod/src/cpp.h
- Write this to
Dockerfile
:
FROM docker.io/rust:1.80-bookworm
RUN apt-get update
# Install dependencies
RUN apt-get install -y clang-14
# break it
RUN apt-get install -y libclang1-16
WORKDIR /autocxx/examples/pod/
COPY . /autocxx
RUN cargo build
- Run
podman build .
Errors with:
error: failed to run custom build command for `autocxx-pod-example v0.1.0 (/autocxx/examples/pod)`
Caused by:
process didn't exit successfully: `/autocxx/examples/pod/target/debug/build/autocxx-pod-example-7a3a679155f4f647/build-script-build` (exit status: 1)
--- stderr
/usr/lib/llvm-14/lib/clang/14.0.6/include/emmintrin.h:2228:19: error: use of undeclared identifier '__builtin_ia32_paddsb128'
/usr/lib/llvm-14/lib/clang/14.0.6/include/emmintrin.h:2250:19: error: use of undeclared identifier '__builtin_ia32_paddsw128'
/usr/lib/llvm-14/lib/clang/14.0.6/include/emmintrin.h:2271:19: error: use of undeclared identifier '__builtin_ia32_paddusb128'
/usr/lib/llvm-14/lib/clang/14.0.6/include/emmintrin.h:2292:19: error: use of undeclared identifier '__builtin_ia32_paddusw128'
/usr/lib/llvm-14/lib/clang/14.0.6/include/emmintrin.h:2670:19: error: use of undeclared identifier '__builtin_ia32_psubsb128'
/usr/lib/llvm-14/lib/clang/14.0.6/include/emmintrin.h:2691:19: error: use of undeclared identifier '__builtin_ia32_psubsw128'
/usr/lib/llvm-14/lib/clang/14.0.6/include/emmintrin.h:2711:19: error: use of undeclared identifier '__builtin_ia32_psubusb128'
/usr/lib/llvm-14/lib/clang/14.0.6/include/emmintrin.h:2731:19: error: use of undeclared identifier '__builtin_ia32_psubusw128'
/usr/lib/llvm-14/lib/clang/14.0.6/include/avx2intrin.h:95:19: error: use of undeclared identifier '__builtin_ia32_paddsb256'
/usr/lib/llvm-14/lib/clang/14.0.6/include/avx2intrin.h:101:19: error: use of undeclared identifier '__builtin_ia32_paddsw256'
/usr/lib/llvm-14/lib/clang/14.0.6/include/avx2intrin.h:107:19: error: use of undeclared identifier '__builtin_ia32_paddusb256'
/usr/lib/llvm-14/lib/clang/14.0.6/include/avx2intrin.h:113:19: error: use of undeclared identifier '__builtin_ia32_paddusw256'
/usr/lib/llvm-14/lib/clang/14.0.6/include/avx2intrin.h:631:19: error: use of undeclared identifier '__builtin_ia32_psubsb256'
/usr/lib/llvm-14/lib/clang/14.0.6/include/avx2intrin.h:637:19: error: use of undeclared identifier '__builtin_ia32_psubsw256'
/usr/lib/llvm-14/lib/clang/14.0.6/include/avx2intrin.h:643:19: error: use of undeclared identifier '__builtin_ia32_psubusb256'
/usr/lib/llvm-14/lib/clang/14.0.6/include/avx2intrin.h:649:19: error: use of undeclared identifier '__builtin_ia32_psubusw256'
/usr/lib/llvm-14/lib/clang/14.0.6/include/avx512fintrin.h:9319:10: error: use of undeclared identifier '__builtin_ia32_reduce_add_q512'
/usr/lib/llvm-14/lib/clang/14.0.6/include/avx512fintrin.h:9323:10: error: use of undeclared identifier '__builtin_ia32_reduce_mul_q512'
/usr/lib/llvm-14/lib/clang/14.0.6/include/avx512fintrin.h:9337:10: error: use of undeclared identifier '__builtin_ia32_reduce_add_q512'
fatal error: too many errors emitted, stopping now [-ferror-limit=]
Error: × the include_cpp! macro couldn't be expanded into Rust bindings to C++:
│ Bindgen was unable to generate the initial .rs bindings for this file.
│ This may indicate a parsing problem with the C++ headers.
Error: building at STEP "RUN cargo build": while running runtime: exit status 101
Expected behavior It should compile with no error
Additional context n/a