From 952bd8666c7ed887d49b049a7585b56c1e93f323 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C3=A1draig=20Brady?= Date: Fri, 25 Nov 2016 22:10:20 +0000 Subject: [PATCH] shred,sort: ensure faster unaligned access to rand module glibc has changed the public define from _STRING_ARCH_unaligned to _STRING_INLINE_unaligned as per https://sourceware.org/bugzilla/show_bug.cgi?id=19462 * gl/lib/rand-isaac.c: Cater for both defines. * gl/lib/randread.c: Likewise. * src/system.h: Update commented out code. --- gl/lib/rand-isaac.c | 2 +- gl/lib/randread.c | 2 +- src/system.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/gl/lib/rand-isaac.c b/gl/lib/rand-isaac.c index 5ad9cae..349bf0e 100644 --- a/gl/lib/rand-isaac.c +++ b/gl/lib/rand-isaac.c @@ -40,7 +40,7 @@ /* If the platform supports unaligned access, then don't have -fsanitize=undefined warn about it. */ #undef ATTRIBUTE_NO_WARN_SANITIZE_UNDEFINED -#if !_STRING_ARCH_unaligned \ +#if !(_STRING_ARCH_unaligned || _STRING_INLINE_unaligned) \ || __GNUC__ < 4 || (__GNUC__ == 4 && __GNUC_MINOR__ < 9) # define ATTRIBUTE_NO_WARN_SANITIZE_UNDEFINED /* empty */ #else diff --git a/gl/lib/randread.c b/gl/lib/randread.c index ff85d56..2d211a0 100644 --- a/gl/lib/randread.c +++ b/gl/lib/randread.c @@ -60,7 +60,7 @@ # define MIN(a, b) ((a) < (b) ? (a) : (b)) #endif -#if _STRING_ARCH_unaligned +#if _STRING_ARCH_unaligned || _STRING_INLINE_unaligned # define ALIGNED_POINTER(ptr, type) true #else # define ALIGNED_POINTER(ptr, type) ((size_t) (ptr) % alignof (type) == 0) diff --git a/src/system.h b/src/system.h index e82dce4..3fa0740 100644 --- a/src/system.h +++ b/src/system.h @@ -515,7 +515,7 @@ is_nul (void const *buf, size_t length) to avoid -fsanitize=undefined warnings. Considering coreutils is mainly concerned with relatively large buffers, we'll just use the defined behavior. */ -#if 0 && _STRING_ARCH_unaligned +#if 0 && (_STRING_ARCH_unaligned || _STRING_INLINE_unaligned) unsigned long word; #else unsigned char word; -- 2.5.5