MIPS: Initial implementation of a VDSO
Add an initial implementation of a proper (i.e. an ELF shared library) VDSO. With this commit it does not export any symbols, it only replaces the current signal return trampoline page. A later commit will add user implementations of gettimeofday()/clock_gettime(). To support both new toolchains and old ones which don't generate ABI flags section, we define its content manually and then use a tool (genvdso) to patch up the section to have the correct name and type. genvdso also extracts symbol offsets ({,rt_}sigreturn) needed by the kernel, and generates a C file containing a "struct mips_vdso_image" containing both the VDSO data and these offsets. This C file is compiled into the kernel. On 64-bit kernels we require a different VDSO for each supported ABI, so we may build up to 3 different VDSOs. The VDSO to use is selected by the mips_abi structure. A kernel/user shared data page is created and mapped below the VDSO image. This is currently empty, but will be us...
Showing
- arch/mips/Kbuild 1 addition, 0 deletionsarch/mips/Kbuild
- arch/mips/include/asm/abi.h 3 additions, 2 deletionsarch/mips/include/asm/abi.h
- arch/mips/include/asm/elf.h 7 additions, 0 deletionsarch/mips/include/asm/elf.h
- arch/mips/include/asm/processor.h 1 addition, 7 deletionsarch/mips/include/asm/processor.h
- arch/mips/include/asm/vdso.h 57 additions, 16 deletionsarch/mips/include/asm/vdso.h
- arch/mips/include/uapi/asm/Kbuild 1 addition, 1 deletionarch/mips/include/uapi/asm/Kbuild
- arch/mips/include/uapi/asm/auxvec.h 17 additions, 0 deletionsarch/mips/include/uapi/asm/auxvec.h
- arch/mips/kernel/signal.c 5 additions, 7 deletionsarch/mips/kernel/signal.c
- arch/mips/kernel/signal32.c 2 additions, 5 deletionsarch/mips/kernel/signal32.c
- arch/mips/kernel/signal_n32.c 2 additions, 3 deletionsarch/mips/kernel/signal_n32.c
- arch/mips/kernel/vdso.c 77 additions, 83 deletionsarch/mips/kernel/vdso.c
- arch/mips/vdso/.gitignore 4 additions, 0 deletionsarch/mips/vdso/.gitignore
- arch/mips/vdso/Makefile 160 additions, 0 deletionsarch/mips/vdso/Makefile
- arch/mips/vdso/elf.S 68 additions, 0 deletionsarch/mips/vdso/elf.S
- arch/mips/vdso/genvdso.c 293 additions, 0 deletionsarch/mips/vdso/genvdso.c
- arch/mips/vdso/genvdso.h 187 additions, 0 deletionsarch/mips/vdso/genvdso.h
- arch/mips/vdso/sigreturn.S 49 additions, 0 deletionsarch/mips/vdso/sigreturn.S
- arch/mips/vdso/vdso.h 80 additions, 0 deletionsarch/mips/vdso/vdso.h
- arch/mips/vdso/vdso.lds.S 100 additions, 0 deletionsarch/mips/vdso/vdso.lds.S
Please register or sign in to comment