On 2/2/26 12:20, John Baldwin wrote:
The branch main has been updated by jhb:
URL:
https://cgit.FreeBSD.org/src/commit/?id=f7144a9c4a11214a71a3091ce1b232a8243b83ea
commit f7144a9c4a11214a71a3091ce1b232a8243b83ea
Author: John Baldwin <[email protected]>
AuthorDate: 2026-02-02 17:19:51 +0000
Commit: John Baldwin <[email protected]>
CommitDate: 2026-02-02 17:19:51 +0000
sdt: Use the "cc" operand modifier for the address of probes for GCC 15+
This is required for GCC on RISC-V. The GCC 15 docs claim that "cc" is
similar to "c" except that it "tries harder".
NB: I have not yet found a way to make the DTrace probes compile on
RISC-V with older versions of GCC.
Reviewed by: markj
Differential Revision: https://reviews.freebsd.org/D54964
Once I land an update to the freebsd-gccXX ports to support %#b with printf(9)
(in review at https://reviews.freebsd.org/D55016 if any ports person wants to
review), RISC-V kernels and worlds can be built with GCC 15.
GCC 14 and earlier can't compile SDT probes. :(
Also, Someone(tm) should document # support for %b in printf(9). It would also
be really great if we could document %r and %y in printf(9) as well.
%y prints signed hex values, so printf("%y", -1) is output as "-0x1".
%r uses a custom radix defined in a global 'radix' variable (I think this is
really only for DDB), and if "+" is passed it assumes the argument is signed
rather than unsigned. (This last part is a bit of a hack really. Probably
we should use separate letters for signed vs unsigned. Or maybe stop
using %r.)
--
John Baldwin