Mentre es parlava d'un conjunt de pedaços per solucionar problemes relacionats amb Spectre al codi de llista enllaçada, va quedar clar que el problema es podria resoldre amb més gràcia si el codi C que compleixi amb una versió més nova de l'estàndard es permetés al nucli. Actualment, el codi del nucli afegit ha de complir amb l'especificació ANSI C (C89), formada el 1989.
Un problema relacionat amb l'espectre al codi va ser causat per l'ús continuat d'un iterador definit per separat després del bucle: s'utilitza una macro per iterar sobre els elements d'una llista enllaçada i, com que l'iterador de bucle es passa a aquesta macro, és es defineix fora del propi bucle i roman disponible després del bucle. L'ús de l'estàndard C99 permetria definir variables de bucle en un bloc for(), que resoldria el problema sense haver de trobar solucions alternatives.
Linus Torvalds va estar d'acord amb la idea d'implementar suport per a especificacions més noves i va proposar traslladar el nucli 5.18 per utilitzar l'estàndard C11, publicat el 2011. Durant les proves preliminars, el muntatge en GCC i Clang en el nou mode va passar sense desviacions. Si no sorgeixen problemes inesperats durant proves més exhaustives, l'opció '--std=gnu5.18' als scripts de compilació del nucli 89 es substituirà per '--std=gnu11 -Wno-shift-negative-value'. També es va considerar la possibilitat d'utilitzar l'estàndard C17, però en aquest cas caldria augmentar la versió mínima admesa de GCC. La inclusió del suport C11 s'ajusta als requisits actuals de la versió GCC (5.1).
Font: opennet.ru
