mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
ext/-test-/cxxanyargs: prevent have_devel check
The `cxx.try_compile` command in this file kicks `cxx.have_devel?` internally, which recursively calls `cxx.try_link` with a different source code. We don't want that happen (the source code compiled in this file must be the first one). We need to fake the system.
This commit is contained in:
parent
7aa3f1fe69
commit
4e6bae47c8
1 changed files with 11 additions and 2 deletions
|
@ -2,12 +2,19 @@
|
||||||
|
|
||||||
cxx = MakeMakefile["C++"]
|
cxx = MakeMakefile["C++"]
|
||||||
|
|
||||||
|
# #### have_devel hack ####
|
||||||
|
# cxx.try_compile tries to detect compilers, but the try_compile below is
|
||||||
|
# trying to detect a compiler in a different way. We need to prevent the
|
||||||
|
# default detection routine.
|
||||||
|
|
||||||
|
cxx.instance_variable_set(:'@have_devel', true)
|
||||||
|
|
||||||
ok = cxx.try_compile(<<~'begin', "") do |x|
|
ok = cxx.try_compile(<<~'begin', "") do |x|
|
||||||
#include "ruby/config.h"
|
#include "ruby/config.h"
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
typedef int conftest[SIZEOF_LONG == sizeof(long) ? 1 : -1];
|
typedef int conftest1[SIZEOF_LONG == sizeof(long) ? 1 : -1];
|
||||||
typedef int conftest[SIZEOF_VOIDP == sizeof(void*) ? 1 : -1];
|
typedef int conftest2[SIZEOF_VOIDP == sizeof(void*) ? 1 : -1];
|
||||||
}
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -21,6 +28,8 @@ begin
|
||||||
x.sub! %<#include "ruby.h">, ''
|
x.sub! %<#include "ruby.h">, ''
|
||||||
end
|
end
|
||||||
|
|
||||||
|
cxx.instance_variable_set(:'@have_devel', ok)
|
||||||
|
|
||||||
if ok
|
if ok
|
||||||
$srcs = %w[cxxanyargs.cpp]
|
$srcs = %w[cxxanyargs.cpp]
|
||||||
failures = Dir.glob($srcdir + "/failure*.cpp").map {|n| File.basename(n)}
|
failures = Dir.glob($srcdir + "/failure*.cpp").map {|n| File.basename(n)}
|
||||||
|
|
Loading…
Reference in a new issue