<feed xmlns='http://www.w3.org/2005/Atom'>
<title>emacs/exec/exec.c, branch scratch/cedet-object-name</title>
<subtitle>Emacs is the extensible, customizable, self-documenting real-time display editor. 
</subtitle>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/'/>
<entry>
<title>Update copyright year to 2025</title>
<updated>2025-01-01T07:39:17+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2025-01-01T07:39:17+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=4da38c632161867e914b3a13dc760f8019255f94'/>
<id>4da38c632161867e914b3a13dc760f8019255f94</id>
<content type='text'>
Run "TZ=UTC0 admin/update-copyright".
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Run "TZ=UTC0 admin/update-copyright".
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix some #! misparsing in check_interpreter</title>
<updated>2024-09-17T23:39:25+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2024-09-17T23:38:53+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=e0b027d1215ed32fe0f3d0956d2d7a81552274f2'/>
<id>e0b027d1215ed32fe0f3d0956d2d7a81552274f2</id>
<content type='text'>
* exec/exec.c: Do not include ctype.h, as the kernel
does not care about the locale.
(check_interpreter): Treat only spaces and tabs as white space.
Do not inspect more bytes than were read.
Although the resulting code does not exactly match what
the Android kernel does, it’s closer than what it was before.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* exec/exec.c: Do not include ctype.h, as the kernel
does not care about the locale.
(check_interpreter): Treat only spaces and tabs as white space.
Do not inspect more bytes than were read.
Although the resulting code does not exactly match what
the Android kernel does, it’s closer than what it was before.
</pre>
</div>
</content>
</entry>
<entry>
<title>* exec/exec.c (exec_0): Restore erroneously deleted statement.</title>
<updated>2024-07-01T14:55:03+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2024-07-01T14:55:03+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=e087d3009bf564446367a1465957d9ea7b699f01'/>
<id>e087d3009bf564446367a1465957d9ea7b699f01</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Optimize process execution on Android</title>
<updated>2024-07-01T10:11:58+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2024-07-01T10:11:58+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=ebf5bcb9f0b6adeb97a3918b8f3845844c9091b0'/>
<id>ebf5bcb9f0b6adeb97a3918b8f3845844c9091b0</id>
<content type='text'>
* exec/configure.ac (REENTRANT): Remove option for reentrancy.
(PROGRAM_COUNTER, HAVE_SECCOMP): Define register providing the
program counter and enable seccomp if its headers are available.

* exec/exec.c (write_load_command): Avoid defining unused
variable.
(exec_0): Remove code specific to REENTRANT configurations.

* exec/exec.h (struct exec_tracee) &lt;exec_data, data_size&gt;: New
fields for loader instructions and their size.

* exec/exec1.c (main): Call exec_init before forking.

* exec/mipsel-user.h (ELF_NGREG): Delete definition.
(struct mipsel_regs): Reduce number of gregs to 32, but
introduce separate fields for special registers.

* exec/trace.c (use_seccomp_p): New variable; defile to false if
!HAVE_SECCOMP.
(remove_tracee): Cease providing for non-reentrant
configurations.  Release executable data if present.
(handle_clone_prepare): Likewise.  Resume process with
PTRACE_CONT if seccomp-based interception is enabled.
(handle_clone, check_signal): Resume processes as above.
(handle_exec): Divide into two functions, with only rewriting
the system call and generating instructions for the loader
remaining in the first, and copying such instructions into the
loader's stack removed into a new function, `finish_exec'.
(finish_exec): New function.
(handle_readlinkat, handle_openat): Abolish non-REENTRANT
configurations.
(process_system_call): Divide exec system calls into two phases,
disambiguated by the value of tracee-&gt;waiting_for_syscall.  Typo
fixes.  Accommodate syscall-exit-stops where the signal was
initially intercepted by `seccomp_system_call'.
(interesting_syscalls): New array.
(ARRAYELTS): New macro.
(seccomp_system_call, establish_seccomp_filter): New function.
(tracing_execve) [HAVE_SECCOMP]: Establish a seccomp filter if
this is to be enabled.
(after_fork): Provide PTRACE_O_TRACESECCOMP.  Resume process
with PTRACE_CONT if seccomp-based interception is enabled.
(exec_waitpid): Resume process with PTRACE_CONT if seccomp-based
interception is enabled.  Dispatch stops identifying as
PTRACE_EVENT_SECCOMP to `seccomp_system_call'.
(exec_init): Establish whether it is possible to enable seccomp.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* exec/configure.ac (REENTRANT): Remove option for reentrancy.
(PROGRAM_COUNTER, HAVE_SECCOMP): Define register providing the
program counter and enable seccomp if its headers are available.

* exec/exec.c (write_load_command): Avoid defining unused
variable.
(exec_0): Remove code specific to REENTRANT configurations.

* exec/exec.h (struct exec_tracee) &lt;exec_data, data_size&gt;: New
fields for loader instructions and their size.

* exec/exec1.c (main): Call exec_init before forking.

* exec/mipsel-user.h (ELF_NGREG): Delete definition.
(struct mipsel_regs): Reduce number of gregs to 32, but
introduce separate fields for special registers.

* exec/trace.c (use_seccomp_p): New variable; defile to false if
!HAVE_SECCOMP.
(remove_tracee): Cease providing for non-reentrant
configurations.  Release executable data if present.
(handle_clone_prepare): Likewise.  Resume process with
PTRACE_CONT if seccomp-based interception is enabled.
(handle_clone, check_signal): Resume processes as above.
(handle_exec): Divide into two functions, with only rewriting
the system call and generating instructions for the loader
remaining in the first, and copying such instructions into the
loader's stack removed into a new function, `finish_exec'.
(finish_exec): New function.
(handle_readlinkat, handle_openat): Abolish non-REENTRANT
configurations.
(process_system_call): Divide exec system calls into two phases,
disambiguated by the value of tracee-&gt;waiting_for_syscall.  Typo
fixes.  Accommodate syscall-exit-stops where the signal was
initially intercepted by `seccomp_system_call'.
(interesting_syscalls): New array.
(ARRAYELTS): New macro.
(seccomp_system_call, establish_seccomp_filter): New function.
(tracing_execve) [HAVE_SECCOMP]: Establish a seccomp filter if
this is to be enabled.
(after_fork): Provide PTRACE_O_TRACESECCOMP.  Resume process
with PTRACE_CONT if seccomp-based interception is enabled.
(exec_waitpid): Resume process with PTRACE_CONT if seccomp-based
interception is enabled.  Dispatch stops identifying as
PTRACE_EVENT_SECCOMP to `seccomp_system_call'.
(exec_init): Establish whether it is possible to enable seccomp.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve /proc/self/exe substitution on Android</title>
<updated>2024-03-14T05:45:48+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2024-03-14T05:45:48+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=30bc867aecc59265b6e315acf459f8d79c423bca'/>
<id>30bc867aecc59265b6e315acf459f8d79c423bca</id>
<content type='text'>
* exec/configure.ac (USER_SWORD): New macro.

* exec/exec.c (format_pid): Export this function.

* exec/exec.h:

* exec/trace.c (canon_path): New function.
(handle_readlinkat, handle_openat): Test complete file name
against /proc/self/exe, and further check for /proc/pid/exe.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* exec/configure.ac (USER_SWORD): New macro.

* exec/exec.c (format_pid): Export this function.

* exec/exec.h:

