[ruby-dev:49265] [Ruby trunk - Bug #11487] id_table.c compile error by fcc on Solaris 10

From: usa@...
Date: 2015-09-29 08:42:18 UTC
List: ruby-dev #49265
Issue #11487 has been updated by Usaku NAKAMURA.

Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN, 2.2: UNKNOWN to 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: DONTNEED

----------------------------------------
Bug #11487: id_table.c compile error by fcc on Solaris 10
https://bugs.ruby-lang.org/issues/11487#change-54310

* Author: Naohisa Goto
* Status: Closed
* Priority: Normal
* Assignee: 
* ruby -v: 
* Backport: 2.0.0: DONTNEED, 2.1: DONTNEED, 2.2: DONTNEED
----------------------------------------
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/

In This Thread

Prev Next