diff options
author | Po Lu <luangruo@yahoo.com> | 2023-04-30 21:37:19 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2023-04-30 21:37:19 +0800 |
commit | 368f6f3942a1f8b9483763a6ac24b3b3021e92bf (patch) | |
tree | 284ff92e18076ed7a8be3d2775ee450922b3166d /exec/config-mips.m4.in | |
parent | 4289ed6cffdb5ea758a78037fe385fd7c4e23677 (diff) | |
download | emacs-368f6f3942a1f8b9483763a6ac24b3b3021e92bf.tar.gz |
Add helper binary `exec1'
* .gitignore: New files.
* Makefile.in (mostlyclean_dirs): Add libexec, if its Makefile
exists.
* autogen.sh (do_git): Autoreconf in exec as well.
* configure.ac: Configure libexec on Android.
* exec/Makefile.in:
* exec/README:
* exec/config-mips.m4.in:
* exec/config.guess:
* exec/config.h.in:
* exec/config.sub:
* exec/configure:
* exec/configure.ac:
* exec/deps.mk:
* exec/exec.c (MIN, struct exec_open_command)
(struct exec_map_command, struct exec_jump_command)
(write_open_command, write_load_command, process_interpreter_1)
(process_interpreter, process_program_header, insert_args)
(exec_0):
* exec/exec.h (_EXEC_H_, struct elf_header_32)
(struct program_header_32, struct dt_entry_32)
(struct elf_header_64, struct program_header_64)
(struct dt_entry_64, struct exec_tracee):
* exec/exec1.c (main):
* exec/install-sh (scriptversion):
* exec/loader-aarch64.s (_start):
* exec/loader-armeabi.s (_start):
* exec/loader-mips64el.s (__start):
* exec/loader-mipsel.s (__start):
* exec/loader-x86.s (_start):
* exec/loader-x86_64.s (_start):
* exec/mipsel-user.h (_MIPSEL_USER_H_):
* exec/mipsfpu.c (MIPS_ABI_FP_ANY, fpu_reqs, valid_abi_p)
(fp_mode_for_abi, cpu_supports_fr0_p, determine_fpu_mode):
* exec/mipsfpu.h (_MIPSFPU_H_, FP_FR0):
* exec/test.c (print_usage, main):
* exec/trace.c (MAX_TRACEES, aarch64_set_regs, read_memory)
(user_alloca, user_copy, remove_tracee, handle_clone)
(syscall_trap_p, handle_exec, process_system_call, tracing_execve)
(after_fork, find_tracee, exec_waitpid, exec_init): New files.
* java/Makefile.in (CROSS_EXEC_BINS): Add exec1 and
loader.
($(CROSS_EXEC_BINS) &): New target.
Diffstat (limited to 'exec/config-mips.m4.in')
-rw-r--r-- | exec/config-mips.m4.in | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/exec/config-mips.m4.in b/exec/config-mips.m4.in new file mode 100644 index 00000000000..886d19b8e8f --- /dev/null +++ b/exec/config-mips.m4.in @@ -0,0 +1,36 @@ +dnl Assembler templates for MIPS computers. +dnl +dnl Copyright (C) 2023 Free Software Foundation, Inc. +dnl +dnl This file is part of GNU Emacs. +dnl +dnl GNU Emacs is free software: you can redistribute it and/or modify +dnl it under the terms of the GNU General Public License as published by +dnl the Free Software Foundation, either version 3 of the License, or +dnl (at your option) any later version. +dnl +dnl GNU Emacs is distributed in the hope that it will be useful, +dnl but WITHOUT ANY WARRANTY; without even the implied warranty of +dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +dnl GNU General Public License for more details. +dnl +dnl You should have received a copy of the GNU General Public License +dnl along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>. + +define(`SYSCALL_open', `ifelse(`@MIPS_N32@',`yes',`6002',`4005')') +define(`SYSCALL_close', `ifelse(`@MIPS_N32@',`yes',`6003',`4006')') +define(`SYSCALL_mmap', `ifelse(`@MIPS_N32@',`yes',`6009',`4090')') +define(`SYSCALL_nanosleep', `ifelse(`@MIPS_N32@',`yes',`6034',`4166')') +define(`SYSCALL_exit', `ifelse(`@MIPS_N32@',`yes',`6058',`4001')') +define(`SYSCALL_prctl', `ifelse(`@MIPS_N32@',`yes',`6153',`4192')') + +define(`SYSCALL', `ifelse(`@MIPS_N32@',`yes',` move $a4, $1 + move $a5, $2 + move $a6, $3 + move $a7, $4',` addi $sp, -32 + sw $1, 16($sp) + sw $2, 20($sp) + sw $3, 24($sp) + sw $4, 28($sp)')') + +define(`RESTORE', `ifelse(`@MIPS_N32@',`yes',` nop',` addi $sp, 32')') |