summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordchagin <dchagin@FreeBSD.org>2015-05-24 15:45:36 +0000
committerdchagin <dchagin@FreeBSD.org>2015-05-24 15:45:36 +0000
commit4dc96a65526c11a0cadf8e4c1bdf2e906fa24fa2 (patch)
tree41255f465aa4b9d6f7de10a6ffbfb6dbdfe3ba6e
parentdc4523e6a4c5069fcc945efca5e2ef11e84014ea (diff)
downloadFreeBSD-src-4dc96a65526c11a0cadf8e4c1bdf2e906fa24fa2.zip
FreeBSD-src-4dc96a65526c11a0cadf8e4c1bdf2e906fa24fa2.tar.gz
Add 64 bit support to the vdso.
Differential Revision: https://reviews.freebsd.org/D1069 Reviewed by: trasz
-rw-r--r--sys/compat/linux/linux_vdso.c6
-rw-r--r--sys/compat/linux/linux_vdso.h2
2 files changed, 6 insertions, 2 deletions
diff --git a/sys/compat/linux/linux_vdso.c b/sys/compat/linux/linux_vdso.c
index 871a5da..5ab0ee6 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 <sys/param.h>
#include <sys/systm.h>
@@ -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 a3ee63d..e11ee8a 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) \
OpenPOWER on IntegriCloud