[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--