commit | ce455886958b61f4b350e46a6a1a764f325853e1 | [log] [tgz] |
---|---|---|
author | David Benjamin <davidben@google.com> | Tue Nov 13 18:41:08 2018 -0600 |
committer | CQ bot account: commit-bot@chromium.org <commit-bot@chromium.org> | Wed Nov 14 16:14:37 2018 +0000 |
tree | 53a93a282f0ca8d3a2b5495a82d0884bbd2294f8 | |
parent | 5ecfb10d54600dc6ee6f3070b842f5289b6e6c1e [diff] |
Speculatively remove __STDC_*_MACROS. 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>
BoringSSL is a fork of OpenSSL that is designed to meet Google's needs.
Although BoringSSL is an open source project, it is not intended for general use, as OpenSSL is. We don't recommend that third parties depend upon it. Doing so is likely to be frustrating because there are no guarantees of API or ABI stability.
Programs ship their own copies of BoringSSL when they use it and we update everything as needed when deciding to make API changes. This allows us to mostly avoid compromises in the name of compatibility. It works for us, but it may not work for you.
BoringSSL arose because Google used OpenSSL for many years in various ways and, over time, built up a large number of patches that were maintained while tracking upstream OpenSSL. As Google's product portfolio became more complex, more copies of OpenSSL sprung up and the effort involved in maintaining all these patches in multiple places was growing steadily.
Currently BoringSSL is the SSL library in Chrome/Chromium, Android (but it's not part of the NDK) and a number of other apps/programs.
There are other files in this directory which might be helpful: