Embedded and kernel developers have long used a technique called "linker sets" to put the linker to work, collecting statically initialized elements from across translation units into a single collection. Can we use this technique in modern C++? Could we use it in a template even?
In this talk we'll use linker sets as a view into the least loved element of the toolchain, the linker. We'll talk about object formats, optimizations like link-time code generation and COMDAT folding, and the attributes available to manipulate the behavior of the linker. We'll use these techniques to implement linker sets for modern C++, and yes, we can even use them in a template.
View Slides
Originally a member of the Naval Nuclear Propulsion community with the US Navy, Vito Gamberini transitioned to C/C++ developer and educator in his post-naval career.
Vito lectured on computer architecture and toolchain development at NYU Tandon School of Engineering for four years before joining Kitware to work on build tooling for a range of language communities, with a focus on C/C++.