This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU Mach".
The branch, master has been updated
via e56301bd2528ed83bc695b4acb7c323521d2c6c3 (commit)
via 31e2a0c8ed4565d52548e9851010cf637e23ef14 (commit)
via e0a8a6fd98af55a73410bf244efc2bb68b04ec63 (commit)
via 6c37f565815f0e2d7a1261c3fb02b5476e057de7 (commit)
from 9d10f486be9d328870fab5979de48695d824e0c4 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit e56301bd2528ed83bc695b4acb7c323521d2c6c3
Author: Paulo Duarte <[email protected]>
Date: Sun May 24 02:43:18 2026 +0100
tests: add aarch64 arm to start.S
The userland test stubs run as freestanding multiboot modules: the
kernel exec path hands them control at _start with argc/argv/envp
laid out sysv-style on the stack, and they call c_start(sp) to find
their arguments. The i386 and x86_64 arms already implement this;
add the aarch64 equivalent (mov x0, sp; bl c_start) so test modules
can be cross-compiled with aarch64-unknown-none-elf-gcc and entered
by Bugaev's pcb/exec path.
bl rather than a tail-call b keeps the saved-LR contract intact in
case anything unwinds out of the userland prelude.
Message-ID: <[email protected]>
commit 31e2a0c8ed4565d52548e9851010cf637e23ef14
Author: Paulo Duarte <[email protected]>
Date: Sun May 24 02:43:10 2026 +0100
ipc: declare copyinmsg / copyoutmsg in <ipc/copy_user.h>
The copyinmsg() and copyoutmsg() routines are defined per-arch (in
i386/i386/locore.S and friends) but have never had cross-arch
declarations. Each kern/ caller has historically picked them up
through an arch-specific header, or via implicit declaration.
Declare them in <ipc/copy_user.h> alongside the other copy_user
helpers, with copyoutmsg becoming an alias for copyout when not
building a 64-bit kernel with a 32-bit userland (the only case
where the two diverge today). Add the missing include to
kern/exception.c which uses both.
Message-ID: <[email protected]>
commit e0a8a6fd98af55a73410bf244efc2bb68b04ec63
Author: Paulo Duarte <[email protected]>
Date: Sun May 24 02:43:09 2026 +0100
mach: add EM_AARCH64 to the ELF machine constant list
The Mach exec/elf.h pseudo-header already enumerates a handful of
machine types (PARISC, PPC, x86_64, â¦) but not aarch64. Add it so
exec-format code can recognise aarch64 ELF binaries by EM number.
Defined per the ARM-supplied ELF supplement (the same value Linux,
glibc, and FreeBSD have used since 2014).
Message-ID: <[email protected]>
commit 6c37f565815f0e2d7a1261c3fb02b5476e057de7
Author: Paulo Duarte <[email protected]>
Date: Sun May 24 02:43:06 2026 +0100
aarch64: add per-arch lock.h shim for kern/lock.h's machine include
kern/lock.h on current master unconditionally does
#include <machine/lock.h>
at line 61 (with a /*XXX*/ marker), even though the body only
references its definitions when NCPUS > 1. Bugaev's wip-aarch64
worked around this by editing kern/lock.h itself â wrapping the
include in `#if NCPUS > 1` â which would touch a shared file
upstream maintains.
Provide the include as a per-arch shim instead: an empty
aarch64/aarch64/lock.h. machine/ resolves to the active TARGET's
arch directory at build time, so kern/lock.h's include picks this
up on aarch64 without any shared-file change. Today aarch64 is
built with NCPUS = 1, so an empty header is sufficient; a future
SMP-capable aarch64 port should fill this in with the low-level
_simple_lock_data_t and _simple_lock / _simple_unlock primitives,
mirroring i386/i386/lock.h.
Without this shim the imported port fails to compile the first
file that pulls in kern/lock.h.
Message-ID: <[email protected]>
-----------------------------------------------------------------------
Summary of changes:
.../mach/aarch64/vm_param.h => aarch64/lock.h} | 25 +++++++++++-----------
include/mach/exec/elf.h | 1 +
ipc/copy_user.h | 15 +++++++++++++
kern/exception.c | 1 +
tests/start.S | 10 +++++++++
5 files changed, 39 insertions(+), 13 deletions(-)
copy aarch64/{include/mach/aarch64/vm_param.h => aarch64/lock.h} (57%)
hooks/post-receive
--
GNU Mach