[#49675] Request to update LEGAL file for zlib, UCD license — Jun Aruga <jaruga@...>
こんにちは。有賀と申します。
10 messages
2016/06/20
[#49678] Re: Request to update LEGAL file for zlib, UCD license
— Jun Aruga <jaruga@...>
2016/06/21
ご回答、そして+1のご意見ありがとうございます。
[#49683] Re: Request to update LEGAL file for zlib, UCD license
— Martin J. Dürst <duerst@...>
2016/06/22
On 2016/06/22 00:15, Jun Aruga wrote:
[ruby-dev:49651] [Ruby trunk Bug#12470] Since r54952, TestMkmf::TestConvertible failed on Solaris 10 with Oracle SolarisStudio 12.x cc
From:
ngotogenome@...
Date:
2016-06-08 09:50:02 UTC
List:
ruby-dev #49651
Issue #12470 has been reported by Naohisa Goto.
----------------------------------------
Bug #12470: Since r54952, TestMkmf::TestConvertible failed on Solaris 10 with Oracle SolarisStudio 12.x cc
https://bugs.ruby-lang.org/issues/12470
* Author: Naohisa Goto
* Status: Open
* Priority: Normal
* Assignee:
* ruby -v:
* Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN
----------------------------------------
おそらく r54952 から、
TestMkmf::TestConvertible#test_typeof_builtin
TestMkmf::TestConvertible#test_typeof_typedef
がfailureになります。
以下のように、include/ruby/intern.h の485行目と787行目にWarningが出ています。(r55322 の場合)
~~~
convertible_int: checking for convertible type of signed short... -------------------- failed
"cc -o conftest -I. -I/XXXXX-trunk-55322/.ext/include/sparc64-solaris2.10 -I/XXXXX-trunk-55322/include -I./test -I/usr/local/64/lib/libffi-3.0.10/include -I/usr/local/64/include -D_XOPEN_SOURCE=500 -errtags=yes -xO4 -xtarget=sparc64viiplus conftest.c -L. -L/XXXXX-trunk-55322 -R/XXXXX-trunk-55322 -L. -L/usr/local/64/lib -R/usr/local/64/lib -m64 -R/XXXXX-trunk/lib -L/XXXXX-trunk/lib -lruby-static -lpthread -lrt -lgmp -lsocket -ldl -lcrypt -lm -lc"
"/XXXXX-trunk-55322/include/ruby/intern.h", line 485: warning: syntax error: empty declaration (E_EMPTY_DECLARATION)
"/XXXXX-trunk-55322/include/ruby/intern.h", line 787: warning: syntax error: empty declaration (E_EMPTY_DECLARATION)
checked program was:
/* begin */
1: #include "ruby.h"
2:
3: int main(int argc, char **argv)
4: {
5: return 0;
6: }
/* end */
~~~
これらの行を git blame include/ruby/intern.h して見ると、
~~~
28f5e12c include/ruby/intern.h (naruse 2016-05-08 17:44:51 +0000 485) PUREFUNC(int rb_during_gc(void););
(中略)
28f5e12c include/ruby/intern.h (naruse 2016-05-08 17:44:51 +0000 787) PUREFUNC(size_t rb_str_capacity(VALUE););
~~~
PUREFUNC()はその機能が存在しないコンパイラでは `#define PUREFNC(x) x` されているため、マクロ展開後に `int rb_during_gc(void);;` などとして解釈され、セミコロンが1個多くなった=何も内容の無い行が出来たので、 "warning: syntax error: empty declaration" となったようです。
他のPUREFUNC使用箇所との整合性を考えると、括弧内のセミコロンを削除し、行末のセミコロンを残すのがよさそうです。
同様の余計なセミコロンは、別ファイルにも見られたので、grepして全部解消したいと思います。
--
https://bugs.ruby-lang.org/