You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 518c8cb
Browse filesBrowse the repository at this point in the historyBrowse files
Skip 32-bit time_t openssl detection on linux-bionic arm (#128948)
#128826 changed `eng/native/configurecompiler.cmake` to define both
`TARGET_LINUX` and `TARGET_ANDROID` for Android targets. That activated
a `TARGET_ARM && TARGET_LINUX` guarded `static_assert` in
`opensslshim.c` requiring 64-bit `time_t`, breaking the linux-bionic
shortstack arm build in the VMR because Android NDK API 24 keeps
`time_t` 32-bit (the NDK only honors `_TIME_BITS=64` at API >= 32):
```
src/native/libs/System.Security.Cryptography.Native/opensslshim.c:199:25: error: static assertion failed due to requirement 'sizeof(long) == 8': Build requires 64-bit time_t.
```
The 32-bit-`time_t` libssl probe exists for distro-agnostic Linux arm
builds that may load an older libssl built against a 32-bit `time_t`.
linux-bionic does not build the OpenSSL crypto library at all, so the
probe is dead code there. Exclude `TARGET_ANDROID` from the related
guards so the assert and probe are compiled out on linux-bionic.
Fixes the `LinuxBionic_Shortstack_arm` build leg in dotnet/dotnet.
Co-authored-by: Copilot <[email protected]>
if (!(OPENSSL_gmtime_ptr= (TYPEOF(OPENSSL_gmtime))(dlsym(libssl, "OPENSSL_gmtime")))) { fprintf(stderr, "Cannot get required symbol OPENSSL_gmtime from libssl\n"); abort(); }
0 commit comments