Commit | Line | Data |
---|---|---|
b3266bd6 JS |
1 | # |
2 | # arch/x86/realmode/Makefile | |
3 | # | |
4 | # This file is subject to the terms and conditions of the GNU General Public | |
5 | # License. See the file "COPYING" in the main directory of this archive | |
6 | # for more details. | |
7 | # | |
8 | # | |
c0dd6716 JP |
9 | KASAN_SANITIZE := n |
10 | OBJECT_FILES_NON_STANDARD := y | |
b3266bd6 | 11 | |
5c9a8750 DV |
12 | # Prevents link failures: __sanitizer_cov_trace_pc() is not linked in. |
13 | KCOV_INSTRUMENT := n | |
14 | ||
0f6f11eb | 15 | always := realmode.bin realmode.relocs |
c4845474 JS |
16 | |
17 | wakeup-objs := wakeup_asm.o wakemain.o video-mode.o | |
18 | wakeup-objs += copy.o bioscall.o regs.o | |
19 | # The link order of the video-*.o modules can matter. In particular, | |
20 | # video-vga.o *must* be listed first, followed by video-vesa.o. | |
21 | # Hardware-specific drivers should follow in the order they should be | |
22 | # probed, and video-bios.o should typically be last. | |
23 | wakeup-objs += video-vga.o | |
24 | wakeup-objs += video-vesa.o | |
25 | wakeup-objs += video-bios.o | |
b3266bd6 | 26 | |
0f6f11eb PA |
27 | realmode-y += header.o |
28 | realmode-y += trampoline_$(BITS).o | |
29 | realmode-y += stack.o | |
65051397 | 30 | realmode-y += reboot.o |
0f6f11eb PA |
31 | realmode-$(CONFIG_ACPI_SLEEP) += $(wakeup-objs) |
32 | ||
b3266bd6 JS |
33 | targets += $(realmode-y) |
34 | ||
35 | REALMODE_OBJS = $(addprefix $(obj)/,$(realmode-y)) | |
36 | ||
37 | sed-pasyms := -n -r -e 's/^([0-9a-fA-F]+) [ABCDGRSTVW] (.+)$$/pa_\2 = \2;/p' | |
38 | ||
39 | quiet_cmd_pasyms = PASYMS $@ | |
40 | cmd_pasyms = $(NM) $(filter-out FORCE,$^) | \ | |
41 | sed $(sed-pasyms) | sort | uniq > $@ | |
42 | ||
0f6f11eb | 43 | targets += pasyms.h |
b3266bd6 JS |
44 | $(obj)/pasyms.h: $(REALMODE_OBJS) FORCE |
45 | $(call if_changed,pasyms) | |
46 | ||
0f6f11eb | 47 | targets += realmode.lds |
b3266bd6 JS |
48 | $(obj)/realmode.lds: $(obj)/pasyms.h |
49 | ||
50 | LDFLAGS_realmode.elf := --emit-relocs -T | |
51 | CPPFLAGS_realmode.lds += -P -C -I$(obj) | |
52 | ||
0f6f11eb | 53 | targets += realmode.elf |
b3266bd6 JS |
54 | $(obj)/realmode.elf: $(obj)/realmode.lds $(REALMODE_OBJS) FORCE |
55 | $(call if_changed,ld) | |
56 | ||
57 | OBJCOPYFLAGS_realmode.bin := -O binary | |
58 | ||
0f6f11eb | 59 | targets += realmode.bin |
a9358bc3 | 60 | $(obj)/realmode.bin: $(obj)/realmode.elf $(obj)/realmode.relocs FORCE |
b3266bd6 | 61 | $(call if_changed,objcopy) |
a9358bc3 | 62 | @: |
b3266bd6 JS |
63 | |
64 | quiet_cmd_relocs = RELOCS $@ | |
f2604c14 | 65 | cmd_relocs = arch/x86/tools/relocs --realmode $< > $@ |
0f6f11eb PA |
66 | |
67 | targets += realmode.relocs | |
b3266bd6 JS |
68 | $(obj)/realmode.relocs: $(obj)/realmode.elf FORCE |
69 | $(call if_changed,relocs) | |
70 | ||
71 | # --------------------------------------------------------------------------- | |
72 | ||
1c678da3 DW |
73 | KBUILD_CFLAGS := $(LINUXINCLUDE) $(REALMODE_CFLAGS) -D_SETUP -D_WAKEUP \ |
74 | -I$(srctree)/arch/x86/boot | |
b3266bd6 JS |
75 | KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ |
76 | GCOV_PROFILE := n | |
c6d30853 | 77 | UBSAN_SANITIZE := n |