Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5a611268 authored by Brian Gerst's avatar Brian Gerst Committed by Ingo Molnar
Browse files

generic, x86: fix __per_cpu_load relocation



This patch fixes this linker error:

 WARNING: Absolute relocations present
 Offset     Info     Type     Sym.Value Sym.Name
 c0a4e07d 00e78001   R_386_32 c0ab0000  __per_cpu_load

Now, __per_cpu_load is a section-relative symbol:

 c0aa4000 D __per_cpu_load
 c0aa4000 A __per_cpu_load_abs

Signed-off-by: default avatarBrian Gerst <brgerst@gmail.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 99d0000f
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -451,17 +451,18 @@
 * end offset.
 */
#define PERCPU_VADDR(vaddr, phdr)					\
	VMLINUX_SYMBOL(__per_cpu_load) = .;				\
	.data.percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load)		\
	VMLINUX_SYMBOL(__per_cpu_load_abs) = .;				\
	.data.percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load_abs)	\
				- LOAD_OFFSET) {			\
		VMLINUX_SYMBOL(__per_cpu_start) = .;			\
		VMLINUX_SYMBOL(__per_cpu_load) = LOADADDR(.data.percpu) + LOAD_OFFSET;\
		*(.data.percpu.first)					\
		*(.data.percpu.page_aligned)				\
		*(.data.percpu)						\
		*(.data.percpu.shared_aligned)				\
		VMLINUX_SYMBOL(__per_cpu_end) = .;			\
	} phdr								\
	. = VMLINUX_SYMBOL(__per_cpu_load) + SIZEOF(.data.percpu);
	. = VMLINUX_SYMBOL(__per_cpu_load_abs) + SIZEOF(.data.percpu);

/**
 * PERCPU - define output section for percpu area, simple version