On Tue, Nov 28, 2017 at 01:34:00AM +0100, Jan Beich wrote:
> I'd like to build www/firefox with both DTrace and LTO support. Both
> Clang and GCC emit code that dtrace(1) doesn't understand.

Unfortunately, both gcc and clang's LTO implementations are completely
incompatible with the way that dtrace -G works. clang -flto produces
LLVM bitcode files, and gcc -flto produces ELF files with custom
sections. dtrace -G works by looking for relocations against symbols
named __dtrace_probe_*, and recording and overwriting the relocation
address, but the object files generated when using -flto are really only
meant for consumption by the static linker.

I think it might be possible to implement USDT for clang using LLVM's
patchpoint instrinsic, but this would still require some support in the
compiler. Anyway, I don't think it'll be possible to reconcile -flto
and dtrace -G without substantial work.
_______________________________________________
freebsd-toolchain@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-toolchain
To unsubscribe, send any mail to "freebsd-toolchain-unsubscr...@freebsd.org"

Reply via email to