CppCon 2017: Michael Spencer “My Little Object File: How Linkers Implement C++”

preview_player
Показать описание


Ever wonder how the linker turns your compiled C++ code into an executable file? Why the One Definition Rule exists? Or why your debug builds are so large? In this talk we'll take a deep dive and follow the story of our three adventurers, ELF, MachO, and COFF as they make their way out of Objectville carrying C++ translation units on their backs as they venture to become executables. We'll see as they make their way through the tangled forests of name mangling, climb the cliffs of thread local storage, and wade through the bogs of debug info. We'll see how they mostly follow the same path, but each approach the journey in their own way.

We'll also see that becoming an executable is not quite the end of their journey, as the dynamic linker awaits to bring them to yet a higher plane of existence as complete C++ programs running on a machine.

Michael Spencer: Sony Interactive Entertainment, Compiler Engineer

Michael Spencer is a Compiler Engineer at Sony Interactive Entertainment where he has spent 6 years works on PlayStation's C++ toolchain. He is an active member of the LLVM community focusing on object files and linkers. He also serves as Sony's representative to the ISO C++ standard committee.


*-----*
*-----*
Рекомендации по теме
Комментарии
Автор

Best Q&A session in CppCon I've seen.

echosystemd
Автор

Omg this guy sounds exactly like linus tech tips

TheDonkeydash
Автор

Return value of step0 on Bash on Debian is not 24567837. It shows 29 instead (24567837 % 256 = 29).

echosystemd
Автор

What does he mean at 10:48? Why is that subtraction needed?

Infinitive
Автор

It starter well but then he went way to fast, both with the content of the talk and and his speech speed.

dawidskrodzki
Автор

I started watching and the first slide does not even remotely reflect how linkers work in 2017 (this is cppcon2017).

homomorphic
Автор

Unfortunately he speaks so fast that I can not understand this talk.

pnadk