|
5 | 5 | ARCH_REL_TYPE_ABS := R_PPC_JUMP_SLOT|R_PPC_GLOB_DAT|R_PPC_ADDR32|R_PPC_ADDR24|R_PPC_ADDR16|R_PPC_ADDR16_LO|R_PPC_ADDR16_HI|R_PPC_ADDR16_HA|R_PPC_ADDR14|R_PPC_ADDR14_BRTAKEN|R_PPC_ADDR14_BRNTAKEN|R_PPC_REL24 |
6 | 6 | include $(srctree)/lib/vdso/Makefile |
7 | 7 |
|
8 | | -obj-vdso32 = sigtramp.o gettimeofday.o datapage.o cacheflush.o note.o getcpu.o |
| 8 | +obj-vdso32 = sigtramp32-32.o gettimeofday-32.o datapage-32.o cacheflush-32.o note-32.o getcpu-32.o |
9 | 9 |
|
10 | 10 | ifneq ($(c-gettimeofday-y),) |
11 | | - CFLAGS_vgettimeofday.o += -include $(c-gettimeofday-y) |
12 | | - CFLAGS_vgettimeofday.o += $(DISABLE_LATENT_ENTROPY_PLUGIN) |
13 | | - CFLAGS_vgettimeofday.o += $(call cc-option, -fno-stack-protector) |
14 | | - CFLAGS_vgettimeofday.o += -DDISABLE_BRANCH_PROFILING |
15 | | - CFLAGS_vgettimeofday.o += -ffreestanding -fasynchronous-unwind-tables |
16 | | - CFLAGS_REMOVE_vgettimeofday.o = $(CC_FLAGS_FTRACE) |
| 11 | + CFLAGS_vgettimeofday-32.o += -include $(c-gettimeofday-y) |
| 12 | + CFLAGS_vgettimeofday-32.o += $(DISABLE_LATENT_ENTROPY_PLUGIN) |
| 13 | + CFLAGS_vgettimeofday-32.o += $(call cc-option, -fno-stack-protector) |
| 14 | + CFLAGS_vgettimeofday-32.o += -DDISABLE_BRANCH_PROFILING |
| 15 | + CFLAGS_vgettimeofday-32.o += -ffreestanding -fasynchronous-unwind-tables |
| 16 | + CFLAGS_REMOVE_vgettimeofday-32.o = $(CC_FLAGS_FTRACE) |
| 17 | + CFLAGS_REMOVE_vgettimeofday-32.o += -mcmodel=medium -mabi=elfv1 -mabi=elfv2 -mcall-aixdesc |
17 | 18 | endif |
18 | 19 |
|
19 | 20 | # Build rules |
|
24 | 25 | VDSOCC := $(CC) |
25 | 26 | endif |
26 | 27 |
|
27 | | -CC32FLAGS := |
28 | | -ifdef CONFIG_PPC64 |
29 | | -CC32FLAGS += -m32 |
30 | | -KBUILD_CFLAGS := $(filter-out -mcmodel=medium -mabi=elfv1 -mabi=elfv2 -mcall-aixdesc,$(KBUILD_CFLAGS)) |
31 | | -endif |
32 | | - |
33 | | -targets := $(obj-vdso32) vdso32.so.dbg vgettimeofday.o |
| 28 | +targets := $(obj-vdso32) vdso32.so.dbg vgettimeofday-32.o |
34 | 29 | obj-vdso32 := $(addprefix $(obj)/, $(obj-vdso32)) |
35 | 30 |
|
36 | 31 | GCOV_PROFILE := n |
37 | 32 | KCOV_INSTRUMENT := n |
38 | 33 | UBSAN_SANITIZE := n |
39 | 34 | KASAN_SANITIZE := n |
40 | 35 |
|
41 | | -ccflags-y := -shared -fno-common -fno-builtin -nostdlib \ |
42 | | - -Wl,-soname=linux-vdso32.so.1 -Wl,--hash-style=both |
43 | | -asflags-y := -D__VDSO32__ -s |
| 36 | +ccflags-y := -shared -fno-common -fno-builtin -nostdlib -Wl,--hash-style=both |
| 37 | + |
| 38 | +CC32FLAGS := -Wl,-soname=linux-vdso32.so.1 -m32 |
| 39 | +AS32FLAGS := -D__VDSO32__ -s |
44 | 40 |
|
45 | | -obj-y += vdso32_wrapper.o |
46 | 41 | targets += vdso32.lds |
47 | 42 | CPPFLAGS_vdso32.lds += -P -C -Upowerpc |
48 | 43 |
|
49 | 44 | # link rule for the .so file, .lds has to be first |
50 | | -$(obj)/vdso32.so.dbg: $(src)/vdso32.lds $(obj-vdso32) $(obj)/vgettimeofday.o FORCE |
| 45 | +$(obj)/vdso32.so.dbg: $(src)/vdso32.lds $(obj-vdso32) $(obj)/vgettimeofday-32.o FORCE |
51 | 46 | $(call if_changed,vdso32ld_and_check) |
52 | 47 |
|
53 | 48 | # assembly rules for the .S files |
54 | | -$(obj-vdso32): %.o: %.S FORCE |
| 49 | +$(obj-vdso32): %-32.o: %.S FORCE |
55 | 50 | $(call if_changed_dep,vdso32as) |
56 | | -$(obj)/vgettimeofday.o: %.o: %.c FORCE |
| 51 | +$(obj)/vgettimeofday-32.o: %-32.o: %.c FORCE |
57 | 52 | $(call if_changed_dep,vdso32cc) |
58 | 53 |
|
59 | 54 | # Generate VDSO offsets using helper script |
60 | | -gen-vdsosym := $(srctree)/$(src)/gen_vdso_offsets.sh |
61 | | -quiet_cmd_vdsosym = VDSOSYM $@ |
62 | | - cmd_vdsosym = $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@ |
| 55 | +gen-vdso32sym := $(srctree)/$(src)/gen_vdso32_offsets.sh |
| 56 | +quiet_cmd_vdso32sym = VDSO32SYM $@ |
| 57 | + cmd_vdso32sym = $(NM) $< | $(gen-vdso32sym) | LC_ALL=C sort > $@ |
63 | 58 |
|
64 | 59 | include/generated/vdso32-offsets.h: $(obj)/vdso32.so.dbg FORCE |
65 | | - $(call if_changed,vdsosym) |
| 60 | + $(call if_changed,vdso32sym) |
66 | 61 |
|
67 | 62 | # actual build commands |
68 | 63 | quiet_cmd_vdso32ld_and_check = VDSO32L $@ |
69 | 64 | cmd_vdso32ld_and_check = $(VDSOCC) $(c_flags) $(CC32FLAGS) -o $@ -Wl,-T$(filter %.lds,$^) $(filter %.o,$^) ; $(cmd_vdso_check) |
70 | 65 | quiet_cmd_vdso32as = VDSO32A $@ |
71 | | - cmd_vdso32as = $(VDSOCC) $(a_flags) $(CC32FLAGS) -c -o $@ $< |
| 66 | + cmd_vdso32as = $(VDSOCC) $(a_flags) $(CC32FLAGS) $(AS32FLAGS) -c -o $@ $< |
72 | 67 | quiet_cmd_vdso32cc = VDSO32C $@ |
73 | 68 | cmd_vdso32cc = $(VDSOCC) $(c_flags) $(CC32FLAGS) -c -o $@ $< |
0 commit comments