https://bugs.ruby-lang.org/
https://bugs.ruby-lang.org/favicon.ico?1711330511
2012-11-06T16:30:55Z
Ruby Issue Tracking System
Ruby master - Bug #7287: please rename atomic.h which conflicts with /usr/include/atomic.h in Solaris10
https://bugs.ruby-lang.org/issues/7287?journal_id=32474
2012-11-06T16:30:55Z
ngoto (Naohisa Goto)
ngotogenome@gmail.com
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Closed</i></li><li><strong>% Done</strong> changed from <i>0</i> to <i>100</i></li></ul><p>This issue was solved with changeset r37491.<br>
Naohisa, thank you for reporting this issue.<br>
Your contribution to Ruby is greatly appreciated.<br>
May Ruby be with you.</p>
<hr>
<ul>
<li>atomic.h: add #include <sys/atomic.h> for the workaround of<br>
header file name conflict of atomic.h with /usr/include/atomic.h<br>
on Solaris 10. <a href="/issues/7287">[ruby-dev:46414]</a> [Bug <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: please rename atomic.h which conflicts with /usr/include/atomic.h in Solaris10 (Closed)" href="https://bugs.ruby-lang.org/issues/7287">#7287</a>]</li>
</ul>
Ruby master - Bug #7287: please rename atomic.h which conflicts with /usr/include/atomic.h in Solaris10
https://bugs.ruby-lang.org/issues/7287?journal_id=32475
2012-11-06T16:32:28Z
ngoto (Naohisa Goto)
ngotogenome@gmail.com
<ul><li><strong>Status</strong> changed from <i>Closed</i> to <i>Open</i></li><li><strong>Priority</strong> changed from <i>Normal</i> to <i>3</i></li></ul><p>回避策はコミットしましたが、根本的解決ではないので再openします。</p>
Ruby master - Bug #7287: please rename atomic.h which conflicts with /usr/include/atomic.h in Solaris10
https://bugs.ruby-lang.org/issues/7287?journal_id=32479
2012-11-06T17:29:21Z
metanest (Makoto Kishimoto)
<ul></ul><p>きしもとです</p>
<blockquote>
<p>#include "atomic.h" とは違って #include <atomic.h> のように<>で囲んでいるので、システムのヘッダファイルが優先されるはず、と思っていたら、実はそうではなく、configureがコンパイル時のオプションとして "-I." を追加しているため、Rubyソース側の atomic.h しか読み込むことができず、どう頑張ってもシステムの /usr/include/atomic.h は読み込まれないことが判明しました。</p>
</blockquote>
<p>rubyでは、はまったことはないのですが、逆のパターンで、<br>
base64.h (heimdal) とか、gc.h (Boehm GC) とかで、アプリ側の<br>
ヘッダファイルをインクルードしてほしいのに、/usr/local/include に<br>
ある、システム(ライブラリのパッケージ)の側のヘッダファイルが<br>
インクルードされてしまい、トラブる、というパターンに不定期に<br>
見舞われています。</p>
<a name="-Iusrlocalinclude-は他のライブラリのために要るので"></a>
<h1 >-I/usr/local/include は他のライブラリのために要るので、<a href="#-Iusrlocalinclude-は他のライブラリのために要るので" class="wiki-anchor">¶</a></h1>
<a name="-で囲んでもあまり意味がなく"></a>
<h1 >"" で囲んでもあまり意味がなく<a href="#-で囲んでもあまり意味がなく" class="wiki-anchor">¶</a></h1>
<p>「同名のヘッダファイル」問題のベストプラクティス、って無いもので<br>
しょうかねぇ?</p>
Ruby master - Bug #7287: please rename atomic.h which conflicts with /usr/include/atomic.h in Solaris10
https://bugs.ruby-lang.org/issues/7287?journal_id=32490
2012-11-06T20:53:18Z
Anonymous
<ul><li><strong>File</strong> <a href="/attachments/3213">noname</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/3213/noname">noname</a> added</li></ul><p>At Tue, 6 Nov 2012 17:28:27 +0900,<br>
KISHIMOTO, Makoto wrote:</p>
<blockquote>
<p>きしもとです</p>
<blockquote>
<p>#include "atomic.h" とは違って #include <atomic.h> のように<>で囲んでいるので、システムのヘッダファイルが優先されるはず、と思っていたら、実はそうではなく、configureがコンパイル時のオプションとして "-I." を追加しているため、Rubyソース側の atomic.h しか読み込むことができず、どう頑張ってもシステムの /usr/include/atomic.h は読み込まれないことが判明しました。</p>
</blockquote>
<p>rubyでは、はまったことはないのですが、逆のパターンで、<br>
base64.h (heimdal) とか、gc.h (Boehm GC) とかで、アプリ側の<br>
ヘッダファイルをインクルードしてほしいのに、/usr/local/include に<br>
ある、システム(ライブラリのパッケージ)の側のヘッダファイルが<br>
インクルードされてしまい、トラブる、というパターンに不定期に<br>
見舞われています。</p>
<a name="-Iusrlocalinclude-は他のライブラリのために要るので"></a>
<h1 >-I/usr/local/include は他のライブラリのために要るので、<a href="#-Iusrlocalinclude-は他のライブラリのために要るので" class="wiki-anchor">¶</a></h1>
<a name="-で囲んでもあまり意味がなく"></a>
<h1 >"" で囲んでもあまり意味がなく<a href="#-で囲んでもあまり意味がなく" class="wiki-anchor">¶</a></h1>
<p>「同名のヘッダファイル」問題のベストプラクティス、って無いもので<br>
しょうかねぇ?</p>
</blockquote>
<p> よく知られたヘッダファイルと同じ名前のものは作らず、必要なら階層化す<br>
べし、というところですかねえ。</p>
<p> gcc には #include "..." にだけ作用する -iquote dir というオプションが<br>
あり、これが正にずばりなのですが、 追随しているのは clang くらいかもし<br>
れません。</p>
<p>--<br>
Akinori MUSHA / <a href="http://akinori.org/" class="external">http://akinori.org/</a></p>
Ruby master - Bug #7287: please rename atomic.h which conflicts with /usr/include/atomic.h in Solaris10
https://bugs.ruby-lang.org/issues/7287?journal_id=32499
2012-11-06T21:41:52Z
mame (Yusuke Endoh)
mame@ruby-lang.org
<ul><li><strong>Status</strong> changed from <i>Open</i> to <i>Assigned</i></li><li><strong>Assignee</strong> set to <i>kosaki (Motohiro KOSAKI)</i></li></ul><p>atomic.h を入れた kosaki さんに振ってしまいます。rb_atomic.h とかにするんですかね。<br>
他は大丈夫ですかねえ。</p>
<p>$ ls *.h<br>
addr2line.h encdb.h iseq.h regint.h timev.h vm_core.h<br>
atomic.h eval_intern.h method.h regparse.h transcode_data.h vm_exec.h<br>
constant.h gc.h node.h revision.h transdb.h vm_insnhelper.h<br>
debug.h id.h parse.h thread_pthread.h verconf.h vm_opts.h<br>
dln.h internal.h regenc.h thread_win32.h version.h</p>
<p>Boehm GC とか #include できなさそうですね。しないけど。</p>
<p>--<br>
Yusuke Endoh <a href="mailto:mame@tsg.ne.jp" class="email">mame@tsg.ne.jp</a></p>
Ruby master - Bug #7287: please rename atomic.h which conflicts with /usr/include/atomic.h in Solaris10
https://bugs.ruby-lang.org/issues/7287?journal_id=32508
2012-11-07T02:21:38Z
kosaki (Motohiro KOSAKI)
kosaki.motohiro@gmail.com
<ul><li><strong>Assignee</strong> changed from <i>kosaki (Motohiro KOSAKI)</i> to <i>ngoto (Naohisa Goto)</i></li></ul><p>ああ、やっと問題が理解できました。(すいません、別メールでへんなコメントをつけてしまいました)</p>
<p>回避策のrevertと名前変更は一緒にやったほうがいいと思うのでngotoさんがコミットしてもらったほうがいいかと思います。<br>
名前は rb_atomic.h で異論ありません。(ほかのでもOK、そこにこだわりはない)</p>
Ruby master - Bug #7287: please rename atomic.h which conflicts with /usr/include/atomic.h in Solaris10
https://bugs.ruby-lang.org/issues/7287?journal_id=32510
2012-11-07T02:23:19Z
kosaki (Motohiro KOSAKI)
kosaki.motohiro@gmail.com
<ul></ul><blockquote>
<blockquote>
<a name="-Iusrlocalinclude-は他のライブラリのために要るので"></a>
<h1 >-I/usr/local/include は他のライブラリのために要るので、<a href="#-Iusrlocalinclude-は他のライブラリのために要るので" class="wiki-anchor">¶</a></h1>
<a name="-で囲んでもあまり意味がなく"></a>
<h1 >"" で囲んでもあまり意味がなく<a href="#-で囲んでもあまり意味がなく" class="wiki-anchor">¶</a></h1>
<p>「同名のヘッダファイル」問題のベストプラクティス、って無いもので<br>
しょうかねぇ?</p>
</blockquote>
<p> よく知られたヘッダファイルと同じ名前のものは作らず、必要なら階層化す<br>
べし、というところですかねえ。</p>
<p> gcc には #include "..." にだけ作用する -iquote dir というオプションが<br>
あり、これが正にずばりなのですが、 追随しているのは clang くらいかもし<br>
れません。</p>
</blockquote>
<p>そもそも atomic.h は公開したくないからinclude/rubyではない場所においてあるのに<br>
なぜ /usr/local/include に入ってしまったのでしょう<br>
Makefileがバグってる?へんなディストリつかってる?</p>
Ruby master - Bug #7287: please rename atomic.h which conflicts with /usr/include/atomic.h in Solaris10
https://bugs.ruby-lang.org/issues/7287?journal_id=32526
2012-11-07T10:23:23Z
Anonymous
<ul><li><strong>File</strong> <a href="/attachments/3218">noname</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/3218/noname">noname</a> added</li></ul><p>At Wed, 7 Nov 2012 02:15:08 +0900,<br>
KOSAKI Motohiro wrote:</p>
<blockquote>
<blockquote>
<blockquote>
<a name="-Iusrlocalinclude-は他のライブラリのために要るので"></a>
<h1 >-I/usr/local/include は他のライブラリのために要るので、<a href="#-Iusrlocalinclude-は他のライブラリのために要るので" class="wiki-anchor">¶</a></h1>
<a name="-で囲んでもあまり意味がなく"></a>
<h1 >"" で囲んでもあまり意味がなく<a href="#-で囲んでもあまり意味がなく" class="wiki-anchor">¶</a></h1>
<p>「同名のヘッダファイル」問題のベストプラクティス、って無いもので<br>
しょうかねぇ?</p>
</blockquote>
<p> よく知られたヘッダファイルと同じ名前のものは作らず、必要なら階層化す<br>
べし、というところですかねえ。</p>
<p> gcc には #include "..." にだけ作用する -iquote dir というオプションが<br>
あり、これが正にずばりなのですが、 追随しているのは clang くらいかもし<br>
れません。</p>
</blockquote>
<p>そもそも atomic.h は公開したくないからinclude/rubyではない場所においてあるのに<br>
なぜ /usr/local/include に入ってしまったのでしょう<br>
Makefileがバグってる?へんなディストリつかってる?</p>
</blockquote>
<p>#include "atomic.h" で読まれるその $(srcdir)/atomic.h が Solaris では<br>
/usr/include/atomic.h を必要とするので中で #include <atomic.h> としてい<br>
たのだけど、 <> で括っても -I$(srcdir) が指定されているとシステムディレ<br>
クトリでなくそちらを優先してしまうので、実質的に "" も <> も違いがなく、<br>
システムにある同名ヘッダは隠されてインクルードできないという話だと思い<br>
ます。</p>
<p>と書いたところで次のメールに気が付きましたが記録のために投げておきます。</p>
<p>--<br>
Akinori MUSHA / <a href="http://akinori.org/" class="external">http://akinori.org/</a></p>
Ruby master - Bug #7287: please rename atomic.h which conflicts with /usr/include/atomic.h in Solaris10
https://bugs.ruby-lang.org/issues/7287?journal_id=32539
2012-11-07T13:23:18Z
metanest (Makoto Kishimoto)
<ul></ul><p>きしもとです</p>
<blockquote>
<blockquote>
<blockquote>
<p> gcc には #include "..." にだけ作用する -iquote dir というオプションが<br>
あり、これが正にずばりなのですが、 追随しているのは clang くらいかもし<br>
れません。</p>
</blockquote>
</blockquote>
</blockquote>
<p>そういった制御のために使える -I- が deprecated になってしまって、<br>
代替がないのかなぁ、と思っていたのですが、ちゃんとあったのですね。</p>
Ruby master - Bug #7287: please rename atomic.h which conflicts with /usr/include/atomic.h in Solaris10
https://bugs.ruby-lang.org/issues/7287?journal_id=32719
2012-11-10T01:05:09Z
ngoto (Naohisa Goto)
ngotogenome@gmail.com
<ul><li><strong>Status</strong> changed from <i>Assigned</i> to <i>Closed</i></li></ul><p>This issue was solved with changeset r37604.<br>
Naohisa, thank you for reporting this issue.<br>
Your contribution to Ruby is greatly appreciated.<br>
May Ruby be with you.</p>
<hr>
<ul>
<li>ruby_atomic.h: renamed from atomic.h to avoid header file name conflict<br>
on Solaris 10. <a href="/issues/7287">[ruby-dev:46414]</a> [Bug <a class="issue tracker-1 status-5 priority-4 priority-default closed" title="Bug: please rename atomic.h which conflicts with /usr/include/atomic.h in Solaris10 (Closed)" href="https://bugs.ruby-lang.org/issues/7287">#7287</a>]</li>
<li>gc.c, signal.c, vm_core.h, common.mk: reflect the rename from atomic.h<br>
to ruby_atomic.h.</li>
</ul>
Ruby master - Bug #7287: please rename atomic.h which conflicts with /usr/include/atomic.h in Solaris10
https://bugs.ruby-lang.org/issues/7287?journal_id=32720
2012-11-10T01:14:02Z
ngoto (Naohisa Goto)
ngotogenome@gmail.com
<ul></ul><blockquote>
<p>回避策のrevertと名前変更は一緒にやったほうがいいと思うのでngotoさんがコミットしてもらったほうがいいかと思います。名前は rb_atomic.h で異論ありません。(ほかのでもOK、そこにこだわりはない)</p>
</blockquote>
<p>r37603 にていったん r37491 をリバートした後、r37604 にてコミットしました。<br>
ファイル名は、旧atomic.h内でマクロ RUBY_ATOMIC_H を使っているのを見て、何となく、rb_atomic.h ではなく ruby_atomic.h にしました。</p>