Peter Collingbourne
a6367d9136
Teach LTOModule to emit linker flags for dllexported symbols, plus interface cleanup.
...
This change unifies how LTOModule and the backend obtain linker flags
for globals: via a new TargetLoweringObjectFile member function named
emitLinkerFlagsForGlobal. A new function LTOModule::getLinkerOpts() returns
the list of linker flags as a single concatenated string.
This change affects the C libLTO API: the function lto_module_get_*deplibs now
exposes an empty list, and lto_module_get_*linkeropts exposes a single element
which combines the contents of all observed flags. libLTO should never have
tried to parse the linker flags; it is the linker's job to do so. Because
linkers will need to be able to parse flags in regular object files, it
makes little sense for libLTO to have a redundant mechanism for doing so.
The new API is compatible with the old one. It is valid for a user to specify
multiple linker flags in a single pragma directive like this:
#pragma comment(linker, "/defaultlib:foo /defaultlib:bar")
The previous implementation would not have exposed
either flag via lto_module_get_*deplibs (as the test in
TargetLoweringObjectFileCOFF::getDepLibFromLinkerOpt was case sensitive)
and would have exposed "/defaultlib:foo /defaultlib:bar" as a single flag via
lto_module_get_*linkeropts. This may have been a bug in the implementation,
but it does give us a chance to fix the interface.
Differential Revision: http://reviews.llvm.org/D10548
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@241010 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-29 22:04:09 +00:00
..
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-04-29 16:38:44 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-04-29 16:38:44 +00:00
2015-05-26 18:35:10 +00:00
2015-06-17 20:52:32 +00:00
2015-05-26 18:35:10 +00:00
2015-04-29 16:38:44 +00:00
2015-04-29 16:38:44 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-05-06 19:11:20 +00:00
2015-05-06 19:11:20 +00:00
2015-04-29 16:38:44 +00:00
2015-04-29 16:38:44 +00:00
2015-04-29 16:38:44 +00:00
2015-06-17 20:52:32 +00:00
2015-04-29 16:38:44 +00:00
2015-04-29 16:38:44 +00:00
2015-05-26 18:35:10 +00:00
2015-04-29 16:38:44 +00:00
2015-04-29 16:38:44 +00:00
2015-06-11 07:46:37 +00:00
2015-06-17 20:52:32 +00:00
2015-05-26 18:35:10 +00:00
2015-06-17 20:52:32 +00:00
2015-06-16 15:51:48 +00:00
2015-04-29 16:38:44 +00:00
2015-06-17 20:52:32 +00:00
2015-04-29 16:38:44 +00:00
2015-05-23 00:31:56 +00:00
2015-06-17 20:52:32 +00:00
2015-06-29 21:35:51 +00:00
2015-06-29 21:35:51 +00:00
2015-05-26 18:35:10 +00:00
2015-05-26 18:35:10 +00:00
2015-05-26 18:35:10 +00:00
2015-06-11 07:46:37 +00:00
2015-05-26 11:32:39 +00:00
2015-06-22 09:01:15 +00:00
2015-05-14 09:04:45 +00:00
2015-05-10 14:23:52 +00:00
2015-06-29 09:10:00 +00:00
2015-06-29 09:10:00 +00:00
2015-06-29 12:14:24 +00:00
2015-05-20 14:32:03 +00:00
2015-06-28 14:30:39 +00:00
2015-05-17 07:28:51 +00:00
2015-05-25 11:33:13 +00:00
2015-05-20 14:32:03 +00:00
2015-05-12 13:25:46 +00:00
2015-05-27 14:09:33 +00:00
2015-05-18 07:06:23 +00:00
2015-06-10 06:49:28 +00:00
2015-06-23 08:19:46 +00:00
2015-06-29 09:10:00 +00:00
2015-05-04 12:59:15 +00:00
2015-05-11 06:05:05 +00:00
2015-06-28 14:30:39 +00:00
2015-05-30 06:02:37 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-13 16:25:12 +00:00
2015-06-05 10:29:55 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-05-18 23:35:09 +00:00
2015-05-20 22:31:55 +00:00
2015-05-26 18:35:10 +00:00
2015-06-17 20:52:32 +00:00
2015-06-19 01:53:21 +00:00
2015-05-18 23:35:09 +00:00
2015-05-29 18:19:25 +00:00
2015-05-12 01:26:05 +00:00
2015-04-29 16:38:44 +00:00
2015-04-29 16:38:44 +00:00
2015-04-29 16:38:44 +00:00
2015-06-09 19:07:19 +00:00
2015-06-29 22:04:09 +00:00
2015-06-29 22:04:09 +00:00
2015-06-11 21:42:18 +00:00
2015-04-29 16:38:44 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-05-06 10:19:14 +00:00
2015-05-06 16:43:21 +00:00
2015-06-17 20:52:32 +00:00
2015-05-05 23:41:53 +00:00
2015-06-17 20:52:32 +00:00
2015-05-06 21:37:19 +00:00
2015-05-08 18:29:42 +00:00
2015-04-29 23:51:33 +00:00
2015-05-12 01:26:05 +00:00
2015-06-25 00:40:25 +00:00
2015-06-25 00:40:25 +00:00
2015-06-25 00:40:25 +00:00
2015-06-25 00:44:46 +00:00
2015-06-22 20:51:51 +00:00
2015-05-01 08:20:04 +00:00
2015-06-29 20:28:47 +00:00
2015-05-01 08:20:04 +00:00
2015-06-23 00:39:40 +00:00
2015-05-19 11:06:56 +00:00
2015-04-29 16:38:44 +00:00
2015-05-04 23:22:36 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 23:55:17 +00:00
2015-06-17 20:52:32 +00:00
2015-05-11 17:14:39 +00:00
2015-05-12 07:33:07 +00:00
2015-05-26 18:35:10 +00:00
2015-05-19 11:06:56 +00:00
2015-06-29 21:27:36 +00:00
2015-06-22 18:03:02 +00:00
2015-06-17 20:52:32 +00:00
2015-04-30 22:11:59 +00:00
2015-04-30 22:11:59 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-05-07 10:18:28 +00:00
2015-06-23 00:39:40 +00:00
2015-05-29 01:40:00 +00:00
2015-05-07 17:22:06 +00:00
2015-04-29 16:38:44 +00:00
2015-05-03 07:12:25 +00:00
2015-05-03 07:12:25 +00:00
2015-05-09 03:13:37 +00:00
2015-06-16 22:37:50 +00:00
2015-04-29 16:38:44 +00:00
2015-06-22 08:31:22 +00:00
2015-04-29 16:38:44 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-18 18:31:46 +00:00
2015-05-28 20:44:28 +00:00
2015-06-16 06:07:24 +00:00
2015-06-17 20:52:32 +00:00
2015-05-26 18:35:10 +00:00
2015-05-21 10:05:03 +00:00
2015-05-26 18:35:10 +00:00
2015-04-30 21:03:29 +00:00
2015-06-02 22:33:30 +00:00
2015-05-28 22:12:27 +00:00
2015-06-22 01:29:24 +00:00
2015-04-27 23:35:22 +00:00
2015-06-22 18:29:44 +00:00
2015-06-24 12:49:42 +00:00
2015-06-17 20:52:32 +00:00
2015-06-27 20:33:26 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-04-28 14:46:35 +00:00
2015-06-26 14:51:49 +00:00
2015-06-04 22:50:05 +00:00
2015-05-12 01:26:05 +00:00
2015-04-30 21:22:28 +00:00
2015-06-17 20:52:32 +00:00
2015-06-22 18:29:44 +00:00
2015-05-18 23:35:09 +00:00
2015-05-21 14:01:32 +00:00
2015-05-21 14:01:32 +00:00
2015-05-02 11:50:47 +00:00
2015-05-21 14:01:32 +00:00
2015-05-07 15:48:53 +00:00
2015-05-04 21:27:27 +00:00
2015-06-21 16:07:47 +00:00
2015-06-22 21:10:42 +00:00
2015-06-07 18:34:25 +00:00
2015-04-29 16:38:44 +00:00
2015-06-17 20:52:32 +00:00
2015-04-29 16:38:44 +00:00
2015-06-26 00:26:44 +00:00
2015-05-12 23:52:24 +00:00
2015-05-12 23:52:24 +00:00
2015-06-04 23:03:21 +00:00
2015-05-12 23:52:24 +00:00
2015-05-12 23:52:24 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-25 00:28:42 +00:00
2015-06-04 22:05:51 +00:00
2015-06-20 17:14:07 +00:00
2015-05-28 20:44:28 +00:00
2015-05-28 20:44:28 +00:00
2015-05-28 20:44:28 +00:00
2015-05-08 23:52:00 +00:00
2015-05-20 04:45:26 +00:00
2015-06-18 21:34:26 +00:00
2015-04-29 16:38:44 +00:00
2015-05-21 10:05:03 +00:00
2015-05-29 18:19:25 +00:00
2015-06-20 16:19:24 +00:00
2015-06-08 19:58:43 +00:00
2015-06-08 19:58:43 +00:00
2015-06-07 16:09:48 +00:00
2015-06-07 16:09:48 +00:00
2015-05-21 10:05:03 +00:00
2015-06-23 21:18:15 +00:00
2015-06-24 13:52:25 +00:00
2015-06-23 21:18:15 +00:00
2015-06-24 13:52:25 +00:00
2015-06-23 21:18:15 +00:00
2015-06-24 13:52:25 +00:00
2015-06-24 00:03:48 +00:00
2015-06-24 00:03:48 +00:00
2015-06-24 00:07:16 +00:00
2015-06-24 00:03:48 +00:00
2015-06-22 09:01:15 +00:00
2015-06-08 09:57:09 +00:00
2015-06-08 09:57:09 +00:00
2015-05-29 18:19:25 +00:00
2015-05-21 10:05:03 +00:00
2015-04-30 22:11:59 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-17 20:52:32 +00:00
2015-06-26 18:55:48 +00:00
2015-06-17 20:52:32 +00:00
2015-05-19 11:06:56 +00:00
2015-05-08 15:11:07 +00:00
2015-05-22 18:10:47 +00:00
2015-06-16 21:40:28 +00:00
2015-05-27 06:28:41 +00:00
2015-06-27 03:46:58 +00:00