Second Landing Attempt: This patch enables end to end support for generating ELF interface stubs directly from clang. Now the following: clang -emit-interface-stubs -o libfoo.so a.cpp b.cpp c.cpp will product an ELF binary with visible symbols populated. Visibility attributes and -fvisibility can be used to control what gets populated. * Adding ToolChain support for clang Driver IFS Merge Phase * Implementing a default InterfaceStubs Merge clang Tool, used by ToolChain * Adds support for the clang Driver to involve llvm-ifs on ifs files. * Adds -emit-merged-ifs flag, to tell llvm-ifs to emit a merged ifs text file instead of the final object format (normally ELF) Differential Revision: https://reviews.llvm.org/D63978 llvm-svn: 374061
37 lines
1.7 KiB
C++
37 lines
1.7 KiB
C++
// RUN: not %clang -emit-interface-stubs -interface-stub-version=bad-format %s 2>&1 | \
|
|
// RUN: FileCheck %s
|
|
|
|
// RUN: not %clang -emit-interface-stubs -interface-stub-version=experimental-tapi-elf-v1 %s 2>&1 | \
|
|
// RUN: FileCheck -check-prefix=CHECK-TAPI-DEPRECATED %s
|
|
|
|
// RUN: not %clang -emit-interface-stubs -interface-stub-version=experimental-yaml-elf-v1 %s 2>&1 | \
|
|
// RUN: FileCheck -check-prefix=CHECK-YAML-DEPRECATED %s
|
|
|
|
// RUN: not %clang -emit-interface-stubs -interface-stub-version=bad-format %s 2>&1 | \
|
|
// RUN: FileCheck %s
|
|
|
|
// RUN: not %clang -emit-interface-stubs \
|
|
// RUN: -interface-stub-version=experimental-tapi-elf-v1 %s 2>&1 | \
|
|
// RUN: FileCheck -check-prefix=CHECK-TAPI-DEPRECATED %s
|
|
|
|
// RUN: not %clang -emit-interface-stubs \
|
|
// RUN: -interface-stub-version=experimental-yaml-elf-v1 %s 2>&1 | \
|
|
// RUN: FileCheck -check-prefix=CHECK-YAML-DEPRECATED %s
|
|
|
|
// CHECK: error: invalid value
|
|
// CHECK: 'Invalid interface stub format: bad-format.' in 'Must specify a
|
|
// CHECK: valid interface stub format type, ie:
|
|
// CHECK: -interface-stub-version=experimental-ifs-v1'
|
|
|
|
// CHECK-TAPI-DEPRECATED: error: invalid value
|
|
// CHECK-TAPI-DEPRECATED: 'Invalid interface stub format:
|
|
// CHECK-TAPI-DEPRECATED: experimental-tapi-elf-v1 is deprecated.' in 'Must
|
|
// CHECK-TAPI-DEPRECATED: specify a valid interface stub format type, ie:
|
|
// CHECK-TAPI-DEPRECATED: -interface-stub-version=experimental-ifs-v1'
|
|
|
|
// CHECK-YAML-DEPRECATED: error: invalid value
|
|
// CHECK-YAML-DEPRECATED: 'Invalid interface stub format:
|
|
// CHECK-YAML-DEPRECATED: experimental-yaml-elf-v1 is deprecated.' in 'Must
|
|
// CHECK-YAML-DEPRECATED: specify a valid interface stub format type, ie:
|
|
// CHECK-YAML-DEPRECATED: -interface-stub-version=experimental-ifs-v1'
|