freebsd-dev/sys/arm
Mark Johnston 36716fe2e6 Prepare the kernel linker to handle PC-relative ifunc relocations.
The boot-time ifunc resolver assumes that it only needs to apply
IRELATIVE relocations to PLT entries.  With an upcoming optimization,
this assumption no longer holds, so add the support required to handle
PC-relative relocations targeting GNU_IFUNC symbols.
- Provide a custom symbol lookup routine that can be used in early boot.
  The default lookup routine uses kobj, which is not functional at that
  point.
- Apply all existing relocations during boot rather than filtering
  IRELATIVE relocations.
- Ensure that we continue to apply ifunc relocations in a second pass
  when loading a kernel module.

Reviewed by:	kib
MFC after:	1 month
Sponsored by:	The FreeBSD Foundation
Differential Revision:	https://reviews.freebsd.org/D16749
2018-08-22 20:44:30 +00:00
..
allwinner Eliminate kmem_alloc_contig()'s unused arena parameter. 2018-08-20 15:57:27 +00:00
altera/socfpga Remove IPI_IRQ_START and IPI_IRQ_END from the arm kernel config files. 2018-07-28 06:46:10 +00:00
amlogic/aml8726 Remove IPI_IRQ_START and IPI_IRQ_END from the arm kernel config files. 2018-07-28 06:46:10 +00:00
annapurna/alpine Remove IPI_IRQ_START and IPI_IRQ_END from the arm kernel config files. 2018-07-28 06:46:10 +00:00
arm Prepare the kernel linker to handle PC-relative ifunc relocations. 2018-08-22 20:44:30 +00:00
broadcom/bcm2835 evdev: remove soft context from evdev methods parameter list. 2018-08-13 19:00:42 +00:00
cloudabi32 Correct some more places where TO_PTR() should be used. 2017-11-26 14:53:56 +00:00
conf disconnect drm2 from tegra build until made self-contained 2018-08-22 02:18:45 +00:00
freescale Eliminate kmem_alloc_contig()'s unused arena parameter. 2018-08-20 15:57:27 +00:00
include Remove the L1 and L2 xscale page defines and rename the generic macros to 2018-08-16 10:00:51 +00:00
mv Remove PHYSADDR from kernel configurations that don't need it. The only 2018-08-15 13:13:19 +00:00
nvidia Move options INTRNG into std.armv6 and std.armv7 2018-08-20 20:31:53 +00:00
qemu Remove IPI_IRQ_START and IPI_IRQ_END from the arm kernel config files. 2018-07-28 06:46:10 +00:00
ralink Remove PHYSADDR from kernel configurations that don't need it. The only 2018-08-15 13:13:19 +00:00
rockchip Remove IPI_IRQ_START and IPI_IRQ_END from the arm kernel config files. 2018-07-28 06:46:10 +00:00
samsung/exynos Eliminate kmem_alloc_contig()'s unused arena parameter. 2018-08-20 15:57:27 +00:00
ti Use the cp15 functions to read cp15 registers rather than using assembly 2018-07-28 17:21:34 +00:00
versatile Revert r327250 as it broke the build for some armv6 kernel and all armv4/5 2017-12-28 07:31:14 +00:00
xilinx Remove IPI_IRQ_START and IPI_IRQ_END from the arm kernel config files. 2018-07-28 06:46:10 +00:00