Brad King
9f5c2040bf
AIX: Explicitly compute executable exports for both XL and GNU
...
On AIX, symbols in executables must be exported in order to be visible
to modules (plugins) they load via `dlopen`. Prior to policy `CMP0065`,
CMake linked all executables with flags to export symbols, but the NEW
behavior for that policy is to do so only for executables that have the
`ENABLE_EXPORTS` target property set. In both cases, CMake has always
used the AIX linker option `-bexpall` option to export symbols from
executables.
This has worked fairly well with the XL compiler, but with the GNU
compiler it works only for C ABI symbols. The reason is that `-bexpall`
does not export symbols starting in `_` but the GNU C++ ABI mangles all
symbols with a leading `_`. Therefore we have only supported C ABI
plugins with the GNU compiler on AIX. Some projects have tried to work
around this by replacing `-bexpall` with `-bexpfull`, but the latter
often exports symbols that we do not want exported.
Avoid using `-bexpall` for executables by instead using by our own
internal `ExportImportList` script to compute symbol export lists from
the object files to be linked into an executable. Pass the explicitly
computed export list to the AIX linker's `-bE:...` option. We already
do this for shared object exports.
Issue: #19163
2019-07-15 13:27:16 -04:00
..
2019-07-15 13:27:16 -04:00
2019-06-19 08:12:45 -04:00
2016-06-20 09:59:31 -04:00
2016-06-20 09:59:31 -04:00
2016-09-05 09:45:13 -04:00
2019-07-15 13:27:16 -04:00
2017-04-27 13:29:28 -04:00
2017-04-27 13:29:28 -04:00
2019-07-15 13:27:16 -04:00
2019-02-25 08:24:28 -05:00
2019-02-25 08:24:28 -05:00
2019-02-25 08:24:28 -05:00
2016-05-17 13:36:29 -04:00
2017-01-10 14:12:46 -05:00
2016-08-12 10:40:51 -04:00
2018-04-03 14:34:57 -04:00
2018-10-05 10:23:52 -04:00
2018-08-28 09:27:26 -04:00
2016-08-12 10:40:51 -04:00
2016-08-12 10:40:51 -04:00
2018-09-12 14:50:16 +08:00
2016-08-12 10:40:51 -04:00
2018-04-03 14:34:57 -04:00
2016-09-27 15:14:44 -04:00
2017-06-12 11:47:30 -04:00
2019-03-05 23:44:42 +08:00
2018-04-18 07:41:42 -04:00
2018-04-18 07:41:42 -04:00
2018-04-18 07:41:42 -04:00
2018-04-18 07:41:42 -04:00
2018-04-18 07:41:42 -04:00
2018-04-18 07:41:44 -04:00
2018-04-18 07:41:42 -04:00
2018-04-18 07:41:42 -04:00
2018-04-18 07:41:42 -04:00
2018-04-18 07:41:44 -04:00
2018-04-18 07:41:42 -04:00
2018-04-18 07:41:42 -04:00
2018-04-18 07:41:42 -04:00
2018-06-06 17:22:41 +02:00
2018-04-18 07:41:42 -04:00
2018-04-18 07:41:42 -04:00
2018-04-18 07:41:42 -04:00
2018-04-18 07:41:42 -04:00
2018-04-18 07:41:42 -04:00
2018-04-18 07:41:44 -04:00
2018-04-18 07:41:42 -04:00
2018-04-18 07:41:42 -04:00
2019-07-15 07:45:04 -04:00
2019-07-15 07:45:04 -04:00
2016-07-06 10:13:31 -04:00
2015-08-17 10:32:50 -04:00
2016-09-27 15:14:44 -04:00
2016-09-27 15:14:44 -04:00
2016-09-27 15:14:44 -04:00
2016-09-27 15:14:44 -04:00
2017-04-27 13:29:28 -04:00
2017-04-27 13:29:28 -04:00
2016-09-27 15:14:44 -04:00
2016-09-27 15:14:44 -04:00
2016-09-27 15:14:44 -04:00
2016-09-27 15:14:44 -04:00
2016-09-27 15:14:44 -04:00
2017-04-27 13:29:28 -04:00
2017-04-27 13:29:28 -04:00
2016-09-27 15:14:44 -04:00
2016-09-27 15:14:44 -04:00
2016-09-27 15:14:44 -04:00
2016-09-27 15:14:44 -04:00
2016-09-27 15:14:44 -04:00
2016-09-27 15:14:44 -04:00
2017-04-27 13:29:28 -04:00
2017-04-27 13:29:28 -04:00
2016-09-27 15:14:44 -04:00
2016-09-27 15:14:44 -04:00
2016-09-27 15:14:44 -04:00
2016-09-27 15:14:44 -04:00
2016-09-27 15:14:44 -04:00
2017-04-27 13:29:28 -04:00
2017-04-27 13:29:28 -04:00
2016-09-27 15:14:44 -04:00
2016-09-27 15:14:44 -04:00
2019-02-19 06:50:22 -07:00
2016-03-10 09:35:48 -05:00
2016-03-10 09:35:48 -05:00
2016-06-02 09:51:43 -04:00
2018-12-19 19:41:27 +11:00
2015-07-13 10:49:46 -04:00
2017-03-16 06:04:29 -04:00
2016-06-02 09:51:43 -04:00
2019-02-04 09:03:35 -05:00
2019-04-30 19:10:08 +02:00
2018-10-26 09:27:29 -04:00
2014-10-20 11:49:16 -04:00
2015-07-14 14:33:20 -04:00
2017-09-20 10:52:29 +02:00
2018-11-11 17:34:09 +01:00
2018-12-19 19:41:27 +11:00
2016-03-29 09:19:10 -04:00
2016-03-29 09:19:10 -04:00
2018-06-06 17:22:41 +02:00
2018-06-06 17:22:41 +02:00
2018-06-06 17:22:41 +02:00
2019-03-29 12:38:12 -04:00
2016-09-27 15:14:44 -04:00
2018-10-03 13:12:21 -04:00
2017-08-25 14:24:24 -04:00
2018-10-26 09:26:47 -04:00
2015-05-04 11:06:16 -04:00
2016-09-05 09:45:13 -04:00
2017-05-17 11:26:11 -06:00
2015-07-13 10:49:46 -04:00
2016-07-06 10:13:31 -04:00
2015-07-13 10:49:46 -04:00
2016-09-27 15:14:44 -04:00
2016-05-17 13:36:29 -04:00
2019-02-04 09:03:35 -05:00
2019-03-05 09:42:41 -05:00
2019-02-04 09:03:35 -05:00
2015-06-18 11:36:12 -04:00
2016-06-02 09:51:43 -04:00
2015-06-16 13:58:41 -04:00
2018-06-01 09:21:06 +02:00
2016-07-28 00:41:13 +02:00
2018-12-19 19:41:27 +11:00
2016-09-27 15:14:44 -04:00
2018-12-19 19:41:27 +11:00
2017-04-17 17:34:52 +02:00
2019-07-15 07:45:04 -04:00
2019-07-15 07:45:04 -04:00
2019-07-15 07:45:04 -04:00
2018-10-26 09:25:51 -04:00
2017-09-20 14:44:30 -04:00
2018-11-11 17:34:09 +01:00
2018-10-26 09:27:29 -04:00
2016-08-02 10:09:52 -04:00
2018-12-19 19:41:27 +11:00
2018-10-26 09:26:47 -04:00
2016-06-06 08:58:20 -04:00
2016-06-06 08:58:20 -04:00
2016-06-06 08:58:20 -04:00
2016-09-27 15:14:44 -04:00
2019-05-14 15:26:46 -04:00
2019-02-04 09:03:35 -05:00
2019-02-04 09:03:35 -05:00
2019-02-04 09:03:35 -05:00
2018-12-19 19:41:27 +11:00
2019-02-18 17:09:26 -05:00
2018-12-19 19:41:27 +11:00
2019-02-04 09:03:35 -05:00
2019-02-04 09:03:35 -05:00
2019-02-04 09:03:35 -05:00
2017-10-25 07:36:10 -04:00
2019-05-23 23:35:33 +02:00
2016-06-02 09:51:43 -04:00
2018-04-02 10:08:10 -04:00
2018-06-06 17:22:41 +02:00
2017-10-31 08:48:15 -04:00
2018-12-19 19:41:27 +11:00
2019-01-30 14:59:23 -05:00
2019-01-30 14:59:23 -05:00
2019-04-19 12:56:49 -04:00
2018-08-07 08:32:31 -04:00
2015-01-14 13:35:58 -05:00
2015-01-14 13:35:58 -05:00
2019-05-30 13:11:34 -04:00
2019-06-26 08:36:48 -04:00
2016-07-06 10:10:10 -04:00
2016-07-06 10:10:10 -04:00
2016-09-27 15:14:44 -04:00
2017-05-20 20:02:51 +02:00
2017-05-20 20:02:51 +02:00
2017-05-20 20:02:51 +02:00
2016-07-06 10:10:10 -04:00
2016-07-06 10:10:10 -04:00
2015-07-13 10:49:46 -04:00
2016-11-09 16:19:07 -05:00
2016-09-27 15:14:44 -04:00
2018-07-08 00:06:37 +03:00
2018-07-08 00:06:37 +03:00
2018-07-08 00:06:37 +03:00
2018-07-08 00:06:37 +03:00
2014-07-31 14:08:50 -04:00
2014-07-31 14:08:50 -04:00
2014-07-31 14:08:50 -04:00
2018-07-08 00:06:37 +03:00
2018-07-08 00:06:37 +03:00
2018-07-08 00:06:37 +03:00
2018-07-08 00:06:37 +03:00
2014-07-31 14:08:50 -04:00
2014-07-31 14:08:50 -04:00
2014-07-31 14:08:50 -04:00