git: 2fe28202aaac - main - arch.7: decouple long and pointer sizes

From: Brooks Davis <brooks_at_FreeBSD.org>
Date: Wed, 08 Oct 2025 09:34:03 UTC
The branch main has been updated by brooks:

URL: https://cgit.FreeBSD.org/src/commit/?id=2fe28202aaac4735f4982e7b79997a0dbc66e588

commit 2fe28202aaac4735f4982e7b79997a0dbc66e588
Author:     John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2025-10-08 09:31:17 +0000
Commit:     Brooks Davis <brooks@FreeBSD.org>
CommitDate: 2025-10-08 09:33:41 +0000

    arch.7: decouple long and pointer sizes
    
    Don't claim void* or (u)intptr_t are the same size as long.  This isn't
    true for CHERI.
    
    Effort:         CHERI upstream
    Reviewed by:    kib, markj, jhb, emaste
    Sponsored by:   Innovate UK, DARPA, AFRL
    Differential Revision:  https://reviews.freebsd.org/D52821
---
 share/man/man7/arch.7 | 33 +++++++++++++++++----------------
 1 file changed, 17 insertions(+), 16 deletions(-)

diff --git a/share/man/man7/arch.7 b/share/man/man7/arch.7
index 39425f8d5d1b..727cb99a8ff4 100644
--- a/share/man/man7/arch.7
+++ b/share/man/man7/arch.7
@@ -48,11 +48,10 @@ and later, unless otherwise noted.
 .Fx
 uses a flat address space.
 Variables of types
-.Vt unsigned long ,
-.Vt uintptr_t ,
+.Vt unsigned long
 and
 .Vt size_t
-and pointers all have the same representation.
+have the same representation.
 .Pp
 In order to maximize compatibility with future pointer integrity mechanisms,
 manipulations of pointers as integers should be performed via
@@ -127,14 +126,17 @@ All supported ABIs can be divided into two groups:
 .Bl -tag -width "Dv ILP32"
 .It Dv ILP32
 .Vt int ,
+.Vt intptr_t ,
 .Vt long ,
+and
 .Vt void *
 types machine representations all have 4-byte size.
 .It Dv LP64
 .Vt int
 type machine representation uses 4 bytes,
 while
-.Vt long
+.Vt intptr_t ,
+.Vt long ,
 and
 .Vt void *
 are 8 bytes.
@@ -174,7 +176,6 @@ On all supported architectures:
 .It Sy Type Ta Sy Size
 .It short Ta 2
 .It int Ta 4
-.It long Ta sizeof(void*)
 .It long long Ta 8
 .It float Ta 4
 .It double Ta 8
@@ -188,17 +189,17 @@ The sole exception is that
 requires only 4-byte alignment for 64-bit integers.
 .Pp
 Machine-dependent type sizes:
-.Bl -column -offset indent "Architecture" "void *" "long double" "time_t"
-.It Sy Architecture Ta Sy void * Ta Sy long double Ta Sy time_t
-.It aarch64     Ta 8 Ta 16 Ta 8
-.It amd64       Ta 8 Ta 16 Ta 8
-.It armv7       Ta 4 Ta  8 Ta 8
-.It i386        Ta 4 Ta 12 Ta 4
-.It powerpc     Ta 4 Ta  8 Ta 8
-.It powerpcspe  Ta 4 Ta  8 Ta 8
-.It powerpc64   Ta 8 Ta  8 Ta 8
-.It powerpc64le Ta 8 Ta  8 Ta 8
-.It riscv64     Ta 8 Ta 16 Ta 8
+.Bl -column -offset indent "Architecture" "long" "void *" "long double" "time_t"
+.It Sy Architecture Ta Sy long Ta Sy void * Ta Sy long double Ta Sy time_t
+.It aarch64     Ta 8 Ta  8 Ta 16 Ta 8
+.It amd64       Ta 8 Ta  8 Ta 16 Ta 8
+.It armv7       Ta 4 Ta  4 Ta  8 Ta 8
+.It i386        Ta 4 Ta  4 Ta 12 Ta 4
+.It powerpc     Ta 4 Ta  4 Ta  8 Ta 8
+.It powerpcspe  Ta 4 Ta  4 Ta  8 Ta 8
+.It powerpc64   Ta 8 Ta  8 Ta  8 Ta 8
+.It powerpc64le Ta 8 Ta  8 Ta  8 Ta 8
+.It riscv64     Ta 8 Ta  8 Ta 16 Ta 8
 .El
 .Pp
 .Sy time_t