![Anton Blanchard](/assets/img/avatar_default.png)
Finally remove the two level TOC and build with -mcmodel=medium. Unfortunately we can't build modules with -mcmodel=medium due to the tricks the kernel module loader plays with percpu data: # -mcmodel=medium breaks modules because it uses 32bit offsets from # the TOC pointer to create pointers where possible. Pointers into the # percpu data area are created by this method. # # The kernel module loader relocates the percpu data section from the # original location (starting with 0xd...) to somewhere in the base # kernel percpu data space (starting with 0xc...). We need a full # 64bit relocation for this to work, hence -mcmodel=large. On older kernels we fall back to the two level TOC (-mminimal-toc) Signed-off-by: Anton Blanchard <anton@samba.org> Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
20 lines
666 B
Makefile
20 lines
666 B
Makefile
subdir-ccflags-$(CONFIG_PPC_WERROR) := -Werror
|
|
|
|
ccflags-$(CONFIG_PPC64) := $(NO_MINIMAL_TOC)
|
|
|
|
obj-$(CONFIG_OPROFILE) += oprofile.o
|
|
|
|
DRIVER_OBJS := $(addprefix ../../../drivers/oprofile/, \
|
|
oprof.o cpu_buffer.o buffer_sync.o \
|
|
event_buffer.o oprofile_files.o \
|
|
oprofilefs.o oprofile_stats.o \
|
|
timer_int.o )
|
|
|
|
oprofile-y := $(DRIVER_OBJS) common.o backtrace.o
|
|
oprofile-$(CONFIG_OPROFILE_CELL) += op_model_cell.o \
|
|
cell/spu_profiler.o cell/vma_map.o \
|
|
cell/spu_task_sync.o
|
|
oprofile-$(CONFIG_PPC_BOOK3S_64) += op_model_rs64.o op_model_power4.o op_model_pa6t.o
|
|
oprofile-$(CONFIG_FSL_EMB_PERFMON) += op_model_fsl_emb.o
|
|
oprofile-$(CONFIG_6xx) += op_model_7450.o
|