Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

CVS commit: src/sys/arch



Module Name:    src
Committed By:   nia
Date:           Mon Dec 15 22:10:34 UTC 2025

Modified Files:
        src/sys/arch/aarch64/include: byte_swap.h
        src/sys/arch/amd64/include: byte_swap.h
        src/sys/arch/arm/include: byte_swap.h
        src/sys/arch/hppa/include: byte_swap.h
        src/sys/arch/i386/include: byte_swap.h
        src/sys/arch/m68k/include: byte_swap.h
        src/sys/arch/or1k/include: byte_swap.h
        src/sys/arch/riscv/include: byte_swap.h
        src/sys/arch/sh3/include: byte_swap.h
        src/sys/arch/vax/include: byte_swap.h

Log Message:
Eliminate recursive dependency on <sys/bswap.h> in MD <byte_swap.h>

On certain NetBSD archs, it isn't possible to include <sys/bswap.h>
directly without including <sys/endian.h> first. This has been
broken since at least before netbsd-10, but recent changes elsewhere
have made this problem more visible for some reason.

Fix this by not including <sys/types.h>, eliminating recursive
inclusion - <sys/types.h> includes <machine/endian.h>. It would
be nice to remove that line from types.h, since it's no longer
necessary, but currently the kernel assumes that <sys/endian.h> is
included from <sys/types.h> in various places (and possibly userspace
software does too).

For now we can take the less dangerous option by avoiding
including <sys/types.h> from these bswap headers. They don't need the
full header, and applications that assume transclusion aren't portable
anyway, since architectures like sparc64 don't include <sys/types.h>
via <sys/bswap.h>.

PR pkg/59839 palemoon, firefox, etc., don't build on arm64 any more


To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/aarch64/include/byte_swap.h
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/amd64/include/byte_swap.h
cvs rdiff -u -r1.16 -r1.17 src/sys/arch/arm/include/byte_swap.h
cvs rdiff -u -r1.8 -r1.9 src/sys/arch/hppa/include/byte_swap.h
cvs rdiff -u -r1.17 -r1.18 src/sys/arch/i386/include/byte_swap.h
cvs rdiff -u -r1.11 -r1.12 src/sys/arch/m68k/include/byte_swap.h
cvs rdiff -u -r1.2 -r1.3 src/sys/arch/or1k/include/byte_swap.h
cvs rdiff -u -r1.5 -r1.6 src/sys/arch/riscv/include/byte_swap.h
cvs rdiff -u -r1.4 -r1.5 src/sys/arch/sh3/include/byte_swap.h
cvs rdiff -u -r1.12 -r1.13 src/sys/arch/vax/include/byte_swap.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.




Home | Main Index | Thread Index | Old Index