Skip to content

[mingw-w64-cross-clang] clang20+ has lost some useful targets, such as nvptx and wasm #5842

@Jesseyx

Description

@Jesseyx

Description / Steps to reproduce the issue

msys2-x86_64-20250221 use clang11, but the latest msys2 version with clang 20+ has lost some usefull targets, such as nvptx and wasm.
the targets list with clang11:

clang -v
clang version 11.0.0 (https://github.com/msys2/MSYS2-packages 9ef552a3c4cc9410d2b1fb6f22a0cdda3bc09a64)
clang -print-targets
Registered Targets:
    aarch64    - AArch64 (little endian)
    aarch64_32 - AArch64 (little endian ILP32)
    aarch64_be - AArch64 (big endian)
    amdgcn     - AMD GCN GPUs
    arm        - ARM
    arm64      - ARM64 (little endian)
    arm64_32   - ARM64 (little endian ILP32)
    armeb      - ARM (big endian)
    avr        - Atmel AVR Microcontroller
    bpf        - BPF (host endian)
    bpfeb      - BPF (big endian)
    bpfel      - BPF (little endian)
    hexagon    - Hexagon
    lanai      - Lanai
    mips       - MIPS (32-bit big endian)
    mips64     - MIPS (64-bit big endian)
    mips64el   - MIPS (64-bit little endian)
    mipsel     - MIPS (32-bit little endian)
    msp430     - MSP430 [experimental]
    nvptx      - NVIDIA PTX 32-bit
    nvptx64    - NVIDIA PTX 64-bit
    ppc32      - PowerPC 32
    ppc64      - PowerPC 64
    ppc64le    - PowerPC 64 LE
    r600       - AMD GPUs HD2XXX-HD6XXX
    riscv32    - 32-bit RISC-V
    riscv64    - 64-bit RISC-V
    sparc      - Sparc
    sparcel    - Sparc LE
    sparcv9    - Sparc V9
    systemz    - SystemZ
    thumb      - Thumb
    thumbeb    - Thumb (big endian)
    wasm32     - WebAssembly 32-bit
    wasm64     - WebAssembly 64-bit
    x86        - 32-bit X86: Pentium-Pro and above
    x86-64     - 64-bit X86: EM64T and AMD64
    xcore      - XCore

the targets list with clang21:

clang -v
clang version 21.1.0 (https://github.com/msys2/MSYS2-packages dd887afdaff2641f5919b53ef1286f484a8799a7)
clang -print-targets

  Registered Targets:
    aarch64    - AArch64 (little endian)
    aarch64_32 - AArch64 (little endian ILP32)
    aarch64_be - AArch64 (big endian)
    arm        - ARM
    arm64      - ARM64 (little endian)
    arm64_32   - ARM64 (little endian ILP32)
    armeb      - ARM (big endian)
    thumb      - Thumb
    thumbeb    - Thumb (big endian)
    x86        - 32-bit X86: Pentium-Pro and above
    x86-64     - 64-bit X86: EM64T and AMD64

Error will occur when compiling cuda using the latest version.

clang -O2 -std=c++11 -m64 -S -nocudalib -nocudainc --cuda-device-only -Wno-c++11-narrowing -include ./compat/cuda/cuda_runtime.h -o test.o ./test.cu
error: unable to create target: 'No available targets are compatible with triple
      "nvptx64-nvidia-cuda"'
1 error generated when compiling for sm_52.

Expected behavior

Please support these missing targets; they are useful for cross-platform compilation of cuda and wasm

Actual behavior

useful targets lost

Verification

Windows Version

MINGW64_NT-10.0-26100

Are you willing to submit a PR?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions