Skip to content

Instantly share code, notes, and snippets.

@sax
Last active December 19, 2015 08:09
Show Gist options
  • Save sax/5923987 to your computer and use it in GitHub Desktop.
Save sax/5923987 to your computer and use it in GitHub Desktop.
compile ruby 2.0.0-p247 with dtrace SUN D 1.11
pkgin -y in build-essential gcc47 gcc47-libs libyaml
wget -N http://ftp.ruby-lang.org/pub/ruby/2.0/ruby-2.0.0-p247.tar.gz
tar xvf ruby-2.0.0-p247.tar.gz
cd ruby-2.0.0-p247
export LDFLAGS='-R/opt/local -L/opt/local/lib'
CXXFLAGS="-m64 -O3 -g -Wall" bash ./configure --prefix=$HOME/ruby-2.0.0 --with-opt-dir=/opt/local --enable-shared ac_cv_func_dl_iterate_phdr=no CFLAGS="-R -fPIC" rb_cv_have_signbit=no
make
working zone:
# dtrace -V
dtrace: Sun D 1.10
failing zone:
> dtrace -V
dtrace: Sun D 1.11
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
# Test for whether platform requires -G step.
# OSX is an outlier and does not.
#
# In dtrace 1.11, -G fails when no probes are detected.
echo "int main(void){ return 0; }" > conftest.c
echo "provider conftest{};" > conftest_provider.d
gcc -c -o conftest.o conftest.c
dtrace -G -s conftest_provider.d conftest.o
# dtrace: failed to link script conftest_provider: No probe sites found for declared provider
# Test for whether platform requires -G step.
# OSX is an outlier and does not.
#
# In dtrace 1.11, -G fails when no probes are detected.
echo "provider conftest{ probe fire(); };" > conftest_provider.d
dtrace -h -o conftest_provider.h -s conftest_provider.d
cat >conftest.c <<_ACEOF
#include "conftest_provider.h"
int main(void){
CONFTEST_FIRE();
return 0;
}
_ACEOF
gcc -c -o conftest.o conftest.c
dtrace -G -s conftest_provider.d conftest.o
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment