On 8/18/23 00:28, gaosong wrote:
Hi, Richard

在 2023/8/17 上午2:03, Richard Henderson 写道:
@@ -3629,10 +3694,13 @@ int load_elf_binary(struct linux_binprm *bprm, struct image_info *info)
      }
      /*
-     * TODO: load a vdso, which would also contain the signal trampolines.
-     * Otherwise, allocate a private page to hold them.
+     * Load a vdso if available, which will amongst other things contain the
+     * signal trampolines.  Otherwise, allocate a separate page for them.
       */
-    if (TARGET_ARCH_HAS_SIGTRAMP_PAGE) {
+    const VdsoImageInfo *vdso = vdso_image_info();
+    if (vdso) {
+        load_elf_vdso(&vdso_info, vdso);
+    } else if (TARGET_ARCH_HAS_SIGTRAMP_PAGE) {
I see some targets already support vdso.

./linux-user/aarch64/vdso-be.so
./linux-user/aarch64/vdso-le.so
./linux-user/arm/vdso-arm-be.so
./linux-user/arm/vdso-arm-le.so
./linux-user/arm/vdso-thm-be.so
./linux-user/arm/vdso-thm-le.so
./linux-user/hppa/vdso.so
./linux-user/i386/vdso.so
./linux-user/loongarch64/vdso.so
./linux-user/ppc/vdso-32.so
./linux-user/ppc/vdso-64.so
./linux-user/ppc/vdso-64le.so
./linux-user/riscv/vdso-32.so
./linux-user/riscv/vdso-64.so
./linux-user/s390x/vdso.so
./linux-user/x86_64/vdso.so

This branch will never reach.

what about remove TARGET_ARCH_HAS_SIGTRAMP_PAGE and setup_sigtramp() for these 
targets?

I can do that as a follow-up, yes.

r~


Reply via email to