Leveraging Your Toolchain to Improve Security

Your toolchain is a useful place to start when incorporating security into your development process. There are several warnings and program augmentations that help harden your application. This article focuses on GCC and Clang, as that's what I primarily use. I'm happy to take suggestions from readers for other toolchains. The flags in this option …

Demystifying ARM Floating Point Compiler Options

When I first started bringing up new ARM platforms, I was pretty confused by the various floating point options such as -mfloat-abi=softfp or -mfpu=fpv4-sp-d16. I imagine this is confusing to other developers as well, so I'd like to share my ARM floating-point cheat sheet with the world. An Overview of the ARM Floating-Point Architecture Before …

compiler-rt

As we're exploring bringing up a C/C++ runtime on our system, I'd like to share a very helpful resource for those using clang/llvm: compiler-rt. Compiler-rt is an LLVM project that provides implementations of various builtin functions for a variety of architectures. This saves us a lot of heavy lifting when bringing up a new platform, …

Clang: Manually Disable Warnings in a Specific Location

Utilizing public or generated code can often introduce warnings into your software builds. Many of these warnings are not serious and developers will often ignore them. This pollutes the warning report and prevents developers from noticing useful warnings in their own software. Using clang, you can suppress warnings using a #pragma: #pragma clang diagnostic push …