[PATCH] [W32] Use SSIZE_T for ssize_t on Windows instead of long

John Thacker via Gcrypt-devel <[email protected]> Tue, 19 May 2026 18:05:12 -0400
Newsgroups gmane.comp.encryption.gpg.libgcrypt.devel
Message-ID <CAP_QLgr4pD9ed=fsZ7CMsSUNcmDxVy2ALkpuckK-52hsyUtrBA@mail.gmail.com>
--00000000000037f2c6065232e076
Content-Type: multipart/alternative; boundary="00000000000037f2c5065232e074"

--00000000000037f2c5065232e074
Content-Type: text/plain; charset="UTF-8"

64-bit Windows uses a LLP64 data model, where long is still 32 bits and
long long and pointers are 64-bits. The SSIZE_T Windows Data Type from
basetsd.h is 32-bits on Win32 and 64-bits on Win64, and is intended for the
same purposes as the POSIX ssize_t. It is what Wireshark uses in its POSIX
compatibility header for Windows, and would prevent Wireshark from having
to change the definition when compiling for Windows. Other attempts to make
libgcrypt more compatible with MSVC used the same approach. Patch attached.

Thanks,
John Thacker

--00000000000037f2c5065232e074
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-family:arial,sa=
ns-serif"><br></div><div class=3D"gmail_default" style=3D"font-family:arial=
,sans-serif">64-bit Windows uses a LLP64 data model, where long is still 32=
 bits and long long and pointers are 64-bits. The SSIZE_T Windows Data Type=
 from basetsd.h is 32-bits on Win32 and 64-bits on Win64, and is intended f=
or the same purposes as the POSIX ssize_t. It is what Wireshark uses in its=
 POSIX compatibility header for Windows, and would prevent Wireshark from h=
aving to change the definition when compiling for Windows. Other=C2=A0attem=
pts to make libgcrypt more compatible with MSVC used the same approach. Pat=
ch attached.</div><div class=3D"gmail_default" style=3D"font-family:arial,s=
ans-serif"><br></div><div class=3D"gmail_default" style=3D"font-family:aria=
l,sans-serif">Thanks,</div><div class=3D"gmail_default" style=3D"font-famil=
y:arial,sans-serif">John Thacker</div></div>

--00000000000037f2c5065232e074--

--00000000000037f2c6065232e076
Content-Type: text/x-patch; charset="US-ASCII"; 
	name="0001-Win32-Type-SSIZE_T-as-ssize_t-instead-of-long.patch"
Content-Disposition: attachment; 
	filename="0001-Win32-Type-SSIZE_T-as-ssize_t-instead-of-long.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_mpd6bmka0>
X-Attachment-Id: f_mpd6bmka0

RnJvbSAzMTNiZTVlNzFlODUwYzI4OGZkYTY2Nzg4NjJlNGI2YWRhMTNmMzk2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2huIFRoYWNrZXIgPGpvaG50aGFja2VyQGdtYWlsLmNvbT4K
RGF0ZTogVHVlLCAxOSBNYXkgMjAyNiAxNzo0ODo1OCAtMDQwMApTdWJqZWN0OiBbUEFUQ0hdIFdp
bjMyOiBUeXBlIFNTSVpFX1QgYXMgc3NpemVfdCBpbnN0ZWFkIG9mIGxvbmcKCjY0LWJpdCBXaW5k
b3dzIHVzZXMgYSBMTFA2NCBkYXRhIG1vZGVsLCB3aGVyZSBsb25nIGlzIHN0aWxsIDMyIGJpdHMK
YW5kIGxvbmcgbG9uZyBhbmQgcG9pbnRlcnMgYXJlIDY0LWJpdHMuIGJhc2V0c2QuaCBkZWZpbmVz
IFdpbmRvd3MKRGF0YSBUeXBlcywgaW5jbHVkaW5nIGEgU1NJWkVfVCB3aGljaCBpcyAzMi1iaXQg
b24gMzItYml0IFdpbmRvd3MKYW5kIDY0LWJpdCBvbiA2NC1iaXQgV2luZG93cyBhbmQgaW50ZW5k
ZWQgZm9yIHRoZSBzYW1lIHB1cnBvc2UKYXMgUE9TSVggc3NpemVfdC4KClVzZSB0aGF0IGZvciB0
aGUgc3NpemVfdCB0eXBlZGVmLiBUaGlzIGlzIHdoYXQgdGhlIHJlY2VudGx5IG9uCmhpYXR1cyBT
aGlmdE1lZGlhUHJvamVjdCBXaW5kb3dzIHBvcnQgb2YgbGliZ2NyeXB0IGRpZAooaHR0cHM6Ly9n
aXRodWIuY29tL1NoaWZ0TWVkaWFQcm9qZWN0L2xpYmdjcnlwdC9ibG9iL21hc3Rlci9zcmMvZ2Ny
eXB0LmguaW4pCmFuZCBhbHNvIG1hdGNoZXMgd2hhdCBzb21lIG90aGVyIHByb2plY3RzIGxpa2Ug
V2lyZXNoYXJrIHVzZS4KClNpZ25lZC1vZmYtYnk6IEpvaG4gVGhhY2tlciA8am9obnRoYWNrZXJA
Z21haWwuY29tPgotLS0KIHNyYy9nY3J5cHQuaC5pbiB8IDMgKystCiAxIGZpbGUgY2hhbmdlZCwg
MiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2djcnlwdC5o
LmluIGIvc3JjL2djcnlwdC5oLmluCmluZGV4IDA0MzM5YTQ4Li43M2U1NGJmMyAxMDA2NDQKLS0t
IGEvc3JjL2djcnlwdC5oLmluCisrKyBiL3NyYy9nY3J5cHQuaC5pbgpAQCAtMzUsNyArMzUsOCBA
QAogCiAjaWYgZGVmaW5lZCBfV0lOMzIgfHwgZGVmaW5lZCBfX1dJTjMyX18KICMgaWZuZGVmIF9f
R05VQ19fCi0gIHR5cGVkZWYgbG9uZyBzc2l6ZV90OworIyBpbmNsdWRlIDxiYXNldHNkLmg+Cisg
IHR5cGVkZWYgU1NJWkVfVCBzc2l6ZV90OwogICB0eXBlZGVmIGludCAgcGlkX3Q7CiAjIGVuZGlm
IC8qIV9fR05VQ19fKi8KICNlbmRpZiAvKl9XSU4zMiovCi0tIAoyLjU0LjAKCg==
--00000000000037f2c6065232e076
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Gcrypt-devel mailing list
[email protected]
https://lists.gnupg.org/mailman/listinfo/gcrypt-devel

--00000000000037f2c6065232e076--