Debian Patches

Status for gnumach/2:1.8+git20250731-7

Patch Description Author Forwarded Bugs Origin Last update
12_version_suffix.patch =================================================================== no
20_FP_NO.patch diff --git a/i386/include/mach/i386/fp_reg.h b/i386/include/mach/i386/fp_reg.h
index 5673055..f490623 100644
no
50_initrd.patch Jérémie Koenig <jk@jk.fr.eu.org>
Add ramdisk support for d-i.
no
79_dde-debian.patch This contains a compatibility layer for netdde and rump still using the experimental irq/alloc_contig support. It is the output of

git diff master master-user_level_drivers-debian

(master was 6054cda4de2341b9a77ec4421411725f3684006b and
master-user_level_drivers-debian was 19283fdffa782b2e485ef39e0de1574006ec4a1a at
the time)

When dropping this, break netdde (<< 0.0.20200330-5),
hurd-libs0.3 (<< hurd_1:0.9.git20200718-1+b1)
no
git-smp-nolinux-apic commit cf9ba913445e940dbab95a906e6788ebb2258ef3

smp: Fix build with default parameters

We need to automatically disable linux groups before automatically
enabling apic.

diff --git a/i386/configfrag.ac b/i386/configfrag.ac
index 6cd1fdf7..1a6f5758 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2025-08-01
git-x86_64-linux-apic commit 106dadfe55dc9007c1de791c174fc9cce79b824a

x86_64: disable linux groups early

So we enable APIC by default.

diff --git a/i386/configfrag.ac b/i386/configfrag.ac
index 1a6f5758..cf15c70f 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2025-08-01
git-xen-noapic commit 1b613718617a23c50ec28de06a85349415db83cb

xen: Disable apic

diff --git a/i386/configfrag.ac b/i386/configfrag.ac
index cf15c70f..ec0a3009 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2025-08-01
git-div0 commit eec7037c885f6e54bf8f22d421d6abc55a2cd667

idt_inittab: Fix terminator entry

Better fill a complete entry, which is always two pointers, both in
MACH_PV_DESCRIPTORS and !MACH_PV_DESCRIPTORS case.

For the x86_64 case, only half a pointer was actually recorded, leaving
to garbage getting registered in the idt. This was noticed by division
by zero getting double-faults.

Thanks Pellescours for the initial investigation!

diff --git a/i386/i386/idt_inittab.S b/i386/i386/idt_inittab.S
index fc80e21b..a946fece 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2025-08-27
git-mach_port_set_ktype commit fdfca0e86009c5a7b188fa39e939de800a73391d

Add mach_port_set_ktype RPC to set ktype of a user port

For now, we only allow a newly-introduced MACH_PORT_KTYPE_USER_DEVICE type
that makes ipc_kmsg_copyin_body use page lists, which keep them in a busy
state that prevents them from being paged out.

diff --git a/include/mach/mach_port.defs b/include/mach/mach_port.defs
index 3823bb14..3f2aed14 100644
Michael Kelly <mike@weatherwax.co.uk> no 2025-08-31
git-set_timeout commit 8d456cd9e417e9787481df15736b5f1c55cbc870

mach_clock (set_timeout): Start counting after next tick

to avoid partial ticks.

diff --git a/kern/mach_clock.c b/kern/mach_clock.c
index 48f673a4..3be0fb74 100644
Samuel Thibault <samuel.thibault@ens-lyon.org> no 2025-09-03
git-clock-backward commit c33f27196d9cb072d48bf5389bb64ad99a0d735a

mach_clock: Fix monotonic clock sometimes going backwards

Between reading mtime and reading hpclock_read_counter,
there may be an interrupt that updates mtime, therefore
we need a check to perform the clock read process again
in this case.

TESTED: on UP using:

```
\#include <stdio.h>
\#include <time.h>

int main()
{
struct timespec ts, now;
int i;
int cnt = 0;

clock_gettime(CLOCK_MONOTONIC, &ts);

for (i = 0; i < 10000000; i++) {
clock_gettime(CLOCK_MONOTONIC, &now);
if ((now.tv_nsec < ts.tv_nsec) && (now.tv_sec <= ts.tv_sec)) {
printf("BACKWARDS\n");
cnt++;
printf(" %u %09lu\n %u %09lu\n\n",
ts.tv_sec, ts.tv_nsec,
now.tv_sec, now.tv_nsec
);
}
ts = now;
}
printf("went backwards %d out of %d times\n", cnt, i);
return 0;
}
```

Before the change, some backward transitions were detected.
After this change, none were detected.
Message-ID: <20250921091345.2183347-1-damien@zamaudio.com>

diff --git a/kern/mach_clock.c b/kern/mach_clock.c
index 3be0fb74..1c2ba0cb 100644
Damien Zammit <damien@zamaudio.com> no 2025-09-21
git-set-size-limit commit 9ae4d99c1d1e7c9c0977cebb4df9b86fa92cca94

Implement per-task virtual memory limit

Only import the header for now so glibc starts supporting it, and libpager
protects itself from it.

* include/mach/gnumach.defs: (vm_set_size_limit) new routine
(vm_get_size_limit) likewise
Diego Nieto Cid <dnietoc@gmail.com> no 2025-09-21

All known versions for source package 'gnumach'

Links