| # RUN: yaml2obj %s -o %t1.o |
| |
| # RUN: wasm-ld --no-entry --features=foo,bar,baz -o %t.specified.wasm %t1.o |
| # RUN: obj2yaml %t.specified.wasm | FileCheck %s --check-prefix SPECIFIED |
| |
| # RUN: wasm-ld --no-entry --features=bar,baz,quux -o %t.unspecified.wasm %t1.o |
| # RUN: obj2yaml %t.unspecified.wasm | FileCheck %s --check-prefix UNSPECIFIED |
| |
| # RUN: yaml2obj %S/Inputs/disallow-feature-foo.yaml -o %t.disallowed.o |
| # RUN: wasm-ld --no-entry -o - %t1.o %t.disallowed.o | obj2yaml | FileCheck %s --check-prefix DISALLOWED |
| |
| # RUN: yaml2obj %S/Inputs/no-feature-foo.yaml -o %t.none.o |
| # RUN: wasm-ld --no-entry -o - %t1.o %t.none.o | obj2yaml | FileCheck %s --check-prefix NONE |
| |
| # Check that the following combinations of feature linkage policies |
| # give the expected results: |
| # |
| # DISALLOWED x DISALLOWED => NONE |
| # DISALLOWED x NONE => NONE |
| |
| --- !WASM |
| FileHeader: |
| Version: 0x00000001 |
| Sections: |
| - Type: CUSTOM |
| Name: linking |
| Version: 2 |
| - Type: CUSTOM |
| Name: target_features |
| Features: |
| - Prefix: DISALLOWED |
| Name: "foo" |
| # included so output has target features section |
| - Prefix: USED |
| Name: "bar" |
| ... |
| |
| # SPECIFIED: - Type: CUSTOM |
| # SPECIFIED: Name: target_features |
| # SPECIFIED-NEXT: Features: |
| # SPECIFIED-NEXT: - Prefix: USED |
| # SPECIFIED-NEXT: Name: bar |
| # SPECIFIED-NEXT: - Prefix: USED |
| # SPECIFIED-NEXT: Name: baz |
| # SPECIFIED-NEXT: - Prefix: USED |
| # SPECIFIED-NEXT: Name: foo |
| # SPECIFIED-NEXT: ... |
| |
| # UNSPECIFIED: - Type: CUSTOM |
| # UNSPECIFIED: Name: target_features |
| # UNSPECIFIED-NEXT: Features: |
| # UNSPECIFIED-NEXT: - Prefix: USED |
| # UNSPECIFIED-NEXT: Name: bar |
| # UNSPECIFIED-NEXT: - Prefix: USED |
| # UNSPECIFIED-NEXT: Name: baz |
| # UNSPECIFIED-NEXT: - Prefix: USED |
| # UNSPECIFIED-NEXT: Name: quux |
| # UNSPECIFIED-NEXT: ... |
| |
| # DISALLOWED: - Type: CUSTOM |
| # DISALLOWED: Name: target_features |
| # DISALLOWED-NEXT: Features: |
| # DISALLOWED-NEXT: - Prefix: USED |
| # DISALLOWED-NEXT: Name: bar |
| # DISALLOWED-NEXT: ... |
| |
| # NONE: - Type: CUSTOM |
| # NONE: Name: target_features |
| # NONE-NEXT: Features: |
| # NONE-NEXT: - Prefix: USED |
| # NONE-NEXT: Name: bar |
| # NONE-NEXT: ... |