diff options
| author | Po Lu | 2025-04-15 16:14:14 +0800 |
|---|---|---|
| committer | Po Lu | 2025-04-15 16:17:14 +0800 |
| commit | 5bf86e2be0693c579a43759fd1da1651344d401e (patch) | |
| tree | 689475ec3fc7632cdf63a8796583bcb62f56f878 /exec/exec.c | |
| parent | c3fe19aab90c3da68e9a8a48dbfb011317041d1a (diff) | |
| download | emacs-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.c | 9 |
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. */ |