Also suppress OPENSSL_LINUX for nanolibc

Where the Trusty and Android baremetal cases are unambiguously mistakes
in their respective builds, nanolibc is a bit more interesting.

nanolibc sometimes build for a non-Linux target (which should not define
__linux__), but also sometimes build for Linux. Although technically
running in Linux userspace, this lacks all the libc APIs we'd normally
expect on Linux, so we treat it as a non-Linux target.

Change-Id: Id36f6bbc6e790d96e31193532717630a86f124b8
Reviewed-on: https://boringssl-review.googlesource.com/c/boringssl/+/62685
Commit-Queue: David Benjamin <davidben@google.com>
Commit-Queue: Adam Langley <agl@google.com>
Reviewed-by: Adam Langley <agl@google.com>
Auto-Submit: David Benjamin <davidben@google.com>
This commit is contained in:
David Benjamin
2023-08-24 18:40:27 +00:00
committed by Boringssl LUCI CQ
parent 004317217f
commit dc1c2f0db6
+8 -3
View File
@@ -70,13 +70,18 @@
#define OPENSSL_WINDOWS
#endif
// Trusty and Android baremetal aren't't Linux but currently define __linux__.
// As a workaround, we exclude them here.
// Trusty and Android baremetal aren't Linux but currently define __linux__.
// As a workaround, we exclude them here. We also exclude nanolibc. nanolibc
// sometimes build for a non-Linux target (which should not define __linux__),
// but also sometimes build for Linux. Although technically running in Linux
// userspace, this lacks all the libc APIs we'd normally expect on Linux, so we
// treat it as a non-Linux target.
//
// TODO(b/169780122): Remove this workaround once Trusty no longer defines it.
// TODO(b/291101350): Remove this workaround once Android baremetal no longer
// defines it.
#if defined(__linux__) && !defined(__TRUSTY__) && !defined(ANDROID_BAREMETAL)
#if defined(__linux__) && !defined(__TRUSTY__) && \
!defined(ANDROID_BAREMETAL) && !defined(OPENSSL_NANOLIBC)
#define OPENSSL_LINUX
#endif