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

TOMOYO Linux Cross Reference
Linux/arch/powerpc/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/powerpc/Makefile (Version linux-6.12-rc7) and /arch/i386/Makefile (Version linux-4.12.14)


  1 # This file is included by the global makefile    
  2 # architecture-specific flags and dependencies    
  3 #                                                 
  4 # This file is subject to the terms and condit    
  5 # License.  See the file "COPYING" in the main    
  6 # for more details.                               
  7 #                                                 
  8 # Copyright (C) 1994 by Linus Torvalds            
  9 # Changes for PPC by Gary Thomas                  
 10 # Rewritten by Cort Dougan and Paul Mackerras     
 11 #                                                 
 12                                                   
 13 ifdef cross_compiling                             
 14   ifeq ($(CROSS_COMPILE),)                        
 15     # Auto detect cross compiler prefix.          
 16     # Look for: (powerpc(64(le)?)?)(-unknown)?    
 17     CC_ARCHES := powerpc powerpc64 powerpc64le    
 18     CC_SUFFIXES := linux linux-gnu unknown-lin    
 19     CROSS_COMPILE := $(call cc-cross-prefix, $    
 20                        $(foreach s,$(CC_SUFFIX    
 21   endif                                           
 22 endif                                             
 23                                                   
 24 HAS_BIARCH      := $(call cc-option-yn, -m32)     
 25                                                   
 26 # Set default 32 bits cross compilers for vdso    
 27 CROSS32_COMPILE ?=                                
 28                                                   
 29 # If we're on a ppc/ppc64/ppc64le machine use     
 30 # ppc64le_defconfig because we have nothing be    
 31 uname := $(shell uname -m)                        
 32 KBUILD_DEFCONFIG := $(if $(filter ppc%,$(uname    
 33                                                   
 34 new_nm := $(shell if $(NM) --help 2>&1 | grep     
 35                                                   
 36 ifeq ($(new_nm),y)                                
 37 NM              := $(NM) --synthetic              
 38 endif                                             
 39                                                   
 40 # BITS is used as extension for files which ar    
 41 # and a 64 bit version to simplify shared Make    
 42 # e.g.: obj-y += foo_$(BITS).o                    
 43 export BITS                                       
 44                                                   
 45 ifdef CONFIG_PPC64                                
 46         BITS := 64                                
 47 else                                              
 48         BITS := 32                                
 49 endif                                             
 50                                                   
 51 machine-y = ppc                                   
 52 machine-$(CONFIG_PPC64) += 64                     
 53 machine-$(CONFIG_CPU_LITTLE_ENDIAN) += le         
 54 UTS_MACHINE := $(subst $(space),,$(machine-y))    
 55                                                   
 56 ifeq ($(CONFIG_PPC64)$(CONFIG_LD_IS_BFD),yy)      
 57 # Have the linker provide sfpr if possible.       
 58 # There is a corresponding test in arch/powerp    
 59 KBUILD_LDFLAGS_MODULE += --save-restore-funcs     
 60 else                                              
 61 KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crts    
 62 endif                                             
 63                                                   
 64 ifdef CONFIG_CPU_LITTLE_ENDIAN                    
 65 KBUILD_CFLAGS   += -mlittle-endian                
 66 KBUILD_LDFLAGS  += -EL                            
 67 LDEMULATION     := lppc                           
 68 GNUTARGET       := powerpcle                      
 69 MULTIPLEWORD    := -mno-multiple                  
 70 KBUILD_CFLAGS_MODULE += $(call cc-option,-mno-    
 71 else                                              
 72 KBUILD_CFLAGS += $(call cc-option,-mbig-endian    
 73 KBUILD_LDFLAGS  += -EB                            
 74 LDEMULATION     := ppc                            
 75 GNUTARGET       := powerpc                        
 76 MULTIPLEWORD    := -mmultiple                     
 77 endif                                             
 78                                                   
 79 ifdef CONFIG_PPC64                                
 80 ifndef CONFIG_CC_IS_CLANG                         
 81 cflags-$(CONFIG_PPC64_ELF_ABI_V1)       += $(c    
 82 cflags-$(CONFIG_PPC64_ELF_ABI_V1)       += $(c    
 83 aflags-$(CONFIG_PPC64_ELF_ABI_V1)       += $(c    
 84 aflags-$(CONFIG_PPC64_ELF_ABI_V2)       += -ma    
 85 endif                                             
 86 endif                                             
 87                                                   
 88 ifndef CONFIG_CC_IS_CLANG                         
 89   cflags-$(CONFIG_CPU_LITTLE_ENDIAN)    += -mn    
 90 endif                                             
 91                                                   
 92 cflags-$(CONFIG_CPU_BIG_ENDIAN)         += $(c    
 93 cflags-$(CONFIG_CPU_LITTLE_ENDIAN)      += -ml    
 94 aflags-$(CONFIG_CPU_BIG_ENDIAN)         += $(c    
 95 aflags-$(CONFIG_CPU_LITTLE_ENDIAN)      += -ml    
 96                                                   
 97 ifeq ($(HAS_BIARCH),y)                            
 98 KBUILD_CFLAGS   += -m$(BITS)                      
 99 KBUILD_AFLAGS   += -m$(BITS)                      
100 KBUILD_LDFLAGS  += -m elf$(BITS)$(LDEMULATION)    
101 endif                                             
102                                                   
103 cflags-$(CONFIG_STACKPROTECTOR) += -mstack-pro    
104 ifdef CONFIG_PPC64                                
105 cflags-$(CONFIG_STACKPROTECTOR) += -mstack-pro    
106 else                                              
107 cflags-$(CONFIG_STACKPROTECTOR) += -mstack-pro    
108 endif                                             
109                                                   
110 LDFLAGS_vmlinux-y := -Bstatic                     
111 LDFLAGS_vmlinux-$(CONFIG_RELOCATABLE) := -pie     
112 LDFLAGS_vmlinux-$(CONFIG_RELOCATABLE) += -z no    
113 LDFLAGS_vmlinux := $(LDFLAGS_vmlinux-y)           
114                                                   
115 ifdef CONFIG_PPC64                                
116 ifndef CONFIG_PPC_KERNEL_PCREL                    
117         # -mcmodel=medium breaks modules becau    
118         # the TOC pointer to create pointers w    
119         # percpu data area are created by this    
120         #                                         
121         # The kernel module loader relocates t    
122         # original location (starting with 0xd    
123         # kernel percpu data space (starting w    
124         # 64bit relocation for this to work, h    
125         KBUILD_CFLAGS_MODULE += -mcmodel=large    
126 endif                                             
127 endif                                             
128                                                   
129 CFLAGS-$(CONFIG_PPC64)  := $(call cc-option,-m    
130 ifdef CONFIG_PPC64_ELF_ABI_V2                     
131 CFLAGS-$(CONFIG_PPC64)  += $(call cc-option,-m    
132 else                                              
133 ifndef CONFIG_CC_IS_CLANG                         
134 CFLAGS-$(CONFIG_PPC64)  += $(call cc-option,-m    
135 CFLAGS-$(CONFIG_PPC64)  += $(call cc-option,-m    
136 endif                                             
137 endif                                             
138 CFLAGS-$(CONFIG_PPC64)  += -mcmodel=medium        
139 CFLAGS-$(CONFIG_PPC64)  += $(call cc-option,-m    
140 CFLAGS-$(CONFIG_PPC64)  += $(call cc-option,-m    
141                                                   
142 # Clang unconditionally reserves r2 on ppc32 a    
143 # https://llvm.org/pr39555                        
144 CFLAGS-$(CONFIG_PPC32)  := $(call cc-option, -    
145                                                   
146 # Clang doesn't support -mmultiple / -mno-mult    
147 # https://llvm.org/pr39556                        
148 CFLAGS-$(CONFIG_PPC32)  += $(call cc-option, $    
149                                                   
150 CFLAGS-$(CONFIG_PPC32)  += $(call cc-option,-m    
151                                                   
152 CC_FLAGS_FPU            := $(call cc-option,-m    
153 CC_FLAGS_NO_FPU         := $(call cc-option,-m    
154                                                   
155 ifdef CONFIG_FUNCTION_TRACER                      
156 ifdef CONFIG_ARCH_USING_PATCHABLE_FUNCTION_ENT    
157 KBUILD_CPPFLAGS += -DCC_USING_PATCHABLE_FUNCTI    
158 CC_FLAGS_FTRACE := -fpatchable-function-entry=    
159 else                                              
160 CC_FLAGS_FTRACE := -pg                            
161 ifdef CONFIG_MPROFILE_KERNEL                      
162 CC_FLAGS_FTRACE += -mprofile-kernel               
163 endif                                             
164 endif                                             
165 endif                                             
166                                                   
167 CFLAGS-$(CONFIG_TARGET_CPU_BOOL) += -mcpu=$(CO    
168 AFLAGS-$(CONFIG_TARGET_CPU_BOOL) += -mcpu=$(CO    
169                                                   
170 CFLAGS-y += $(CONFIG_TUNE_CPU)                    
171                                                   
172 asinstr := $(call as-instr,lis 9$(comma)foo@hi    
173                                                   
174 KBUILD_CPPFLAGS += -I $(srctree)/arch/powerpc     
175 KBUILD_AFLAGS   += $(AFLAGS-y)                    
176 KBUILD_CFLAGS   += $(CC_FLAGS_NO_FPU)             
177 KBUILD_CFLAGS   += $(CFLAGS-y)                    
178 CPP             = $(CC) -E $(KBUILD_CFLAGS)       
179                                                   
180 CHECKFLAGS      += -m$(BITS) -D__powerpc__ -D_    
181 ifdef CONFIG_CPU_BIG_ENDIAN                       
182 CHECKFLAGS      += -D__BIG_ENDIAN__               
183 else                                              
184 CHECKFLAGS      += -D__LITTLE_ENDIAN__            
185 endif                                             
186                                                   
187 ifdef CONFIG_476FPE_ERR46                         
188         KBUILD_LDFLAGS_MODULE += --ppc476-work    
189                 -T $(srctree)/arch/powerpc/pla    
190 endif                                             
191                                                   
192 # No prefix or pcrel                              
193 ifdef CONFIG_PPC_KERNEL_PREFIXED                  
194 KBUILD_CFLAGS += $(call cc-option,-mprefixed)     
195 else                                              
196 KBUILD_CFLAGS += $(call cc-option,-mno-prefixe    
197 endif                                             
198 ifdef CONFIG_PPC_KERNEL_PCREL                     
199 KBUILD_CFLAGS += $(call cc-option,-mpcrel)        
200 else                                              
201 KBUILD_CFLAGS += $(call cc-option,-mno-pcrel)     
202 endif                                             
203                                                   
204 # No AltiVec or VSX or MMA instructions when b    
205 KBUILD_CFLAGS += $(call cc-option,-mno-altivec    
206 KBUILD_CFLAGS += $(call cc-option,-mno-vsx)       
207 KBUILD_CFLAGS += $(call cc-option,-mno-mma)       
208                                                   
209 # No SPE instruction when building kernel         
210 # (We use all available options to help semi-b    
211 KBUILD_CFLAGS += $(call cc-option,-mno-spe)       
212 KBUILD_CFLAGS += $(call cc-option,-mspe=no)       
213                                                   
214 # Don't emit .eh_frame since we have no use fo    
215 KBUILD_CFLAGS += -fno-asynchronous-unwind-tabl    
216                                                   
217 # Never use string load/store instructions as     
218 # often slow when they are implemented at all     
219 KBUILD_CFLAGS           += $(call cc-option,-m    
220                                                   
221 KBUILD_AFLAGS += $(aflags-y)                      
222 KBUILD_CFLAGS += $(cflags-y)                      
223                                                   
224 # Default to zImage, override when needed         
225 all: zImage                                       
226                                                   
227 # With make 3.82 we cannot mix normal and wild    
228 BOOT_TARGETS1 := zImage zImage.initrd uImage      
229 BOOT_TARGETS2 := zImage% dtbImage% treeImage.%    
230                                                   
231 PHONY += $(BOOT_TARGETS1) $(BOOT_TARGETS2)        
232                                                   
233 boot := arch/powerpc/boot                         
234                                                   
235 $(BOOT_TARGETS1): vmlinux                         
236         $(Q)$(MAKE) $(build)=$(boot) $(patsubs    
237 $(BOOT_TARGETS2): vmlinux                         
238         $(Q)$(MAKE) $(build)=$(boot) $(patsubs    
239                                                   
240                                                   
241 PHONY += bootwrapper_install                      
242 bootwrapper_install:                              
243         $(Q)$(MAKE) $(build)=$(boot) $(patsubs    
244                                                   
245 include $(srctree)/scripts/Makefile.defconf       
246                                                   
247 generated_configs += ppc64le_defconfig            
248 ppc64le_defconfig:                                
249         $(call merge_into_defconfig,ppc64_defc    
250                                                   
251 generated_configs += ppc64le_guest_defconfig      
252 ppc64le_guest_defconfig:                          
253         $(call merge_into_defconfig,ppc64_defc    
254                                                   
255 generated_configs += ppc64_guest_defconfig        
256 ppc64_guest_defconfig:                            
257         $(call merge_into_defconfig,ppc64_defc    
258                                                   
259 generated_configs += pseries_le_defconfig         
260 pseries_le_defconfig: ppc64le_guest_defconfig     
261                                                   
262 generated_configs += pseries_defconfig            
263 pseries_defconfig: ppc64le_guest_defconfig        
264                                                   
265 generated_configs += powernv_be_defconfig         
266 powernv_be_defconfig:                             
267         $(call merge_into_defconfig,powernv_de    
268                                                   
269 generated_configs += mpc85xx_defconfig            
270 mpc85xx_defconfig:                                
271         $(call merge_into_defconfig,mpc85xx_ba    
272                 85xx-32bit 85xx-hw fsl-emb-non    
273                                                   
274 generated_configs += mpc85xx_smp_defconfig        
275 mpc85xx_smp_defconfig:                            
276         $(call merge_into_defconfig,mpc85xx_ba    
277                 85xx-32bit 85xx-smp 85xx-hw fs    
278                                                   
279 generated_configs += corenet32_smp_defconfig      
280 corenet32_smp_defconfig:                          
281         $(call merge_into_defconfig,corenet_ba    
282                 85xx-32bit 85xx-smp 85xx-hw fs    
283                                                   
284 generated_configs += corenet64_smp_defconfig      
285 corenet64_smp_defconfig:                          
286         $(call merge_into_defconfig,corenet_ba    
287                 85xx-64bit 85xx-smp altivec 85    
288                                                   
289 generated_configs += mpc86xx_defconfig            
290 mpc86xx_defconfig:                                
291         $(call merge_into_defconfig,mpc86xx_ba    
292                 86xx-hw fsl-emb-nonhw)            
293                                                   
294 generated_configs += mpc86xx_smp_defconfig        
295 mpc86xx_smp_defconfig:                            
296         $(call merge_into_defconfig,mpc86xx_ba    
297                 86xx-smp 86xx-hw fsl-emb-nonhw    
298                                                   
299 generated_configs += ppc32_allmodconfig           
300 ppc32_allmodconfig:                               
301         $(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctre    
302                 -f $(srctree)/Makefile allmodc    
303                                                   
304 generated_configs += ppc44x_allmodconfig          
305 ppc44x_allmodconfig:                              
306         $(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctre    
307                 -f $(srctree)/Makefile allmodc    
308                                                   
309 generated_configs += ppc8xx_allmodconfig          
310 ppc8xx_allmodconfig:                              
311         $(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctre    
312                 -f $(srctree)/Makefile allmodc    
313                                                   
314 generated_configs += ppc85xx_allmodconfig         
315 ppc85xx_allmodconfig:                             
316         $(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctre    
317                 -f $(srctree)/Makefile allmodc    
318                                                   
319 generated_configs += ppc_defconfig                
320 ppc_defconfig:                                    
321         $(call merge_into_defconfig,book3s_32.    
322                                                   
323 generated_configs += ppc64le_allmodconfig         
324 ppc64le_allmodconfig:                             
325         $(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctre    
326                 -f $(srctree)/Makefile allmodc    
327                                                   
328 generated_configs += ppc64le_allnoconfig          
329 ppc64le_allnoconfig:                              
330         $(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctre    
331                 -f $(srctree)/Makefile allnoco    
332                                                   
333 generated_configs += ppc64_book3e_allmodconfig    
334 ppc64_book3e_allmodconfig:                        
335         $(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctre    
336                 -f $(srctree)/Makefile allmodc    
337                                                   
338 generated_configs += ppc32_randconfig             
339 ppc32_randconfig:                                 
340         $(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctre    
341                 -f $(srctree)/Makefile randcon    
342                                                   
343 generated_configs += ppc64_randconfig             
344 ppc64_randconfig:                                 
345         $(Q)$(MAKE) KCONFIG_ALLCONFIG=$(srctre    
346                 -f $(srctree)/Makefile randcon    
347                                                   
348 PHONY += $(generated_configs)                     
349                                                   
350 define archhelp                                   
351   echo '* zImage          - Build default imag    
352   echo '  zImage.*        - Compressed kernel     
353   echo '  uImage          - U-Boot native imag    
354   echo '  cuImage.<dt>    - Backwards compatib    
355   echo '                    versions which do     
356   echo '  dtbImage.<dt>   - zImage with an emb    
357   echo '  simpleImage.<dt> - Firmware independ    
358   echo '  treeImage.<dt>  - Support for older     
359   echo '  install         - Install kernel usi    
360   echo '                    (your) ~/bin/$(INS    
361   echo '                    (distribution) /sb    
362   echo '                    install to $$(INST    
363   echo '  *_defconfig     - Select default con    
364   echo ''                                         
365   echo '  Targets with <dt> embed a device tre    
366   echo '  These targets support board with fir    
367   echo '  support passing a device tree direct    
368   echo '  name of a dts file from the arch/pow    
369   echo '  (minus the .dts extension).'            
370   echo                                            
371   $(foreach cfg,$(generated_configs),             
372     printf "  %-27s - Build for %s\\n" $(cfg)     
373 endef                                             
374                                                   
375 PHONY += install                                  
376 install:                                          
377         $(call cmd,install)                       
378                                                   
379 ifeq ($(KBUILD_EXTMOD),)                          
380 # We need to generate vdso-offsets.h before co    
381 # In order to do that, we should use the archp    
382 # asm-offsets.h is included in some files used    
383 # asm-offsets.h is built in prepare0, for whic    
384 # Therefore we need to generate the header aft    
385 # this hack.                                      
386 prepare: vdso_prepare                             
387 vdso_prepare: prepare0                            
388         $(if $(CONFIG_VDSO32),$(Q)$(MAKE) \       
389                 $(build)=arch/powerpc/kernel/v    
390         $(if $(CONFIG_PPC64),$(Q)$(MAKE) \        
391                 $(build)=arch/powerpc/kernel/v    
392 endif                                             
393                                                   
394 archprepare: checkbin                             
395                                                   
396 archheaders:                                      
397         $(Q)$(MAKE) $(build)=arch/powerpc/kern    
398                                                   
399 ifdef CONFIG_STACKPROTECTOR                       
400 prepare: stack_protector_prepare                  
401                                                   
402 PHONY += stack_protector_prepare                  
403 stack_protector_prepare: prepare0                 
404 ifdef CONFIG_PPC64                                
405         $(eval KBUILD_CFLAGS += -mstack-protec    
406 else                                              
407         $(eval KBUILD_CFLAGS += -mstack-protec    
408 endif                                             
409 endif                                             
410                                                   
411 PHONY += checkbin                                 
412 checkbin:                                         
413         @if test "x${CONFIG_FTRACE_MCOUNT_USE_    
414                 "x${CONFIG_LD_IS_BFD}" = "xy"     
415                 "${CONFIG_LD_VERSION}" = "2370    
416                 echo -n '*** binutils 2.37 dro    
417                 echo 'is unable to handle.' ;     
418                 echo '*** Please use a differe    
419                 false ; \                         
420         fi                                        
                                                      

~ [ 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