Index: sys/compat/linux/linux_vdso.h =================================================================== --- sys/compat/linux/linux_vdso.h +++ sys/compat/linux/linux_vdso.h @@ -41,7 +41,7 @@ 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) \ Index: sys/compat/linux/linux_vdso.c =================================================================== --- sys/compat/linux/linux_vdso.c +++ sys/compat/linux/linux_vdso.c @@ -29,7 +29,11 @@ #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 @@ } 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;