Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 06 Sep 2021 12:36:26 +0000
From:      bugzilla-noreply@freebsd.org
To:        ruby@FreeBSD.org
Subject:   [Bug 257525] lang/ruby26: add DTRACE option
Message-ID:  <bug-257525-21402-l3j3EQ1SE3@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-257525-21402@https.bugs.freebsd.org/bugzilla/>
References:  <bug-257525-21402@https.bugs.freebsd.org/bugzilla/>

next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D257525

--- Comment #7 from Evgeniy Khramtsov <evgeniy@khramtsov.org> ---
(In reply to Steve Wills from comment #5)

> What is the error? Was it posted previously and I'm missing it?

See v1 commit message:

compiling dmyenc.c
linking miniruby
ld: error: undefined symbol: __dtraceenabled_ruby___array__create
>>> referenced by array.c
>>>               array.o:(ary_new)
>>> referenced by array.c
>>>               array.o:(rb_ary_new)
>>> referenced by array.c
>>>               array.o:(rb_assoc_new)
>>> referenced 27 more times

> The linked commit doesn't seem to explain much.
> It seems like it would really be helpful if you could be more specific ab=
out the issue(s) you seem to be encountering.
> You seem to be saying that you have set these [...] options in src.conf
> and an additional patch to enable using external LLVM toolchain.

FreeBSD base system includes LLVM based toolchain, and if one follows CURRE=
NT,
then each update from source can take hours due to LLVM build. While there =
are
different ways to solve this via meta mode or ccache, the most efficient way
to lessen compile times is to not build the base toolchain, and use
devel/llvm12
from ports instead. LLVM from ports can also be fetched using poudriere-dev=
el
pkg seeding via '-b' option, resulting in no compile time for LLVM. This al=
lows
me to build both kernel+world in less than 5 minutes using cheap (QTJ2)
hardware.

I did the same for my poudriere build jail and installed devel/llvm12 as
toolchain. The ports LLVM !=3D base LLVM; the base one can link DTrace symb=
ols
(in www/node, etc) while ports one can't. Maybe the ports LLVM can't link t=
hem
due to diff between base LLVM, or the base LLVM includes some headers by
default, or I don't have related toolchain binaries in $PATH symlinked to
/usr/local/llvm12/*.

This is not an issue to me; I don't use DTRACE options in ports and opted to
turn them off instead. The only ports that I use that have non-optional DTR=
ACE
are lang/ruby2*.

> Full build log you get when trying to build ruby with this configuration =
it might help?

Sorry, but I can't expose my environment, as this is an infoleak that can h=
elp
crafting exploits and puts me in risk. I prefer to have unique binaries. I
already posted the required steps to reproduce this.

> True the option to disable DTRACE is harmless, at the same time, we try n=
ot to add unnecessary options as each one adds a maintenance work in the lo=
ng term.

Currently DTrace support is an "automagic" option (which some folks dislike=
),
but I think that the main rationale to include DTRACE as an option, is ports
tree consistency. My use case happens to need this.

> sysutils/py-diffoscope

Thanks.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-257525-21402-l3j3EQ1SE3>