Configure: verifying the Ruby library path.
An attempt to build a Ruby module for a custom Ruby installation that has the same major version as the system Ruby may unexpectedly cause the use of the system Ruby library. This closes #449 issue on GitHub.
This commit is contained in:
@@ -70,25 +70,31 @@ if /bin/sh -c "$NXT_RUBY -v" >> $NXT_AUTOCONF_ERR 2>&1; then
|
|||||||
|
|
||||||
NXT_RUBY_LIBNAME=`$NXT_RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG["RUBY_SO_NAME"])'`
|
NXT_RUBY_LIBNAME=`$NXT_RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG["RUBY_SO_NAME"])'`
|
||||||
NXT_RUBY_LIBSCONF=`$NXT_RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG["LIBS"])'`
|
NXT_RUBY_LIBSCONF=`$NXT_RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG["LIBS"])'`
|
||||||
|
NXT_RUBY_LIBPATH=`$NXT_RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG["libdir"])'`
|
||||||
NXT_RUBY_LIBS="-l$NXT_RUBY_LIBNAME $NXT_RUBY_LIBSCONF"
|
NXT_RUBY_LIBS="-l$NXT_RUBY_LIBNAME $NXT_RUBY_LIBSCONF"
|
||||||
|
|
||||||
nxt_feature="Ruby library"
|
nxt_feature="Ruby library"
|
||||||
nxt_feature_name=""
|
nxt_feature_name=""
|
||||||
nxt_feature_run=no
|
nxt_feature_run=value
|
||||||
nxt_feature_incs="${NXT_RUBY_INCPATH}"
|
nxt_feature_incs="${NXT_RUBY_INCPATH}"
|
||||||
nxt_feature_libs="${NXT_RUBY_LIBS}"
|
nxt_feature_libs="${NXT_RUBY_LIBS}"
|
||||||
nxt_feature_test="
|
nxt_feature_test="
|
||||||
#include <ruby.h>
|
#include <ruby.h>
|
||||||
|
|
||||||
int main() {
|
int main() {
|
||||||
|
static const char *argv[3] = {
|
||||||
|
\"NGINX_Unit\", \"-rrbconfig\",
|
||||||
|
\"-eprint RbConfig::CONFIG['libdir']\"
|
||||||
|
};
|
||||||
|
|
||||||
|
RUBY_INIT_STACK;
|
||||||
ruby_init();
|
ruby_init();
|
||||||
return ruby_cleanup(0);
|
return ruby_run_node(ruby_options(3, (char **) argv));
|
||||||
}"
|
}"
|
||||||
|
|
||||||
. auto/feature
|
. auto/feature
|
||||||
|
|
||||||
if [ $nxt_found = no ]; then
|
if [ "$nxt_feature_value" != "$NXT_RUBY_LIBPATH" ]; then
|
||||||
NXT_RUBY_LIBPATH=`$NXT_RUBY -r rbconfig -e 'printf("%s",RbConfig::CONFIG["libdir"])'`
|
|
||||||
NXT_RUBY_LIBS="-L$NXT_RUBY_LIBPATH -Wl,-rpath,${NXT_RUBY_LIBPATH} $NXT_RUBY_LIBS"
|
NXT_RUBY_LIBS="-L$NXT_RUBY_LIBPATH -Wl,-rpath,${NXT_RUBY_LIBPATH} $NXT_RUBY_LIBS"
|
||||||
|
|
||||||
nxt_feature="Ruby library in $NXT_RUBY_LIBPATH"
|
nxt_feature="Ruby library in $NXT_RUBY_LIBPATH"
|
||||||
|
|||||||
Reference in New Issue
Block a user