Bug #9702


r45488以降、SolarisStudioで ext/readline がコンパイルエラー(readline 6.2使用)

Added by ngoto (Naohisa Goto) about 7 years ago. Updated almost 7 years ago.

Target version:
ruby -v:
ruby 2.2.0dev (2014-04-04) [sparc64-solaris2.10]


r45488以降、Solarisにて、ext/readline が下記のようにコンパイルエラーになります。コンパイラは SolarisStudio 12.3 です。
readline 6.2 との組み合わせになります。

cd ext/readline && exec make -w V=1 all
make[2]: Entering directory `/XXXXXXXXXX/ext/readline'
cc -I. -I../../.ext/include/sparc64-solaris2.10 -I../.././include -I../.././ext/readline -DRUBY_EXTCONF_H=\"extconf.h\"  -I/usr/local/64/lib/libffi-3.0.10/include -I/usr/local/64/include   -KPIC  -xO1 -xtarget=sparc64viiplus -m64 -o readline.o -c readline.c
"/usr/local/64/include/readline/rltypedefs.h", line 61: identifier redeclared: Function
        current : function(void) returning int
        previous: function() returning int : "/usr/local/64/include/readline/rltypedefs.h", line 34
cc: acomp failed for readline.c
make[2]: *** [readline.o] Error 2
make[2]: Leaving directory `/XXXXXXXXXX/ext/readline'
make[1]: *** [ext/readline/all] Error 2
make[1]: Leaving directory `/XXXXXXXXXX'
make: *** [build-ext] Error 2

ext/readline/extconf.rbreadline.have_type("rl_hook_func_t") に、 rl_hook_func_t は存在するはずにもかかわらず、失敗しているのが原因のようです。

extconf.hmkmf.log を添付します。


extconf.h (1.39 KB) extconf.h ext/readline/extconf.h ngoto (Naohisa Goto), 04/04/2014 02:17 PM
mkmf.log (73.8 KB) mkmf.log ext/readline/mkmf.log ngoto (Naohisa Goto), 04/04/2014 02:18 PM

Related issues

Related to Ruby master - Bug #9578: ‘Function’ undeclared in readline.cClosednobu (Nobuyoshi Nakada)02/28/2014Actions
Related to Backport21 - Backport #9630: Backport readline-6.3 support.Closednagachika (Tomoyuki Chikanaga)03/13/2014Actions
Related to Backport200 - Backport #9631: Backport readline-6.3 support.Closed03/13/2014Actions

Updated by ngoto (Naohisa Goto) about 7 years ago

  • Related to Bug #9578: ‘Function’ undeclared in readline.c added

Updated by ngoto (Naohisa Goto) about 7 years ago

have_type() 内ではsizeof を使って型のサイズをとれるかを元に型の有無を判定しているようですが、
調べたところ、sizeof を関数(関数ポインタではなく)に使うのは未定義動作のようです。

Updated by nobu (Nobuyoshi Nakada) about 7 years ago

  • Status changed from Open to Closed
  • % Done changed from 0 to 100

Applied in changeset r45518.

readline/extconf.rb: rl_hook_func_t

  • ext/readline/extconf.rb (rl_hook_func_t): check pointer type. [ruby-dev:48089] [Bug #9702]

Updated by ngoto (Naohisa Goto) about 7 years ago

Updated by nobu (Nobuyoshi Nakada) almost 7 years ago

  • Description updated (diff)
  • Backport changed from 2.0.0: UNKNOWN, 2.1: UNKNOWN to 2.0.0: REQUIRED, 2.1: REQUIRED

Updated by ngoto (Naohisa Goto) almost 7 years ago

Updated by usa (Usaku NAKAMURA) almost 7 years ago

  • Backport changed from 2.0.0: REQUIRED, 2.1: REQUIRED to 2.0.0: DONE, 2.1: REQUIRED

backported into ruby_2_0_0 at r45754.

Updated by nagachika (Tomoyuki Chikanaga) almost 7 years ago

  • Backport changed from 2.0.0: DONE, 2.1: REQUIRED to 2.0.0: DONE, 2.1: DONE

r45518 was backported to ruby_2_1 branch at r45773.


Also available in: Atom PDF