From: ngotogenome@... Date: 2015-08-25T08:05:55+00:00 Subject: [ruby-dev:49239] [Ruby trunk - Bug #11487] [Open] id_table.c compile error by fcc on Solaris 10 Issue #11487 has been reported by Naohisa Goto. ---------------------------------------- Bug #11487: id_table.c compile error by fcc on Solaris 10 https://bugs.ruby-lang.org/issues/11487 * Author: Naohisa Goto * Status: Open * Priority: Normal * Assignee: * ruby -v: * Backport: 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN ---------------------------------------- Solaris 10 上の古いfccにて、最近、id_table.c のコンパイルに失敗します。 下記は r51677 におけるエラーメッセージです。 ~~~ fcc -O2 -KV9 -KVIS2 -DRUBY_EXPORT -I/usr/local/64/lib/libffi-3.0.10/include -I/usr/local/64/include -I. -I.ext/include/sparc64-solaris2.10 -I./include -I. -o symbol.o -c symbol.c (中略) "./id_table.c", line 453: error: syntax error near `/' "./id_table.c", line 1277: error: initialization: constant expression is expected for variable: `tmp_tbl' make: *** [symbol.o] Error 1 ~~~ 2箇所にエラーが出ているのがわかります。 id_table.c の453行目は以下のとおりです。 ~~~ // fprintf(stderr, "memmove: %p -> %p (%d, capa: %d)\n", old_values, new_values, num, capa); ~~~ CのソースなのにC++形式のコメントを使っているのが原因です。 id_table.c の1277行目は以下のとおりです。 ~~~ struct hash_id_table tmp_tbl = {new_cap, 0, 0}; ~~~ 構造体の変数による初期化はできない主旨のエラーが出ています。 宣言後、1要素ずつ代入するように書き換えるとよさそうです。 -- https://bugs.ruby-lang.org/