1 # 1 # 2 # arch/arm/Makefile !! 2 # m68k/Makefile 3 # 3 # 4 # This file is included by the global makefile 4 # This file is included by the global makefile so that you can add your own 5 # architecture-specific flags and dependencies 5 # architecture-specific flags and dependencies. 6 # 6 # 7 # This file is subject to the terms and condit 7 # This file is subject to the terms and conditions of the GNU General Public 8 # License. See the file "COPYING" in the main 8 # License. See the file "COPYING" in the main directory of this archive 9 # for more details. 9 # for more details. 10 # 10 # 11 # Copyright (C) 1995-2001 by Russell King !! 11 # Copyright (C) 1994 by Hamish Macdonald 12 !! 12 # Copyright (C) 2002,2011 Greg Ungerer <gerg@snapgear.com> 13 LDFLAGS_vmlinux := --no-undefined -X --pic-ven !! 13 # 14 ifeq ($(CONFIG_CPU_ENDIAN_BE8),y) << 15 LDFLAGS_vmlinux += --be8 << 16 KBUILD_LDFLAGS_MODULE += --be8 << 17 endif << 18 << 19 GZFLAGS :=-9 << 20 #KBUILD_CFLAGS +=-pipe << 21 << 22 # Never generate .eh_frame << 23 KBUILD_CFLAGS += $(call cc-option,-fno-dwarf << 24 << 25 # Disable FDPIC ABI << 26 KBUILD_CFLAGS += $(call cc-option,-mno-fdpic << 27 14 28 # This should work on most of the modern platf !! 15 KBUILD_DEFCONFIG := multi_defconfig 29 KBUILD_DEFCONFIG := multi_v7_defconfig << 30 << 31 # defines filename extension depending memory << 32 ifeq ($(CONFIG_MMU),) << 33 MMUEXT := -nommu << 34 KBUILD_CFLAGS += $(call cc-option,-mno-unali << 35 endif << 36 16 37 ifeq ($(CONFIG_FRAME_POINTER),y) !! 17 ifdef cross_compiling 38 KBUILD_CFLAGS +=-fno-omit-frame-pointer !! 18 ifeq ($(CROSS_COMPILE),) 39 ifeq ($(CONFIG_CC_IS_GCC),y) !! 19 CROSS_COMPILE := $(call cc-cross-prefix, \ 40 KBUILD_CFLAGS += -mapcs -mno-sched-prolog !! 20 m68k-linux-gnu- m68k-linux- m68k-unknown-linux-gnu-) 41 endif !! 21 endif 42 endif << 43 << 44 ifeq ($(CONFIG_CPU_BIG_ENDIAN),y) << 45 KBUILD_CPPFLAGS += -mbig-endian << 46 CHECKFLAGS += -D__ARMEB__ << 47 KBUILD_LDFLAGS += -EB << 48 else << 49 KBUILD_CPPFLAGS += -mlittle-endian << 50 CHECKFLAGS += -D__ARMEL__ << 51 KBUILD_LDFLAGS += -EL << 52 endif 22 endif 53 23 54 # 24 # 55 # The Scalar Replacement of Aggregates (SRA) o !! 25 # Enable processor type. Ordering of these is important - we want to 56 # later may result in code being generated tha !! 26 # use the minimum processor type of the range we support. The logic 57 # char struct members incorrectly. So disable !! 27 # for 680x0 will only allow use of the -m68060 or -m68040 if no other 58 # (https://gcc.gnu.org/bugzilla/show_bug.cgi?i !! 28 # 680x0 type is specified - and no option is specified for 68030 or >> 29 # 68020. The other m68k/ColdFire types always specify some type of >> 30 # compiler cpu type flag. 59 # 31 # 60 KBUILD_CFLAGS += $(call cc-option,-fno-ipa-s !! 32 ifndef CONFIG_M68040 61 !! 33 cpuflags-$(CONFIG_M68060) = -m68060 62 # This selects which instruction set is used. << 63 arch-$(CONFIG_CPU_32v7M) :=-march=armv7 << 64 arch-$(CONFIG_CPU_32v7) :=-march=armv7 << 65 arch-$(CONFIG_CPU_32v6) :=-march=armv6 << 66 # Only override the compiler option if ARMv6. << 67 # always available in ARMv7 << 68 ifeq ($(CONFIG_CPU_32v6),y) << 69 arch-$(CONFIG_CPU_32v6K) :=-march=armv6 << 70 endif << 71 arch-$(CONFIG_CPU_32v5) :=-march=armv5 << 72 arch-$(CONFIG_CPU_32v4T) :=-march=armv4 << 73 arch-$(CONFIG_CPU_32v4) :=-march=armv4 << 74 arch-$(CONFIG_CPU_32v3) :=-march=armv3 << 75 << 76 # Note that GCC does not numerically define an << 77 # macro, but instead defines a whole series of << 78 # testing for a specific architecture or later << 79 cpp-$(CONFIG_CPU_32v7M) :=-D__LINUX_AR << 80 cpp-$(CONFIG_CPU_32v7) :=-D__LINUX_AR << 81 cpp-$(CONFIG_CPU_32v6) :=-D__LINUX_AR << 82 # Only override the compiler option if ARMv6. << 83 # always available in ARMv7 << 84 ifeq ($(CONFIG_CPU_32v6),y) << 85 cpp-$(CONFIG_CPU_32v6K) :=-D__LINUX_AR << 86 endif 34 endif 87 cpp-$(CONFIG_CPU_32v5) :=-D__LINUX_AR !! 35 ifndef CONFIG_M68060 88 cpp-$(CONFIG_CPU_32v4T) :=-D__LINUX_AR !! 36 cpuflags-$(CONFIG_M68040) = -m68040 89 cpp-$(CONFIG_CPU_32v4) :=-D__LINUX_AR << 90 cpp-$(CONFIG_CPU_32v3) :=-D__LINUX_AR << 91 << 92 # This selects how we optimise for the process << 93 tune-$(CONFIG_CPU_ARM7TDMI) :=-mtune=arm7t << 94 tune-$(CONFIG_CPU_ARM720T) :=-mtune=arm7t << 95 tune-$(CONFIG_CPU_ARM740T) :=-mtune=arm7t << 96 tune-$(CONFIG_CPU_ARM9TDMI) :=-mtune=arm9t << 97 tune-$(CONFIG_CPU_ARM940T) :=-mtune=arm9t << 98 tune-$(CONFIG_CPU_ARM946E) :=-mtune=arm9e << 99 tune-$(CONFIG_CPU_ARM920T) :=-mtune=arm9t << 100 tune-$(CONFIG_CPU_ARM922T) :=-mtune=arm9t << 101 tune-$(CONFIG_CPU_ARM925T) :=-mtune=arm9t << 102 tune-$(CONFIG_CPU_ARM926T) :=-mtune=arm9t << 103 tune-$(CONFIG_CPU_FA526) :=-mtune=arm9t << 104 tune-$(CONFIG_CPU_SA110) :=-mtune=stron << 105 tune-$(CONFIG_CPU_SA1100) :=-mtune=stron << 106 tune-$(CONFIG_CPU_XSCALE) :=-mtune=xscal << 107 tune-$(CONFIG_CPU_XSC3) :=-mtune=xscal << 108 tune-$(CONFIG_CPU_FEROCEON) :=-mtune=xscal << 109 tune-$(CONFIG_CPU_V6) :=-mtune=arm11 << 110 tune-$(CONFIG_CPU_V6K) :=-mtune=arm11 << 111 << 112 ifeq ($(CONFIG_AEABI),y) << 113 CFLAGS_ABI :=-mabi=aapcs-linux -mfpu=vfp << 114 else << 115 CFLAGS_ABI :=$(call cc-option,-mapcs-32,- << 116 endif 37 endif >> 38 cpuflags-$(CONFIG_M68030) = >> 39 cpuflags-$(CONFIG_M68020) = >> 40 cpuflags-$(CONFIG_M68000) = -m68000 >> 41 cpuflags-$(CONFIG_M5441x) = $(call cc-option,-mcpu=54455,-mcfv4e) >> 42 cpuflags-$(CONFIG_M54xx) = $(call cc-option,-mcpu=5475,-m5200) >> 43 cpuflags-$(CONFIG_M5407) = $(call cc-option,-mcpu=5407,-m5200) >> 44 cpuflags-$(CONFIG_M532x) = $(call cc-option,-mcpu=532x,-m5307) >> 45 cpuflags-$(CONFIG_M537x) = $(call cc-option,-mcpu=537x,-m5307) >> 46 cpuflags-$(CONFIG_M5307) = $(call cc-option,-mcpu=5307,-m5200) >> 47 cpuflags-$(CONFIG_M528x) = $(call cc-option,-mcpu=528x,-m5307) >> 48 cpuflags-$(CONFIG_M5275) = $(call cc-option,-mcpu=5275,-m5307) >> 49 cpuflags-$(CONFIG_M5272) = $(call cc-option,-mcpu=5272,-m5307) >> 50 cpuflags-$(CONFIG_M5271) = $(call cc-option,-mcpu=5271,-m5307) >> 51 cpuflags-$(CONFIG_M523x) = $(call cc-option,-mcpu=523x,-m5307) >> 52 cpuflags-$(CONFIG_M525x) = $(call cc-option,-mcpu=5253,-m5200) >> 53 cpuflags-$(CONFIG_M5249) = $(call cc-option,-mcpu=5249,-m5200) >> 54 cpuflags-$(CONFIG_M520x) = $(call cc-option,-mcpu=5208,-m5200) >> 55 cpuflags-$(CONFIG_M5206e) = $(call cc-option,-mcpu=5206e,-m5200) >> 56 cpuflags-$(CONFIG_M5206) = $(call cc-option,-mcpu=5206,-m5200) >> 57 >> 58 # Evaluate tune cc-option calls now >> 59 cpuflags-y := $(cpuflags-y) 117 60 118 ifeq ($(CONFIG_ARM_UNWIND),y) !! 61 KBUILD_AFLAGS += $(cpuflags-y) 119 CFLAGS_ABI +=-funwind-tables !! 62 KBUILD_CFLAGS += $(cpuflags-y) 120 endif << 121 63 122 ifeq ($(CONFIG_CC_IS_CLANG),y) !! 64 KBUILD_CFLAGS += -pipe -ffreestanding 123 CFLAGS_ABI += -meabi gnu << 124 endif << 125 65 126 ifeq ($(CONFIG_CURRENT_POINTER_IN_TPIDRURO),y) !! 66 ifdef CONFIG_MMU 127 KBUILD_CFLAGS += -mtp=cp15 !! 67 KBUILD_CFLAGS += -ffixed-a2 >> 68 else >> 69 # we can use a m68k-linux-gcc toolchain with these in place >> 70 KBUILD_CPPFLAGS += -DUTS_SYSNAME=\"uClinux\" >> 71 KBUILD_CPPFLAGS += -D__uClinux__ 128 endif 72 endif 129 73 130 # Accept old syntax despite ".syntax unified" !! 74 KBUILD_LDFLAGS := -m m68kelf 131 AFLAGS_NOWARN :=$(call as-option,-Wa$(comma) << 132 75 133 # The GCC option -ffreestanding is required in !! 76 ifdef CONFIG_SUN3 134 # ARM/NEON intrinsics in a non C99-compliant e !! 77 LDFLAGS_vmlinux = -N 135 CC_FLAGS_FPU := -ffreestanding << 136 # Enable <arm_neon.h> << 137 CC_FLAGS_FPU += -isystem $(shell $(CC) -pri << 138 CC_FLAGS_FPU += -march=armv7-a -mfloat-abi= << 139 << 140 ifeq ($(CONFIG_THUMB2_KERNEL),y) << 141 CFLAGS_ISA :=-Wa,-mimplicit-it=always $(A << 142 AFLAGS_ISA :=$(CFLAGS_ISA) -Wa$(comma)-mt << 143 CFLAGS_ISA +=-mthumb << 144 else << 145 CFLAGS_ISA :=$(call cc-option,-marm,) $(A << 146 AFLAGS_ISA :=$(CFLAGS_ISA) << 147 endif 78 endif 148 79 149 # Need -Uarm for gcc < 3.x !! 80 CHECKFLAGS += -D__mc68000__ 150 KBUILD_CPPFLAGS +=$(cpp-y) << 151 KBUILD_CFLAGS +=$(CFLAGS_ABI) $(CFLAGS_ISA) << 152 KBUILD_AFLAGS +=$(CFLAGS_ABI) $(AFLAGS_ISA) << 153 << 154 CHECKFLAGS += -D__arm__ << 155 << 156 # Text offset. This list is sorted numerically << 157 # provide a means to avoid/resolve conflicts i << 158 # Note: the 32kB below this value is reserved << 159 # during boot, and this offset is critical to << 160 # kexec-tools. << 161 textofs-y := 0x00008000 << 162 # RTD1195 has Boot ROM at start of address spa << 163 textofs-$(CONFIG_ARCH_REALTEK) := 0x00108000 << 164 # SA1111 DMA bug: we don't want the kernel to << 165 ifeq ($(CONFIG_ARCH_SA1100),y) << 166 textofs-$(CONFIG_SA1111) := 0x00208000 << 167 endif << 168 textofs-$(CONFIG_ARCH_QCOM_RESERVE_SMEM) := 0x << 169 textofs-$(CONFIG_ARCH_MESON) := 0x00208000 << 170 textofs-$(CONFIG_ARCH_AXXIA) := 0x00308000 << 171 << 172 # Machine directory name. This list is sorted << 173 # by CONFIG_* macro name. << 174 machine-$(CONFIG_ARCH_ACTIONS) += act << 175 machine-$(CONFIG_ARCH_ALPINE) += alp << 176 machine-$(CONFIG_ARCH_ARTPEC) += art << 177 machine-$(CONFIG_ARCH_ASPEED) += asp << 178 machine-$(CONFIG_ARCH_AT91) += at9 << 179 machine-$(CONFIG_ARCH_AXXIA) += axx << 180 machine-$(CONFIG_ARCH_BCM) += bcm << 181 machine-$(CONFIG_ARCH_BERLIN) += ber << 182 machine-$(CONFIG_ARCH_CLPS711X) += clp << 183 machine-$(CONFIG_ARCH_DAVINCI) += dav << 184 machine-$(CONFIG_ARCH_DIGICOLOR) += dig << 185 machine-$(CONFIG_ARCH_DOVE) += dov << 186 machine-$(CONFIG_ARCH_EXYNOS) += exy << 187 machine-$(CONFIG_ARCH_FOOTBRIDGE) += foo << 188 machine-$(CONFIG_ARCH_GEMINI) += gem << 189 machine-$(CONFIG_ARCH_HIGHBANK) += hig << 190 machine-$(CONFIG_ARCH_HISI) += his << 191 machine-$(CONFIG_ARCH_HPE) += hpe << 192 machine-$(CONFIG_ARCH_IXP4XX) += ixp << 193 machine-$(CONFIG_ARCH_KEYSTONE) += key << 194 machine-$(CONFIG_ARCH_LPC18XX) += lpc << 195 machine-$(CONFIG_ARCH_LPC32XX) += lpc << 196 machine-$(CONFIG_ARCH_MESON) += mes << 197 machine-$(CONFIG_ARCH_MMP) += mmp << 198 machine-$(CONFIG_ARCH_MV78XX0) += mv7 << 199 machine-$(CONFIG_ARCH_MVEBU) += mve << 200 machine-$(CONFIG_ARCH_MXC) += imx << 201 machine-$(CONFIG_ARCH_MEDIATEK) += med << 202 machine-$(CONFIG_ARCH_MILBEAUT) += mil << 203 machine-$(CONFIG_ARCH_MXS) += mxs << 204 machine-$(CONFIG_ARCH_MSTARV7) += mst << 205 machine-$(CONFIG_ARCH_NOMADIK) += nom << 206 machine-$(CONFIG_ARCH_NPCM) += npc << 207 machine-$(CONFIG_ARCH_OMAP1) += oma << 208 machine-$(CONFIG_ARCH_OMAP2PLUS) += oma << 209 machine-$(CONFIG_ARCH_ORION5X) += ori << 210 machine-$(CONFIG_ARCH_PXA) += pxa << 211 machine-$(CONFIG_ARCH_QCOM) += qco << 212 machine-$(CONFIG_ARCH_REALTEK) += rea << 213 machine-$(CONFIG_ARCH_ROCKCHIP) += roc << 214 machine-$(CONFIG_ARCH_RPC) += rpc << 215 machine-$(CONFIG_PLAT_SAMSUNG) += s3c << 216 machine-$(CONFIG_ARCH_S5PV210) += s5p << 217 machine-$(CONFIG_ARCH_SA1100) += sa1 << 218 machine-$(CONFIG_ARCH_RENESAS) += shm << 219 machine-$(CONFIG_ARCH_INTEL_SOCFPGA) += soc << 220 machine-$(CONFIG_ARCH_STI) += sti << 221 machine-$(CONFIG_ARCH_STM32) += stm << 222 machine-$(CONFIG_ARCH_SUNXI) += sun << 223 machine-$(CONFIG_ARCH_TEGRA) += teg << 224 machine-$(CONFIG_ARCH_U8500) += ux5 << 225 machine-$(CONFIG_ARCH_VT8500) += vt8 << 226 machine-$(CONFIG_ARCH_ZYNQ) += zyn << 227 machine-$(CONFIG_PLAT_VERSATILE) += ver << 228 machine-$(CONFIG_PLAT_SPEAR) += spe << 229 << 230 # legacy platforms provide their own mach/*.h << 231 # these three are mutually exclusive << 232 machdirs-$(CONFIG_ARCH_FOOTBRIDGE) += arc << 233 machdirs-$(CONFIG_ARCH_RPC) += arc << 234 machdirs-$(CONFIG_ARCH_SA1100) += arc << 235 KBUILD_CPPFLAGS += $(patsubst %,-I$(srctree)/% << 236 << 237 # The byte offset of the kernel image in RAM f << 238 TEXT_OFFSET := $(textofs-y) << 239 << 240 export TEXT_OFFSET GZFLAGS MMUEXT << 241 << 242 # If we have a machine-specific directory, the << 243 core-y += $(patsubst << 244 # For cleaning << 245 core- += $(patsubst << 246 << 247 core-$(CONFIG_PLAT_ORION) += arch/arm/pl << 248 << 249 libs-y := arch/arm/li << 250 << 251 # Default target when executing plain make << 252 boot := arch/arm/boot << 253 ifeq ($(CONFIG_XIP_KERNEL),y) << 254 KBUILD_IMAGE := $(boot)/xipImage << 255 else << 256 KBUILD_IMAGE := $(boot)/zImage << 257 endif << 258 81 259 ifeq ($(CONFIG_STACKPROTECTOR_PER_TASK),y) !! 82 260 prepare: stack_protector_prepare !! 83 ifdef CONFIG_KGDB 261 ifeq ($(CONFIG_CC_HAVE_STACKPROTECTOR_TLS),y) !! 84 # If configured for kgdb support, include debugging infos and keep the 262 stack_protector_prepare: prepare0 !! 85 # frame pointer 263 $(eval KBUILD_CFLAGS += \ !! 86 KBUILD_CFLAGS := $(subst -fomit-frame-pointer,,$(KBUILD_CFLAGS)) -g 264 -mstack-protector-guard=tls \ << 265 -mstack-protector-guard-offset << 266 awk '{if ($$2 == "TSK_ << 267 include/genera << 268 else << 269 stack_protector_prepare: prepare0 << 270 $(eval SSP_PLUGIN_CFLAGS := \ << 271 -fplugin-arg-arm_ssp_per_task_ << 272 awk '{if ($$2 == "TSK_ << 273 include/genera << 274 $(eval KBUILD_CFLAGS += $(SSP_PLUGIN_C << 275 $(eval GCC_PLUGINS_CFLAGS += $(SSP_PLU << 276 endif << 277 endif 87 endif 278 88 279 all: $(notdir $(KBUILD_IMAGE)) !! 89 libs-y += arch/m68k/lib/ 280 90 281 91 282 archheaders: !! 92 all: zImage 283 $(Q)$(MAKE) $(build)=arch/arm/tools ua << 284 93 285 archprepare: !! 94 lilo: vmlinux 286 $(Q)$(MAKE) $(build)=arch/arm/tools ka !! 95 if [ -f $(INSTALL_PATH)/vmlinux ]; then mv -f $(INSTALL_PATH)/vmlinux $(INSTALL_PATH)/vmlinux.old; fi >> 96 if [ -f $(INSTALL_PATH)/System.map ]; then mv -f $(INSTALL_PATH)/System.map $(INSTALL_PATH)/System.old; fi >> 97 cat vmlinux > $(INSTALL_PATH)/vmlinux >> 98 cp System.map $(INSTALL_PATH)/System.map >> 99 if [ -x /sbin/lilo ]; then /sbin/lilo; else /etc/lilo/install; fi 287 100 288 # Convert bzImage to zImage !! 101 zImage compressed: vmlinux.gz 289 bzImage: zImage << 290 102 291 BOOT_TARGETS = zImage Image xipImage bootpI !! 103 vmlinux.gz: vmlinux 292 INSTALL_TARGETS = zinstall uinstall install << 293 104 294 PHONY += bzImage $(BOOT_TARGETS) $(INSTALL_TAR !! 105 ifndef CONFIG_KGDB >> 106 cp vmlinux vmlinux.tmp >> 107 $(STRIP) vmlinux.tmp >> 108 $(KGZIP) -9c vmlinux.tmp >vmlinux.gz >> 109 rm vmlinux.tmp >> 110 else >> 111 $(KGZIP) -9c vmlinux >vmlinux.gz >> 112 endif 295 113 296 bootpImage uImage: zImage !! 114 bzImage: vmlinux.bz2 297 zImage: Image << 298 115 299 $(BOOT_TARGETS): vmlinux !! 116 vmlinux.bz2: vmlinux 300 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$ << 301 @$(kecho) ' Kernel: $(boot)/$@ is rea << 302 117 303 $(INSTALL_TARGETS): KBUILD_IMAGE = $(boot)/$(p !! 118 ifndef CONFIG_KGDB 304 $(INSTALL_TARGETS): !! 119 cp vmlinux vmlinux.tmp 305 $(call cmd,install) !! 120 $(STRIP) vmlinux.tmp >> 121 $(KBZIP2) -1c vmlinux.tmp >vmlinux.bz2 >> 122 rm vmlinux.tmp >> 123 else >> 124 $(KBZIP2) -1c vmlinux >vmlinux.bz2 >> 125 endif 306 126 307 vdso-install-$(CONFIG_VDSO) += arch/arm/vdso/v !! 127 CLEAN_FILES += vmlinux.gz vmlinux.bz2 308 128 309 # My testing targets (bypasses dependencies) !! 129 archheaders: 310 bp:; $(Q)$(MAKE) $(build)=$(boot) $(boot)/b !! 130 $(Q)$(MAKE) $(build)=arch/m68k/kernel/syscalls all 311 131 312 include $(srctree)/scripts/Makefile.defconf !! 132 install: KBUILD_IMAGE := vmlinux.gz 313 PHONY += multi_v7_lpae_defconfig !! 133 install: 314 multi_v7_lpae_defconfig: !! 134 $(call cmd,install) 315 $(call merge_into_defconfig,multi_v7_d << 316 << 317 define archhelp << 318 echo '* zImage - Compressed kernel i << 319 echo ' Image - Uncompressed kernel << 320 echo '* xipImage - XIP kernel image, i << 321 echo ' uImage - U-Boot wrapped zIma << 322 echo ' bootpImage - Combined zImage and << 323 echo ' (supply initrd imag << 324 echo ' install - Install uncompresse << 325 echo ' zinstall - Install compressed << 326 echo ' uinstall - Install U-Boot wrap << 327 echo ' Install using (your << 328 echo ' (distribution) /sbi << 329 echo ' install to $$(INSTA << 330 echo << 331 echo ' multi_v7_lpae_defconfig - multi << 332 endef <<
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.