Add compat support for sys_pselect6

Signed-off-by: Denys Vlasenko <dvlasenk@redhat.com>
diff --git a/desc.c b/desc.c
index ac07ca7..9bfe4d0 100644
--- a/desc.c
+++ b/desc.c
@@ -1048,16 +1048,29 @@
 {
 	int rc = decode_select(tcp, tcp->u_arg, BITNESS_CURRENT);
 	if (entering(tcp)) {
+		long r;
 		struct {
-			void *ss;
+			unsigned long ptr;
 			unsigned long len;
 		} data;
-		if (umove(tcp, tcp->u_arg[5], &data) < 0)
+#if SUPPORTED_PERSONALITIES > 1 && SIZEOF_LONG > 4
+		if (current_wordsize == 4) {
+			struct {
+				uint32_t ptr;
+				uint32_t len;
+			} data32;
+			r = umove(tcp, tcp->u_arg[5], &data32);
+			data.ptr = data32.ptr;
+			data.len = data32.len;
+		} else
+#endif
+			r = umove(tcp, tcp->u_arg[5], &data);
+		if (r < 0)
 			tprintf(", %#lx", tcp->u_arg[5]);
 		else {
 			tprints(", {");
 			/* NB: kernel requires data.len == NSIG / 8 */
-			print_sigset_addr_len(tcp, (long)data.ss, data.len);
+			print_sigset_addr_len(tcp, data.ptr, data.len);
 			tprintf(", %lu}", data.len);
 		}
 	}