summaryrefslogtreecommitdiffstats
path: root/clang/test/InterfaceStubs/driver-test.c
Commit message (Collapse)AuthorAgeFilesLines
* [clang][IFS][test] Temporary work around for in-process cc1 ASAN issues.Puyan Lotfi2020-01-231-1/+10
| | | | | | | | | | | | | | When using in-process cc1, the Clang Interface Stubs pipeline setup exposes an ASAN bug. I am still investigating this issue but want to green the bots for now. I don't think this is a huge issue since the Clang Interface Stubs Driver setup code is the only code path that sets up such a pipeline (ie N cc1's for N c files followed by another N cc1's for to generate stub files for the same N c files). This issue is being discussed in https://reviews.llvm.org/D69825. If a resolution is not found soon, a bugzilla filling will be in order. (cherry picked from commit c38e42527b21acee8d01a016d5bfa2fb83202e29)
* [clang][IFS] Driver Pipeline: generate stubs after standard pipeline (3)Puyan Lotfi2019-11-201-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | Third Landing Attempt (dropping any linker invocation from clang driver): Up until now, clang interface stubs has replaced the standard PP -> C -> BE -> ASM -> LNK pipeline. With this change, it will happen in conjunction with it. So what when you build your code you will get an a.out or lib.so as well as an interface stub file. Example: clang -shared -o libfoo.so -emit-interface-stubs ... will generate both a libfoo.so and a libfoo.ifso. The .so file will contain the code from the standard compilation pipeline and the .ifso file will contain the ELF stub library. Note: For driver-test.c I've added -S in order to prevent any bot failures on bots that don't have the proper linker for their native triple. You could always specify a triple like x86_64-unknown-linux-gnu and on bots like x86_64-scei-ps4 the clang driver would invoke regular ld instead of getting the error 'Executable "orbis-ld" doesn't exist!' but on bots like ppc64be and s390x you'd get an error "/usr/bin/ld: unrecognised emulation mode: elf_x86_64" Differential Revision: https://reviews.llvm.org/D70274
* Revert "[clang][IFS] Driver Pipeline: generate stubs after standard pipeline ↵Puyan Lotfi2019-11-191-7/+8
| | | | | | (2)" This reverts commit ea8e02822341e2421b94167d828d3f224e767424.
* Revert "[clang][IFS] Fixing failing bots that do not have PPC target or ↵Puyan Lotfi2019-11-191-2/+0
| | | | | | "orbis-ld"" This reverts commit 377d70cdea733e36107e99d9148864d24797d51c.
* Revert "[clang][IFS] Attempting to fix missing 'orbis-ld' on scei-ps4-ubuntu ↵Puyan Lotfi2019-11-191-3/+1
| | | | | | bot." This reverts commit 29fd1e1f4a372f3870e054da24b57a4f45861808.
* Revert "[clang][IFS] Fixing unsupported emulation mode on ↵Puyan Lotfi2019-11-191-1/+0
| | | | | | clang-ppc64be-linux bot." This reverts commit 1b387484b9b38a4a1e98a9d22a9a26065b0d184e.
* Revert "[clang][IFS][test] Removing driver-test.c. Test is still too brittle."Puyan Lotfi2019-11-191-0/+15
| | | | This reverts commit f37356d6f60ae5db978611621d3a375ed87ec0f0.
* [clang][IFS][test] Removing driver-test.c. Test is still too brittle.Puyan Lotfi2019-11-191-15/+0
| | | | | | | Removing this test because if I add a triple then there are link falures on targets like ppc and s390x. If I don't add a triple then on PS4 targets the clang driver tries to invoke orbis-ld which ends up being not found.
* [clang][IFS] Fixing unsupported emulation mode on clang-ppc64be-linux bot.Puyan Lotfi2019-11-191-0/+1
| | | | | | I am in another pickle here where if I specify a triple, I get the wrong elf target arch on the PPC bot (error from the PPC elf Linker). To avoid this I am going to turn this test off on the PPC bots for now.
* [clang][IFS] Attempting to fix missing 'orbis-ld' on scei-ps4-ubuntu bot.Puyan Lotfi2019-11-191-1/+3
| | | | | | I want this test to run end to end, but I am still having trouble with missing linkers on the scei-ps4 bot. Will remove this test if it continues to be a source of brittle failures. Sorry for the noise.
* [clang][IFS] Fixing failing bots that do not have PPC target or "orbis-ld"Puyan Lotfi2019-11-191-0/+2
|
* [clang][IFS] Driver Pipeline: generate stubs after standard pipeline (2)Puyan Lotfi2019-11-191-8/+7
| | | | | | | | | | | | | | | | | | | Second Landing Attempt: Up until now, clang interface stubs has replaced the standard PP -> C -> BE -> ASM -> LNK pipeline. With this change, it will happen in conjunction with it. So what when you build your code you will get an a.out or lib.so as well as an interface stub file. Example: clang -shared -o libfoo.so -emit-interface-stubs ... will generate both a libfoo.so and a libfoo.ifso. The .so file will contain the code from the standard compilation pipeline and the .ifso file will contain the ELF stub library. Differential Revision: https://reviews.llvm.org/D70274
* Revert "[clang][IFS] Driver pipeline: generate interface stubs after ↵Puyan Lotfi2019-11-191-8/+6
| | | | | | | | | standard pipeline." This reverts commit 58ea00b51fe9b011301484957556872fced7dd08. Test for .o + .ifs sidecar files is brittle and failing on bots. Reverting to unblock.
* [clang][IFS] Driver pipeline: generate interface stubs after standard pipeline.Puyan Lotfi2019-11-191-6/+8
| | | | | | | | | | | | | | | | | Up until now, clang interface stubs has replaced the standard PP -> C -> BE -> ASM -> LNK pipeline. With this change, it will happen in conjunction with it. So what when you build your code you will get an a.out or lib.so as well as an interface stub file. Example: clang -shared -o libfoo.so -emit-interface-stubs ... will generate both a libfoo.so and a libfoo.ifso. The .so file will contain the code from the standard compilation pipeline and the .ifso file will contain the ELF stub library. Differential Revision: https://reviews.llvm.org/D70274
* [clang][IFS][test] Reverting driver-test.c to what it was prior to e782192d5e6Puyan Lotfi2019-11-141-7/+6
| | | | | | My mistake. Changes I had in this test were for code changes that are not landed yet. I am reverting driver-test.c back to what it was originally.
* [clang][IFS][test] Removing -shared, fixing triple: driver-test.c/windows.cpp.Puyan Lotfi2019-11-141-2/+2
| | | | | | | Removing -shared as it is not used on a lot of targets in order to green failing bots with this change. Also, tiding up the windows.cpp test as the triple compile out can look slightly different that what you specified on a windows bot.
* [clang][IFS][test][NFC] Tightening up clang-ifs tests to use -cc1 more often.Puyan Lotfi2019-11-141-6/+7
| | | | | | | Unless the test is explicitly testing a driver feature if clang interface stubs I have changed the tests to use %clang_cc1. This should make some changes I plan to make to the driver job pipeline cause fewer test changes and breakages.
* [clang][ifs] Clang Interface Stubs ToolChain plumbing.Puyan Lotfi2019-10-081-0/+11
| | | | | | | | | | | | | | | | | | | | | | | 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
* Revert 373538 and follow-ups 373549 and 373552.Nico Weber2019-10-031-19/+0
| | | | | | They break tests on (at least) macOS. llvm-svn: 373556
* Fixing broken builds due to r373538, issues with filepath and hexagon toolchain.Puyan Lotfi2019-10-031-9/+16
| | | | | | | | It appears there are some issues with the hexagon toolchain, and also the file path for the library file. If this doesn't fix the remaining breakages I will attempt a revert. llvm-svn: 373552
* [clang][ifs] Clang Interface Stubs ToolChain plumbing.Puyan Lotfi2019-10-021-0/+12
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: 373538
OpenPOWER on IntegriCloud