Actions
Backport #7864
closedlib/mkmf.rb: $(topdir) included in VPATH cause build error
Status:
Closed
Assignee:
Description
[ruby-dev:46849]での問題は、Ruby 2.0.0-rc2やtrunkでも再現しました。
% sh configure --enable-shared
% make
...
compiling complex.c
linking shared-object mathn/complex.so
gcc: complex.o: No such file or directory
*** Error code 1
環境は以下のようになります。(GNU makeではありません。)
% uname -rsmp
NetBSD 6.0_STABLE amd64 x86_64
原因は、ext/mathn/complexに生成されたMakefileのVPATHに、
VPATH = $(srcdir):$(topdir):$(arch_hdrdir)/ruby:$(hdrdir)/ruby
と、$(topdir)が含まれている関係か、ここで実行したMakefileは、
- トップディレクトリにcomplex.oを作成(既にあるcomplex.oを上書き)
- complex.soのリンク時はext/mathn/complex/complex.oがなくて失敗
となっています。
VPATHに$(topdir)は、r37933による修正で含められるようになっています。
mkmf.rb: each_compile_rules
- lib/mkmf.rb (MakeMakefile#each_compile_rules): splat $(VPATH) for
each VPATH elements.
このログの説明で、何故$(topdir)を含めるようになったかは理解できません。
添付のパッチでr37933の一部を戻すとbuild可能となります。
この修正は Ruby 2.0.0 に反映していただきたいと思います。
Files
Actions
Like0
Like0Like0Like0Like0Like0