lttng-tools-2.14.0-rc1: ODR violation

Kienan Stewart kstewart at efficios.com
Fri Jun 20 12:08:05 EDT 2025


Hi Nortbert,

thanks for the bug report. A change has been merged which addresses this 
warning: 
https://github.com/lttng/lttng-tools/commit/734b1cd20cb8390f9b0f6de9def9d5bccb621197

thanks,
kienan

On 6/17/25 7:00 AM, Norbert Lange via lttng-dev wrote:
> Hello,
> 
> enum communication_state exists twice with already diverging definitions.
> I am not sure if its a functional issue now, but this sound like it
> can cause fun bughunts in the future.
> 
> (enabling lto helps finding that kinda stuff)
> 
> ../../../../src/lib/lttng-ctl/clear.cpp:26:6: warning: type
> 'communication_state' violates the C++ One Definition Rule [-Wodr]
>     26 | enum communication_state {
>        |      ^
> ../../../../src/lib/lttng-ctl/destruction-handle.cpp:25:6: note: an
> enum with different value name is defined in another translation unit
>     25 | enum communication_state {
>        |      ^
> ../../../../src/lib/lttng-ctl/clear.cpp:29:2: note: name
> 'COMMUNICATION_STATE_END' differs from name
> 'COMMUNICATION_STATE_RECEIVE_PAYLOAD' defined in another translation
> unit
>     29 |  COMMUNICATION_STATE_END,
>        |  ^
> ../../../../src/lib/lttng-ctl/destruction-handle.cpp:28:2: note:
> mismatching definition
>     28 |  COMMUNICATION_STATE_RECEIVE_PAYLOAD,
>        |  ^
> 
> Regards, Norbert



More information about the lttng-dev mailing list