~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/x86/Makefile

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /arch/x86/Makefile (Version linux-6.12-rc7) and /arch/alpha/Makefile (Version linux-4.18.20)


  1 # SPDX-License-Identifier: GPL-2.0             << 
  2 # Unified Makefile for i386 and x86_64         << 
  3                                                << 
  4 # select defconfig based on actual architectur << 
  5 ifeq ($(ARCH),x86)                             << 
  6   ifeq ($(shell uname -m | sed -e 's/i.86/i386 << 
  7         KBUILD_DEFCONFIG := i386_defconfig     << 
  8   else                                         << 
  9         KBUILD_DEFCONFIG := x86_64_defconfig   << 
 10   endif                                        << 
 11 else                                           << 
 12         KBUILD_DEFCONFIG := $(ARCH)_defconfig  << 
 13 endif                                          << 
 14                                                << 
 15 ifdef CONFIG_CC_IS_GCC                         << 
 16 RETPOLINE_CFLAGS        := $(call cc-option,-m << 
 17 RETPOLINE_VDSO_CFLAGS   := $(call cc-option,-m << 
 18 endif                                          << 
 19 ifdef CONFIG_CC_IS_CLANG                       << 
 20 RETPOLINE_CFLAGS        := -mretpoline-externa << 
 21 RETPOLINE_VDSO_CFLAGS   := -mretpoline         << 
 22 endif                                          << 
 23 RETPOLINE_CFLAGS        += $(call cc-option,-m << 
 24                                                << 
 25 ifdef CONFIG_MITIGATION_RETHUNK                << 
 26 RETHUNK_CFLAGS          := -mfunction-return=t << 
 27 RETHUNK_RUSTFLAGS       := -Zfunction-return=t << 
 28 RETPOLINE_CFLAGS        += $(RETHUNK_CFLAGS)   << 
 29 RETPOLINE_RUSTFLAGS     += $(RETHUNK_RUSTFLAGS << 
 30 endif                                          << 
 31                                                << 
 32 export RETHUNK_CFLAGS                          << 
 33 export RETHUNK_RUSTFLAGS                       << 
 34 export RETPOLINE_CFLAGS                        << 
 35 export RETPOLINE_RUSTFLAGS                     << 
 36 export RETPOLINE_VDSO_CFLAGS                   << 
 37                                                << 
 38 # For gcc stack alignment is specified with -m << 
 39 # clang has the option -mstack-alignment for t << 
 40 ifneq ($(call cc-option, -mpreferred-stack-bou << 
 41       cc_stack_align4 := -mpreferred-stack-bou << 
 42       cc_stack_align8 := -mpreferred-stack-bou << 
 43 else ifneq ($(call cc-option, -mstack-alignmen << 
 44       cc_stack_align4 := -mstack-alignment=4   << 
 45       cc_stack_align8 := -mstack-alignment=8   << 
 46 endif                                          << 
 47                                                << 
 48 # How to compile the 16-bit code.  Note we alw << 
 49 # that way we can complain to the user if the  << 
 50 REALMODE_CFLAGS := -std=gnu11 -m16 -g -Os -DDI << 
 51                    -Wall -Wstrict-prototypes - << 
 52                    -fno-strict-aliasing -fomit << 
 53                    -mno-mmx -mno-sse $(call cc << 
 54                                                << 
 55 REALMODE_CFLAGS += -ffreestanding              << 
 56 REALMODE_CFLAGS += -fno-stack-protector        << 
 57 REALMODE_CFLAGS += -Wno-address-of-packed-memb << 
 58 REALMODE_CFLAGS += $(cc_stack_align4)          << 
 59 REALMODE_CFLAGS += $(CLANG_FLAGS)              << 
 60 ifdef CONFIG_CC_IS_CLANG                       << 
 61 REALMODE_CFLAGS += -Wno-gnu                    << 
 62 endif                                          << 
 63 export REALMODE_CFLAGS                         << 
 64                                                << 
 65 # BITS is used as extension for files which ar << 
 66 # and a 64 bit version to simplify shared Make << 
 67 # e.g.: obj-y += foo_$(BITS).o                 << 
 68 export BITS                                    << 
 69                                                << 
 70 #                                              << 
 71 # Prevent GCC from generating any FP code by m << 
 72 #                                              << 
 73 # This must happen before we try the -mpreferr << 
 74 #                                              << 
 75 #    https://gcc.gnu.org/bugzilla/show_bug.cgi << 
 76 #                                              << 
 77 KBUILD_CFLAGS += -mno-sse -mno-mmx -mno-sse2 - << 
 78 KBUILD_RUSTFLAGS += --target=$(objtree)/script << 
 79 KBUILD_RUSTFLAGS += -Ctarget-feature=-sse,-sse << 
 80                                                << 
 81 #                                              << 
 82 # CFLAGS for compiling floating point code ins << 
 83 #                                              << 
 84 CC_FLAGS_FPU := -msse -msse2                   << 
 85 ifdef CONFIG_CC_IS_GCC                         << 
 86 # Stack alignment mismatch, proceed with cauti << 
 87 # GCC < 7.1 cannot compile code using `double` << 
 88 # (8B stack alignment).                        << 
 89 # See https://gcc.gnu.org/bugzilla/show_bug.cg << 
 90 #                                              << 
 91 # The "-msse" in the first argument is there s << 
 92 # -mpreferred-stack-boundary=3 build error:    << 
 93 #                                              << 
 94 #  -mpreferred-stack-boundary=3 is not between << 
 95 #                                              << 
 96 # can be triggered. Otherwise gcc doesn't comp << 
 97 CC_FLAGS_FPU += -mhard-float                   << 
 98 CC_FLAGS_FPU += $(call cc-option,-msse -mprefe << 
 99 endif                                          << 
100                                                << 
101 ifeq ($(CONFIG_X86_KERNEL_IBT),y)              << 
102 #                                              << 
103 # Kernel IBT has S_CET.NOTRACK_EN=0, as such t << 
104 # NOTRACK prefixes. Current generation compile << 
105 # for jump-tables, as such, disable jump-table << 
106 #                                                   1 #
107 # (jump-tables are implicitly disabled by RETP !!   2 # alpha/Makefile
108 #                                                   3 #
109 #   https://gcc.gnu.org/bugzilla/show_bug.cgi? !!   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.
110 #                                                   7 #
111 KBUILD_CFLAGS += $(call cc-option,-fcf-protect !!   8 # Copyright (C) 1994 by Linus Torvalds
112 KBUILD_RUSTFLAGS += -Zcf-protection=branch -Zn << 
113 else                                           << 
114 KBUILD_CFLAGS += $(call cc-option,-fcf-protect << 
115 endif                                          << 
116                                                << 
117 ifeq ($(CONFIG_X86_32),y)                      << 
118         BITS := 32                             << 
119         UTS_MACHINE := i386                    << 
120         CHECKFLAGS += -D__i386__               << 
121                                                << 
122         KBUILD_AFLAGS += -m32                  << 
123         KBUILD_CFLAGS += -m32                  << 
124                                                << 
125         KBUILD_CFLAGS += -msoft-float -mregpar << 
126                                                << 
127         # Never want PIC in a 32-bit kernel, p << 
128         # with nonstandard options             << 
129         KBUILD_CFLAGS += -fno-pic              << 
130                                                << 
131         # Align the stack to the register widt << 
132         # alignment of 16 bytes. This reduces  << 
133         # alignment instructions.              << 
134         KBUILD_CFLAGS += $(cc_stack_align4)    << 
135                                                << 
136         # CPU-specific tuning. Anything which  << 
137         include $(srctree)/arch/x86/Makefile_3 << 
138         KBUILD_CFLAGS += $(cflags-y)           << 
139                                                << 
140         # temporary until string.h is fixed    << 
141         KBUILD_CFLAGS += -ffreestanding        << 
142                                                << 
143     ifeq ($(CONFIG_STACKPROTECTOR),y)          << 
144         ifeq ($(CONFIG_SMP),y)                 << 
145                         KBUILD_CFLAGS += -msta << 
146         else                                   << 
147                         KBUILD_CFLAGS += -msta << 
148         endif                                  << 
149     endif                                      << 
150 else                                           << 
151         BITS := 64                             << 
152         UTS_MACHINE := x86_64                  << 
153         CHECKFLAGS += -D__x86_64__             << 
154                                                << 
155         KBUILD_AFLAGS += -m64                  << 
156         KBUILD_CFLAGS += -m64                  << 
157                                                << 
158         # Align jump targets to 1 byte, not th << 
159         KBUILD_CFLAGS += $(call cc-option,-fal << 
160                                                << 
161         # Pack loops tightly as well:          << 
162         KBUILD_CFLAGS += $(call cc-option,-fal << 
163                                                << 
164         # Don't autogenerate traditional x87 i << 
165         KBUILD_CFLAGS += -mno-80387            << 
166         KBUILD_CFLAGS += $(call cc-option,-mno << 
167                                                << 
168         # By default gcc and clang use a stack << 
169         # However the standard kernel entry on << 
170         # 8-byte boundary. If the compiler isn << 
171         # alignment it will generate extra ali << 
172         # default alignment which keep the sta << 
173         # Furthermore an alignment to the regi << 
174         # and the number of alignment instruct << 
175         KBUILD_CFLAGS += $(cc_stack_align8)    << 
176                                                << 
177         # Use -mskip-rax-setup if supported.   << 
178         KBUILD_CFLAGS += $(call cc-option,-msk << 
179                                                << 
180         # FIXME - should be integrated in Make << 
181         cflags-$(CONFIG_MK8)            += -ma << 
182         cflags-$(CONFIG_MPSC)           += -ma << 
183         cflags-$(CONFIG_MCORE2)         += -ma << 
184         cflags-$(CONFIG_MATOM)          += -ma << 
185         cflags-$(CONFIG_GENERIC_CPU)    += -mt << 
186         KBUILD_CFLAGS += $(cflags-y)           << 
187                                                << 
188         rustflags-$(CONFIG_MK8)         += -Ct << 
189         rustflags-$(CONFIG_MPSC)        += -Ct << 
190         rustflags-$(CONFIG_MCORE2)      += -Ct << 
191         rustflags-$(CONFIG_MATOM)       += -Ct << 
192         rustflags-$(CONFIG_GENERIC_CPU) += -Zt << 
193         KBUILD_RUSTFLAGS += $(rustflags-y)     << 
194                                                << 
195         KBUILD_CFLAGS += -mno-red-zone         << 
196         KBUILD_CFLAGS += -mcmodel=kernel       << 
197         KBUILD_RUSTFLAGS += -Cno-redzone=y     << 
198         KBUILD_RUSTFLAGS += -Ccode-model=kerne << 
199 endif                                          << 
200                                                << 
201 #                                              << 
202 # If the function graph tracer is used with mc << 
203 # '-maccumulate-outgoing-args' is needed to pr << 
204 # (https://gcc.gnu.org/bugzilla/show_bug.cgi?i << 
205 #                                              << 
206 ifdef CONFIG_FUNCTION_GRAPH_TRACER             << 
207   ifndef CONFIG_HAVE_FENTRY                    << 
208         ACCUMULATE_OUTGOING_ARGS := 1          << 
209   endif                                        << 
210 endif                                          << 
211                                                << 
212 ifeq ($(ACCUMULATE_OUTGOING_ARGS), 1)          << 
213         # This compiler flag is not supported  << 
214         KBUILD_CFLAGS += $(call cc-option,-mac << 
215 endif                                          << 
216                                                << 
217 # Workaround for a gcc prelease that unfortuna << 
218 KBUILD_CFLAGS += -Wno-sign-compare             << 
219 #                                              << 
220 KBUILD_CFLAGS += -fno-asynchronous-unwind-tabl << 
221                                                << 
222 # Avoid indirect branches in kernel to deal wi << 
223 ifdef CONFIG_MITIGATION_RETPOLINE              << 
224   KBUILD_CFLAGS += $(RETPOLINE_CFLAGS)         << 
225   KBUILD_RUSTFLAGS += $(RETPOLINE_RUSTFLAGS)   << 
226   # Additionally, avoid generating expensive i << 
227   # are subject to retpolines for small number << 
228   # LLVM turns off jump table generation by de << 
229   # retpoline builds, however, gcc does not fo << 
230   # only been fixed starting from gcc stable v << 
231   # onwards, but not for older ones. See gcc b << 
232   ifndef CONFIG_CC_IS_CLANG                    << 
233     KBUILD_CFLAGS += -fno-jump-tables          << 
234   endif                                        << 
235 endif                                          << 
236                                                << 
237 ifdef CONFIG_MITIGATION_SLS                    << 
238   KBUILD_CFLAGS += -mharden-sls=all            << 
239 endif                                          << 
240                                                << 
241 ifdef CONFIG_CALL_PADDING                      << 
242 PADDING_CFLAGS := -fpatchable-function-entry=$ << 
243 KBUILD_CFLAGS += $(PADDING_CFLAGS)             << 
244 export PADDING_CFLAGS                          << 
245                                                << 
246 PADDING_RUSTFLAGS := -Zpatchable-function-entr << 
247 KBUILD_RUSTFLAGS += $(PADDING_RUSTFLAGS)       << 
248 export PADDING_RUSTFLAGS                       << 
249 endif                                          << 
250                                                << 
251 KBUILD_LDFLAGS += -m elf_$(UTS_MACHINE)        << 
252                                                << 
253 ifdef CONFIG_X86_NEED_RELOCS                   << 
254 LDFLAGS_vmlinux := --emit-relocs --discard-non << 
255 else                                           << 
256 LDFLAGS_vmlinux :=                             << 
257 endif                                          << 
258                                                << 
259 #                                                   9 #
260 # The 64-bit kernel must be aligned to 2MB.  P << 
261 # the linker to force 2MB page size regardless << 
262 # by the linker.                               << 
263 #                                              << 
264 ifdef CONFIG_X86_64                            << 
265 LDFLAGS_vmlinux += -z max-page-size=0x200000   << 
266 endif                                          << 
267                                                << 
268                                                << 
269 archscripts: scripts_basic                     << 
270         $(Q)$(MAKE) $(build)=arch/x86/tools re << 
271                                                << 
272 ###                                            << 
273 # Syscall table generation                     << 
274                                                    10 
275 archheaders:                                   !!  11 NM := $(NM) -B
276         $(Q)$(MAKE) $(build)=arch/x86/entry/sy << 
277                                                    12 
278 ###                                            !!  13 LDFLAGS_vmlinux := -static -N #-relax
279 # Kernel objects                               !!  14 CHECKFLAGS      += -D__alpha__
                                                   >>  15 cflags-y        := -pipe -mno-fp-regs -ffixed-8
                                                   >>  16 cflags-y        += $(call cc-option, -fno-jump-tables)
280                                                    17 
281 libs-y  += arch/x86/lib/                       !!  18 cpuflags-$(CONFIG_ALPHA_EV4)            := -mcpu=ev4
                                                   >>  19 cpuflags-$(CONFIG_ALPHA_EV5)            := -mcpu=ev5
                                                   >>  20 cpuflags-$(CONFIG_ALPHA_EV56)           := -mcpu=ev56
                                                   >>  21 cpuflags-$(CONFIG_ALPHA_POLARIS)        := -mcpu=pca56
                                                   >>  22 cpuflags-$(CONFIG_ALPHA_SX164)          := -mcpu=pca56
                                                   >>  23 cpuflags-$(CONFIG_ALPHA_EV6)            := -mcpu=ev6
                                                   >>  24 cpuflags-$(CONFIG_ALPHA_EV67)           := -mcpu=ev67
                                                   >>  25 # If GENERIC, make sure to turn off any instruction set extensions that
                                                   >>  26 # the host compiler might have on by default.  Given that EV4 and EV5
                                                   >>  27 # have the same instruction set, prefer EV5 because an EV5 schedule is
                                                   >>  28 # more likely to keep an EV4 processor busy than vice-versa.
                                                   >>  29 cpuflags-$(CONFIG_ALPHA_GENERIC)        := -mcpu=ev5
282                                                    30 
283 # drivers-y are linked after core-y            !!  31 cflags-y                                += $(cpuflags-y)
284 drivers-$(CONFIG_MATH_EMULATION) += arch/x86/m << 
285 drivers-$(CONFIG_PCI)            += arch/x86/p << 
286                                                    32 
287 # suspend and hibernation support              << 
288 drivers-$(CONFIG_PM) += arch/x86/power/        << 
289                                                    33 
290 drivers-$(CONFIG_VIDEO) += arch/x86/video/     !!  34 # For TSUNAMI, we must have the assembler not emulate our instructions.
                                                   >>  35 # The same is true for IRONGATE, POLARIS, PYXIS.
                                                   >>  36 # BWX is most important, but we don't really want any emulation ever.
                                                   >>  37 KBUILD_CFLAGS += $(cflags-y) -Wa,-mev6
291                                                    38 
292 ####                                           !!  39 head-y := arch/alpha/kernel/head.o
293 # boot loader support. Several targets are kep << 
294                                                    40 
295 boot := arch/x86/boot                          !!  41 core-y                          += arch/alpha/kernel/ arch/alpha/mm/
                                                   >>  42 core-$(CONFIG_MATHEMU)          += arch/alpha/math-emu/
                                                   >>  43 drivers-$(CONFIG_OPROFILE)      += arch/alpha/oprofile/
                                                   >>  44 libs-y                          += arch/alpha/lib/
296                                                    45 
297 BOOT_TARGETS = bzdisk fdimage fdimage144 fdima !!  46 # export what is needed by arch/alpha/boot/Makefile
                                                   >>  47 LIBS_Y := $(patsubst %/, %/lib.a, $(libs-y))
                                                   >>  48 export LIBS_Y
298                                                    49 
299 PHONY += bzImage $(BOOT_TARGETS)               !!  50 boot := arch/alpha/boot
300                                                    51 
301 # Default kernel to build                      !!  52 #Default target when executing make with no arguments
302 all: bzImage                                   !!  53 all boot: $(boot)/vmlinux.gz
303                                                    54 
304 # KBUILD_IMAGE specify target image being buil !!  55 $(boot)/vmlinux.gz: vmlinux
305 KBUILD_IMAGE := $(boot)/bzImage                << 
306                                                << 
307 bzImage: vmlinux                               << 
308 ifeq ($(CONFIG_X86_DECODER_SELFTEST),y)        << 
309         $(Q)$(MAKE) $(build)=arch/x86/tools po << 
310 endif                                          << 
311         $(Q)$(MAKE) $(build)=$(boot) $(KBUILD_ << 
312         $(Q)mkdir -p $(objtree)/arch/$(UTS_MAC << 
313         $(Q)ln -fsn ../../x86/boot/bzImage $(o << 
314                                                << 
315 $(BOOT_TARGETS): vmlinux                       << 
316         $(Q)$(MAKE) $(build)=$(boot) $@            56         $(Q)$(MAKE) $(build)=$(boot) $@
317                                                    57 
318 PHONY += install                               !!  58 bootimage bootpfile bootpzfile: vmlinux
319 install:                                       !!  59         $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@
320         $(call cmd,install)                    << 
321                                                << 
322 vdso-install-$(CONFIG_X86_64)           += arc << 
323 vdso-install-$(CONFIG_X86_X32_ABI)      += arc << 
324 vdso-install-$(CONFIG_COMPAT_32)        += arc << 
325                                                << 
326 archprepare: checkbin                          << 
327 checkbin:                                      << 
328 ifdef CONFIG_MITIGATION_RETPOLINE              << 
329 ifeq ($(RETPOLINE_CFLAGS),)                    << 
330         @echo "You are building kernel with no << 
331         @echo "Please update your compiler." > << 
332         @false                                 << 
333 endif                                          << 
334 endif                                          << 
335                                                << 
336 ifdef CONFIG_UNWINDER_ORC                      << 
337 orc_hash_h := arch/$(SRCARCH)/include/generate << 
338 orc_hash_sh := $(srctree)/scripts/orc_hash.sh  << 
339 targets += $(orc_hash_h)                       << 
340 quiet_cmd_orc_hash = GEN     $@                << 
341       cmd_orc_hash = mkdir -p $(dir $@); \     << 
342                      $(CONFIG_SHELL) $(orc_has << 
343 $(orc_hash_h): $(srctree)/arch/x86/include/asm << 
344         $(call if_changed,orc_hash)            << 
345 archprepare: $(orc_hash_h)                     << 
346 endif                                          << 
347                                                    60 
348 archclean:                                         61 archclean:
349         $(Q)rm -rf $(objtree)/arch/i386        !!  62         $(Q)$(MAKE) $(clean)=$(boot)
350         $(Q)rm -rf $(objtree)/arch/x86_64      << 
351                                                    63 
352 define archhelp                                    64 define archhelp
353   echo  '* bzImage              - Compressed k !!  65   echo '* boot          - Compressed kernel image (arch/alpha/boot/vmlinux.gz)'
354   echo  '  install              - Install kern !!  66   echo '  bootimage     - SRM bootable image (arch/alpha/boot/bootimage)'
355   echo  '                         (distributio !!  67   echo '  bootpfile     - BOOTP bootable image (arch/alpha/boot/bootpfile)'
356   echo  '                         $$(INSTALL_P !!  68   echo '  bootpzfile    - compressed kernel BOOTP image (arch/alpha/boot/bootpzfile)'
357   echo  ''                                     << 
358   echo  '  fdimage              - Create 1.4MB << 
359   echo  '  fdimage144           - Create 1.4MB << 
360   echo  '  fdimage288           - Create 2.8MB << 
361   echo  '  hdimage              - Create a BIO << 
362   echo  '  isoimage             - Create a boo << 
363   echo  '                         bzdisk/fdima << 
364   echo  '                         FDARGS="..." << 
365   echo  '                         FDINITRD=fil << 
366                                                << 
367 endef                                              69 endef
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php