HardenedBSD Services pushed to branch hardened/current/master at HardenedBSD / HardenedBSD
Commits:
f22cffe4 by Ed Maste at 2025-12-27T20:17:09-05:00
vt.4: Remove Xr to nonexistent vidcontrol(8)
PR: 291985
Fixes: a8740ba860bf ("vt.4: Document increasing scrollback size")
- - - - -
424089a0 by Warner Losh at 2025-12-27T22:27:03-07:00
loader: Fix powerpc64le by working around slof bug in qemu/slof
Fix powerpc 64 little endian booting by adding some padding. Due to
https://gitlab.com/slof/slof/-/blob/master/lib/libelf/elf32.c?ref_type=heads#L114
https://gitlab.com/slof/slof/-/blob/master/lib/libelf/elf32.c?ref_type=heads#L150
using <= instead of <, slof used to loop over the phdrs. It overruns by
1 and so on little endian it swizzles the first 32 bytes of .text. Work
around this by adding 32 bytes of padding after the headers. We should
fix this in slof, but it's in the just released QEMU 10.2, so we have to
pad things here for now.
Now powerpc64le + qemu works.
MFC After: 3 days (maybe EN too)
Reviewed by: adrian, jhibbits
Sponsored by: Netflix
- - - - -
8e8d7d48 by Warner Losh at 2025-12-27T22:37:56-07:00
loader: Use C99 initializations for file_format
For greppability, use C99 initializers for the struct file_format.
Sponsored by: Netflix
- - - - -
39fd0de1 by HardenedBSD Sync Services at 2025-12-28T00:01:31-07:00
Merge branch 'freebsd/current/main' into hardened/current/master
- - - - -
17 changed files:
- share/man/man4/vt.4
- stand/efi/loader/arch/amd64/multiboot2.c
- stand/efi/loader/arch/arm/exec.c
- stand/efi/loader/arch/arm64/exec.c
- stand/efi/loader/arch/riscv/exec.c
- stand/i386/libi386/elf32_freebsd.c
- stand/i386/libi386/elf64_freebsd.c
- stand/i386/libi386/multiboot.c
- stand/kboot/kboot/arch/aarch64/exec.c
- stand/kboot/kboot/arch/powerpc64/ppc64_elf_freebsd.c
- stand/powerpc/ofw/elf_freebsd.c
- stand/powerpc/ofw/ppc-common.ldscript
- stand/powerpc/ofw/ppc64_elf_freebsd.c
- stand/uboot/arch/powerpc/ppc64_elf_freebsd.c
- stand/uboot/elf_freebsd.c
- stand/userboot/userboot/elf32_freebsd.c
- stand/userboot/userboot/elf64_freebsd.c
Changes:
=====================================
share/man/man4/vt.4
=====================================
@@ -420,7 +420,6 @@ at boot:
.Xr getty 8 ,
.Xr kldload 8 ,
.Xr moused 8 ,
-.Xr vidcontrol 8 ,
.Xr vtfontcvt 8
.Sh HISTORY
The
=====================================
stand/efi/loader/arch/amd64/multiboot2.c
=====================================
@@ -558,5 +558,11 @@ obj_exec(struct preloaded_file *fp)
return (EFTYPE);
}
-struct file_format multiboot2 = { loadfile, exec };
-struct file_format multiboot2_obj = { obj_loadfile, obj_exec };
+struct file_format multiboot2 = {
+ .l_load = loadfile,
+ .l_exec = exec
+};
+struct file_format multiboot2_obj = {
+ .l_load = obj_loadfile,
+ .l_exec = obj_exec
+};
=====================================
stand/efi/loader/arch/arm/exec.c
=====================================
@@ -90,8 +90,8 @@ __elfN(arm_exec)(struct preloaded_file *fp)
}
static struct file_format arm_elf = {
- __elfN(arm_load),
- __elfN(arm_exec)
+ .l_load = __elfN(arm_load),
+ .l_exec = __elfN(arm_exec)
};
struct file_format *file_formats[] = {
=====================================
stand/efi/loader/arch/arm64/exec.c
=====================================
@@ -43,8 +43,8 @@ static int elf64_exec(struct preloaded_file *amp);
static int elf64_obj_exec(struct preloaded_file *amp);
static struct file_format arm64_elf = {
- elf64_loadfile,
- elf64_exec
+ .l_load = elf64_loadfile,
+ .l_exec = elf64_exec
};
struct file_format *file_formats[] = {
=====================================
stand/efi/loader/arch/riscv/exec.c
=====================================
@@ -106,8 +106,8 @@ __elfN(exec)(struct preloaded_file *fp)
}
static struct file_format riscv_elf = {
- __elfN(loadfile),
- __elfN(exec)
+ .l_load = __elfN(loadfile),
+ .l_exec = __elfN(exec)
};
struct file_format *file_formats[] = {
=====================================
stand/i386/libi386/elf32_freebsd.c
=====================================
@@ -39,8 +39,14 @@
static int elf32_exec(struct preloaded_file *amp);
static int elf32_obj_exec(struct preloaded_file *amp);
-struct file_format i386_elf = { elf32_loadfile, elf32_exec };
-struct file_format i386_elf_obj = { elf32_obj_loadfile, elf32_obj_exec };
+struct file_format i386_elf = {
+ .l_load = elf32_loadfile,
+ .l_exec = elf32_exec
+};
+struct file_format i386_elf_obj = {
+ .l_load = elf32_obj_loadfile,
+ .l_exec = elf32_obj_exec
+};
/*
* There is an ELF kernel and one or more ELF modules loaded.
=====================================
stand/i386/libi386/elf64_freebsd.c
=====================================
@@ -43,8 +43,14 @@
static int elf64_exec(struct preloaded_file *amp);
static int elf64_obj_exec(struct preloaded_file *amp);
-struct file_format amd64_elf = { elf64_loadfile, elf64_exec };
-struct file_format amd64_elf_obj = { elf64_obj_loadfile, elf64_obj_exec };
+struct file_format amd64_elf = {
+ .l_load = elf64_loadfile,
+ .l_exec = elf64_exec
+};
+struct file_format amd64_elf_obj = {
+ .l_load = elf64_obj_loadfile,
+ .l_exec = elf64_obj_exec
+};
/*
* i386's pmap_pae.h doesn't provide this, so
=====================================
stand/i386/libi386/multiboot.c
=====================================
@@ -67,9 +67,14 @@ static int multiboot_exec(struct preloaded_file *);
static int multiboot_obj_loadfile(char *, uint64_t, struct preloaded_file **);
static int multiboot_obj_exec(struct preloaded_file *fp);
-struct file_format multiboot = { multiboot_loadfile, multiboot_exec };
-struct file_format multiboot_obj =
- { multiboot_obj_loadfile, multiboot_obj_exec };
+struct file_format multiboot = {
+ .l_load = multiboot_loadfile,
+ .l_exec = multiboot_exec
+};
+struct file_format multiboot_obj = {
+ .l_load = multiboot_obj_loadfile,
+ .l_exec = multiboot_obj_exec
+};
extern void multiboot_tramp();
=====================================
stand/kboot/kboot/arch/aarch64/exec.c
=====================================
@@ -73,8 +73,8 @@ int bi_load(char *args, vm_offset_t *modulep, vm_offset_t *kernendp,
#endif
static struct file_format arm64_elf = {
- elf64_loadfile,
- elf64_exec
+ .l_load = elf64_loadfile,
+ .l_exec = elf64_exec
};
struct file_format *file_formats[] = {
=====================================
stand/kboot/kboot/arch/powerpc64/ppc64_elf_freebsd.c
=====================================
@@ -157,10 +157,9 @@ ppc64_elf_exec(struct preloaded_file *fp)
while (1) {}
}
-struct file_format ppc_elf64 =
-{
- ppc64_elf_loadfile,
- ppc64_elf_exec
+struct file_format ppc_elf64 = {
+ .l_load = ppc64_elf_loadfile,
+ .l_exec = ppc64_elf_exec
};
/*
=====================================
stand/powerpc/ofw/elf_freebsd.c
=====================================
@@ -97,8 +97,7 @@ __elfN(ofw_exec)(struct preloaded_file *fp)
panic("exec returned");
}
-struct file_format ofw_elf =
-{
- __elfN(ofw_loadfile),
- __elfN(ofw_exec)
+struct file_format ofw_elf = {
+ .l_load = __elfN(ofw_loadfile),
+ .l_exec = __elfN(ofw_exec)
};
=====================================
stand/powerpc/ofw/ppc-common.ldscript
=====================================
@@ -9,7 +9,7 @@ PHDRS
SECTIONS
{
/* Read-only sections, merged into text segment: */
- . = 0x02c00000 + SIZEOF_HEADERS;
+ . = 0x02c00000 + SIZEOF_HEADERS + 32;
.interp : { *(.interp) } :text
.hash : { *(.hash) }
.dynsym : { *(.dynsym) }
=====================================
stand/powerpc/ofw/ppc64_elf_freebsd.c
=====================================
@@ -101,8 +101,7 @@ ppc64_ofw_elf_exec(struct preloaded_file *fp)
panic("exec returned");
}
-struct file_format ofw_elf64 =
-{
- ppc64_ofw_elf_loadfile,
- ppc64_ofw_elf_exec
+struct file_format ofw_elf64 = {
+ .l_load = ppc64_ofw_elf_loadfile,
+ .l_exec = ppc64_ofw_elf_exec
};
=====================================
stand/uboot/arch/powerpc/ppc64_elf_freebsd.c
=====================================
@@ -88,8 +88,7 @@ ppc64_uboot_elf_exec(struct preloaded_file *fp)
panic("exec returned");
}
-struct file_format uboot_elf64 =
-{
- ppc64_uboot_elf_loadfile,
- ppc64_uboot_elf_exec
+struct file_format uboot_elf64 = {
+ .l_load = ppc64_uboot_elf_loadfile,
+ .l_exec = ppc64_uboot_elf_exec
};
=====================================
stand/uboot/elf_freebsd.c
=====================================
@@ -87,6 +87,6 @@ __elfN(uboot_exec)(struct preloaded_file *fp)
}
struct file_format uboot_elf = {
- __elfN(uboot_load),
- __elfN(uboot_exec)
+ .l_load = __elfN(uboot_load),
+ .l_exec = __elfN(uboot_exec)
};
=====================================
stand/userboot/userboot/elf32_freebsd.c
=====================================
@@ -39,8 +39,14 @@
static int elf32_exec(struct preloaded_file *amp);
static int elf32_obj_exec(struct preloaded_file *amp);
-struct file_format i386_elf = { elf32_loadfile, elf32_exec };
-struct file_format i386_elf_obj = { elf32_obj_loadfile, elf32_obj_exec };
+struct file_format i386_elf = {
+ .l_load = elf32_loadfile,
+ .l_exec = elf32_exec
+};
+struct file_format i386_elf_obj = {
+ .l_load = elf32_obj_loadfile,
+ .l_exec = elf32_obj_exec
+};
#define GUEST_STACK 0x1000 /* Initial stack base */
#define GUEST_GDT 0x3000 /* Address of initial GDT */
=====================================
stand/userboot/userboot/elf64_freebsd.c
=====================================
@@ -43,8 +43,14 @@
static int elf64_exec(struct preloaded_file *amp);
static int elf64_obj_exec(struct preloaded_file *amp);
-struct file_format amd64_elf = { elf64_loadfile, elf64_exec };
-struct file_format amd64_elf_obj = { elf64_obj_loadfile, elf64_obj_exec };
+struct file_format amd64_elf = {
+ .l_load = elf64_loadfile,
+ .l_exec = elf64_exec
+};
+struct file_format amd64_elf_obj = {
+ .l_load = elf64_obj_loadfile,
+ .l_exec = elf64_obj_exec
+};
#define GUEST_NULL_SEL 0
#define GUEST_CODE_SEL 1
View it on GitLab:
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD/-/compare/1033ea95fc223872c5831179ac610820421dfe00...39fd0de18e97d96508da0e6d2ec48d804d1f6485
--
View it on GitLab:
https://git.hardenedbsd.org/hardenedbsd/HardenedBSD/-/compare/1033ea95fc223872c5831179ac610820421dfe00...39fd0de18e97d96508da0e6d2ec48d804d1f6485
You're receiving this email because of your account on
git.hardenedbsd.org.