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

Merge branch 'for-next/vdso' into for-next/core

* for-next/vdso:
arm64: vdso32: Add DWARF_DEBUG
arm64: vdso32: Shuffle .ARM.exidx section above ELF_DETAILS
arm64: compat: Move sigreturn32.S to .rodata section
arm64: vdso*: place got/plt sections in .rodata
arm64: vdso32: add ARM.exidx* sections
arm64: compat: Move kuser32.S to .rodata section
arm64: vdso32: enable orphan handling for VDSO
arm64: vdso32: put ELF related sections in the linker script
arm64: vdso: enable orphan handling for VDSO
arm64: vdso: put ELF related sections in the linker script

+48 -6
+1
arch/arm64/kernel/kuser32.S
··· 15 15 16 16 #include <asm/unistd.h> 17 17 18 + .section .rodata 18 19 .align 5 19 20 .globl __kuser_helper_start 20 21 __kuser_helper_start:
+1
arch/arm64/kernel/sigreturn32.S
··· 15 15 16 16 #include <asm/unistd.h> 17 17 18 + .section .rodata 18 19 .globl __aarch32_sigret_code_start 19 20 __aarch32_sigret_code_start: 20 21
+7 -1
arch/arm64/kernel/vdso/Makefile
··· 24 24 # routines, as x86 does (see 6f121e548f83 ("x86, vdso: Reimplement vdso.so 25 25 # preparation in build-time C")). 26 26 ldflags-y := -shared -soname=linux-vdso.so.1 --hash-style=sysv \ 27 - -Bsymbolic --build-id=sha1 -n $(btildflags-y) -T 27 + -Bsymbolic --build-id=sha1 -n $(btildflags-y) 28 + 29 + ifdef CONFIG_LD_ORPHAN_WARN 30 + ldflags-y += --orphan-handling=warn 31 + endif 32 + 33 + ldflags-y += -T 28 34 29 35 ccflags-y := -fno-common -fno-builtin -fno-stack-protector -ffixed-x18 30 36 ccflags-y += -DDISABLE_BRANCH_PROFILING -DBUILD_VDSO
+15 -1
arch/arm64/kernel/vdso/vdso.lds.S
··· 11 11 #include <linux/const.h> 12 12 #include <asm/page.h> 13 13 #include <asm/vdso.h> 14 + #include <asm-generic/vmlinux.lds.h> 14 15 15 16 OUTPUT_FORMAT("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64") 16 17 OUTPUT_ARCH(aarch64) ··· 50 49 51 50 .dynamic : { *(.dynamic) } :text :dynamic 52 51 53 - .rodata : { *(.rodata*) } :text 52 + .rela.dyn : ALIGN(8) { *(.rela .rela*) } 53 + 54 + .rodata : { 55 + *(.rodata*) 56 + *(.got) 57 + *(.got.plt) 58 + *(.plt) 59 + *(.plt.*) 60 + *(.iplt) 61 + *(.igot .igot.plt) 62 + } :text 54 63 55 64 _end = .; 56 65 PROVIDE(end = .); 66 + 67 + DWARF_DEBUG 68 + ELF_DETAILS 57 69 58 70 /DISCARD/ : { 59 71 *(.data .data.* .gnu.linkonce.d.* .sdata*)
+1
arch/arm64/kernel/vdso32/Makefile
··· 104 104 VDSO_LDFLAGS += -Bsymbolic --no-undefined -soname=linux-vdso.so.1 105 105 VDSO_LDFLAGS += -z max-page-size=4096 -z common-page-size=4096 106 106 VDSO_LDFLAGS += -shared --hash-style=sysv --build-id=sha1 107 + VDSO_LDFLAGS += --orphan-handling=warn 107 108 108 109 109 110 # Borrow vdsomunge.c from the arm vDSO
+23 -4
arch/arm64/kernel/vdso32/vdso.lds.S
··· 11 11 #include <linux/const.h> 12 12 #include <asm/page.h> 13 13 #include <asm/vdso.h> 14 + #include <asm-generic/vmlinux.lds.h> 14 15 15 16 OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm", "elf32-littlearm") 16 17 OUTPUT_ARCH(arm) ··· 36 35 37 36 .dynamic : { *(.dynamic) } :text :dynamic 38 37 39 - .rodata : { *(.rodata*) } :text 38 + .rodata : { 39 + *(.rodata*) 40 + *(.got) 41 + *(.got.plt) 42 + *(.plt) 43 + *(.rel.iplt) 44 + *(.iplt) 45 + *(.igot.plt) 46 + } :text 40 47 41 - .text : { *(.text*) } :text =0xe7f001f2 48 + .text : { 49 + *(.text*) 50 + *(.glue_7) 51 + *(.glue_7t) 52 + *(.vfp11_veneer) 53 + *(.v4_bx) 54 + } :text =0xe7f001f2 42 55 43 - .got : { *(.got) } 44 - .rel.plt : { *(.rel.plt) } 56 + .rel.dyn : { *(.rel*) } 57 + 58 + .ARM.exidx : { *(.ARM.exidx*) } 59 + DWARF_DEBUG 60 + ELF_DETAILS 61 + .ARM.attributes 0 : { *(.ARM.attributes) } 45 62 46 63 /DISCARD/ : { 47 64 *(.note.GNU-stack)