mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-11-27 01:11:31 +00:00
Previously, all the __exit sections were just dropped by the link phase. However, if there are static_key (jump label) constructs in __exit sections that are not modules, the link fails with the message: `.exit.text' referenced in section `__jump_table' of xxx.o: defined in discarded section `.exit.text' of xxx.o Support this usage by keeping the .exit.text sections in the final image if JUMP_LABEL is defined, then discarding them once initialization is complete. Link: http://lkml.kernel.org/r/bfd7c107c610c30e992868ebfe2a5d796a097464.1467837322.git.jbaron@akamai.com Signed-off-by: Jason Baron <jbaron@akamai.com> Signed-off-by: Chris Metcalf <cmetcalf@mellanox.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Joe Perches <joe@perches.com> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Michael Ellerman <mpe@ellerman.id.au> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> |
||
|---|---|---|
| .. | ||
| vdso | ||
| asm-offsets.c | ||
| backtrace.c | ||
| compat.c | ||
| compat_signal.c | ||
| early_printk.c | ||
| entry.S | ||
| ftrace.c | ||
| hardwall.c | ||
| head_32.S | ||
| head_64.S | ||
| hvglue.S | ||
| hvglue_trace.c | ||
| intvec_32.S | ||
| intvec_64.S | ||
| irq.c | ||
| jump_label.c | ||
| kgdb.c | ||
| kprobes.c | ||
| machine_kexec.c | ||
| Makefile | ||
| mcount_64.S | ||
| messaging.c | ||
| module.c | ||
| pci-dma.c | ||
| pci.c | ||
| pci_gx.c | ||
| perf_event.c | ||
| pmc.c | ||
| proc.c | ||
| process.c | ||
| ptrace.c | ||
| reboot.c | ||
| regs_32.S | ||
| regs_64.S | ||
| relocate_kernel_32.S | ||
| relocate_kernel_64.S | ||
| setup.c | ||
| signal.c | ||
| single_step.c | ||
| smp.c | ||
| smpboot.c | ||
| stack.c | ||
| sys.c | ||
| sysfs.c | ||
| tile-desc_32.c | ||
| tile-desc_64.c | ||
| time.c | ||
| tlb.c | ||
| traps.c | ||
| unaligned.c | ||
| usb.c | ||
| vdso.c | ||
| vmlinux.lds.S | ||