* exec/trace.c (canon_path): New function.
(handle_readlinkat, handle_openat): Test complete file name
against /proc/self/exe, and further check for /proc/pid/exe.
</pre>
</div>
</content>
</entry>
<entry>
<title>; Add 2024 to copyright years</title>
<updated>2024-01-02T02:30:05+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2024-01-02T02:30:05+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=070cb32463a8c606bf4384574a6c7ea60167e87d'/>
<id>070cb32463a8c606bf4384574a6c7ea60167e87d</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Correct build on systems without PAGE_MASK</title>
<updated>2023-09-18T06:16:40+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2023-09-18T06:14:20+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=b331bf6d8a21ef3ac7e70d3f4a937e4256178d55'/>
<id>b331bf6d8a21ef3ac7e70d3f4a937e4256178d55</id>
<content type='text'>
* exec/exec.c (write_load_command) &lt;PAGE_MASK, PAGE_SIZE&gt;:
Uniformly define even if !HAVE_GETPAGESIZE.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* exec/exec.c (write_load_command) &lt;PAGE_MASK, PAGE_SIZE&gt;:
Uniformly define even if !HAVE_GETPAGESIZE.
</pre>
</div>
</content>
</entry>
<entry>
<title>Avoid stpncpy</title>
<updated>2023-08-12T19:57:35+00:00</updated>
<author>
<name>Paul Eggert</name>
</author>
<published>2023-08-12T19:50:15+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=5315e6e8d7e7233d54cce2b4c1bc8cf3b7acf4dc'/>
<id>5315e6e8d7e7233d54cce2b4c1bc8cf3b7acf4dc</id>
<content type='text'>
It’s not worth the porting hassle, and as the glibc manual says,
“this function is generally a poor choice for processing strings”.
* admin/merge-gnulib (GNULIB_MODULES): Remove stpncpy.
* exec/configure.ac: Do not check for stpncpy.
* exec/exec.c (rpl_stpncpy, stpncpy): Remove this replacement.
(exec_0): Properly clear buffer1.  Use memcpy instead of
stpncpy to add the trailing name.  This code is clearly
still suboptimal but efficiency is not that important here
and I tried to minimize the change.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
It’s not worth the porting hassle, and as the glibc manual says,
“this function is generally a poor choice for processing strings”.
* admin/merge-gnulib (GNULIB_MODULES): Remove stpncpy.
* exec/configure.ac: Do not check for stpncpy.
* exec/exec.c (rpl_stpncpy, stpncpy): Remove this replacement.
(exec_0): Properly clear buffer1.  Use memcpy instead of
stpncpy to add the trailing name.  This code is clearly
still suboptimal but efficiency is not that important here
and I tried to minimize the change.
* lib/gnulib.mk.in, m4/gnulib-comp.m4: Regenerate.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge from origin/emacs-29</title>
<updated>2023-08-12T17:42:14+00:00</updated>
<author>
<name>Eli Zaretskii</name>
</author>
<published>2023-08-12T17:42:14+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=b289f0769f0a43fdaabec41b92bacc51acbc4b9b'/>
<id>b289f0769f0a43fdaabec41b92bacc51acbc4b9b</id>
<content type='text'>
4767f5eaeed Better fix for bug#65156
dd1d8414b33 Fix insert-file-contents with pipes and /dev/stdin
50649a6d1a2 ; * etc/PROBLEMS: Fix wording.
f0dda682ffb ; * etc/NEWS.28: Add deletion of levents.el.
f4acae842c0 Fix bug#65042
e1874c4e8bf * configure.ac (HAVE_TREE_SITTER): Set NEED_DYNLIB=yes (b...
ef8838c3a5f * etc/NEWS: Mention tramp-show-ad-hoc-proxies.
495bee253fc * test/lisp/net/tramp-tests.el (tramp-test42-utf8): Skip ...
de1effd73b4 ; Fix last change
7c7966862bc * test/lisp/net/tramp-tests.el (tramp-test10-write-region...
16205e8db65 ; Improve help-echo in package.el
a95e7006989 ; Filter packages available for upgrade via menu bar
adff72dd1d2 Fix reverting Rmail buffers
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
4767f5eaeed Better fix for bug#65156
dd1d8414b33 Fix insert-file-contents with pipes and /dev/stdin
50649a6d1a2 ; * etc/PROBLEMS: Fix wording.
f0dda682ffb ; * etc/NEWS.28: Add deletion of levents.el.
f4acae842c0 Fix bug#65042
e1874c4e8bf * configure.ac (HAVE_TREE_SITTER): Set NEED_DYNLIB=yes (b...
ef8838c3a5f * etc/NEWS: Mention tramp-show-ad-hoc-proxies.
495bee253fc * test/lisp/net/tramp-tests.el (tramp-test42-utf8): Skip ...
de1effd73b4 ; Fix last change
7c7966862bc * test/lisp/net/tramp-tests.el (tramp-test10-write-region...
16205e8db65 ; Improve help-echo in package.el
a95e7006989 ; Filter packages available for upgrade via menu bar
adff72dd1d2 Fix reverting Rmail buffers
</pre>
</div>
</content>
</entry>
<entry>
<title>Update Android port</title>
<updated>2023-05-31T03:27:19+00:00</updated>
<author>
<name>Po Lu</name>
</author>
<published>2023-05-31T03:27:19+00:00</published>
<link rel='alternate' type='text/html' href='https://jason.zzq.org/git/emacs/commit/?id=456095ed3129f7ce2fe1ff019ea5d912a69ed2a1'/>
<id>456095ed3129f7ce2fe1ff019ea5d912a69ed2a1</id>
<content type='text'>
* exec/exec.c (insert_args): New argument `arg3'.  Replace
argv[1] with that argument.
(exec_0): Pass file name of script to `insert_args'.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* exec/exec.c (insert_args): New argument `arg3'.  Replace
argv[1] with that argument.
(exec_0): Pass file name of script to `insert_args'.
</pre>
</div>
</content>
</entry>
</feed>
