All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Maydell <peter.maydell@linaro.org>
To: qemu-devel@nongnu.org
Cc: Jia Liu <proljc@gmail.com>,
	patches@linaro.org, Riku Voipio <riku.voipio@iki.fi>,
	Alexander Graf <agraf@suse.de>,
	Laurent Vivier <Laurent@vivier.eu>,
	Blue Swirl <blauwirbel@gmail.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	Guan Xuetao <gxt@mprc.pku.edu.cn>,
	Aurelien Jarno <aurelien@aurel32.net>,
	Richard Henderson <rth@twiddle.net>
Subject: [Qemu-devel] [PATCH v3 12/13] linux-user: Enable NPTL for x86-64
Date: Tue, 16 Jul 2013 18:44:59 +0100	[thread overview]
Message-ID: <1373996700-29286-13-git-send-email-peter.maydell@linaro.org> (raw)
In-Reply-To: <1373996700-29286-1-git-send-email-peter.maydell@linaro.org>

Add x86-64 implementation of cpu_set_tls() (like the kernel, we
just have to call do_arch_prctl() to set FS); this allows us to
enable NPTL.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
 configure                    |    1 -
 linux-user/i386/target_cpu.h |    7 +++++++
 linux-user/syscall.c         |    2 +-
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/configure b/configure
index 8059b2b..be19cbb 100755
--- a/configure
+++ b/configure
@@ -4186,7 +4186,6 @@ case "$target_name" in
   ;;
   x86_64)
     TARGET_BASE_ARCH=i386
-    target_nptl="no"
   ;;
   alpha)
   ;;
diff --git a/linux-user/i386/target_cpu.h b/linux-user/i386/target_cpu.h
index 1170d84..58f8645 100644
--- a/linux-user/i386/target_cpu.h
+++ b/linux-user/i386/target_cpu.h
@@ -36,6 +36,13 @@ static inline void cpu_set_tls(CPUX86State *env, target_ulong newtls)
     do_set_thread_area(env, newtls);
     cpu_x86_load_seg(env, R_GS, env->segs[R_GS].selector);
 }
+#else
+abi_long do_arch_prctl(CPUX86State *env, int code, abi_ulong addr);
+
+static inline void cpu_set_tls(CPUX86State *env, target_ulong newtls)
+{
+    do_arch_prctl(env, TARGET_ARCH_SET_FS, newtls);
+}
 #endif /* defined(TARGET_ABI32) */
 
 #endif /* !defined(TARGET_CPU_H) */
diff --git a/linux-user/syscall.c b/linux-user/syscall.c
index 452b89d..d3b3590 100644
--- a/linux-user/syscall.c
+++ b/linux-user/syscall.c
@@ -4189,7 +4189,7 @@ static abi_long do_get_thread_area(CPUX86State *env, abi_ulong ptr)
 #endif /* TARGET_I386 && TARGET_ABI32 */
 
 #ifndef TARGET_ABI32
-static abi_long do_arch_prctl(CPUX86State *env, int code, abi_ulong addr)
+abi_long do_arch_prctl(CPUX86State *env, int code, abi_ulong addr)
 {
     abi_long ret = 0;
     abi_ulong val;
-- 
1.7.9.5

  parent reply	other threads:[~2013-07-16 17:45 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-16 17:44 [Qemu-devel] [PATCH v3 00/13] linux-user: enable NPTL on everything Peter Maydell
2013-07-16 17:44 ` [Qemu-devel] [PATCH v3 01/13] configure: Flip default of target_nptl Peter Maydell
2013-07-16 17:44 ` [Qemu-devel] [PATCH v3 02/13] configure: Don't say target_nptl="no" if there is no linux-user target Peter Maydell
2013-07-16 17:44 ` [Qemu-devel] [PATCH v3 03/13] configure: Enable threading on all ppc and mips linux-user targets Peter Maydell
2013-07-16 17:53   ` Richard Henderson
2013-07-16 17:44 ` [Qemu-devel] [PATCH v3 04/13] configure: Enable threading for unicore32-linux-user Peter Maydell
2013-07-16 17:44 ` [Qemu-devel] [PATCH v3 05/13] linux-user: Move includes of target-specific headers to end of qemu.h Peter Maydell
2013-07-16 17:44 ` [Qemu-devel] [PATCH v3 06/13] linux-user: Enable NPTL for OpenRISC Peter Maydell
2013-07-16 17:44 ` [Qemu-devel] [PATCH v3 07/13] linux-user: Enable NPTL for SPARC targets Peter Maydell
2013-07-16 17:44 ` [Qemu-devel] [PATCH v3 08/13] linux-user: Enable NPTL for m68k Peter Maydell
2013-07-16 19:03   ` Laurent Vivier
2013-07-16 17:44 ` [Qemu-devel] [PATCH v3 09/13] linux-user: Add missing 'break' in i386 get_thread_area syscall Peter Maydell
2013-07-16 18:33   ` Richard Henderson
2013-07-16 17:44 ` [Qemu-devel] [PATCH v3 10/13] linux-user: Clean up handling of clone() argument order Peter Maydell
2013-07-16 17:44 ` [Qemu-devel] [PATCH v3 11/13] linux-user: Add i386 TLS setter Peter Maydell
2013-07-16 18:38   ` Richard Henderson
2013-07-16 17:44 ` Peter Maydell [this message]
2013-07-16 17:45 ` [Qemu-devel] [PATCH v3 13/13] configure: Make NPTL non-optional Peter Maydell
2013-07-16 18:42   ` Richard Henderson
2013-07-22 12:27 ` [Qemu-devel] [PATCH v3 00/13] linux-user: enable NPTL on everything Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1373996700-29286-13-git-send-email-peter.maydell@linaro.org \
    --to=peter.maydell@linaro.org \
    --cc=Laurent@vivier.eu \
    --cc=agraf@suse.de \
    --cc=aurelien@aurel32.net \
    --cc=blauwirbel@gmail.com \
    --cc=edgar.iglesias@gmail.com \
    --cc=gxt@mprc.pku.edu.cn \
    --cc=patches@linaro.org \
    --cc=proljc@gmail.com \
    --cc=qemu-devel@nongnu.org \
    --cc=riku.voipio@iki.fi \
    --cc=rth@twiddle.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.