hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/arch/x86/boot/Makefile
....@@ -9,7 +9,9 @@
99 # Changed by many, many contributors over the years.
1010 #
1111
12
+# Sanitizer runtimes are unavailable and cannot be linked for early boot code.
1213 KASAN_SANITIZE := n
14
+KCSAN_SANITIZE := n
1315 OBJECT_FILES_NON_STANDARD := y
1416
1517 # Kernel does not boot with kcov instrumentation here.
....@@ -45,8 +47,8 @@
4547 setup-y += video-bios.o
4648
4749 targets += $(setup-y)
48
-hostprogs-y := tools/build
49
-hostprogs-$(CONFIG_X86_FEATURE_NAMES) += mkcpustr
50
+hostprogs := tools/build
51
+hostprogs += mkcpustr
5052
5153 HOST_EXTRACFLAGS += -I$(srctree)/tools/include \
5254 -include include/generated/autoconf.h \
....@@ -57,16 +59,17 @@
5759
5860 quiet_cmd_cpustr = CPUSTR $@
5961 cmd_cpustr = $(obj)/mkcpustr > $@
60
-targets += cpustr.h
6162 $(obj)/cpustr.h: $(obj)/mkcpustr FORCE
6263 $(call if_changed,cpustr)
6364 endif
64
-clean-files += cpustr.h
65
+targets += cpustr.h
6566
6667 # ---------------------------------------------------------------------------
6768
6869 KBUILD_CFLAGS := $(REALMODE_CFLAGS) -D_SETUP
6970 KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
71
+KBUILD_CFLAGS += $(call cc-option,-fmacro-prefix-map=$(srctree)/=)
72
+KBUILD_CFLAGS += -fno-asynchronous-unwind-tables
7073 GCOV_PROFILE := n
7174 UBSAN_SANITIZE := n
7275
....@@ -87,7 +90,7 @@
8790
8891 SETUP_OBJS = $(addprefix $(obj)/,$(setup-y))
8992
90
-sed-zoffset := -e 's/^\([0-9a-fA-F]*\) [a-zA-Z] \(startup_32\|startup_64\|efi32_stub_entry\|efi64_stub_entry\|efi_pe_entry\|input_data\|_end\|_ehead\|_text\|z_.*\)$$/\#define ZO_\2 0x\1/p'
93
+sed-zoffset := -e 's/^\([0-9a-fA-F]*\) [a-zA-Z] \(startup_32\|startup_64\|efi32_stub_entry\|efi64_stub_entry\|efi_pe_entry\|efi32_pe_entry\|input_data\|kernel_info\|_end\|_ehead\|_text\|z_.*\)$$/\#define ZO_\2 0x\1/p'
9194
9295 quiet_cmd_zoffset = ZOFFSET $@
9396 cmd_zoffset = $(NM) $< | sed -n $(sed-zoffset) > $@
....@@ -100,7 +103,7 @@
100103 AFLAGS_header.o += -I$(objtree)/$(obj)
101104 $(obj)/header.o: $(obj)/zoffset.h
102105
103
-LDFLAGS_setup.elf := -m elf_i386 -T
106
+LDFLAGS_setup.elf := -m elf_i386 -z noexecstack -T
104107 $(obj)/setup.elf: $(src)/setup.ld $(SETUP_OBJS) FORCE
105108 $(call if_changed,ld)
106109
....@@ -127,6 +130,8 @@
127130 cmd_genimage = sh $(srctree)/$(src)/genimage.sh $2 $3 $(obj)/bzImage \
128131 $(obj)/mtools.conf '$(image_cmdline)' $(FDINITRD)
129132
133
+PHONY += bzdisk fdimage fdimage144 fdimage288 isoimage bzlilo install
134
+
130135 # This requires write access to /dev/fd0
131136 bzdisk: $(obj)/bzImage $(obj)/mtools.conf
132137 $(call cmd,genimage,bzdisk,/dev/fd0)
....@@ -144,7 +149,7 @@
144149 $(call cmd,genimage,isoimage,$(obj)/image.iso)
145150 @$(kecho) 'Kernel: $(obj)/image.iso is ready'
146151
147
-bzlilo: $(obj)/bzImage
152
+bzlilo:
148153 if [ -f $(INSTALL_PATH)/vmlinuz ]; then mv $(INSTALL_PATH)/vmlinuz $(INSTALL_PATH)/vmlinuz.old; fi
149154 if [ -f $(INSTALL_PATH)/System.map ]; then mv $(INSTALL_PATH)/System.map $(INSTALL_PATH)/System.old; fi
150155 cat $(obj)/bzImage > $(INSTALL_PATH)/vmlinuz