Qualifying a C Library - Dealing with the conflicting worldviews of the ISO 26262 and ISO C standards

Novem­ber 19, 2024

Func­tion­al safe­ty and cyber­se­cu­ri­ty stan­dards treat the qual­i­fi­ca­tion of tools and libraries as inde­pen­dent sub­jects. This inde­pen­dence is incon­sis­tent with the per­spec­tive of the ISO C stan­dard which serves as the foun­da­tion for imple­ment­ing com­pil­er toolsets and their libraries. This fun­da­men­tal dif­fer­ence poses dif­fi­cul­ties when it comes to qual­i­fy­ing a com­pil­er and the libraries asso­ci­at­ed with it.


Intro­duc­tion
To achieve con­for­mance with the ISO 26262 func­tion­al safe­ty stan­dard, it is required to qual­i­fy soft­ware com­po­nents, includ­ing the libraries that are part of a com­pil­er toolset, before they can be inte­grat­ed into auto­mo­tive soft­ware sys­tems.

The imple­men­ta­tion of a C com­pil­er and its asso­ci­at­ed libraries heav­i­ly relies on ISO/IEC 9899, com­mon­ly referred to as ISO C. This stan­dard delin­eates sev­er­al crit­i­cal aspects:

•    It defines the char­ac­ter­is­tics of envi­ron­ments used to trans­late and exe­cute C pro­grams, which form the basis for what’s known as “start­up code.”
•    It spec­i­fies the syn­tax, con­straints, and seman­tics of the C lan­guage, which are essen­tial for build­ing the com­pil­er and its exe­cutable file, as well as the run­time libraries.
•    It cov­ers the library facil­i­ties, describ­ing what’s inside head­er files and how C library func­tions should behave.

The above top­ics are addressed in sep­a­rate claus­es of the ISO C stan­dard but with many ref­er­ences between the claus­es, indi­cat­ing inter­de­pen­den­cies between the start­up code, the com­pil­er exe­cutable, the run­time libraries, the head­er files, and the C library. Con­se­quent­ly, it’s not imme­di­ate­ly clear whether the require­ments for tool qual­i­fi­ca­tion and/or library qual­i­fi­ca­tion apply to a spe­cif­ic part of the com­pil­er toolset, and whether changes made to one part of the toolset might impact the qual­i­fi­ca­tion of other parts.

To read the full arti­cle, please click here .

    Scroll to Top