79 lines
2.8 KiB
YAML
79 lines
2.8 KiB
YAML
# UNSUPPORTED: system-windows
|
|
|
|
# RUN: rm -rf %t
|
|
|
|
# RUN: mkdir -p %t/baremetal_multilib/bin
|
|
# RUN: ln -s %clang %t/baremetal_multilib/bin/clang
|
|
|
|
# RUN: mkdir -p %t/baremetal_multilib/lib/clang-runtimes
|
|
# RUN: ln -s %s %t/baremetal_multilib/lib/clang-runtimes/multilib.yaml
|
|
|
|
# RUN: %t/baremetal_multilib/bin/clang -no-canonical-prefixes -x c++ %s -### -o %t.out --target=thumbv7em-none-unknown-eabi --sysroot= 2>%t.err
|
|
|
|
# RUN: FileCheck -DSYSROOT=%t/baremetal_multilib %s < %t.err --check-prefix=POS
|
|
# RUN: FileCheck -DSYSROOT=%t/baremetal_multilib %s < %t.err --check-prefix=NEG
|
|
|
|
# Expected results:
|
|
#
|
|
# Due to the Mappings section, all six of these library directories should
|
|
# match the command-line flag --target=thumbv7em-none-unknown-eabi.
|
|
#
|
|
# The two "non_exclusive" directories, which don't have an ExclusiveGroup at
|
|
# all, should both be selected. So should the two "own_group", each of which
|
|
# specifies a different value of ExclusiveGroup. But the three "exclusive",
|
|
# which have the _same_ ExclusiveGroup value, should not: the third one wins.
|
|
# So we expect five of these seven directories to show up in the clang-cc1
|
|
# command line, but not testdir1_exclusive or testdir2_exclusive.
|
|
|
|
# POS-DAG: "-internal-isystem" "[[SYSROOT]]/bin/../lib/clang-runtimes/testdir1_non_exclusive/include/c++/v1"
|
|
# POS-DAG: "-internal-isystem" "[[SYSROOT]]/bin/../lib/clang-runtimes/testdir2_non_exclusive/include/c++/v1"
|
|
# POS-DAG: "-internal-isystem" "[[SYSROOT]]/bin/../lib/clang-runtimes/testdir3_exclusive/include/c++/v1"
|
|
# POS-DAG: "-internal-isystem" "[[SYSROOT]]/bin/../lib/clang-runtimes/testdir1_own_group/include/c++/v1"
|
|
# POS-DAG: "-internal-isystem" "[[SYSROOT]]/bin/../lib/clang-runtimes/testdir2_own_group/include/c++/v1"
|
|
|
|
# NEG-NOT: "-internal-isystem" "[[SYSROOT]]/bin/../lib/clang-runtimes/testdir1_exclusive/include/c++/v1"
|
|
# NEG-NOT: "-internal-isystem" "[[SYSROOT]]/bin/../lib/clang-runtimes/testdir2_exclusive/include/c++/v1"
|
|
|
|
---
|
|
MultilibVersion: 1.0
|
|
|
|
Groups:
|
|
- Name: actually_exclude_something
|
|
Type: Exclusive
|
|
|
|
- Name: foo
|
|
Type: Exclusive
|
|
|
|
- Name: bar
|
|
Type: Exclusive
|
|
|
|
Variants:
|
|
- Dir: testdir1_non_exclusive
|
|
Flags: [--target=thumbv7m-none-unknown-eabi]
|
|
|
|
- Dir: testdir2_non_exclusive
|
|
Flags: [--target=thumbv7em-none-unknown-eabi]
|
|
|
|
- Dir: testdir1_exclusive
|
|
Flags: [--target=thumbv7m-none-unknown-eabi]
|
|
Group: actually_exclude_something
|
|
|
|
- Dir: testdir2_exclusive
|
|
Flags: [--target=thumbv7em-none-unknown-eabi]
|
|
Group: actually_exclude_something
|
|
|
|
- Dir: testdir3_exclusive
|
|
Flags: [--target=thumbv7em-none-unknown-eabi]
|
|
Group: actually_exclude_something
|
|
|
|
- Dir: testdir1_own_group
|
|
Flags: [--target=thumbv7m-none-unknown-eabi]
|
|
Group: foo
|
|
|
|
- Dir: testdir2_own_group
|
|
Flags: [--target=thumbv7em-none-unknown-eabi]
|
|
Group: bar
|
|
|
|
Mappings:
|
|
- Match: --target=thumbv7em-none-unknown-eabi
|
|
Flags: [--target=thumbv7m-none-unknown-eabi]
|