openssl/openssl

[BUG] Illegal uintptr_t typecast when using threaded builds

Open

#28,765 建立於 2025年10月6日

在 GitHub 查看
 (14 留言) (0 反應) (0 負責人)C (11,262 fork)batch import
help wantedtriaged: bug

倉庫指標

Star
 (30,157 star)
PR 合併指標
 (30 天內沒有已合併 PR)

描述

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.

貢獻者指南