Commit | Line | Data |
---|---|---|
779df224 SS |
1 | # SPDX-License-Identifier: GPL-2.0 |
2 | # List of files in the vdso | |
3 | ||
aff69273 | 4 | # Include the generic Makefile to check the built vdso. |
779df224 SS |
5 | include $(srctree)/lib/vdso/Makefile |
6 | obj-vdso32 = vdso_user_wrapper-32.o note-32.o | |
7 | ||
8 | # Build rules | |
9 | ||
10 | targets := $(obj-vdso32) vdso32.so vdso32.so.dbg | |
11 | obj-vdso32 := $(addprefix $(obj)/, $(obj-vdso32)) | |
12 | ||
13 | KBUILD_AFLAGS += -DBUILD_VDSO | |
14 | KBUILD_CFLAGS += -DBUILD_VDSO -DDISABLE_BRANCH_PROFILING | |
15 | ||
16 | KBUILD_AFLAGS_32 := $(filter-out -m64,$(KBUILD_AFLAGS)) | |
17 | KBUILD_AFLAGS_32 += -m31 -s | |
18 | ||
19 | KBUILD_CFLAGS_32 := $(filter-out -m64,$(KBUILD_CFLAGS)) | |
d15e4314 | 20 | KBUILD_CFLAGS_32 := $(filter-out -mno-pic-data-is-text-relative,$(KBUILD_CFLAGS_32)) |
779df224 SS |
21 | KBUILD_CFLAGS_32 += -m31 -fPIC -shared -fno-common -fno-builtin |
22 | ||
0628c039 | 23 | LDFLAGS_vdso32.so.dbg += -shared -soname=linux-vdso32.so.1 \ |
779df224 SS |
24 | --hash-style=both --build-id=sha1 -melf_s390 -T |
25 | ||
26 | $(targets:%=$(obj)/%.dbg): KBUILD_CFLAGS = $(KBUILD_CFLAGS_32) | |
27 | $(targets:%=$(obj)/%.dbg): KBUILD_AFLAGS = $(KBUILD_AFLAGS_32) | |
28 | ||
29 | obj-y += vdso32_wrapper.o | |
98f7cd23 | 30 | targets += vdso32.lds |
779df224 SS |
31 | CPPFLAGS_vdso32.lds += -P -C -U$(ARCH) |
32 | ||
779df224 SS |
33 | # Force dependency (incbin is bad) |
34 | $(obj)/vdso32_wrapper.o : $(obj)/vdso32.so | |
35 | ||
0dd0bbc2 SS |
36 | quiet_cmd_vdso_and_check = VDSO $@ |
37 | cmd_vdso_and_check = $(cmd_ld); $(cmd_vdso_check) | |
38 | ||
b957df3b | 39 | $(obj)/vdso32.so.dbg: $(obj)/vdso32.lds $(obj-vdso32) FORCE |
0dd0bbc2 | 40 | $(call if_changed,vdso_and_check) |
779df224 SS |
41 | |
42 | # strip rule for the .so file | |
43 | $(obj)/%.so: OBJCOPYFLAGS := -S | |
44 | $(obj)/%.so: $(obj)/%.so.dbg FORCE | |
45 | $(call if_changed,objcopy) | |
46 | ||
47 | $(obj-vdso32): %-32.o: %.S FORCE | |
48 | $(call if_changed_dep,vdso32as) | |
49 | ||
50 | # actual build commands | |
51 | quiet_cmd_vdso32as = VDSO32A $@ | |
52 | cmd_vdso32as = $(CC) $(a_flags) -c -o $@ $< | |
53 | quiet_cmd_vdso32cc = VDSO32C $@ | |
54 | cmd_vdso32cc = $(CC) $(c_flags) -c -o $@ $< | |
55 | ||
779df224 | 56 | # Generate VDSO offsets using helper script |
b1992c37 | 57 | gen-vdsosym := $(src)/gen_vdso_offsets.sh |
779df224 SS |
58 | quiet_cmd_vdsosym = VDSOSYM $@ |
59 | cmd_vdsosym = $(NM) $< | $(gen-vdsosym) | LC_ALL=C sort > $@ | |
60 | ||
61 | include/generated/vdso32-offsets.h: $(obj)/vdso32.so.dbg FORCE | |
62 | $(call if_changed,vdsosym) |