From 36204c301698ea648796bfc50ff61c17b75d7f9e Mon Sep 17 00:00:00 2001 From: Dmitry Chagin Date: Sun, 24 May 2015 15:45:36 +0000 Subject: [PATCH] Add 64 bit support to the vdso. Differential Revision: https://reviews.freebsd.org/D1069 Reviewed by: trasz --- sys/compat/linux/linux_vdso.c | 6 +++++- sys/compat/linux/linux_vdso.h | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/sys/compat/linux/linux_vdso.c b/sys/compat/linux/linux_vdso.c index 871a5daa5b84..5ab0ee641617 100644 --- a/sys/compat/linux/linux_vdso.c +++ b/sys/compat/linux/linux_vdso.c @@ -29,7 +29,11 @@ __FBSDID("$FreeBSD$"); #include "opt_compat.h" +#if defined(__i386__) || (defined(__amd64__) && defined(COMPAT_LINUX32)) #define __ELF_WORD_SIZE 32 +#else +#define __ELF_WORD_SIZE 64 +#endif #include #include @@ -135,7 +139,7 @@ __elfN(linux_vdso_fixup)(struct sysentvec *sv) } void -__elfN(linux_vdso_reloc)(struct sysentvec *sv, int vdso_adjust) +__elfN(linux_vdso_reloc)(struct sysentvec *sv, long vdso_adjust) { struct linux_vdso_sym *lsym; Elf_Ehdr *ehdr; diff --git a/sys/compat/linux/linux_vdso.h b/sys/compat/linux/linux_vdso.h index a3ee63de5ce4..e11ee8ad07b0 100644 --- a/sys/compat/linux/linux_vdso.h +++ b/sys/compat/linux/linux_vdso.h @@ -41,7 +41,7 @@ struct linux_vdso_sym { vm_object_t __elfN(linux_shared_page_init)(char **); void __elfN(linux_shared_page_fini)(vm_object_t); void __elfN(linux_vdso_fixup)(struct sysentvec *); -void __elfN(linux_vdso_reloc)(struct sysentvec *, int); +void __elfN(linux_vdso_reloc)(struct sysentvec *, long); void __elfN(linux_vdso_sym_init)(struct linux_vdso_sym *); #define LINUX_VDSO_SYM_INTPTR(name) \