x86-64: fix clone(2) argument order for x86 processes

Without this patch, strace claims that parent_tidptr == tls, which is
clearly wrong.  It is expected that parent_tidptr == child_tidptr.

* process.c [X86_64] (ARG_CTID, ARG_TLS): Take current
personality into account.

Signed-off-by: Elliott Hughes <enh@google.com>
Signed-off-by: Dmitry V. Levin <ldv@altlinux.org>
diff --git a/process.c b/process.c
index e3837da..442f001 100644
--- a/process.c
+++ b/process.c
@@ -512,8 +512,14 @@
 # define ARG_PTID	2
 # define ARG_CTID	3
 # define ARG_TLS	4
-#elif defined X86_64 || defined X32 || defined ALPHA || defined TILE \
-   || defined OR1K
+#elif defined X86_64
+/* x86 personality processes have the last two arguments flipped. */
+# define ARG_FLAGS	0
+# define ARG_STACK	1
+# define ARG_PTID	2
+# define ARG_CTID	((current_personality != 1) ? 3 : 4)
+# define ARG_TLS	((current_personality != 1) ? 4 : 3)
+#elif defined X32 || defined ALPHA || defined TILE || defined OR1K
 # define ARG_FLAGS	0
 # define ARG_STACK	1
 # define ARG_PTID	2