openssl/openssl

[BUG] Illegal uintptr_t typecast when using threaded builds

Open

#28.765 aperta il 6 ott 2025

Vedi su GitHub
 (14 commenti) (0 reazioni) (0 assegnatari)C (11.262 fork)batch import
help wantedtriaged: bug

Metriche repository

Star
 (30.157 star)
Metriche merge PR
 (Nessuna PR mergiata in 30 g)

Descrizione

When building on NonStop x86, specifically c99, there is a compile error as follows:

      uintptr_t tid = (uintptr_t)CRYPTO_THREAD_get_current_id();
                      ^
"/home/randall/openssl-3.5/crypto/rsa/rsa_ossl.c", line 234: error(256): invalid type conversion

      uintptr_t tid = (uintptr_t)CRYPTO_THREAD_get_current_id();
                      ^
"/home/randall/openssl-3.5/crypto/rsa/rsa_ossl.c", line 242: error(256): invalid type conversion

This results because some platforms (NonStop, Cygwin, at least) define pthread_t as a typedef struct instead of a primitive, which is not legal in c99 although works in gcc.

Guida contributor