diff options
author | 卜部昌平 <shyouhei@ruby-lang.org> | 2019-12-27 10:17:06 +0900 |
---|---|---|
committer | 卜部昌平 <shyouhei@ruby-lang.org> | 2019-12-27 10:17:06 +0900 |
commit | 8c5430e2745b7dad698cfcc6e0d3ba6c71bfc39e (patch) | |
tree | aa8197f864cb11f4435b582e0b5b4f0a221b9f99 /internal/bits.h | |
parent | 018769e291c223d82a7bc4d6a5a1bad247584c53 (diff) |
reroute macro conflicts on OpenBSD
OpenBSD's <sys/endian.h> has its own swap32() etc. We have to avoid
name conflicts.
See also https://rubyci.org/logs/rubyci.s3.amazonaws.com/openbsd-current/ruby-master/log/20191226T210011Z.log.html.gz#miniruby
Diffstat (limited to 'internal/bits.h')
-rw-r--r-- | internal/bits.h | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/internal/bits.h b/internal/bits.h index 2530bd89bc..7c1be2aa17 100644 --- a/internal/bits.h +++ b/internal/bits.h @@ -117,9 +117,21 @@ 64 - nlz_int64((uint64_t)(x))) #endif -static inline uint16_t swap16(uint16_t); -static inline uint32_t swap32(uint32_t); -static inline uint64_t swap64(uint64_t); +#ifndef swap16 +# define swap16 ruby_swap16 +#endif + +#ifndef swap32 +# define swap32 ruby_swap32 +#endif + +#ifndef swap64 +# define swap64 ruby_swap64 +#endif + +static inline uint16_t ruby_swap16(uint16_t); +static inline uint32_t ruby_swap32(uint32_t); +static inline uint64_t ruby_swap64(uint64_t); static inline unsigned nlz_int(unsigned x); static inline unsigned nlz_long(unsigned long x); static inline unsigned nlz_long_long(unsigned long long x); @@ -139,7 +151,7 @@ static inline VALUE RUBY_BIT_ROTL(VALUE, int); static inline VALUE RUBY_BIT_ROTR(VALUE, int); static inline uint16_t -swap16(uint16_t x) +ruby_swap16(uint16_t x) { #if __has_builtin(__builtin_bswap16) return __builtin_bswap16(x); @@ -154,7 +166,7 @@ swap16(uint16_t x) } static inline uint32_t -swap32(uint32_t x) +ruby_swap32(uint32_t x) { #if __has_builtin(__builtin_bswap32) return __builtin_bswap32(x); @@ -171,7 +183,7 @@ swap32(uint32_t x) } static inline uint64_t -swap64(uint64_t x) +ruby_swap64(uint64_t x) { #if __has_builtin(__builtin_bswap64) return __builtin_bswap64(x); |