Supersedes: 20200519194452.9009-1-richard.hender...@linaro.org Based-on: 20210618192951.125651-1-richard.hender...@linaro.org ("[PATCH v2 00/23] linux-user: Move signal trampolines to new page")
Previous cover letter: > The subject of AT_SYSINFO came up on launchpad recently. > > There is definite room for improvement in all of this: > > (1) We could build the vdso binary into qemu instead of really > loading it from the file system. This would obviate the > several problems of locating the .so file. It would also > mean that --static builds continue to create a standalone > qemu binary. > > (2) We could use our cross-build system to build the vdso. > Though we'd still likely want to keep the image in git > along side the other rom images for when cross-build is > not available. > > (3) There are some ??? comments where some decisions could be made, > and other ??? that are merely commenting on weirdness. > > (4) It shouldn't take too much effort to create vdsos for the > other architectures. But we should get this one as clean > as we can first. Amusingly, this patch set has turned 11 years old. First posted April 4, 2010. Change since previous: Point (1) has been addressed: the vdso binary pre-processed, validating the VDSO image, emitting a C array for the image, collecting the set of relocations required, and identifying any signal return trampolines. Point (2) is still an issue in that the cross-build system is tied up in tests/ makefiles. It might be time to bite the bullet and convert it all to meson. I think there are fewer ??? than before. r~ Richard Henderson (12): linux-user: Fix style problems in linuxload.c linux-user: Introduce imgsrc_read, imgsrc_read_alloc linux-user: Tidy loader_exec linux-user: Do not clobber bprm_buf swapping ehdr linux-user: Use ImageSource in load_elf_image linux-user: Use ImageSource in load_symbols linux-user: Replace bprm->fd with bprm->src.fd linux-user: Introduce imgsrc_mmap linux-user: Load vdso image if available linux-user: Add gen-vdso tool linux-user/x86_64: Add vdso linux-user/hppa: Add vdso and use it for rt_sigreturn linux-user/qemu.h | 60 ++++++- linux-user/elfload.c | 305 ++++++++++++++++++-------------- linux-user/flatload.c | 8 +- linux-user/gen-vdso.c | 168 ++++++++++++++++++ linux-user/hppa/signal.c | 8 +- linux-user/linuxload.c | 171 +++++++++++++----- linux-user/gen-vdso-elfn.c.inc | 299 +++++++++++++++++++++++++++++++ linux-user/hppa/Makefile.vdso | 4 + linux-user/hppa/meson.build | 6 + linux-user/hppa/vdso.S | 149 ++++++++++++++++ linux-user/hppa/vdso.ld | 75 ++++++++ linux-user/hppa/vdso.so | Bin 0 -> 5192 bytes linux-user/meson.build | 6 +- linux-user/x86_64/Makefile.vdso | 3 + linux-user/x86_64/meson.build | 6 + linux-user/x86_64/vdso.S | 122 +++++++++++++ linux-user/x86_64/vdso.ld | 74 ++++++++ linux-user/x86_64/vdso.so | Bin 0 -> 5912 bytes 18 files changed, 1272 insertions(+), 192 deletions(-) create mode 100644 linux-user/gen-vdso.c create mode 100644 linux-user/gen-vdso-elfn.c.inc create mode 100644 linux-user/hppa/Makefile.vdso create mode 100644 linux-user/hppa/vdso.S create mode 100644 linux-user/hppa/vdso.ld create mode 100755 linux-user/hppa/vdso.so create mode 100644 linux-user/x86_64/Makefile.vdso create mode 100644 linux-user/x86_64/vdso.S create mode 100644 linux-user/x86_64/vdso.ld create mode 100755 linux-user/x86_64/vdso.so -- 2.25.1