https://redmine.ruby-lang.org/
https://redmine.ruby-lang.org/favicon.ico?1711330511
2016-01-07T00:28:40Z
Ruby Issue Tracking System
Ruby master - Bug #11962: Ruby 2.3.0 causing compile failure on extensions using a C++ compiler
https://redmine.ruby-lang.org/issues/11962?journal_id=55986
2016-01-07T00:28:40Z
hsbt (Hiroshi SHIBATA)
hsbt@ruby-lang.org
<ul><li><strong>Assignee</strong> set to <i>nobu (Nobuyoshi Nakada)</i></li></ul>
Ruby master - Bug #11962: Ruby 2.3.0 causing compile failure on extensions using a C++ compiler
https://redmine.ruby-lang.org/issues/11962?journal_id=55999
2016-01-07T07:16:54Z
mrkn (Kenta Murata)
muraken@gmail.com
<ul></ul><p>Can I fix it by the following change?</p>
<pre><code class="diff syntaxhl" data-language="diff"><span class="gh">diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h
index 7aabf5b..72523c6 100644
</span><span class="gd">--- a/include/ruby/ruby.h
</span><span class="gi">+++ b/include/ruby/ruby.h
</span><span class="p">@@ -874,7 +874,7 @@</span> struct RBasic {
VALUE rb_obj_hide(VALUE obj);
VALUE rb_obj_reveal(VALUE obj, VALUE klass); /* do not use this API to change klass information */
<span class="err">
</span><span class="gd">-#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P)
</span><span class="gi">+#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P) && !defined(__cplusplus)
</span> # define RB_OBJ_WB_UNPROTECT_FOR(type, obj) \
__extension__( \
__builtin_choose_expr( \
</code></pre>
Ruby master - Bug #11962: Ruby 2.3.0 causing compile failure on extensions using a C++ compiler
https://redmine.ruby-lang.org/issues/11962?journal_id=56007
2016-01-07T12:33:37Z
mrkn (Kenta Murata)
muraken@gmail.com
<ul></ul><p>I found the other place to be fixed.<br>
The following patch is the complete version.</p>
<pre><code class="diff syntaxhl" data-language="diff"><span class="gh">diff --git a/include/ruby/ruby.h b/include/ruby/ruby.h
index 7aabf5b..a2f42c8 100644
</span><span class="gd">--- a/include/ruby/ruby.h
</span><span class="gi">+++ b/include/ruby/ruby.h
</span><span class="p">@@ -620,7 +620,7 @@</span> int ruby_safe_level_2_warning(void) __attribute__((warning("$SAFE=2 to 4 are obs
# ifdef RUBY_EXPORT
# define ruby_safe_level_2_warning() ruby_safe_level_2_error()
# endif
<span class="gd">-#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P)
</span><span class="gi">+#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P) && !defined(__cplusplus)
</span> # define RUBY_SAFE_LEVEL_INVALID_P(level) \
__extension__(\
__builtin_choose_expr(\
<span class="p">@@ -874,7 +874,7 @@</span> struct RBasic {
VALUE rb_obj_hide(VALUE obj);
VALUE rb_obj_reveal(VALUE obj, VALUE klass); /* do not use this API to change klass information */
<span class="err">
</span><span class="gd">-#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P)
</span><span class="gi">+#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P) && !defined(__cplusplus)
</span> # define RB_OBJ_WB_UNPROTECT_FOR(type, obj) \
__extension__( \
__builtin_choose_expr( \
<span class="p">@@ -1376,7 +1376,7 @@</span> rb_data_object_wrap_warning(VALUE klass, void *ptr, RUBY_DATA_FUNC mark, RUBY_DA
return rb_data_object_wrap(klass, ptr, mark, free);
}
<span class="err">
</span><span class="gd">-#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P)
</span><span class="gi">+#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P) && !defined(__cplusplus)
</span> #define rb_data_object_wrap_warning(klass, ptr, mark, free) \
__extension__( \
__builtin_choose_expr( \
<span class="gh">diff --git a/include/ruby/st.h b/include/ruby/st.h
index 190bad2..97c08b1 100644
</span><span class="gd">--- a/include/ruby/st.h
</span><span class="gi">+++ b/include/ruby/st.h
</span><span class="p">@@ -59,7 +59,7 @@</span> struct st_hash_type {
<span class="err">
</span> #define ST_INDEX_BITS (sizeof(st_index_t) * CHAR_BIT)
<span class="err">
</span><span class="gd">-#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR) && defined(HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P)
</span><span class="gi">+#if defined(HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR) && defined(HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P) && !defined(__cplusplus)
</span> # define ST_DATA_COMPATIBLE_P(type) \
__builtin_choose_expr(__builtin_types_compatible_p(type, st_data_t), 1, 0)
#else
</code></pre>
Ruby master - Bug #11962: Ruby 2.3.0 causing compile failure on extensions using a C++ compiler
https://redmine.ruby-lang.org/issues/11962?journal_id=56008
2016-01-07T13:35:18Z
mrkn (Kenta Murata)
muraken@gmail.com
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Closed</i></li></ul><p>Applied in changeset r53455.</p>
<hr>
<ul>
<li>ruby.h: undef HAVE_BUILTIN___BUILTIN_CHOOSE_EXPR_CONSTANT_P<br>
and HAVE_BUILTIN___BUILTIN_TYPES_COMPATIBLE_P on C++.<br>
<a href="/issues/11962">[ruby-core:72736]</a> [Bug <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: Ruby 2.3.0 causing compile failure on extensions using a C++ compiler (Closed)" href="https://redmine.ruby-lang.org/issues/11962">#11962</a>]</li>
</ul>
Ruby master - Bug #11962: Ruby 2.3.0 causing compile failure on extensions using a C++ compiler
https://redmine.ruby-lang.org/issues/11962?journal_id=56768
2016-01-28T19:39:52Z
vo.x (Vit Ondruch)
v.ondruch@tiscali.cz
<ul><li><strong>Backport</strong> changed from <i>2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN</i> to <i>2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: REQUIRED</i></li></ul>
Ruby master - Bug #11962: Ruby 2.3.0 causing compile failure on extensions using a C++ compiler
https://redmine.ruby-lang.org/issues/11962?journal_id=56769
2016-01-28T20:11:37Z
vo.x (Vit Ondruch)
v.ondruch@tiscali.cz
<ul></ul><p>BTW this causes issues compiling SWIG:</p>
<p><a href="https://github.com/swig/swig/issues/593" class="external">https://github.com/swig/swig/issues/593</a></p>
Ruby master - Bug #11962: Ruby 2.3.0 causing compile failure on extensions using a C++ compiler
https://redmine.ruby-lang.org/issues/11962?journal_id=57214
2016-02-29T20:13:23Z
terceiro (Antonio Terceiro)
asa@terceiro.xyz
<ul></ul><p>We are trying to transition Debian unstable to ruby2.3, it would be very helpful to have this applied to the 2.3 branch.</p>
Ruby master - Bug #11962: Ruby 2.3.0 causing compile failure on extensions using a C++ compiler
https://redmine.ruby-lang.org/issues/11962?journal_id=57627
2016-03-24T07:04:57Z
usa (Usaku NAKAMURA)
usa@garbagecollect.jp
<ul><li><strong>Backport</strong> changed from <i>2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: REQUIRED</i> to <i>2.1: DONTNEED, 2.2: REQUIRED, 2.3: REQUIRED</i></li></ul>
Ruby master - Bug #11962: Ruby 2.3.0 causing compile failure on extensions using a C++ compiler
https://redmine.ruby-lang.org/issues/11962?journal_id=57743
2016-03-28T14:19:28Z
nagachika (Tomoyuki Chikanaga)
nagachika00@gmail.com
<ul><li><strong>Backport</strong> changed from <i>2.1: DONTNEED, 2.2: REQUIRED, 2.3: REQUIRED</i> to <i>2.1: DONTNEED, 2.2: DONE, 2.3: REQUIRED</i></li></ul><p>Backported into <code>ruby_2_2</code> branch at r54315.</p>
Ruby master - Bug #11962: Ruby 2.3.0 causing compile failure on extensions using a C++ compiler
https://redmine.ruby-lang.org/issues/11962?journal_id=57786
2016-03-29T06:05:56Z
naruse (Yui NARUSE)
naruse@airemix.jp
<ul><li><strong>Backport</strong> changed from <i>2.1: DONTNEED, 2.2: DONE, 2.3: REQUIRED</i> to <i>2.1: DONTNEED, 2.2: DONE, 2.3: DONE</i></li></ul><p>ruby_2_3 r54364 merged revision(s) 53455.</p>