Index: sys/amd64/linux/linux_vdso.lds.s =================================================================== --- /dev/null +++ sys/amd64/linux/linux_vdso.lds.s @@ -1,74 +0,0 @@ -/* - * Linker script for 64-bit vDSO. - * Copied from Linux kernel arch/x86/vdso/vdso-layout.lds.S - * - * $FreeBSD$ - */ - -SECTIONS -{ - . = . + SIZEOF_HEADERS; - - .hash : { *(.hash) } :text - .gnu.hash : { *(.gnu.hash) } - .dynsym : { *(.dynsym) } - .dynstr : { *(.dynstr) } - .gnu.version : { *(.gnu.version) } - .gnu.version_d : { *(.gnu.version_d) } - .gnu.version_r : { *(.gnu.version_r) } - - .note : { *(.note.*) } :text :note - - .eh_frame_hdr : { *(.eh_frame_hdr) } :text :eh_frame_hdr - .eh_frame : { KEEP (*(.eh_frame)) } :text - - .dynamic : { *(.dynamic) } :text :dynamic - - .rodata : { *(.rodata*) } :text - .data : { - *(.data*) - *(.sdata*) - *(.got.plt) *(.got) - *(.gnu.linkonce.d.*) - *(.bss*) - *(.dynbss*) - *(.gnu.linkonce.b.*) - } - - .altinstructions : { *(.altinstructions) } - .altinstr_replacement : { *(.altinstr_replacement) } - - . = ALIGN(0x100); - .text : { *(.test .text*) } :text =0x90909090 -} - -PHDRS -{ - text PT_LOAD FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */ - dynamic PT_DYNAMIC FLAGS(4); /* PF_R */ - note PT_NOTE FLAGS(4); /* PF_R */ - eh_frame_hdr PT_GNU_EH_FRAME; -} - -VERSION -{ - LINUX_2.6 { - global: - __vdso_time; - __vdso_gettimeofday; - __vdso_getcpu; - __vdso_clock_gettime; - __vdso_clock_getres; - local: *; - }; - - LINUX_0.0 { - global: - linux_rt_sigcode; - linux_platform; - kern_timekeep_base; - kern_tsc_selector; - kern_cpu_selector; - local: *; - }; -} Index: sys/amd64/linux32/linux32_vdso.lds.s =================================================================== --- /dev/null +++ sys/amd64/linux32/linux32_vdso.lds.s @@ -1,84 +0,0 @@ -/* - * Linker script for 32-bit vDSO. - * Copied from Linux kernel arch/x86/vdso/vdso-layout.lds.S - * and arch/x86/vdso/vdso32/vdso32.lds.S - * - * $FreeBSD$ - */ - -SECTIONS -{ - . = . + SIZEOF_HEADERS; - - .hash : { *(.hash) } :text - .gnu.hash : { *(.gnu.hash) } - .dynsym : { *(.dynsym) } - .dynstr : { *(.dynstr) } - .gnu.version : { *(.gnu.version) } - .gnu.version_d : { *(.gnu.version_d) } - .gnu.version_r : { *(.gnu.version_r) } - - .note : { *(.note.*) } :text :note - - .eh_frame_hdr : { *(.eh_frame_hdr) } :text :eh_frame_hdr - .eh_frame : { KEEP (*(.eh_frame)) } :text - - .dynamic : { *(.dynamic) } :text :dynamic - - .rodata : { *(.rodata*) } :text - .data : { - *(.data*) - *(.sdata*) - *(.got.plt) *(.got) - *(.gnu.linkonce.d.*) - *(.bss*) - *(.dynbss*) - *(.gnu.linkonce.b.*) - } - - .altinstructions : { *(.altinstructions) } - .altinstr_replacement : { *(.altinstr_replacement) } - - . = ALIGN(0x100); - .text : { *(.text*) } :text =0x90909090 -} - -PHDRS -{ - text PT_LOAD FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */ - dynamic PT_DYNAMIC FLAGS(4); /* PF_R */ - note PT_NOTE FLAGS(4); /* PF_R */ - eh_frame_hdr PT_GNU_EH_FRAME; -} - -VERSION -{ - LINUX_2.6 { - global: - __vdso_clock_gettime; - __vdso_gettimeofday; - __vdso_time; - __vdso_getcpu; - __vdso_clock_getres; - __vdso_clock_gettime64; - }; - - LINUX_2.5 { - global: - __kernel_vsyscall; - __kernel_sigreturn; - __kernel_rt_sigreturn; - local: *; - }; - - LINUX_0.0 { - global: - linux_platform; - kern_timekeep_base; - kern_tsc_selector; - kern_cpu_selector; - linux32_vdso_sigcode; - linux32_vdso_rt_sigcode; - local: *; - }; -} Index: sys/arm64/linux/linux_vdso.lds.s =================================================================== --- /dev/null +++ sys/arm64/linux/linux_vdso.lds.s @@ -1,76 +0,0 @@ -/* - * Linker script for 64-bit vDSO. - * Copied from Linux kernel arch/arm64/kernel/vdso/vdso.lds.S - * - * $FreeBSD$ - */ - -SECTIONS -{ - . = . + SIZEOF_HEADERS; - - .hash : { *(.hash) } :text - .gnu.hash : { *(.gnu.hash) } - .dynsym : { *(.dynsym) } - .dynstr : { *(.dynstr) } - .gnu.version : { *(.gnu.version) } - .gnu.version_d : { *(.gnu.version_d) } - .gnu.version_r : { *(.gnu.version_r) } - - /DISCARD/ : { - *(.note.GNU-stack .note.gnu.property) - } - - .note : { *(.note.*) } :text :note - - . = ALIGN(0x100); - - .text : { *(.text*) } :text =0x90909090 - PROVIDE (__etext = .); - PROVIDE (_etext = .); - PROVIDE (etext = .); - - .dynamic : { *(.dynamic) } :text :dynamic - - .rodata : { *(.rodata*) } :text - .data : { - *(.data*) - } - - _end = .; - PROVIDE(end = .); - - /DISCARD/ : { - *(.eh_frame .eh_frame_hdr) - } -} - -PHDRS -{ - text PT_LOAD FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */ - dynamic PT_DYNAMIC FLAGS(4); /* PF_R */ - note PT_NOTE FLAGS(4); /* PF_R */ -} - -/* - * This controls what symbols we export from the DSO. - */ -VERSION -{ - LINUX_2.6.39 { - global: - __kernel_rt_sigreturn; - __kernel_gettimeofday; - __kernel_clock_gettime; - __kernel_clock_getres; - local: *; - }; - - LINUX_0.0 { - global: - linux_platform; - kern_timekeep_base; - linux_vdso_sigcode; - local: *; - }; -} Index: sys/i386/linux/linux_vdso.lds.s =================================================================== --- /dev/null +++ sys/i386/linux/linux_vdso.lds.s @@ -1,84 +0,0 @@ -/* - * Linker script for 32-bit vDSO. - * Copied from Linux kernel arch/x86/vdso/vdso-layout.lds.S - * and arch/x86/vdso/vdso32/vdso32.lds.S - * - * $FreeBSD$ - */ - -SECTIONS -{ - . = . + SIZEOF_HEADERS; - - .hash : { *(.hash) } :text - .gnu.hash : { *(.gnu.hash) } - .dynsym : { *(.dynsym) } - .dynstr : { *(.dynstr) } - .gnu.version : { *(.gnu.version) } - .gnu.version_d : { *(.gnu.version_d) } - .gnu.version_r : { *(.gnu.version_r) } - - .note : { *(.note.*) } :text :note - - .eh_frame_hdr : { *(.eh_frame_hdr) } :text :eh_frame_hdr - .eh_frame : { KEEP (*(.eh_frame)) } :text - - .dynamic : { *(.dynamic) } :text :dynamic - - .rodata : { *(.rodata*) } :text - .data : { - *(.data*) - *(.sdata*) - *(.got.plt) *(.got) - *(.gnu.linkonce.d.*) - *(.bss*) - *(.dynbss*) - *(.gnu.linkonce.b.*) - } - - .altinstructions : { *(.altinstructions) } - .altinstr_replacement : { *(.altinstr_replacement) } - - . = ALIGN(0x100); - .text : { *(.text*) } :text =0x90909090 -} - -PHDRS -{ - text PT_LOAD FLAGS(5) FILEHDR PHDRS; /* PF_R|PF_X */ - dynamic PT_DYNAMIC FLAGS(4); /* PF_R */ - note PT_NOTE FLAGS(4); /* PF_R */ - eh_frame_hdr PT_GNU_EH_FRAME; -} - -VERSION -{ - LINUX_2.6 { - global: - __vdso_clock_gettime; - __vdso_gettimeofday; - __vdso_time; - __vdso_getcpu; - __vdso_clock_getres; - __vdso_clock_gettime64; - }; - - LINUX_2.5 { - global: - __kernel_vsyscall; - __kernel_sigreturn; - __kernel_rt_sigreturn; - local: *; - }; - - LINUX_0.0 { - global: - linux_platform; - kern_timekeep_base; - kern_tsc_selector; - kern_cpu_selector; - linux_vdso_sigcode; - linux_vdso_rt_sigcode; - local: *; - }; -} Index: sys/modules/linux/Makefile =================================================================== --- sys/modules/linux/Makefile +++ sys/modules/linux/Makefile @@ -85,7 +85,7 @@ ${LD} -m elf_i386 --shared --eh-frame-hdr -soname=linux-gate.so.1 \ --no-undefined --hash-style=both -warn-common -nostdlib \ --strip-debug -s --build-id=sha1 --Bsymbolic \ - -T${SRCTOP}/sys/${MACHINE}/linux${SFX}/linux${SFX}_vdso.lds.s \ + -T${SRCTOP}/sys/${MACHINE}/linux${SFX}/linux${SFX}_vdso.lds \ -o ${.TARGET} ${.ALLSRC:M*.o} .if ${MACHINE_CPUARCH} == "amd64" Index: sys/modules/linux64/Makefile =================================================================== --- sys/modules/linux64/Makefile +++ sys/modules/linux64/Makefile @@ -58,7 +58,7 @@ ${LD} --shared --eh-frame-hdr -soname=linux-vdso.so.1 \ --no-undefined --hash-style=both -warn-common -nostdlib \ --strip-debug -s --build-id=sha1 -Bsymbolic \ - -T${SRCTOP}/sys/${MACHINE}/linux/linux_vdso.lds.s \ + -T${SRCTOP}/sys/${MACHINE}/linux/linux_vdso.lds \ -o ${.TARGET} ${.ALLSRC:M*.o} .if ${MACHINE_CPUARCH} == "aarch64"