[前][次][番号順一覧][スレッド一覧]

ruby-changes:59518

From: =E5=8D=9C=E9=83=A8=E6=98=8C=E5=B9=B3 <ko1@a...>
Date: Fri, 27 Dec 2019 10:18:54 +0900 (JST)
Subject: [ruby-changes:59518] 8c5430e274 (master): reroute macro conflicts on OpenBSD

https://git.ruby-lang.org/ruby.git/commit/?id=8c5430e274

From 8c5430e2745b7dad698cfcc6e0d3ba6c71bfc39e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=8D=9C=E9=83=A8=E6=98=8C=E5=B9=B3?=
 <shyouhei@r...>
Date: Fri, 27 Dec 2019 10:17:06 +0900
Subject: 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

diff --git a/internal/bits.h b/internal/bits.h
index 2530bd8..7c1be2a 100644
--- a/internal/bits.h
+++ b/internal/bits.h
@@ -117,9 +117,21 @@ https://github.com/ruby/ruby/blob/trunk/internal/bits.h#L117
                                     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); https://github.com/ruby/ruby/blob/trunk/internal/bits.h#L151
 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) https://github.com/ruby/ruby/blob/trunk/internal/bits.h#L166
 }
 
 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) https://github.com/ruby/ruby/blob/trunk/internal/bits.h#L183
 }
 
 static inline uint64_t
-swap64(uint64_t x)
+ruby_swap64(uint64_t x)
 {
 #if __has_builtin(__builtin_bswap64)
     return __builtin_bswap64(x);
-- 
cgit v0.10.2


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]