From ab2da75af3f57c3090da91f98c23935af17cfa5d Mon Sep 17 00:00:00 2001 From: Daniel Kolesa Date: Fri, 9 Dec 2022 00:15:57 +0100 Subject: [PATCH 3/6] scudo: clean up lingering weak symbols we don't want --- src/malloc/scudo/checksum.h | 2 +- src/malloc/scudo/combined.h | 2 +- src/malloc/scudo/crc32_hw.cpp | 4 ++++ src/malloc/scudo/linux.cpp | 7 +++++++ 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/malloc/scudo/checksum.h b/src/malloc/scudo/checksum.h index f8eda81f..d61b6d88 100644 --- a/src/malloc/scudo/checksum.h +++ b/src/malloc/scudo/checksum.h @@ -52,7 +52,7 @@ inline u16 computeBSDChecksum(u16 Sum, uptr Data) { } bool hasHardwareCRC32(); -WEAK u32 computeHardwareCRC32(u32 Crc, uptr Data); +u32 computeHardwareCRC32(u32 Crc, uptr Data); } // namespace scudo diff --git a/src/malloc/scudo/combined.h b/src/malloc/scudo/combined.h index b17acc71..e62c9177 100644 --- a/src/malloc/scudo/combined.h +++ b/src/malloc/scudo/combined.h @@ -139,7 +139,7 @@ public: // Check if hardware CRC32 is supported in the binary and by the platform, // if so, opt for the CRC32 hardware version of the checksum. - if (&computeHardwareCRC32 && hasHardwareCRC32()) + if (hasHardwareCRC32()) HashAlgorithm = Checksum::HardwareCRC32; if (UNLIKELY(!getRandom(&Cookie, sizeof(Cookie)))) diff --git a/src/malloc/scudo/crc32_hw.cpp b/src/malloc/scudo/crc32_hw.cpp index 73f2ae00..4fe16933 100644 --- a/src/malloc/scudo/crc32_hw.cpp +++ b/src/malloc/scudo/crc32_hw.cpp @@ -14,6 +14,10 @@ namespace scudo { u32 computeHardwareCRC32(u32 Crc, uptr Data) { return static_cast(CRC32_INTRINSIC(Crc, Data)); } +#else +u32 computeHardwareCRC32(u32, uptr) { + return 0; +} #endif // defined(__CRC32__) || defined(__SSE4_2__) || // defined(__ARM_FEATURE_CRC32) diff --git a/src/malloc/scudo/linux.cpp b/src/malloc/scudo/linux.cpp index e285d8a3..b4603966 100644 --- a/src/malloc/scudo/linux.cpp +++ b/src/malloc/scudo/linux.cpp @@ -193,9 +193,11 @@ bool getRandom(void *Buffer, uptr Length, UNUSED bool Blocking) { return (ReadBytes == static_cast(Length)); } +#if SCUDO_ANDROID // Allocation free syslog-like API. extern "C" WEAK int async_safe_write_log(int pri, const char *tag, const char *msg); +#endif static uptr GetRSSFromBuffer(const char *Buf) { // The format of the file is: @@ -230,6 +232,7 @@ uptr GetRSS() { return GetRSSFromBuffer(Buf); } +#if SCUDO_ANDROID void outputRaw(const char *Buffer) { if (&async_safe_write_log) { constexpr s32 AndroidLogInfo = 4; @@ -262,6 +265,10 @@ void setAbortMessage(const char *Message) { if (&android_set_abort_message) android_set_abort_message(Message); } +#else +void outputRaw(const char *) {} +void setAbortMessage(const char *) {} +#endif } // namespace scudo -- 2.43.0