Fangrui Song
e8054f0933
[PPC32] Emit R_PPC_PLTREL24 for calls to dso_local ifunc
...
static void *ifunc(void) __attribute__((ifunc("resolver")));
void foo() { ifunc(); }
The relocation produced by the ifunc() call:
1. gcc -msecure-plt -fPIC => R_PPC_PLTREL24 r_addend=0x8000
2. gcc -msecure-plt -PIE => R_PPC_PLTREL24 r_addend=0x8000
3. clang -msecure-plt -fPIC => R_PPC_PLTREL24 r_addend=0x8000
4. clang -msecure-plt -fPIE => R_PPC_REL24
4 is incorrect. The R_PPC_REL24 needs a call stub due to ifunc. If this
relocation is mixed with other R_PPC_PLTREL24(r_addend=0x8000) in a
function, both GNU ld and lld (after D71621 fix) may produce a wrong
result.
This patch fixes 4 to use R_PPC_PLTREL24, which matches GCC.
Both GNU ld and lld (after D71621) will be happy.
Reviewed By: sfertile
Differential Revision: https://reviews.llvm.org/D71649
2019-12-20 11:32:02 -08:00
..
2019-12-19 09:27:13 -06:00
2019-12-19 09:27:13 -06:00
2019-07-22 19:55:33 +00:00
2019-09-11 11:16:48 +00:00
2019-11-07 19:33:15 -06:00
2019-11-26 23:58:00 -05:00
2019-09-11 11:16:48 +00:00
2019-11-29 12:46:53 -05:00
2019-10-28 12:44:22 -04:00
2019-12-04 16:44:44 +00:00
2019-12-13 20:07:00 -05:00
2019-11-27 17:20:55 -05:00
2019-11-27 17:20:55 -05:00
2019-11-27 17:20:55 -05:00
2019-08-13 17:05:53 +00:00
2019-10-28 12:44:22 -04:00
2019-10-15 17:09:54 +00:00
2019-10-11 15:07:28 +00:00
2019-10-28 12:44:22 -04:00
2019-10-28 12:44:22 -04:00
2019-12-13 20:07:00 -05:00
2019-11-25 15:02:01 +00:00
2019-11-26 16:09:31 +00:00
2019-12-04 16:44:44 +00:00
2019-11-11 18:52:10 -05:00
2019-11-08 09:30:10 -05:00
2019-12-10 11:14:49 -05:00
2019-11-22 15:49:37 +00:00
2019-12-06 10:12:09 -05:00
2019-12-19 21:20:33 +00:00
2019-08-29 19:03:58 +00:00
2019-12-19 09:27:13 -06:00
2019-08-19 14:19:04 +00:00
2019-08-29 21:53:59 +00:00
2019-09-11 11:16:48 +00:00
2019-12-06 09:53:53 -08:00
2019-12-06 09:53:53 -08:00
2019-10-22 12:20:38 +00:00
2019-08-15 14:32:51 +00:00
2019-11-12 15:18:54 +00:00
2019-08-29 21:53:59 +00:00
2019-11-27 14:30:06 -06:00
2019-08-29 19:03:58 +00:00
2019-09-11 11:16:48 +00:00
2019-10-03 19:36:42 +00:00
2019-09-20 20:31:37 +00:00
2019-12-09 19:21:34 +00:00
2019-09-11 11:16:48 +00:00
2019-12-09 19:21:34 +00:00
2019-09-11 11:16:48 +00:00
2019-11-25 11:41:34 -06:00
2019-09-20 20:31:37 +00:00
2019-10-28 19:13:33 -05:00
2019-07-25 01:22:08 +00:00
2019-07-25 01:22:08 +00:00
2019-09-20 20:31:37 +00:00
2019-10-15 10:46:24 +00:00
2019-08-29 21:53:59 +00:00
2019-11-11 20:40:40 -06:00
2019-11-11 20:40:40 -06:00
2019-09-20 20:31:37 +00:00
2019-12-06 09:53:53 -08:00
2019-09-11 11:16:48 +00:00
2019-09-11 11:16:48 +00:00
2019-09-11 11:16:48 +00:00
2019-09-11 11:16:48 +00:00
2019-09-11 11:16:48 +00:00
2019-09-11 11:16:48 +00:00
2019-09-11 11:16:48 +00:00
2019-09-11 11:16:48 +00:00
2019-09-11 11:16:48 +00:00
2019-09-11 11:16:48 +00:00
2019-09-20 20:31:37 +00:00
2019-11-05 11:58:50 +00:00
2019-11-05 11:58:50 +00:00
2019-10-03 19:36:42 +00:00
2019-09-19 18:18:18 +00:00
2019-09-19 18:18:18 +00:00
2019-09-19 18:18:18 +00:00
2019-09-19 18:18:18 +00:00
2019-09-26 15:11:33 +00:00
2019-08-30 19:24:25 +00:00
2019-11-18 15:53:32 -06:00
2019-10-03 19:36:42 +00:00
2019-10-03 19:36:42 +00:00
2019-07-31 21:57:28 +00:00
2019-07-31 21:57:28 +00:00
2019-08-27 15:17:46 +00:00
2019-10-25 04:13:30 -04:00
2019-12-03 21:51:19 -05:00
2019-12-03 21:51:19 -05:00
2019-08-29 21:53:59 +00:00
2019-08-30 19:24:25 +00:00
2019-08-29 21:53:59 +00:00
2019-10-04 17:03:46 +00:00
2019-08-29 21:53:59 +00:00
2019-12-09 19:21:34 +00:00
2019-12-20 11:32:02 -08:00
2019-09-12 22:07:35 +00:00
2019-11-25 11:41:34 -06:00
2019-08-29 21:53:59 +00:00
2019-11-06 02:46:37 +00:00
2019-08-30 19:24:25 +00:00
2019-11-08 15:32:31 +00:00
2019-08-29 19:03:58 +00:00
2019-07-22 19:55:33 +00:00
2019-09-17 16:45:20 +00:00
2019-08-01 05:26:02 +00:00
2019-12-18 21:06:57 -05:00
2019-11-27 17:20:55 -05:00
2019-08-13 20:29:01 +00:00
2019-11-27 17:20:55 -05:00
2019-08-13 20:29:01 +00:00
2019-11-04 17:17:24 +00:00
2019-11-04 17:17:24 +00:00
2019-12-05 14:32:11 +08:00
2019-11-12 15:18:54 +00:00
2019-08-30 19:24:25 +00:00
2019-08-30 19:24:25 +00:00
2019-09-10 10:39:09 +00:00
2019-09-10 10:39:09 +00:00
2019-10-30 09:12:57 +02:00
2019-09-10 10:39:09 +00:00
2019-11-12 15:18:54 +00:00
2019-12-07 14:51:20 +08:00
2019-12-06 09:53:53 -08:00
2019-09-11 11:16:48 +00:00
2019-09-11 11:16:48 +00:00
2019-12-09 19:21:34 +00:00
2019-09-11 11:16:48 +00:00
2019-12-09 19:21:34 +00:00
2019-10-28 10:07:12 -04:00
2019-10-28 10:07:12 -04:00
2019-09-17 16:45:20 +00:00
2019-08-29 21:53:59 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-07-23 03:34:40 +00:00
2019-07-23 03:34:40 +00:00
2019-11-26 23:58:00 -05:00
2019-12-17 21:10:36 +01:00
2019-08-13 07:53:29 +00:00
2019-08-29 21:53:59 +00:00
2019-08-29 21:53:59 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-12-02 10:28:40 -08:00
2019-09-28 13:34:53 +00:00
2019-11-01 16:25:32 +01:00
2019-12-11 20:32:29 +01:00
2019-10-22 12:20:38 +00:00
2019-10-28 17:23:08 -05:00
2019-12-02 08:56:04 -06:00
2019-12-16 10:21:55 +08:00
2019-08-30 19:24:25 +00:00
2019-09-13 14:18:36 +00:00
2019-07-23 03:34:40 +00:00
2019-09-17 16:45:20 +00:00
2019-09-12 07:51:24 +00:00
2019-09-12 07:51:24 +00:00
2019-09-16 20:04:15 +00:00
2019-12-05 14:32:11 +08:00
2019-09-11 11:16:48 +00:00
2019-09-11 11:16:48 +00:00
2019-08-30 19:24:25 +00:00
2019-10-11 05:32:29 +00:00
2019-09-11 11:16:48 +00:00
2019-10-03 19:36:42 +00:00
2019-12-09 19:21:34 +00:00
2019-08-15 14:32:51 +00:00
2019-10-28 19:13:33 -05:00
2019-09-11 11:16:48 +00:00
2019-10-30 07:59:32 +00:00
2019-08-29 21:53:59 +00:00
2019-08-15 14:32:51 +00:00
2019-09-11 11:16:48 +00:00
2019-09-11 11:16:48 +00:00
2019-09-11 11:16:48 +00:00
2019-08-29 21:53:59 +00:00
2019-11-14 10:57:05 +00:00
2019-10-02 20:25:16 +00:00
2019-12-17 07:04:19 +00:00
2019-07-24 22:57:22 +00:00
2019-08-12 17:50:01 +00:00
2019-09-11 11:16:48 +00:00
2019-08-15 14:32:51 +00:00
2019-12-02 10:28:40 -08:00
2019-09-04 19:16:04 +00:00
2019-08-30 19:24:25 +00:00
2019-08-08 17:37:58 +00:00
2019-08-30 19:24:25 +00:00
2019-08-08 17:37:58 +00:00
2019-10-22 21:50:50 +00:00
2019-09-07 12:16:23 +00:00
2019-11-24 00:27:40 -06:00
2019-12-19 09:27:13 -06:00
2019-10-05 14:29:25 +00:00
2019-07-25 22:23:48 +00:00
2019-08-29 21:53:59 +00:00
2019-09-10 02:28:24 +00:00
2019-12-09 01:08:18 +01:00
2019-12-19 09:27:13 -06:00
2019-09-12 22:07:35 +00:00
2019-11-17 21:38:43 -05:00
2019-09-17 16:45:20 +00:00
2019-08-13 17:05:53 +00:00
2019-09-26 19:38:32 +00:00
2019-08-30 19:24:25 +00:00
2019-08-30 19:24:25 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-20 20:31:37 +00:00
2019-09-11 11:16:48 +00:00
2019-09-11 11:16:48 +00:00
2019-08-30 02:57:33 +00:00
2019-10-22 12:20:38 +00:00
2019-12-13 14:03:54 -05:00
2019-11-12 15:18:54 +00:00
2019-08-29 21:53:59 +00:00
2019-09-07 12:16:14 +00:00
2019-12-19 09:27:13 -06:00
2019-08-23 13:30:45 +00:00
2019-12-19 09:27:13 -06:00
2019-10-05 14:29:25 +00:00
2019-11-11 17:28:50 +00:00
2019-12-11 07:25:57 +00:00
2019-08-15 14:32:51 +00:00
2019-08-22 20:42:50 +00:00
2019-11-05 11:58:50 +00:00
2019-08-29 21:53:59 +00:00
2019-08-29 21:53:59 +00:00
2019-08-29 21:53:59 +00:00
2019-11-05 11:58:50 +00:00
2019-11-05 11:58:50 +00:00
2019-11-25 08:21:12 +00:00
2019-08-22 20:26:56 +00:00
2019-08-22 20:26:56 +00:00
2019-08-22 20:26:56 +00:00
2019-08-22 20:26:56 +00:00
2019-12-17 19:07:34 -06:00
2019-10-22 12:20:38 +00:00
2019-12-17 21:10:36 +01:00
2019-11-22 08:58:27 +00:00
2019-08-15 14:32:51 +00:00
2019-11-19 13:18:44 +00:00
2019-08-01 05:26:02 +00:00
2019-09-28 13:34:53 +00:00
2019-09-17 16:45:20 +00:00
2019-09-20 20:31:37 +00:00