From: swills@... Date: 2016-12-16T16:20:12+00:00 Subject: [ruby-core:78682] [Ruby trunk Bug#13041] ruby 2.4 rc1 dtrace build fixes Issue #13041 has been updated by Steve Wills. This fails to build now: ~~~ array.o: In function `ary_new': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtraceenabled_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtrace_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtraceenabled_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtrace_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtraceenabled_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtrace_ruby___array__create' array.o: In function `empty_ary_alloc': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:456: undefined reference to `__dtraceenabled_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:456: undefined reference to `__dtrace_ruby___array__create' array.o: In function `ary_new': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtraceenabled_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtrace_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtraceenabled_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtrace_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtraceenabled_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtrace_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtraceenabled_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtrace_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtraceenabled_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtrace_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtraceenabled_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtrace_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtraceenabled_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtrace_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtraceenabled_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtrace_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtraceenabled_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtrace_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtraceenabled_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtrace_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtraceenabled_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtrace_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtraceenabled_ruby___array__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/array.c:472: undefined reference to `__dtrace_ruby___array__create' eval.o: In function `setup_exception': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/eval.c:578: undefined reference to `__dtraceenabled_ruby___raise' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/eval.c:578: undefined reference to `__dtrace_ruby___raise' gc.o: In function `gc_prof_mark_timer_start': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/gc.c:8655: undefined reference to `__dtraceenabled_ruby___gc__mark__begin' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/gc.c:8655: undefined reference to `__dtrace_ruby___gc__mark__begin' gc.o: In function `gc_prof_mark_timer_stop': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/gc.c:8666: undefined reference to `__dtraceenabled_ruby___gc__mark__end' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/gc.c:8666: undefined reference to `__dtrace_ruby___gc__mark__end' gc.o: In function `gc_prof_sweep_timer_start': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/gc.c:8678: undefined reference to `__dtraceenabled_ruby___gc__sweep__begin' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/gc.c:8678: undefined reference to `__dtrace_ruby___gc__sweep__begin' gc.o: In function `gc_prof_sweep_timer_stop': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/gc.c:8691: undefined reference to `__dtraceenabled_ruby___gc__sweep__end' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/gc.c:8691: undefined reference to `__dtrace_ruby___gc__sweep__end' hash.o: In function `empty_hash_alloc': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/hash.c:435: undefined reference to `__dtraceenabled_ruby___hash__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/hash.c:435: undefined reference to `__dtrace_ruby___hash__create' load.o: In function `rb_require_internal': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/load.c:967: undefined reference to `__dtraceenabled_ruby___require__entry' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/load.c:980: undefined reference to `__dtraceenabled_ruby___find__require__entry' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/load.c:967: undefined reference to `__dtrace_ruby___require__entry' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/load.c:980: undefined reference to `__dtrace_ruby___find__require__entry' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/load.c:985: undefined reference to `__dtraceenabled_ruby___find__require__return' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/load.c:985: undefined reference to `__dtrace_ruby___find__require__return' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/load.c:1024: undefined reference to `__dtraceenabled_ruby___require__return' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/load.c:1024: undefined reference to `__dtrace_ruby___require__return' load.o: In function `rb_f_load': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/load.c:704: undefined reference to `__dtraceenabled_ruby___load__entry' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/load.c:716: undefined reference to `__dtraceenabled_ruby___load__return' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/load.c:704: undefined reference to `__dtrace_ruby___load__entry' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/load.c:716: undefined reference to `__dtrace_ruby___load__return' object.o: In function `rb_obj_alloc': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/object.c:1860: undefined reference to `__dtraceenabled_ruby___object__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/object.c:1860: undefined reference to `__dtrace_ruby___object__create' parse.o: In function `yycompile0': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/parse.y:5382: undefined reference to `__dtraceenabled_ruby___parse__begin' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/parse.y:5382: undefined reference to `__dtrace_ruby___parse__begin' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/parse.y:5386: undefined reference to `__dtraceenabled_ruby___parse__end' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/parse.y:5386: undefined reference to `__dtrace_ruby___parse__end' string.o: In function `str_new0': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/string.c:702: undefined reference to `__dtraceenabled_ruby___string__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/string.c:702: undefined reference to `__dtrace_ruby___string__create' string.o: In function `str_new_static': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/string.c:808: undefined reference to `__dtraceenabled_ruby___string__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/string.c:808: undefined reference to `__dtrace_ruby___string__create' string.o: In function `rb_str_resurrect': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/string.c:1393: undefined reference to `__dtraceenabled_ruby___string__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/string.c:1393: undefined reference to `__dtrace_ruby___string__create' string.o: In function `empty_str_alloc': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/string.c:689: undefined reference to `__dtraceenabled_ruby___string__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/string.c:689: undefined reference to `__dtrace_ruby___string__create' symbol.o: In function `dsymbol_alloc': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/symbol.c:487: undefined reference to `__dtraceenabled_ruby___symbol__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/symbol.c:487: undefined reference to `__dtrace_ruby___symbol__create' symbol.o: In function `register_static_symid_str': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/symbol.c:419: undefined reference to `__dtraceenabled_ruby___symbol__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/symbol.c:419: undefined reference to `__dtrace_ruby___symbol__create' vm.o: In function `vm_exec_core': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/insns.def:550: undefined reference to `__dtrace_ruby___hash__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/insns.def:550: undefined reference to `__dtraceenabled_ruby___hash__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/insns.def:823: undefined reference to `__dtrace_ruby___cmethod__entry' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/insns.def:813: undefined reference to `__dtraceenabled_ruby___method__entry' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/insns.def:814: undefined reference to `__dtraceenabled_ruby___method__return' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/insns.def:815: undefined reference to `__dtraceenabled_ruby___cmethod__entry' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/insns.def:816: undefined reference to `__dtraceenabled_ruby___cmethod__return' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/insns.def:826: undefined reference to `__dtraceenabled_ruby___method__return' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/insns.def:826: undefined reference to `__dtrace_ruby___method__return' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/insns.def:829: undefined reference to `__dtraceenabled_ruby___cmethod__return' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/insns.def:829: undefined reference to `__dtrace_ruby___cmethod__return' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/insns.def:820: undefined reference to `__dtraceenabled_ruby___method__entry' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/insns.def:820: undefined reference to `__dtrace_ruby___method__entry' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/insns.def:823: undefined reference to `__dtraceenabled_ruby___cmethod__entry' vm.o: In function `rb_clear_method_cache_by_class': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/./vm_method.c:101: undefined reference to `__dtraceenabled_ruby___method__cache__clear' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/./vm_method.c:101: undefined reference to `__dtrace_ruby___method__cache__clear' vm.o: In function `rb_vm_pop_cfunc_frame': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/vm.c:526: undefined reference to `__dtraceenabled_ruby___cmethod__return' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/vm.c:526: undefined reference to `__dtrace_ruby___cmethod__return' vm.o: In function `vm_exec': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/vm.c:1741: undefined reference to `__dtraceenabled_ruby___cmethod__return' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/vm.c:1741: undefined reference to `__dtrace_ruby___cmethod__return' vm.o: In function `core_hash_from_ary': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/vm.c:2624: undefined reference to `__dtraceenabled_ruby___hash__create' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/vm.c:2624: undefined reference to `__dtrace_ruby___hash__create' vm.o: In function `vm_call_cfunc_with_frame': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/./vm_insnhelper.c:1741: undefined reference to `__dtraceenabled_ruby___cmethod__entry' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/./vm_insnhelper.c:1761: undefined reference to `__dtraceenabled_ruby___cmethod__return' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/./vm_insnhelper.c:1741: undefined reference to `__dtrace_ruby___cmethod__entry' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/./vm_insnhelper.c:1761: undefined reference to `__dtrace_ruby___cmethod__return' vm.o: In function `vm_call0_cfunc_with_frame': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/./vm_eval.c:119: undefined reference to `__dtraceenabled_ruby___cmethod__entry' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/./vm_eval.c:140: undefined reference to `__dtraceenabled_ruby___cmethod__return' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/./vm_eval.c:119: undefined reference to `__dtrace_ruby___cmethod__entry' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/./vm_eval.c:140: undefined reference to `__dtrace_ruby___cmethod__return' vm.o: In function `invoke_bmethod': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/vm.c:986: undefined reference to `__dtraceenabled_ruby___method__entry' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/vm.c:990: undefined reference to `__dtraceenabled_ruby___method__return' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/vm.c:986: undefined reference to `__dtrace_ruby___method__entry' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/vm.c:990: undefined reference to `__dtrace_ruby___method__return' vm.o: In function `hook_before_rewind': /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/vm.c:1594: undefined reference to `__dtraceenabled_ruby___method__return' /usr/local/poudriere/ports/default/lang/ruby24/work/ruby-2.4.0-rc1/vm.c:1594: undefined reference to `__dtrace_ruby___method__return' cc: error: linker command failed with exit code 1 (use -v to see invocation) ~~~ ---------------------------------------- Bug #13041: ruby 2.4 rc1 dtrace build fixes https://bugs.ruby-lang.org/issues/13041#change-62062 * Author: Steve Wills * Status: Closed * Priority: Normal * Assignee: * Target version: * ruby -v: * Backport: 2.1: UNKNOWN, 2.2: UNKNOWN, 2.3: UNKNOWN ---------------------------------------- In FreeBSD before 11.0, using dtrace -G or -h will not work in a jail or without dtrace kernel modules loaded unless the -xnolibs flag is passed as well. Since we build in jails, this is needed during our build, so we have this patch: https://svnweb.freebsd.org/ports/head/lang/ruby22/files/patch-Makefile.in?revision=369732&view=markup We have used it with ruby 2.2, and 2.3 for a long time. Please consider it or a similar change for Ruby 2.4 -- https://bugs.ruby-lang.org/ Unsubscribe: