diff --git a/SilKit/include/silkit/capi/Lin.h b/SilKit/include/silkit/capi/Lin.h index 322d48a53..fc111eef3 100644 --- a/SilKit/include/silkit/capi/Lin.h +++ b/SilKit/include/silkit/capi/Lin.h @@ -161,7 +161,7 @@ typedef uint8_t SilKit_LinFrameStatus; typedef uint8_t SilKit_LinDataLength; //! \brief If configured for reception with this value, the data length validation of incoming frames is skipped. -const SilKit_LinDataLength SilKit_LinDataLengthUnknown = 255u; +#define SilKit_LinDataLengthUnknown ((SilKit_LinDataLength)255) /*! \brief A LIN SilKit_LinFrame * diff --git a/docs/CHANGELOG.rst b/docs/CHANGELOG.rst index 17cfcf405..094732a20 100644 --- a/docs/CHANGELOG.rst +++ b/docs/CHANGELOG.rst @@ -9,6 +9,16 @@ The format is based on `Keep a Changelog (http://keepachangelog.com/en/1.0.0/) < [4.0.55] - Unreleased --------------------- +Fixed +~~~~~ + +- **Important** ``SilKit_LinDataLengthUnknown`` in the C header ``Lin.h`` used to be a ``const`` global, which could cause + linker issues if the header file is used in multiple translation units in the same binary. + + It has been turned into a ``#define``, like all the other constants in the C header files. + + The symbol was not present in the dynamic symbol table of the ``SilKit.dll`` / ``.so``, so this change + does not break the ABI of the shared libraries. [4.0.54] - 2024-11-11