CodeQL / Analyze (actions) (push) Canceled after 0s
CodeQL / Analyze (python) (push) Canceled after 0s
pre-commit / pre-commit (push) Canceled after 0s
Multi-Arch CI / setup (push) Canceled after 0s
Publish build_manylinux_x86_64 images / publish_build_manylinux_x86_64 (push) Canceled after 0s
Setup (Multi-Arch) / setup (push) Canceled after 0s
Multi-Arch CI / Linux::${{ fromJSON(needs.setup.outputs.linux_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubi10 image / publish_no_rocm_image_ubi10 (push) Canceled after 0s
Multi-Arch CI / Windows::${{ fromJSON(needs.setup.outputs.windows_build_config || '{}').build_variant_label || 'skip' }} (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Multi-Arch CI / Manifest Diff (push) Canceled after 0s
TheRock Manifest Diff Report / Generate Manifest Diff Report (push) Canceled after 0s
Multi-Arch CI / CI Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_ocl_rt images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04_rocgdb images / publish_no_rocm_image_ubuntu24_04_rocgdb (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_ocl_rt (push) Canceled after 0s
Publish TheRock Docker image / build-and-push-image (push) Canceled after 0s
Unit Tests / Unit Tests :: ubuntu-24.04 (push) Canceled after 0s
Unit Tests / Unit Tests :: windows-2022 (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_media (push) Canceled after 0s
Unit Tests / Unit Tests Summary (push) Canceled after 0s
Publish no_rocm_image_ubuntu24_04 images / publish_no_rocm_image_ubuntu24_04_openmpi (push) Canceled after 0s
153 lines
7.2 KiB
YAML
153 lines
7.2 KiB
YAML
# UNSUPPORTED: system-windows
|
|
|
|
# RUN: %clang --multi-lib-config=%s -no-canonical-prefixes -x c++ %s -### -o %t.out 2>&1 \
|
|
# RUN: --target=thumbv8m.main-none-eabihf --sysroot= \
|
|
# RUN: | FileCheck %s
|
|
# CHECK: "-cc1" "-triple" "thumbv8m.main-unknown-none-eabihf"
|
|
# CHECK-SAME: "-internal-isystem" "[[SYSROOT:[^"]*]]/bin/../lib/clang-runtimes/arm-none-eabi/thumb/v8-m.main/fp/include/c++/v1"
|
|
# CHECK-SAME: "-internal-isystem" "[[SYSROOT]]/bin/../lib/clang-runtimes/arm-none-eabi/thumb/v8-m.main/fp/include"
|
|
# CHECK-SAME: "-x" "c++" "{{.*}}baremetal-multilib.yaml"
|
|
# CHECK-NEXT: ld{{(.exe)?}}" "-Bstatic"
|
|
# CHECK-SAME: "-L[[SYSROOT]]/bin/../lib/clang-runtimes/arm-none-eabi/thumb/v8-m.main/fp/lib"
|
|
# CHECK-SAME: "{{.*}}.o"
|
|
# CHECK-SAME: "{{[^"]*}}libclang_rt.builtins.a"
|
|
# CHECK-SAME: "-lc"
|
|
# CHECK-SAME: "-o" "{{.*}}.tmp.out"
|
|
|
|
# RUN: %clang --multi-lib-config=%s -no-canonical-prefixes -x c++ %s -### -o %t.out 2>&1 \
|
|
# RUN: --target=thumbv7em-none-eabi -mfpu=fpv4-sp-d16 --sysroot= \
|
|
# RUN: | FileCheck --check-prefix=CHECK-NO-MATCH %s
|
|
# CHECK-NO-MATCH: warning: no multilib found matching flags:
|
|
# CHECK-NO-MATCH-SAME: --target=thumbv7em-unknown-none-eabi
|
|
# CHECK-NO-MATCH: note: available multilibs are:
|
|
# CHECK-NO-MATCH: --target=thumbv6m-unknown-none-eabi -mfpu=none
|
|
# CHECK-NO-MATCH: --target=thumbv7m-unknown-none-eabi -mfpu=none
|
|
# CHECK-NO-MATCH: --target=thumbv7em-unknown-none-eabi -mfpu=none
|
|
|
|
# RUN: %clang --multi-lib-config=%s -no-canonical-prefixes -print-multi-directory 2>&1 \
|
|
# RUN: --target=thumbv8m.main-none-eabihf --sysroot= \
|
|
# RUN: | FileCheck --check-prefix=CHECK-PRINT-MULTI-DIRECTORY %s
|
|
# CHECK-PRINT-MULTI-DIRECTORY: arm-none-eabi/thumb/v8-m.main/fp
|
|
|
|
# RUN: %clang --multi-lib-config=%s -no-canonical-prefixes -print-multi-lib 2>&1 \
|
|
# RUN: --target=arm-none-eabi --sysroot= \
|
|
# RUN: | FileCheck --check-prefix=CHECK-PRINT-MULTI-LIB %s
|
|
# CHECK-PRINT-MULTI-LIB: arm-none-eabi/thumb/v6-m/nofp;@-target=thumbv6m-unknown-none-eabi@mfpu=none
|
|
# CHECK-PRINT-MULTI-LIB: arm-none-eabi/thumb/v7-m/nofp;@-target=thumbv7m-unknown-none-eabi@mfpu=none
|
|
# CHECK-PRINT-MULTI-LIB: arm-none-eabi/thumb/v7e-m/nofp;@-target=thumbv7em-unknown-none-eabi@mfpu=none
|
|
# CHECK-PRINT-MULTI-LIB: arm-none-eabi/thumb/v8-m.main/nofp;@-target=thumbv8m.main-unknown-none-eabi@mfpu=none
|
|
# CHECK-PRINT-MULTI-LIB: arm-none-eabi/thumb/v8.1-m.main/nofp/nomve;@-target=thumbv8.1m.main-unknown-none-eabi@mfpu=none
|
|
# CHECK-PRINT-MULTI-LIB: arm-none-eabi/thumb/v7e-m/fpv4_sp_d16;@-target=thumbv7em-unknown-none-eabihf@mfpu=fpv4-sp-d16
|
|
# CHECK-PRINT-MULTI-LIB: arm-none-eabi/thumb/v7e-m/fpv5_d16;@-target=thumbv7em-unknown-none-eabihf@mfpu=fpv5-d16
|
|
# CHECK-PRINT-MULTI-LIB: arm-none-eabi/thumb/v8-m.main/fp;@-target=thumbv8m.main-unknown-none-eabihf@mfpu=fpv5-d16
|
|
# CHECK-PRINT-MULTI-LIB: arm-none-eabi/thumb/v8.1-m.main/fp;@-target=thumbv8.1m.main-unknown-none-eabihf@mfpu=fp-armv8-fullfp16-sp-d16
|
|
# CHECK-PRINT-MULTI-LIB: arm-none-eabi/thumb/v8.1-m.main/nofp/mve;@-target=thumbv8.1m.main-unknown-none-eabihf@march=thumbv8.1m.main+mve@mfpu=none
|
|
|
|
# RUN: %clang --multi-lib-config=%s -no-canonical-prefixes -x assembler -mexecute-only \
|
|
# RUN: --target=arm-none-eabi --sysroot= %s -c -### 2>&1 \
|
|
# RUN: | FileCheck %s --check-prefix=CHECK-NO-EXECUTE-ONLY-ASM
|
|
# CHECK-NO-EXECUTE-ONLY-ASM: warning: argument unused during compilation: '-mexecute-only'
|
|
|
|
---
|
|
# This file is in two parts:
|
|
# 1. A list of library variants.
|
|
# 2. A mapping from flags generated from command line arguments to further
|
|
# flags.
|
|
|
|
# How does clang use this file?
|
|
# 1. If the ToolChain class for the architecture supports this form of
|
|
# multilib it then it loads the file if present in sysroot.
|
|
# 2. Generate flags from the user provided arguments.
|
|
# (Use `clang -print-multi-flags-experimental` to see which flags are
|
|
# generated).
|
|
# 3. Compare the arguments against each regular expression and store
|
|
# associated flags if there's a match.
|
|
# 4. Find the last library variant whose flags are a subset of the
|
|
# flags derived from the user provided arguments.
|
|
# 5. Use the directory for the library variant as the sysroot.
|
|
|
|
# Clang will emit an error if this number is greater than its current multilib
|
|
# version or if its major version differs, but will accept lesser minor
|
|
# versions.
|
|
MultilibVersion: 1.0
|
|
|
|
# The first section of the file is the list of library variants.
|
|
# A library is considered compatible if the are a subset of the flags derived
|
|
# from the arguments provided by the user.
|
|
# If multiple libraries are deemed compatible then the one that appears
|
|
# last in the list wins. A ToolChain may instead opt to use more than one
|
|
# multilib, layered on top of each other.
|
|
|
|
Variants:
|
|
- Dir: arm-none-eabi/arm/v4t
|
|
Flags: [--target=armv4t-unknown-none-eabi]
|
|
|
|
- Dir: arm-none-eabi/thumb/v6-m/nofp
|
|
Flags: [--target=thumbv6m-unknown-none-eabi, -mfpu=none]
|
|
|
|
- Dir: arm-none-eabi/thumb/v7-m/nofp
|
|
Flags: [--target=thumbv7m-unknown-none-eabi, -mfpu=none]
|
|
|
|
- Dir: arm-none-eabi/thumb/v7e-m/nofp
|
|
Flags: [--target=thumbv7em-unknown-none-eabi, -mfpu=none]
|
|
|
|
- Dir: arm-none-eabi/thumb/v8-m.main/nofp
|
|
Flags: [--target=thumbv8m.main-unknown-none-eabi, -mfpu=none]
|
|
|
|
- Dir: arm-none-eabi/thumb/v8.1-m.main/nofp/nomve
|
|
Flags: [--target=thumbv8.1m.main-unknown-none-eabi, -mfpu=none]
|
|
|
|
- Dir: arm-none-eabi/thumb/v7e-m/fpv4_sp_d16
|
|
Flags: [--target=thumbv7em-unknown-none-eabihf, -mfpu=fpv4-sp-d16]
|
|
|
|
- Dir: arm-none-eabi/thumb/v7e-m/fpv5_d16
|
|
Flags: [--target=thumbv7em-unknown-none-eabihf, -mfpu=fpv5-d16]
|
|
|
|
- Dir: arm-none-eabi/thumb/v8-m.main/fp
|
|
Flags: [--target=thumbv8m.main-unknown-none-eabihf, -mfpu=fpv5-d16]
|
|
|
|
- Dir: arm-none-eabi/thumb/v8.1-m.main/fp
|
|
Flags: [--target=thumbv8.1m.main-unknown-none-eabihf, -mfpu=fp-armv8-fullfp16-sp-d16]
|
|
|
|
- Dir: arm-none-eabi/thumb/v8.1-m.main/nofp/mve
|
|
Flags: [--target=thumbv8.1m.main-unknown-none-eabihf, -march=thumbv8.1m.main+mve, -mfpu=none]
|
|
|
|
|
|
# The second section of the file is a map from auto-detected flags
|
|
# to custom flags. The auto-detected flags can be printed out
|
|
# by running clang with `-print-multi-flags-experimental`.
|
|
# The regex must match a whole flag string.
|
|
# All flags in the "Flags" list will be added if an argument matches.
|
|
Mappings:
|
|
# For v8m.base (and potential later v8m baseline versions) use v6m
|
|
- Match: --target=thumbv8(\.[0-9]+)?m\.base-unknown-none-eabi
|
|
Flags: [--target=thumbv6m-unknown-none-eabi]
|
|
# Match versions after v8.1m.main. We assume that v8.2m (if/when it exists) will
|
|
# be backwards compatible with v8.1m.
|
|
# The alternative is to not recognise later versions, and require that
|
|
# this multilib spec is updated before it can be used with newer
|
|
# architecture versions.
|
|
- Match: --target=thumbv8\.[1-9]m\.main-unknown-none-eabi
|
|
Flags: [--target=thumbv8.1m.main-unknown-none-eabi]
|
|
- Match: --target=thumbv8\.[1-9]m\.main-unknown-none-eabihf
|
|
Flags: [--target=thumbv8.1m.main-unknown-none-eabihf]
|
|
|
|
- Match: -march=thumbv8\.[1-9]m\.main.*\+mve($|\+).*
|
|
Flags: [-march=thumbv8.1m.main+mve]
|
|
|
|
# Hierarchy among FPUs: fpvN-d16 is a superset of fpvN-sp-d16, and
|
|
# fpvN-d16 is a superset of fpv[N-1]-d16, for all N.
|
|
- Match: -mfpu=fpv5-d16
|
|
Flags:
|
|
- -mfpu=fpv4-d16
|
|
- -mfpu=fpv5-sp-d16
|
|
- -mfpu=fpv4-sp-d16
|
|
- Match: -mfpu=fpv5-sp-d16
|
|
Flags:
|
|
- -mfpu=fpv4-sp-d16
|
|
- Match: -mfpu=fpv4-d16
|
|
Flags:
|
|
- -mfpu=fpv4-sp-d16
|
|
|
|
...
|