From 5bf86e2be0693c579a43759fd1da1651344d401e Mon Sep 17 00:00:00 2001 From: Po Lu Date: Tue, 15 Apr 2025 16:14:14 +0800 Subject: Port recent Android changes to mips64el * exec/config-mips.m4.in (DADDI2, DADDI3): Disable at-clobbering by assembler macros expressly. * exec/loader-mips64el.s: Adapt from loader-mipsel.s. * exec/configure.ac (exec_cv_as_daddi): Properly escape reg names. * exec/exec.c (struct exec_jump_command, exec_0): Don't define or set `fpu_mode' if __LP64__. * exec/exec.h (struct exec_tracee): New field `callno'. * exec/trace.c (process_system_call): Always record the current system call number in TRACEE lest it should be required once it has been overwritten upon the syscall's completion. (seccomp_system_call): Likewise. (after_fork): Clear `tracee->callno'. --- exec/exec.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'exec/exec.c') diff --git a/exec/exec.c b/exec/exec.c index b9c3e4ec92a..b83e34bc1b2 100644 --- a/exec/exec.c +++ b/exec/exec.c @@ -231,10 +231,10 @@ struct exec_jump_command /* The value of AT_BASE inside the aux vector. */ USER_WORD at_base; -#if defined __mips__ +#if defined __mips__ && !defined __LP64__ /* The FPU mode to apply. Not used when !MIPS_NABI. */ USER_WORD fpu_mode; -#endif /* defined __mips__ */ +#endif /* defined __mips__ && !defined __LP64__ */ }; @@ -918,6 +918,7 @@ exec_0 (char *name, struct exec_tracee *tracee, USER_WORD header_offset; USER_WORD name_len, aligned_len; struct exec_jump_command jump; + /* This also encompasses !__LP64__. */ #if defined __mips__ && !defined MIPS_NABI int fpu_mode; #endif /* defined __mips__ && !defined MIPS_NABI */ @@ -1130,9 +1131,9 @@ exec_0 (char *name, struct exec_tracee *tracee, fpu_mode = FP_FRE; jump.fpu_mode = fpu_mode; -#elif defined __mips__ +#elif defined __mips__ && !defined __LP64__ jump.fpu_mode = 0; -#endif /* defined __mips__ && !defined MIPS_NABI */ +#endif /* defined __mips__ && defined MIPS_NABI && !defined __LP64__ */ /* The offset used for at_phdr should be that of the first mapping. */ -- cgit v1.2.1