ce45588695
C99 added macros such as PRIu64 to inttypes.h, but it said to exclude them from C++ unless __STDC_FORMAT_MACROS or __STDC_CONSTANT_MACROS was defined. This text was never incorporated into any C++ standard and explicitly overruled in C++11. Some libc headers followed C99. Notably, glibc prior to 2.18 (https://sourceware.org/bugzilla/show_bug.cgi?id=15366) and old versions of the Android NDK. In the NDK, although it was fixed some time ago (API level 20), the NDK used to use separate headers per API level. Only applications using minSdkVersion >= 20 would get the fix. Starting NDK r14, "unified" headers are available which, among other things, make the fix available (opt-in) independent of minSdkVersion. In r15, unified headers are opt-out, and in r16 they are mandatory. Try removing these and see if anyone notices. The former is past our five year watermark. The latter is not and Android has hit https://boringssl-review.googlesource.com/c/boringssl/+/32686 before, but unless it is really widespread, it's probably simpler to ask consumers to define __STDC_CONSTANT_MACROS and __STDC_FORMAT_MACROS globally. Update-Note: If you see compile failures relating to PRIu64, UINT64_MAX, and friends, update your glibc or NDK. As a short-term fix, add __STDC_CONSTANT_MACROS and __STDC_FORMAT_MACROS to your build, but get in touch so we have a sense of how widespread it is. Bug: 198 Change-Id: I56cca5f9acdff803de1748254bc45096e4c959c2 Reviewed-on: https://boringssl-review.googlesource.com/c/33146 Reviewed-by: Adam Langley <agl@google.com> Commit-Queue: Adam Langley <agl@google.com> CQ-Verified: CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org> |
||
---|---|---|
.. | ||
asn1_compat.c | ||
ber.c | ||
bytestring_test.cc | ||
cbb.c | ||
cbs.c | ||
internal.h | ||
unicode.c |