Supporting newer toolchains in the kernel

*
Refereed Presentation
Scheduled: Friday, September 15, 2017 from 4:00 – 4:45pm in Platinum D

One Line Summary

A few years ago, things were "easy": There was gcc and binutils. Now we have gcc, clang, binutils, lld, and more.

Abstract

The Linux kernel currently requires gcc and binutils to be built. These days, other toolchain options, such as clang and lld, are available and compelling for some use cases (e.g. Android, where clang is used for all userland compiles).

Patch sets that make the kernel build with clang and link with lld currently exist (and need some cleanup).

Some additional changes in the kernel, such as getting rid of -std=gnu89, would likely benefit the optimizers of both clang and current (7.x+) gcc.

This presentation looks at what can be done and tries to encourage upstream adoption of the patches.

Audio

Tags

Clang, gcc, toolchains, lld

Presentation Materials

slides

Speaker

  • Bero

    Biography

    Bernhard Rosenkraenzer has been a Linux developer since 1995 and has written code for more than 100 FOSS projects.

    He is currently the Tech Lead of Linaro’s Android team. He is also a developer and council member of the OpenMandriva foundation.