You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There's a transitive include path from the I2C and SPI driver headers to offsets.h:
zephyr/drivers/i2c.h → zephyr/rtio/rtio.h → zephyr/app_memory/app_memdomain.h → zephyr/linker/linker-defs.h → zephyr/offsets.h.
As a result, compilation of application code that includes one of these driver headers can race against offsets.h generation, leading to occasional compile errors if offsets.h is not generated in time. An example issue from the archives: #67268.
A couple different solution shapes came to mind:
Can we make offsets.h a dependency of zephyr_interface such that the header is generated before any library that links against zephyr_interface is compiled? It seems like offsets.c would need some sort of special handling to not create a circular dependency, as it currently links against zephyr_interface.
I found it surprising that the I2C/SPI → offsets.h include path exists at all. Can we better isolate offsets.h by splitting up header files?
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
There's a transitive include path from the I2C and SPI driver headers to offsets.h:
zephyr/drivers/i2c.h → zephyr/rtio/rtio.h → zephyr/app_memory/app_memdomain.h → zephyr/linker/linker-defs.h → zephyr/offsets.h.
As a result, compilation of application code that includes one of these driver headers can race against offsets.h generation, leading to occasional compile errors if offsets.h is not generated in time. An example issue from the archives: #67268.
A couple different solution shapes came to mind:
zephyr_interface
such that the header is generated before any library that links againstzephyr_interface
is compiled? It seems like offsets.c would need some sort of special handling to not create a circular dependency, as it currently links againstzephyr_interface
.Beta Was this translation helpful? Give feedback.
All reactions