Improving C++ Builds with Split DWARF

Large- and medium-sized C++ projects often suffer from long build times. We can distinguish these two scenarios: Scratch build After pulling in the latest changes from upstream, or after a major refactoring that affects central headers, a lot of source files need to be rebuilt. This can take a long time. To a large extent this is caused by the … Read More

Ultra-wide curved screens for increased productivity

This post is slightly off-topic: Usually this site is dealing with C++ topics only. However, since changing my monitor setup my productivity has improved. An efficient hardware setup in your work environment can make a big difference, so I figured I’d blog about this. Recently at work it was time to replace some old monitors. My previous dual-monitor setup featured … Read More

New things in clang land (5.0.0)

LLVM 5.0.0 was already released back in September, but I still would like to mention a couple interesting things I encountered while using clang 5. This will not cover all the new things there are, please check the release notes of the respective LLVM components for that. More aggressive optimizations I could not find a mention of this in the release … Read More

Hardening C/C++ Programs Part II – Executable-Space Protection and ASLR

In the first part of this series we discussed the mechanics of an exploit, the general concept of hardening, and the stack protector hardening technique in particular. Some of the concepts explained there will be used here, too, so you might want to read at least the first few paragraphs. Executable-space protection As mentioned in the first part, exploits often … Read More

Hardening C/C++ Programs Part I – Stack Protector

When C, C++ and the Internet were conceived, they were mostly used by academics. Attacks on computer systems were rare, since there was not much incentive to it, so there did not have to be a focus on security and robustness. Nowadays these designs haunt us: The past two decades have uncovered a lot of security vulnerabilities in C/C++ programs, … Read More