summaryrefslogtreecommitdiffstats
path: root/sys/compat
diff options
context:
space:
mode:
authordchagin <dchagin@FreeBSD.org>2016-01-09 15:57:28 +0000
committerdchagin <dchagin@FreeBSD.org>2016-01-09 15:57:28 +0000
commit6ad4ee40e0005dd274dd2ebdd1dc262577dcc3cd (patch)
tree59db8795806238df4ec9b631ba9e0960892863cd /sys/compat
parent793bb9c3f7dceaf4b3fb1c260154dc2fe82a9170 (diff)
downloadFreeBSD-src-6ad4ee40e0005dd274dd2ebdd1dc262577dcc3cd.zip
FreeBSD-src-6ad4ee40e0005dd274dd2ebdd1dc262577dcc3cd.tar.gz
MFC r283417:
Add 64 bit support to the vdso.
Diffstat (limited to 'sys/compat')
-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