From af68b3ad5f553fe80adaa20fea7358e68ce34359 Mon Sep 17 00:00:00 2001 From: Stanislav Malyshev <stas@php.net> Date: Fri, 16 Oct 2015 17:23:18 -0700 Subject: [PATCH] Fix undefined symbol error when compiling with LLVM Basically, LLVM in default mode treats inline in a way incompatible with GCC in c89 mode, which leads to undefined symbol errors. See more here: http://stackoverflow.com/questions/12844729/linking-error-for-inline-functions --- ext/hash/hash_sha3.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ext/hash/hash_sha3.c b/ext/hash/hash_sha3.c index e82bd24027..5898009594 100644 --- a/ext/hash/hash_sha3.c +++ b/ext/hash/hash_sha3.c @@ -29,15 +29,15 @@ # endif #endif -inline php_hash_uint64 rol64(php_hash_uint64 v, unsigned char b) { +static inline php_hash_uint64 rol64(php_hash_uint64 v, unsigned char b) { return (v << b) | (v >> (64 - b)); } -inline unsigned char idx(unsigned char x, unsigned char y) { +static inline unsigned char idx(unsigned char x, unsigned char y) { return x + (5 * y); } #ifdef WORDS_BIGENDIAN -inline php_hash_uint64 load64(const unsigned char* x) { +static inline php_hash_uint64 load64(const unsigned char* x) { php_hash_uint64 ret = 0; for (unsigned char i = 7; i >= 0; --i) { ret <<= 8; @@ -45,13 +45,13 @@ inline php_hash_uint64 load64(const unsigned char* x) { } return ret; } -inline void store64(const unsigned char* x, php_hash_uint64 val) { +static inline void store64(const unsigned char* x, php_hash_uint64 val) { for (unsigned char i = 0; i < 8; ++i) { x[i] = val & 0xFF; val >>= 8; } } -inline void xor64(const unsigned char* x, php_hash_uint64 val) { +static inline void xor64(const unsigned char* x, php_hash_uint64 val) { for (unsigned char i = 0; i < 8; ++i) { x[i] ^= val & 0xFF; val >>= 8; @@ -66,7 +66,7 @@ inline void xor64(const unsigned char* x, php_hash_uint64 val) { # define XORLane(x, y, v) (((php_hash_uint64*)ctx->state)[idx(x,y)] ^= v) #endif -inline char LFSR86540(unsigned char* pLFSR) +static inline char LFSR86540(unsigned char* pLFSR) { unsigned char LFSR = *pLFSR; char result = LFSR & 0x01; -- 2.40.0