[Bug 257525] lang/ruby26: add DTRACE option

From: <bugzilla-noreply_at_freebsd.org>
Date: Mon, 06 Sep 2021 20:11:31 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=257525

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

Adding "-x ldpath=/usr/local/llvm12/bin/ld" fixes examples:

1:
dtrace: script 'script.d' matched 1 probe
a=1, b=2
a=2, b=3
dtrace: pid 92114 has exited

                1                2                1
                2                3                1
MD5 (app.o) = 4aa6f8c53e1786b9af667f38c03631de
MD5 (probes.o) = 9e27e17d7782614b07441578d49be643
MD5 (app) = 72cb8fb8f57b04d5c85405fc211c9e2a

2:
rm: app: No such file or directory
rm: app.o: No such file or directory
rm: probes.o: No such file or directory
rm: probes.h: No such file or directory
dtrace: script 'script.d' matched 1 probe
a=1, b=2
a=2, b=3
dtrace: pid 47097 has exited

                1                2                1
                2                3                1
MD5 (app.o) = e6c17b37918f8d953da79811b8131c0b
MD5 (probes.o) = 2ee59d958960e03ec4772462606a0c4f
MD5 (app) = 258f7505f4884f955ecc809d419f71e8

But it seems that Ruby needs something more?
[...]
dtrace: failed to compile script probes.d: Preprocessor not found
[...]

I took a look at build log:
[...]
checking whether dtrace USDT is available... yes(-x ldpath=ld -xnolibs)
[...]
LD = ld
[...]

Then I passed LD:

- CONFIGURE_ENV=  debugflags=
+ CONFIGURE_ENV=  debugflags= LD=${LD}

And the build log changed:

[...]
- checking whether dtrace USDT is available... yes(-x ldpath=ld -xnolibs)
+ checking whether dtrace USDT is available... yes(-x
ldpath=/usr/local/llvm12/bin/ld -xnolibs)
- checking whether dtrace needs post processing... no
+ checking whether dtrace needs post processing... rebuild
[...]
        BASERUBY = echo executable host ruby is required.  use --with-baseruby
option.; false
        CC = /usr/local/llvm12/bin/clang
-       LD = ld
+       LD = /usr/local/llvm12/bin/ld
        LDSHARED = /usr/local/llvm12/bin/clang -shared
        CFLAGS = -O2 -pipe -O3 -mbranches-within-32B-boundaries 
-fstack-protector-all -fPIE -fPIC -isystem /usr/local/include
-fno-strict-aliasing  -fPIC
        XCFLAGS = -D_FORTIFY_SOURCE=2 -fstack-protector-strong
-fno-strict-overflow -fvisibility=hidden -DRUBY_EXPORT
-DCANONICALIZATION_FOR_MATHN
        CPPFLAGS = -I/usr/local/include -isystem /usr/local/include   -I.
-I.ext/include/amd64-freebsd14 -I./include -I. -I./enc/unicode/12.1.0
        DLDFLAGS = -fstack-protector-all -pie -Wl,-z,noexecstack -Wl,-z,now
-Wl,-z,relro  -Wl,--compress-debug-sections=zlib -Wl,-E
-Wl,-soname,libruby26.so.26 -fstack-protector-strong
        SOLIBS = -lelf -lunwind -lexecinfo -lprocstat -lz -lthr -lrt -lrt -ldl
-lcrypt -lm -lpthread -L/usr/local/lib -L/usr/local/lib
        LANG = C
        LC_ALL = C
        LC_CTYPE =
clang version 12.0.1
Target: x86_64-portbld-freebsd14.0
Thread model: posix
InstalledDir: /usr/local/llvm12/bin
translating probes probes.d
dtrace: failed to compile script probes.d: Preprocessor not found
*** Error code 1

^ But still preprocessor (is it the $CPP one?) could not be found.
Passing $CPP to CONFIGURE_ENV did not help.

Did you try in a freshly created poudriere jail built using the patch
and src.conf? The jail should not have "cc", etc by default. "delete-old"
on existing jail does not delete "cc" and other binaries.

Thanks for trying to fix this. My priority in fixing DTRACE with ports LLVM
is low, but I will try any patches.

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