aboutsummaryrefslogtreecommitdiffstats
path: root/exec/exec.c
diff options
context:
space:
mode:
authorPo Lu2025-04-15 16:14:14 +0800
committerPo Lu2025-04-15 16:17:14 +0800
commit5bf86e2be0693c579a43759fd1da1651344d401e (patch)
tree689475ec3fc7632cdf63a8796583bcb62f56f878 /exec/exec.c
parentc3fe19aab90c3da68e9a8a48dbfb011317041d1a (diff)
downloademacs-5bf86e2be0693c579a43759fd1da1651344d401e.tar.gz
emacs-5bf86e2be0693c579a43759fd1da1651344d401e.zip
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'.
Diffstat (limited to 'exec/exec.c')
-rw-r--r--exec/exec.c9
1 files changed, 5 insertions, 4 deletions
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
231 /* The value of AT_BASE inside the aux vector. */ 231 /* The value of AT_BASE inside the aux vector. */
232 USER_WORD at_base; 232 USER_WORD at_base;
233 233
234#if defined __mips__ 234#if defined __mips__ && !defined __LP64__
235 /* The FPU mode to apply. Not used when !MIPS_NABI. */ 235 /* The FPU mode to apply. Not used when !MIPS_NABI. */
236 USER_WORD fpu_mode; 236 USER_WORD fpu_mode;
237#endif /* defined __mips__ */ 237#endif /* defined __mips__ && !defined __LP64__ */
238}; 238};
239 239
240 240
@@ -918,6 +918,7 @@ exec_0 (char *name, struct exec_tracee *tracee,
918 USER_WORD header_offset; 918 USER_WORD header_offset;
919 USER_WORD name_len, aligned_len; 919 USER_WORD name_len, aligned_len;
920 struct exec_jump_command jump; 920 struct exec_jump_command jump;
921 /* This also encompasses !__LP64__. */
921#if defined __mips__ && !defined MIPS_NABI 922#if defined __mips__ && !defined MIPS_NABI
922 int fpu_mode; 923 int fpu_mode;
923#endif /* defined __mips__ && !defined MIPS_NABI */ 924#endif /* defined __mips__ && !defined MIPS_NABI */
@@ -1130,9 +1131,9 @@ exec_0 (char *name, struct exec_tracee *tracee,
1130 fpu_mode = FP_FRE; 1131 fpu_mode = FP_FRE;
1131 1132
1132 jump.fpu_mode = fpu_mode; 1133 jump.fpu_mode = fpu_mode;
1133#elif defined __mips__ 1134#elif defined __mips__ && !defined __LP64__
1134 jump.fpu_mode = 0; 1135 jump.fpu_mode = 0;
1135#endif /* defined __mips__ && !defined MIPS_NABI */ 1136#endif /* defined __mips__ && defined MIPS_NABI && !defined __LP64__ */
1136 1137
1137 /* The offset used for at_phdr should be that of the first 1138 /* The offset used for at_phdr should be that of the first
1138 mapping. */ 1139 mapping. */