On Wed, 15 Oct 2025 17:20:20 -0400 Steven Rostedt <[email protected]> wrote:
> On Tue, 30 Sep 2025 07:34:53 +0900 > "Masami Hiramatsu (Google)" <[email protected]> wrote: > > > --- a/kernel/trace/trace.c > > +++ b/kernel/trace/trace.c > > @@ -86,6 +86,11 @@ void __init disable_tracing_selftest(const char *reason) > > #define tracing_selftest_disabled 0 > > #endif > > > > +/* Define TRACE_ITER_* flags. */ > > +#undef C > > +#define C(a, b) const u64 TRACE_ITER_##a = (1ULL << TRACE_ITER_##a##_BIT); > > +TRACE_FLAGS > > + > > > > > #undef C > > -#define C(a, b) TRACE_ITER_##a = (1 << TRACE_ITER_##a##_BIT) > > +#define C(a, b) extern const u64 TRACE_ITER_##a; > > > > -enum trace_iterator_flags { TRACE_FLAGS }; > > +TRACE_FLAGS > > +#undef C > > Why all this work when this could have been simply fixed with a: > > -enum trace_iterator_flags { TRACE_FLAGS }; > +enum64 trace_iterator_flags { TRACE_FLAGS }; With enum64, clang 18 caused this error. In file included from /home/mhiramat/ksrc/linux/kernel/trace/ring_buffer.c:36: /home/mhiramat/ksrc/linux/kernel/trace/trace.h:1427:1: error: unknown type name 'enum64'; did you mean 'enum'? 1427 | enum64 trace_iterator_flags { TRACE_FLAGS }; | ^~~~~~ | enum But below (C++11/C23 or clang/gcc extension) passed. -enum trace_iterator_flags { TRACE_FLAGS }; +enum trace_iterator_flags : uint64_t { TRACE_FLAGS }; So let's use this. Thanks, -- Masami Hiramatsu (Google) <[email protected]>
