Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 6 Apr 2013 21:56:54 +0000 (UTC)
From:      Dmitry Chagin <dchagin@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r249217 - in user/dchagin/lemul/sys: amd64/linux32 i386/linux
Message-ID:  <201304062156.r36LusXK049546@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: dchagin
Date: Sat Apr  6 21:56:54 2013
New Revision: 249217
URL: http://svnweb.freebsd.org/changeset/base/249217

Log:
  Relocate the vdso instead of hardcode prelink it.

Modified:
  user/dchagin/lemul/sys/amd64/linux32/linux32_genassym.c
  user/dchagin/lemul/sys/amd64/linux32/linux32_locore.s
  user/dchagin/lemul/sys/amd64/linux32/linux32_sysvec.c
  user/dchagin/lemul/sys/amd64/linux32/linux32_vdso.lds.s
  user/dchagin/lemul/sys/i386/linux/linux_locore.s
  user/dchagin/lemul/sys/i386/linux/linux_sysvec.c
  user/dchagin/lemul/sys/i386/linux/linux_vdso.lds.s

Modified: user/dchagin/lemul/sys/amd64/linux32/linux32_genassym.c
==============================================================================
--- user/dchagin/lemul/sys/amd64/linux32/linux32_genassym.c	Sat Apr  6 21:44:02 2013	(r249216)
+++ user/dchagin/lemul/sys/amd64/linux32/linux32_genassym.c	Sat Apr  6 21:56:54 2013	(r249217)
@@ -13,6 +13,5 @@ ASSYM(LINUX_SIGF_SC, offsetof(struct l_s
 ASSYM(LINUX_RT_SIGF_HANDLER, offsetof(struct l_rt_sigframe, sf_handler));
 ASSYM(LINUX_RT_SIGF_UC, offsetof(struct l_rt_sigframe, sf_sc));
 ASSYM(LINUX_RT_SIGF_SC, offsetof(struct l_ucontext, uc_mcontext));
-ASSYM(LINUX32_SHAREDPAGE, LINUX32_SHAREDPAGE);
 ASSYM(LINUX_VERSION_CODE, LINUX_VERSION_CODE);
 ASSYM(LINUX_SC_ESP, offsetof(struct l_sigcontext, sc_esp));

Modified: user/dchagin/lemul/sys/amd64/linux32/linux32_locore.s
==============================================================================
--- user/dchagin/lemul/sys/amd64/linux32/linux32_locore.s	Sat Apr  6 21:44:02 2013	(r249216)
+++ user/dchagin/lemul/sys/amd64/linux32/linux32_locore.s	Sat Apr  6 21:56:54 2013	(r249217)
@@ -49,8 +49,6 @@ NON_GPROF_ENTRY(linux32_vsyscall)
 	ret
 .endvsyscall:
 
-	.globl linux32_sharedpage
-	.set linux32_sharedpage, LINUX32_SHAREDPAGE
 
 	.section .note.Linux, "a",@note
 	.long 2f - 1f		/* namesz */

Modified: user/dchagin/lemul/sys/amd64/linux32/linux32_sysvec.c
==============================================================================
--- user/dchagin/lemul/sys/amd64/linux32/linux32_sysvec.c	Sat Apr  6 21:44:02 2013	(r249216)
+++ user/dchagin/lemul/sys/amd64/linux32/linux32_sysvec.c	Sat Apr  6 21:56:54 2013	(r249217)
@@ -1092,7 +1092,7 @@ linux_vdso_install(void *param)
 	linux_shared_page_obj = __elfN(linux_shared_page_init)
 	    (&linux_shared_page_mapping);
 
-	__elfN(linux_vdso_reloc)(&elf_linux_sysvec, 0);
+	__elfN(linux_vdso_reloc)(&elf_linux_sysvec, LINUX32_SHAREDPAGE);
 
 	bcopy(elf_linux_sysvec.sv_sigcode, linux_shared_page_mapping,
 	    linux_szsigcode);

Modified: user/dchagin/lemul/sys/amd64/linux32/linux32_vdso.lds.s
==============================================================================
--- user/dchagin/lemul/sys/amd64/linux32/linux32_vdso.lds.s	Sat Apr  6 21:44:02 2013	(r249216)
+++ user/dchagin/lemul/sys/amd64/linux32/linux32_vdso.lds.s	Sat Apr  6 21:56:54 2013	(r249217)
@@ -8,7 +8,7 @@
 
 SECTIONS
 {
-	. = linux32_sharedpage + SIZEOF_HEADERS;
+	. = . + SIZEOF_HEADERS;
 
 	.hash		: { *(.hash) }			:text
 	.gnu.hash	: { *(.gnu.hash) }

Modified: user/dchagin/lemul/sys/i386/linux/linux_locore.s
==============================================================================
--- user/dchagin/lemul/sys/i386/linux/linux_locore.s	Sat Apr  6 21:44:02 2013	(r249216)
+++ user/dchagin/lemul/sys/i386/linux/linux_locore.s	Sat Apr  6 21:56:54 2013	(r249217)
@@ -48,8 +48,6 @@ NON_GPROF_ENTRY(linux_vsyscall)
 	ret
 .endvsyscall:
 
-	.globl linux_sharedpage
-	.set linux_sharedpage, VM_MAXUSER_ADDRESS - PAGE_SIZE
 
 	.section .note.Linux, "a",@note
 	.long 2f - 1f		/* namesz */

Modified: user/dchagin/lemul/sys/i386/linux/linux_sysvec.c
==============================================================================
--- user/dchagin/lemul/sys/i386/linux/linux_sysvec.c	Sat Apr  6 21:44:02 2013	(r249216)
+++ user/dchagin/lemul/sys/i386/linux/linux_sysvec.c	Sat Apr  6 21:56:54 2013	(r249217)
@@ -1066,7 +1066,7 @@ linux_vdso_install(void *param)
 	linux_shared_page_obj = __elfN(linux_shared_page_init)
 	    (&linux_shared_page_mapping);
 
-	__elfN(linux_vdso_reloc)(&elf_linux_sysvec, 0);
+	__elfN(linux_vdso_reloc)(&elf_linux_sysvec, LINUX_SHAREDPAGE);
 
 	bcopy(elf_linux_sysvec.sv_sigcode, linux_shared_page_mapping,
 	    linux_szsigcode);

Modified: user/dchagin/lemul/sys/i386/linux/linux_vdso.lds.s
==============================================================================
--- user/dchagin/lemul/sys/i386/linux/linux_vdso.lds.s	Sat Apr  6 21:44:02 2013	(r249216)
+++ user/dchagin/lemul/sys/i386/linux/linux_vdso.lds.s	Sat Apr  6 21:56:54 2013	(r249217)
@@ -8,7 +8,7 @@
 
 SECTIONS
 {
-	. = linux_sharedpage + SIZEOF_HEADERS;
+	. = . + SIZEOF_HEADERS;
 
 	.hash		: { *(.hash) }			:text
 	.gnu.hash	: { *(.gnu.hash) }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201304062156.r36LusXK049546>