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
{{ message }}
Repository navigation
QNX: C compiles default to -std=c11 without -D_QNX_SOURCE #168
The QNX toolchain sets -D_QNX_SOURCE only for C++ compiles. C compiles get -std=c11 alone. The QNX allow-list pairs them as -std=c11 -D_QNX_SOURCE, so the C default is not the listed combination. Not yet known whether this breaks any build or changes behaviour.
score_baselibs: score/language/futurecpp/src/math.c, in the math target.
vsps_ids: src/cpp/libqsev/qsev.c.
Why it may matter
QNX headers gate declarations on feature macros. In sys/platform.h, _QNX_SOURCE controls which POSIX and QNX extensions are exposed. Without it, __STRICT_ANSI__ is set under -std=c11, and headers such as yvals.h and assert.h take their strict branches. We have not checked which declarations used by math.c or qsev.c become invisible.
Questions
Was the split between C and C++ deliberate?
Should -D_QNX_SOURCE be added to the C default, matching the allow-list?
If not, can it be recorded as a deviation with a rationale?
Acceptance
Either -D_QNX_SOURCE is added to the C default and the affected builds pass, or a documented deviation is recorded.
Activity