Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

arm64: Build infrastructure

This patch adds Makefile and Kconfig files required for building an
AArch64 kernel.

Signed-off-by: Will Deacon <will.deacon@arm.com>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Acked-by: Nicolas Pitre <nico@linaro.org>
Acked-by: Olof Johansson <olof@lixom.net>
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>

+654 -3
+222
arch/arm64/Kconfig
··· 1 + config ARM64 2 + def_bool y 3 + select ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE 4 + select GENERIC_CLOCKEVENTS 5 + select GENERIC_HARDIRQS_NO_DEPRECATED 6 + select GENERIC_IOMAP 7 + select GENERIC_IRQ_PROBE 8 + select GENERIC_IRQ_SHOW 9 + select GENERIC_SMP_IDLE_THREAD 10 + select GENERIC_TIME_VSYSCALL 11 + select HARDIRQS_SW_RESEND 12 + select HAVE_ARCH_TRACEHOOK 13 + select HAVE_DMA_API_DEBUG 14 + select HAVE_DMA_ATTRS 15 + select HAVE_GENERIC_DMA_COHERENT 16 + select HAVE_GENERIC_HARDIRQS 17 + select HAVE_HW_BREAKPOINT if PERF_EVENTS 18 + select HAVE_IRQ_WORK 19 + select HAVE_MEMBLOCK 20 + select HAVE_PERF_EVENTS 21 + select HAVE_SPARSE_IRQ 22 + select IRQ_DOMAIN 23 + select NO_BOOTMEM 24 + select OF 25 + select OF_EARLY_FLATTREE 26 + select PERF_USE_VMALLOC 27 + select RTC_LIB 28 + select SPARSE_IRQ 29 + help 30 + ARM 64-bit (AArch64) Linux support. 31 + 32 + config 64BIT 33 + def_bool y 34 + 35 + config ARCH_PHYS_ADDR_T_64BIT 36 + def_bool y 37 + 38 + config MMU 39 + def_bool y 40 + 41 + config NO_IOPORT 42 + def_bool y 43 + 44 + config STACKTRACE_SUPPORT 45 + def_bool y 46 + 47 + config LOCKDEP_SUPPORT 48 + def_bool y 49 + 50 + config TRACE_IRQFLAGS_SUPPORT 51 + def_bool y 52 + 53 + config GENERIC_LOCKBREAK 54 + def_bool y 55 + depends on SMP && PREEMPT 56 + 57 + config RWSEM_GENERIC_SPINLOCK 58 + def_bool y 59 + 60 + config GENERIC_HWEIGHT 61 + def_bool y 62 + 63 + config GENERIC_CSUM 64 + def_bool y 65 + 66 + config GENERIC_CALIBRATE_DELAY 67 + def_bool y 68 + 69 + config ZONE_DMA32 70 + def_bool y 71 + 72 + config ARCH_DMA_ADDR_T_64BIT 73 + def_bool y 74 + 75 + config NEED_DMA_MAP_STATE 76 + def_bool y 77 + 78 + config NEED_SG_DMA_LENGTH 79 + def_bool y 80 + 81 + config SWIOTLB 82 + def_bool y 83 + 84 + config IOMMU_HELPER 85 + def_bool SWIOTLB 86 + 87 + source "init/Kconfig" 88 + 89 + source "kernel/Kconfig.freezer" 90 + 91 + menu "System Type" 92 + 93 + endmenu 94 + 95 + menu "Bus support" 96 + 97 + config ARM_AMBA 98 + bool 99 + 100 + endmenu 101 + 102 + menu "Kernel Features" 103 + 104 + source "kernel/time/Kconfig" 105 + 106 + config ARM64_64K_PAGES 107 + bool "Enable 64KB pages support" 108 + help 109 + This feature enables 64KB pages support (4KB by default) 110 + allowing only two levels of page tables and faster TLB 111 + look-up. AArch32 emulation is not available when this feature 112 + is enabled. 113 + 114 + config SMP 115 + bool "Symmetric Multi-Processing" 116 + select USE_GENERIC_SMP_HELPERS 117 + help 118 + This enables support for systems with more than one CPU. If 119 + you say N here, the kernel will run on single and 120 + multiprocessor machines, but will use only one CPU of a 121 + multiprocessor machine. If you say Y here, the kernel will run 122 + on many, but not all, single processor machines. On a single 123 + processor machine, the kernel will run faster if you say N 124 + here. 125 + 126 + If you don't know what to do here, say N. 127 + 128 + config NR_CPUS 129 + int "Maximum number of CPUs (2-32)" 130 + range 2 32 131 + depends on SMP 132 + default "4" 133 + 134 + source kernel/Kconfig.preempt 135 + 136 + config HZ 137 + int 138 + default 100 139 + 140 + config ARCH_HAS_HOLES_MEMORYMODEL 141 + def_bool y if SPARSEMEM 142 + 143 + config ARCH_SPARSEMEM_ENABLE 144 + def_bool y 145 + select SPARSEMEM_VMEMMAP_ENABLE 146 + 147 + config ARCH_SPARSEMEM_DEFAULT 148 + def_bool ARCH_SPARSEMEM_ENABLE 149 + 150 + config ARCH_SELECT_MEMORY_MODEL 151 + def_bool ARCH_SPARSEMEM_ENABLE 152 + 153 + config HAVE_ARCH_PFN_VALID 154 + def_bool ARCH_HAS_HOLES_MEMORYMODEL || !SPARSEMEM 155 + 156 + config HW_PERF_EVENTS 157 + bool "Enable hardware performance counter support for perf events" 158 + depends on PERF_EVENTS 159 + default y 160 + help 161 + Enable hardware performance counter support for perf events. If 162 + disabled, perf events will use software events only. 163 + 164 + source "mm/Kconfig" 165 + 166 + endmenu 167 + 168 + menu "Boot options" 169 + 170 + config CMDLINE 171 + string "Default kernel command string" 172 + default "" 173 + help 174 + Provide a set of default command-line options at build time by 175 + entering them here. As a minimum, you should specify the the 176 + root device (e.g. root=/dev/nfs). 177 + 178 + config CMDLINE_FORCE 179 + bool "Always use the default kernel command string" 180 + help 181 + Always use the default kernel command string, even if the boot 182 + loader passes other arguments to the kernel. 183 + This is useful if you cannot or don't want to change the 184 + command-line options your boot loader passes to the kernel. 185 + 186 + endmenu 187 + 188 + menu "Userspace binary formats" 189 + 190 + source "fs/Kconfig.binfmt" 191 + 192 + config COMPAT 193 + bool "Kernel support for 32-bit EL0" 194 + depends on !ARM64_64K_PAGES 195 + select COMPAT_BINFMT_ELF 196 + help 197 + This option enables support for a 32-bit EL0 running under a 64-bit 198 + kernel at EL1. AArch32-specific components such as system calls, 199 + the user helper functions, VFP support and the ptrace interface are 200 + handled appropriately by the kernel. 201 + 202 + If you want to execute 32-bit userspace applications, say Y. 203 + 204 + config SYSVIPC_COMPAT 205 + def_bool y 206 + depends on COMPAT && SYSVIPC 207 + 208 + endmenu 209 + 210 + source "net/Kconfig" 211 + 212 + source "drivers/Kconfig" 213 + 214 + source "fs/Kconfig" 215 + 216 + source "arch/arm64/Kconfig.debug" 217 + 218 + source "security/Kconfig" 219 + 220 + source "crypto/Kconfig" 221 + 222 + source "lib/Kconfig"
+27
arch/arm64/Kconfig.debug
··· 1 + menu "Kernel hacking" 2 + 3 + source "lib/Kconfig.debug" 4 + 5 + config FRAME_POINTER 6 + bool 7 + default y 8 + 9 + config DEBUG_ERRORS 10 + bool "Verbose kernel error messages" 11 + depends on DEBUG_KERNEL 12 + help 13 + This option controls verbose debugging information which can be 14 + printed when the kernel detects an internal error. This debugging 15 + information is useful to kernel hackers when tracking down problems, 16 + but mostly meaningless to other people. It's safe to say Y unless 17 + you are concerned with the code size or don't want to see these 18 + messages. 19 + 20 + config DEBUG_STACK_USAGE 21 + bool "Enable stack utilization instrumentation" 22 + depends on DEBUG_KERNEL 23 + help 24 + Enables the display of the minimum amount of free stack which each 25 + task has ever had available in the sysrq-T output. 26 + 27 + endmenu
+71
arch/arm64/Makefile
··· 1 + # 2 + # arch/arm64/Makefile 3 + # 4 + # This file is included by the global makefile so that you can add your own 5 + # architecture-specific flags and dependencies. 6 + # 7 + # This file is subject to the terms and conditions of the GNU General Public 8 + # License. See the file "COPYING" in the main directory of this archive 9 + # for more details. 10 + # 11 + # Copyright (C) 1995-2001 by Russell King 12 + 13 + LDFLAGS_vmlinux :=-p --no-undefined -X 14 + CPPFLAGS_vmlinux.lds = -DTEXT_OFFSET=$(TEXT_OFFSET) 15 + OBJCOPYFLAGS :=-O binary -R .note -R .note.gnu.build-id -R .comment -S 16 + GZFLAGS :=-9 17 + 18 + LIBGCC := $(shell $(CC) $(KBUILD_CFLAGS) -print-libgcc-file-name) 19 + 20 + KBUILD_DEFCONFIG := defconfig 21 + 22 + KBUILD_CFLAGS += -mgeneral-regs-only 23 + KBUILD_CPPFLAGS += -mlittle-endian 24 + AS += -EL 25 + LD += -EL 26 + 27 + comma = , 28 + 29 + CHECKFLAGS += -D__aarch64__ 30 + 31 + # Default value 32 + head-y := arch/arm64/kernel/head.o 33 + 34 + # The byte offset of the kernel image in RAM from the start of RAM. 35 + TEXT_OFFSET := 0x00080000 36 + 37 + export TEXT_OFFSET GZFLAGS 38 + 39 + core-y += arch/arm64/kernel/ arch/arm64/mm/ 40 + libs-y := arch/arm64/lib/ $(libs-y) 41 + libs-y += $(LIBGCC) 42 + 43 + # Default target when executing plain make 44 + KBUILD_IMAGE := Image.gz 45 + 46 + all: $(KBUILD_IMAGE) 47 + 48 + boot := arch/arm64/boot 49 + 50 + Image Image.gz: vmlinux 51 + $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@ 52 + 53 + zinstall install: vmlinux 54 + $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $@ 55 + 56 + %.dtb: 57 + $(Q)$(MAKE) $(build)=$(boot) MACHINE=$(MACHINE) $(boot)/$@ 58 + 59 + # We use MRPROPER_FILES and CLEAN_FILES now 60 + archclean: 61 + $(Q)$(MAKE) $(clean)=$(boot) 62 + 63 + define archhelp 64 + echo '* Image.gz - Compressed kernel image (arch/$(ARCH)/boot/Image.gz)' 65 + echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)' 66 + echo ' install - Install uncompressed kernel' 67 + echo ' zinstall - Install compressed kernel' 68 + echo ' Install using (your) ~/bin/installkernel or' 69 + echo ' (distribution) /sbin/installkernel or' 70 + echo ' install to $$(INSTALL_PATH) and run lilo' 71 + endef
+2
arch/arm64/boot/.gitignore
··· 1 + Image 2 + Image.gz
+36
arch/arm64/boot/Makefile
··· 1 + # 2 + # arch/arm64/boot/Makefile 3 + # 4 + # This file is included by the global makefile so that you can add your own 5 + # architecture-specific flags and dependencies. 6 + # 7 + # This file is subject to the terms and conditions of the GNU General Public 8 + # License. See the file "COPYING" in the main directory of this archive 9 + # for more details. 10 + # 11 + # Copyright (C) 2012, ARM Ltd. 12 + # Author: Will Deacon <will.deacon@arm.com> 13 + # 14 + # Based on the ia64 boot/Makefile. 15 + # 16 + 17 + targets := Image Image.gz 18 + 19 + $(obj)/Image: vmlinux FORCE 20 + $(call if_changed,objcopy) 21 + 22 + $(obj)/Image.gz: $(obj)/Image FORCE 23 + $(call if_changed,gzip) 24 + 25 + $(obj)/%.dtb: $(src)/dts/%.dts 26 + $(call cmd,dtc) 27 + 28 + install: $(obj)/Image 29 + $(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \ 30 + $(obj)/Image System.map "$(INSTALL_PATH)" 31 + 32 + zinstall: $(obj)/Image.gz 33 + $(CONFIG_SHELL) $(srctree)/$(src)/install.sh $(KERNELRELEASE) \ 34 + $(obj)/Image.gz System.map "$(INSTALL_PATH)" 35 + 36 + clean-files += *.dtb
+46
arch/arm64/boot/install.sh
··· 1 + #!/bin/sh 2 + # 3 + # arch/arm64/boot/install.sh 4 + # 5 + # This file is subject to the terms and conditions of the GNU General Public 6 + # License. See the file "COPYING" in the main directory of this archive 7 + # for more details. 8 + # 9 + # Copyright (C) 1995 by Linus Torvalds 10 + # 11 + # Adapted from code in arch/i386/boot/Makefile by H. Peter Anvin 12 + # Adapted from code in arch/i386/boot/install.sh by Russell King 13 + # 14 + # "make install" script for the AArch64 Linux port 15 + # 16 + # Arguments: 17 + # $1 - kernel version 18 + # $2 - kernel image file 19 + # $3 - kernel map file 20 + # $4 - default install path (blank if root directory) 21 + # 22 + 23 + # User may have a custom install script 24 + if [ -x ~/bin/${INSTALLKERNEL} ]; then exec ~/bin/${INSTALLKERNEL} "$@"; fi 25 + if [ -x /sbin/${INSTALLKERNEL} ]; then exec /sbin/${INSTALLKERNEL} "$@"; fi 26 + 27 + if [ "$(basename $2)" = "Image.gz" ]; then 28 + # Compressed install 29 + echo "Installing compressed kernel" 30 + base=vmlinuz 31 + else 32 + # Normal install 33 + echo "Installing normal kernel" 34 + base=vmlinux 35 + fi 36 + 37 + if [ -f $4/$base-$1 ]; then 38 + mv $4/$base-$1 $4/$base-$1.old 39 + fi 40 + cat $2 > $4/$base-$1 41 + 42 + # Install system map file 43 + if [ -f $4/System.map-$1 ]; then 44 + mv $4/System.map-$1 $4/System.map-$1.old 45 + fi 46 + cp $3 $4/System.map-$1
+85
arch/arm64/configs/defconfig
··· 1 + CONFIG_EXPERIMENTAL=y 2 + # CONFIG_LOCALVERSION_AUTO is not set 3 + # CONFIG_SWAP is not set 4 + CONFIG_SYSVIPC=y 5 + CONFIG_POSIX_MQUEUE=y 6 + CONFIG_BSD_PROCESS_ACCT=y 7 + CONFIG_BSD_PROCESS_ACCT_V3=y 8 + CONFIG_NO_HZ=y 9 + CONFIG_HIGH_RES_TIMERS=y 10 + CONFIG_IKCONFIG=y 11 + CONFIG_IKCONFIG_PROC=y 12 + CONFIG_LOG_BUF_SHIFT=14 13 + # CONFIG_UTS_NS is not set 14 + # CONFIG_IPC_NS is not set 15 + # CONFIG_PID_NS is not set 16 + # CONFIG_NET_NS is not set 17 + CONFIG_SCHED_AUTOGROUP=y 18 + CONFIG_BLK_DEV_INITRD=y 19 + CONFIG_KALLSYMS_ALL=y 20 + # CONFIG_COMPAT_BRK is not set 21 + CONFIG_PROFILING=y 22 + CONFIG_MODULES=y 23 + CONFIG_MODULE_UNLOAD=y 24 + # CONFIG_BLK_DEV_BSG is not set 25 + # CONFIG_IOSCHED_DEADLINE is not set 26 + CONFIG_SMP=y 27 + CONFIG_PREEMPT_VOLUNTARY=y 28 + CONFIG_CMDLINE="console=ttyAMA0" 29 + # CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set 30 + CONFIG_COMPAT=y 31 + CONFIG_NET=y 32 + CONFIG_PACKET=y 33 + CONFIG_UNIX=y 34 + CONFIG_INET=y 35 + CONFIG_IP_PNP=y 36 + CONFIG_IP_PNP_DHCP=y 37 + CONFIG_IP_PNP_BOOTP=y 38 + # CONFIG_INET_LRO is not set 39 + # CONFIG_IPV6 is not set 40 + # CONFIG_WIRELESS is not set 41 + CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 42 + CONFIG_DEVTMPFS=y 43 + # CONFIG_BLK_DEV is not set 44 + CONFIG_SCSI=y 45 + # CONFIG_SCSI_PROC_FS is not set 46 + CONFIG_BLK_DEV_SD=y 47 + # CONFIG_SCSI_LOWLEVEL is not set 48 + CONFIG_NETDEVICES=y 49 + CONFIG_MII=y 50 + # CONFIG_WLAN is not set 51 + CONFIG_INPUT_EVDEV=y 52 + # CONFIG_SERIO_I8042 is not set 53 + # CONFIG_SERIO_SERPORT is not set 54 + CONFIG_LEGACY_PTY_COUNT=16 55 + # CONFIG_HW_RANDOM is not set 56 + # CONFIG_HWMON is not set 57 + CONFIG_FB=y 58 + # CONFIG_VGA_CONSOLE is not set 59 + CONFIG_FRAMEBUFFER_CONSOLE=y 60 + CONFIG_LOGO=y 61 + # CONFIG_LOGO_LINUX_MONO is not set 62 + # CONFIG_LOGO_LINUX_VGA16 is not set 63 + # CONFIG_USB_SUPPORT is not set 64 + # CONFIG_IOMMU_SUPPORT is not set 65 + CONFIG_EXT2_FS=y 66 + CONFIG_EXT3_FS=y 67 + # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set 68 + # CONFIG_EXT3_FS_XATTR is not set 69 + CONFIG_FUSE_FS=y 70 + CONFIG_CUSE=y 71 + CONFIG_VFAT_FS=y 72 + CONFIG_TMPFS=y 73 + # CONFIG_MISC_FILESYSTEMS is not set 74 + CONFIG_NFS_FS=y 75 + CONFIG_ROOT_NFS=y 76 + CONFIG_NLS_CODEPAGE_437=y 77 + CONFIG_NLS_ISO8859_1=y 78 + CONFIG_MAGIC_SYSRQ=y 79 + CONFIG_DEBUG_FS=y 80 + CONFIG_DEBUG_KERNEL=y 81 + # CONFIG_SCHED_DEBUG is not set 82 + CONFIG_DEBUG_INFO=y 83 + # CONFIG_FTRACE is not set 84 + CONFIG_ATOMIC64_SELFTEST=y 85 + CONFIG_DEBUG_ERRORS=y
+1
arch/arm64/include/asm/prom.h
··· 1 + /* Empty for now */
+1
arch/arm64/kernel/.gitignore
··· 1 + vmlinux.lds
+27
arch/arm64/kernel/Makefile
··· 1 + # 2 + # Makefile for the linux kernel. 3 + # 4 + 5 + CPPFLAGS_vmlinux.lds := -DTEXT_OFFSET=$(TEXT_OFFSET) 6 + AFLAGS_head.o := -DTEXT_OFFSET=$(TEXT_OFFSET) 7 + 8 + # Object file lists. 9 + arm64-obj-y := cputable.o debug-monitors.o entry.o irq.o fpsimd.o \ 10 + entry-fpsimd.o process.o ptrace.o setup.o signal.o \ 11 + sys.o stacktrace.o time.o traps.o io.o vdso.o 12 + 13 + arm64-obj-$(CONFIG_COMPAT) += sys32.o kuser32.o signal32.o \ 14 + sys_compat.o 15 + arm64-obj-$(CONFIG_MODULES) += arm64ksyms.o module.o 16 + arm64-obj-$(CONFIG_SMP) += smp.o 17 + arm64-obj-$(CONFIG_HW_PERF_EVENTS) += perf_event.o 18 + arm64-obj-$(CONFIG_HAVE_HW_BREAKPOINT)+= hw_breakpoint.o 19 + 20 + obj-y += $(arm64-obj-y) vdso/ 21 + obj-m += $(arm64-obj-m) 22 + head-y := head.o 23 + extra-y := $(head-y) vmlinux.lds 24 + 25 + # vDSO - this must be built first to generate the symbol offsets 26 + $(call objectify,$(arm64-obj-y)): $(obj)/vdso/vdso-offsets.h 27 + $(obj)/vdso/vdso-offsets.h: $(obj)/vdso
+126
arch/arm64/kernel/vmlinux.lds.S
··· 1 + /* 2 + * ld script to make ARM Linux kernel 3 + * taken from the i386 version by Russell King 4 + * Written by Martin Mares <mj@atrey.karlin.mff.cuni.cz> 5 + */ 6 + 7 + #include <asm-generic/vmlinux.lds.h> 8 + #include <asm/thread_info.h> 9 + #include <asm/memory.h> 10 + #include <asm/page.h> 11 + 12 + #define ARM_EXIT_KEEP(x) 13 + #define ARM_EXIT_DISCARD(x) x 14 + 15 + OUTPUT_ARCH(aarch64) 16 + ENTRY(stext) 17 + 18 + jiffies = jiffies_64; 19 + 20 + SECTIONS 21 + { 22 + /* 23 + * XXX: The linker does not define how output sections are 24 + * assigned to input sections when there are multiple statements 25 + * matching the same input section name. There is no documented 26 + * order of matching. 27 + */ 28 + /DISCARD/ : { 29 + ARM_EXIT_DISCARD(EXIT_TEXT) 30 + ARM_EXIT_DISCARD(EXIT_DATA) 31 + EXIT_CALL 32 + *(.discard) 33 + *(.discard.*) 34 + } 35 + 36 + . = PAGE_OFFSET + TEXT_OFFSET; 37 + 38 + .head.text : { 39 + _text = .; 40 + HEAD_TEXT 41 + } 42 + .text : { /* Real text segment */ 43 + _stext = .; /* Text and read-only data */ 44 + *(.smp.pen.text) 45 + __exception_text_start = .; 46 + *(.exception.text) 47 + __exception_text_end = .; 48 + IRQENTRY_TEXT 49 + TEXT_TEXT 50 + SCHED_TEXT 51 + LOCK_TEXT 52 + *(.fixup) 53 + *(.gnu.warning) 54 + . = ALIGN(16); 55 + *(.got) /* Global offset table */ 56 + } 57 + 58 + RO_DATA(PAGE_SIZE) 59 + 60 + _etext = .; /* End of text and rodata section */ 61 + 62 + . = ALIGN(PAGE_SIZE); 63 + __init_begin = .; 64 + 65 + INIT_TEXT_SECTION(8) 66 + .exit.text : { 67 + ARM_EXIT_KEEP(EXIT_TEXT) 68 + } 69 + . = ALIGN(16); 70 + .init.data : { 71 + INIT_DATA 72 + INIT_SETUP(16) 73 + INIT_CALLS 74 + CON_INITCALL 75 + SECURITY_INITCALL 76 + INIT_RAM_FS 77 + } 78 + .exit.data : { 79 + ARM_EXIT_KEEP(EXIT_DATA) 80 + } 81 + 82 + PERCPU_SECTION(64) 83 + 84 + __init_end = .; 85 + . = ALIGN(THREAD_SIZE); 86 + __data_loc = .; 87 + 88 + .data : AT(__data_loc) { 89 + _data = .; /* address in memory */ 90 + _sdata = .; 91 + 92 + /* 93 + * first, the init task union, aligned 94 + * to an 8192 byte boundary. 95 + */ 96 + INIT_TASK_DATA(THREAD_SIZE) 97 + NOSAVE_DATA 98 + CACHELINE_ALIGNED_DATA(64) 99 + READ_MOSTLY_DATA(64) 100 + 101 + /* 102 + * The exception fixup table (might need resorting at runtime) 103 + */ 104 + . = ALIGN(32); 105 + __start___ex_table = .; 106 + *(__ex_table) 107 + __stop___ex_table = .; 108 + 109 + /* 110 + * and the usual data section 111 + */ 112 + DATA_DATA 113 + CONSTRUCTORS 114 + 115 + _edata = .; 116 + } 117 + _edata_loc = __data_loc + SIZEOF(.data); 118 + 119 + NOTES 120 + 121 + BSS_SECTION(0, 0, 0) 122 + _end = .; 123 + 124 + STABS_DEBUG 125 + .comment 0 : { *(.comment) } 126 + }
+4
arch/arm64/mm/Makefile
··· 1 + obj-y := dma-mapping.o extable.o fault.o init.o \ 2 + cache.o copypage.o flush.o \ 3 + ioremap.o mmap.o pgd.o mmu.o \ 4 + context.o tlb.o proc.o
+2 -1
init/Kconfig
··· 1153 1153 1154 1154 config UID16 1155 1155 bool "Enable 16-bit UID system calls" if EXPERT 1156 - depends on ARM || BLACKFIN || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && COMPAT) || UML || (X86_64 && IA32_EMULATION) 1156 + depends on ARM || BLACKFIN || CRIS || FRV || H8300 || X86_32 || M68K || (S390 && !64BIT) || SUPERH || SPARC32 || (SPARC64 && COMPAT) || UML || (X86_64 && IA32_EMULATION) \ 1157 + || AARCH32_EMULATION 1157 1158 default y 1158 1159 help 1159 1160 This enables the legacy 16-bit UID syscall wrappers.
+4 -2
lib/Kconfig.debug
··· 452 452 config DEBUG_KMEMLEAK 453 453 bool "Kernel memory leak detector" 454 454 depends on DEBUG_KERNEL && EXPERIMENTAL && \ 455 - (X86 || ARM || PPC || MIPS || S390 || SPARC64 || SUPERH || MICROBLAZE || TILE) 455 + (X86 || ARM || PPC || MIPS || S390 || SPARC64 || SUPERH || \ 456 + MICROBLAZE || TILE || ARM64) 456 457 457 458 select DEBUG_FS 458 459 select STACKTRACE if STACKTRACE_SUPPORT ··· 740 739 bool "Verbose BUG() reporting (adds 70K)" if DEBUG_KERNEL && EXPERT 741 740 depends on BUG 742 741 depends on ARM || AVR32 || M32R || M68K || SPARC32 || SPARC64 || \ 743 - FRV || SUPERH || GENERIC_BUG || BLACKFIN || MN10300 || TILE 742 + FRV || SUPERH || GENERIC_BUG || BLACKFIN || MN10300 || \ 743 + TILE || ARM64 744 744 default y 745 745 help 746 746 Say Y here to make BUG() panics output the file name and line number