Issue #8606 has been updated by sax (Eric Saxby).


linking miniruby
Undefined                       first referenced
 symbol                             in file
__dtraceenabled_ruby___require__entry load.o
__dtrace_ruby___cmethod__entry      vm.o
__dtrace_ruby___parse__begin        parse.o
__dtraceenabled_ruby___cmethod__entry vm.o
__dtrace_ruby___require__entry      load.o
__dtrace_ruby___find__require__entry load.o
__dtrace_ruby___method__return      vm.o
__dtraceenabled_ruby___find__require__entry load.o
__dtrace_ruby___hash__create        hash.o
__dtraceenabled_ruby___load__return load.o
__dtraceenabled_ruby___require__return load.o
__dtrace_ruby___object__create      object.o
__dtrace_ruby___method__entry       vm.o
__dtraceenabled_ruby___parse__begin parse.o
__dtraceenabled_ruby___object__create object.o
__dtraceenabled_ruby___gc__mark__end gc.o
__dtrace_ruby___gc__mark__begin     gc.o
__dtraceenabled_ruby___hash__create hash.o
__dtrace_ruby___string__create      string.o
__dtraceenabled_ruby___find__require__return load.o
__dtraceenabled_ruby___cmethod__return vm.o
__dtrace_ruby___gc__mark__end       gc.o
__dtraceenabled_ruby___parse__end   parse.o
__dtraceenabled_ruby___method__entry vm.o
__dtrace_ruby___gc__sweep__begin    gc.o
__dtraceenabled_ruby___string__create string.o
__dtrace_ruby___raise               eval.o
__dtrace_ruby___require__return     load.o
__dtraceenabled_ruby___load__entry  load.o
__dtrace_ruby___parse__end          parse.o
__dtraceenabled_ruby___array__create array.o
__dtraceenabled_ruby___gc__sweep__end gc.o
__dtraceenabled_ruby___gc__sweep__begin gc.o
__dtrace_ruby___gc__sweep__end      gc.o
__dtraceenabled_ruby___method__return vm.o
__dtraceenabled_ruby___raise        eval.o
__dtrace_ruby___cmethod__return     vm.o
__dtraceenabled_ruby___gc__mark__begin gc.o
__dtrace_ruby___load__return        load.o
__dtrace_ruby___array__create       array.o
__dtrace_ruby___find__require__return load.o
__dtrace_ruby___load__entry         load.o
----------------------------------------
Bug #8606: compile with --enable-dtrace fails with dtrace version SUN D 1.11
https://bugs.ruby-lang.org/issues/8606#change-40326

Author: sax (Eric Saxby)
Status: Open
Priority: High
Assignee: nobu (Nobuyoshi Nakada)
Category: build
Target version: 
ruby -v: 2.0.0-p247
Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN


When compiling Ruby 2.0 with --enable-dtrace on platforms with dtrace version SUN D 1.11 (for example, SmartOS with platform image joyent_20130521T084103Z or greater), the compile fails just after linking miniruby. The compile fails on linking dtrace symbols, as they are missing.

The problem is that in dtrace 1.11, the compiler was changed to fail if no probes are found. configure runs a test to check whether dtrace -G is needed, I believe because OS X does not need it.

https://github.com/ruby/ruby/blob/1c0abbf07692b21835f6c81f759b8d2d6b8963c2/configure.in#L536-L539

On newer dtrace, this results in the following error:
"dtrace: failed to link script conftest_provider: No probe sites found for declared provider"

So configure incorrectly determines that dtrace -G is not needed, and compilation fails.

From the #smartos irc channel on freenode:
rmustacc: So, the most correct solution would be to use the probe from the header file in the conftest.o that they try and run dtrace -G on.


-- 
http://bugs.ruby-lang.org/