Commit | Line | Data |
---|---|---|
e4ff5b8f IY |
1 | # The gate DSO image is built using a special linker script. |
2 | ||
3 | targets += gate.so gate-syms.o | |
4 | ||
5 | extra-y += gate.so gate-syms.o gate.lds gate.o | |
6 | ||
7 | CPPFLAGS_gate.lds := -P -C -U$(ARCH) | |
8 | ||
9 | quiet_cmd_gate = GATE $@ | |
10 | cmd_gate = $(CC) -nostdlib $(GATECFLAGS_$(@F)) -Wl,-T,$(filter-out FORCE,$^) -o $@ | |
11 | ||
12 | GATECFLAGS_gate.so = -shared -s -Wl,-soname=linux-gate.so.1 \ | |
f86fd306 | 13 | $(call cc-ldoption, -Wl$(comma)--hash-style=sysv) |
e4ff5b8f IY |
14 | $(obj)/gate.so: $(obj)/gate.lds $(obj)/gate.o FORCE |
15 | $(call if_changed,gate) | |
16 | ||
17 | $(obj)/built-in.o: $(obj)/gate-syms.o | |
18 | $(obj)/built-in.o: ld_flags += -R $(obj)/gate-syms.o | |
19 | ||
20 | GATECFLAGS_gate-syms.o = -r | |
21 | $(obj)/gate-syms.o: $(obj)/gate.lds $(obj)/gate.o FORCE | |
22 | $(call if_changed,gate) | |
23 | ||
e1cb14b8 | 24 | # gate-data.o contains the gate DSO image as data in section .data..gate. |
e4ff5b8f IY |
25 | # We must build gate.so before we can assemble it. |
26 | # Note: kbuild does not track this dependency due to usage of .incbin | |
27 | $(obj)/gate-data.o: $(obj)/gate.so |