diff --git a/changes/bug14821 b/changes/bug14821 new file mode 100644 index 0000000000000000000000000000000000000000..0920d1fffc45b551b1449035e2902f22bbd3581e --- /dev/null +++ b/changes/bug14821 @@ -0,0 +1,4 @@ + o Major bugfixes (compilation): + - Correctly repair hardened builds under the clang compiler. Previously, + our use of _FORTIFY_SOURCE would conflict with clang's address + sanitizer. Closes ticket 14821. diff --git a/src/common/compat.h b/src/common/compat.h index c7c468c7545ca5d9b86dc3a67f999d4dbe650efc..66cc079259312e614ba5a31515e2f02213a24ad7 100644 --- a/src/common/compat.h +++ b/src/common/compat.h @@ -42,6 +42,15 @@ #include <netinet6/in6.h> #endif +#if defined(__has_feature) +# if __has_feature(address_sanitizer) +/* Some of the fancy glibc strcmp() macros include references to memory that + * clang rejects because it is off the end of a less-than-3. Clang hates this, + * even though those references never actually happen. */ +# undef strcmp +# endif +#endif + #include <stdio.h> #include <errno.h>