why and how to use clang compiler with Yocto Project
12-01, 16:10–16:40 (UTC), Room A

Clang is an alternative C/C++ compiler based on LLVM infrastructure. While the primary system compiler in yocto project is GCC, clang offers some advantages in some usecases, this talk will go over firstly on how to use clang compiler in Yocto project based distributions. secondly it will talk about cases where it make more sense to use it and where it maybe not as effective, In some cases it could be beneficial to use it surgically for some large scale C++ apps.


Clang is compiler is a C/C++ compiler based on LLVM, this is becoming a commonly used compiler with time as it offers modern compiler infrastructure which is extensible beyond a traditional C/C++ static compiler. It provides additional tools e.g. linters, static analyzer based on clang common infrastructure ( libclang ), the talk will cover what it provides beyond a C/C++ static compiler. There is a method to use it as default compiler in yocto project which will be covered as well. it will also cover the case of mixed mode where both GCC and Clang could be in play for specific applications e.g. chromium or webkit using clang while rest of system uses gcc. There is also debugger port called LLDB which is an alternative de bugger, LLD is fast linker which could be used either as default linker or using -fuse-ld option on certain applications. It will discuss advantages of doing so. A take away from this talk would be to know how and when to use clang compiler in yocto project to get maximum benefits.

See also: Slides (788.3 KB)

Khem Raj is a Linux architect at Comcast, helping several open source initiatives within the company: He is guiding the company's adoption of open source software, and becoming an active contributor to the open source components used in the RDK settop software stack. One of the most recent projects he has worked on is migrating RDK to an OpenEmbedded/Yocto-based framework for build system and embedded Linux distribution generation. He is also actively working on making the RDK community adopt the RDK framework for future TV settop devices and broadband gateways. He is a Yocto Project advisory board member, and member of the technical steering Committee for the OpenEmbedded project. He is core maintainer for several key pieces in OpenEmbedded framework, including core metadata, toolchains, and SDKs. Prior to Comcast, Khem helped Juniper migrate the Junos operating system to use embedded Linux as the base operating system.