forked from translunar/nmatrix
-
Notifications
You must be signed in to change notification settings - Fork 134
Closed
Labels
Description
bundle exec rake compile nmatrix_plugins=lapacke results in the following error:
prasun@ubuntudev:~/dev/nmatrix$ rake compile nmatrix_plugins=lapacke
install -c tmp/x86_64-linux/nmatrix/2.3.0/nmatrix.so lib//nmatrix.so
cp tmp/x86_64-linux/nmatrix/2.3.0/nmatrix.so tmp/x86_64-linux/stage/lib//nmatrix.so
cd tmp/x86_64-linux/nmatrix_lapacke/2.3.0
/usr/bin/make
compiling ../../../../ext/nmatrix_lapacke/nmatrix_lapacke.cpp
In file included from ../../../../ext/nmatrix_lapacke/nmatrix_lapacke.cpp:31:0:
../../../../ext/nmatrix_lapacke/../nmatrix/nmatrix.h: In function ‘const VALUE* rb_array_const_ptr(VALUE)’:
../../../../ext/nmatrix_lapacke/../nmatrix/nmatrix.h:95:1: error: redefinition of ‘const VALUE* rb_array_const_ptr(VALUE)’
rb_array_const_ptr(VALUE a)
^
In file included from /home/prasun/.rvm/rubies/ruby-2.3.0/include/ruby-2.3.0/ruby.h:33:0,
from ../../../../ext/nmatrix_lapacke/nmatrix_lapacke.cpp:29:
/home/prasun/.rvm/rubies/ruby-2.3.0/include/ruby-2.3.0/ruby/ruby.h:2018:1: note: ‘const VALUE* rb_array_const_ptr(VALUE)’ previously defined here
rb_array_const_ptr(VALUE a)
^
Makefile:230: recipe for target 'nmatrix_lapacke.o' failed
make: *** [nmatrix_lapacke.o] Error 1
rake aborted!
Command failed with status (2): [/usr/bin/make...]
/home/prasun/.rvm/gems/ruby-2.3.0/gems/rake-compiler-0.9.9/lib/rake/extensiontask.rb:157:in `block (2 levels) in define_compile_tasks'
/home/prasun/.rvm/gems/ruby-2.3.0/gems/rake-compiler-0.9.9/lib/rake/extensiontask.rb:156:in `block in define_compile_tasks'
/home/prasun/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval'
/home/prasun/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>'
Tasks: TOP => compile => compile:x86_64-linux => compile:nmatrix_lapacke:x86_64-linux => copy:nmatrix_lapacke:x86_64-linux:2.3.0 => tmp/x86_64-linux/nmatrix_lapacke/2.3.0/nmatrix_lapacke.so
(See full trace by running task with --trace)After removing lines from ext/nmatrix/nmatrix.h
#ifndef HAVE_RB_ARRAY_CONST_PTR
static inline const VALUE *
rb_array_const_ptr(VALUE a)
{
return FIX_CONST_VALUE_PTR((RBASIC(a)->flags & RARRAY_EMBED_FLAG) ?
RARRAY(a)->as.ary : RARRAY(a)->as.heap.ptr);
}
#endifcompilations is successful.
ifndef should have ensured that rb_array_const_ptr is not defined again. Is this a bug?