Pull up the following, requested by christos in ticket #283:
external/ibm-public/postfix//dist/README_FILES/NON_BERKELEYDB_README up to
external/ibm-public/postfix//dist/README_FILES/REQUIRETLS_README up to
external/ibm-public/postfix//dist/conf/postfix-non-bdb-script up to
external/ibm-public/postfix//dist/html/NON_BERKELEYDB_README.html up to
external/ibm-public/postfix//dist/html/REQUIRETLS_README.html up to
external/ibm-public/postfix//dist/html/nbdb_reindexd.8.html up to
external/ibm-public/postfix//dist/html/postfix-non-bdb.1.html up to
external/ibm-public/postfix//dist/man/man1/postfix-non-bdb.1 up to
external/ibm-public/postfix//dist/man/man8/nbdb_reindexd.8 up to
external/ibm-public/postfix//dist/mantools/check-proxy-type-table up to
external/ibm-public/postfix//dist/proto/NON_BERKELEYDB_README.html up to
external/ibm-public/postfix//dist/proto/REQUIRETLS_README.html up to
external/ibm-public/postfix//dist/src/cleanup/cleanup_message_test.c up to
external/ibm-public/postfix//dist/src/global/ehlo_mask_test.c up to
external/ibm-public/postfix//dist/src/global/nbdb_clnt.c up to
external/ibm-public/postfix//dist/src/global/allowed_prefix.c up to
external/ibm-public/postfix//dist/src/global/allowed_prefix.h up to
[575 lines not shown]
Explicitly cast IOCPARM_MAX to size_t - it can never be negative.
Hopefully avoids build breakage by a signed vs. unsigned comparision warning
on mips*64*.
risc-v: bump some parameter values on riscv64
Match all other 64bit platforms for
- PAGER_MAP_DEFAULT_SIZE
- UBC_WINSHIFT
- UBC_NWINS
Spotted by thorpej
Allow (p)redefinitions of symbols in <machine/param.h>
sun3 (via machine/param3.h) defines UBC_NWINS UBC_WINSHIFT & MAXEXEC
before including <m68k/param.h> == and defines UBC_NWINS differently.
Allow for that (hopefully fix broken sun3 build).
[ Why sun3 has __mc680010__ defined is left as an unexplained mystery ]
Fix a longstanding bug on 64 bit ports with ABIs requiring sign-extension when returning 32-bit values in registers. Alpha, MIPS N64, RISCV.
With these ABIs it is necessary for the syscall return code to manually
sign-extend all 32-bit return values. If we don't, everything may look
just fine, until a syscall return value is spilled to the stack and then
reloaded. At that point, the zero-extended form produced by C assignment
into the 64-bit register for return to userspace will be sign-extended
upon reload, producing a different, corrupt value which will fail comparisons.
This was observed with a getuid() != geteuid() deep inside sshd on N64, on an
unusual system that had some very large UIDs with bit 31 set - but is quite
difficult to reproduce with small tests, since register pressure and compiler
behavior determine whether the conditions necessary to trigger the bug will
exist.
The easiest way to see whether a new target needs this treatment is to
look at its GCC configuratrion; if its PROMOTE_MODE has UNSIGNEDP = 0
for SImode, the sign-extension in syscall() is necessary.
Harmonize USPACE / UPAGES across m68k platforms.
There seems to be a complicated history rooted in the original Utah code
using UPAGES of 2 w/ NBPG of 4096 for an 8KB total u-area. The Amiga
port then appeared using NBPG of 8192, but UPAGES was not adjusted to
conpensate, resulting in a 16KB u-area for Amiga. From there, chaos
spread which resulted in us homehow tolerating a situation where the
Sun2 is also using a 16KB u-area despite only have 2048-byte pages.
End this madness by centrally defining USPACE as 8192 and deriving
UPAGES from USPACE. 8KB is totally enough for these platforms.
Address problems with MIPS Malta platform code found running under QEMU.
QEMU's "malta" system emulates a MIPS Malta with the Gallileo host bridge
and 32-bit or 64-bit CPUs of either endianness. It is one of the only
working QEMU system-level emulations that could run NetBSD with all
combinations of endianness and address size. After fixes to QEMU over the
past several years, NetBSD has been unable to use the emulated PCI bus in
big-endian and 64-bit configurations.
No actual Malta hardware with any Gallileo-based CPU card could be found
for testing. These changes have been checked against the databook and
some limited checking of the relevant QEMU changes (which seem to have
mostly come from former MIPS employees) was also performed.
Changes:
1. The GT-64120 host bridge _does_ byte-swap access to other PCI targets,
but _does not_ byte-swap access to itself (bus 0, device 0). QEMU
evidently used to get this wrong, but, I confirmed with the databook.
This means we need to manually byte-swap a bunch of access to the
[29 lines not shown]