ABIs, linkers and other animals
Stephen Kell
stephen.kell@cl.cam.ac.uk
Computer Laboratory University of Cambridge
ABIs, linkers. . . – p.1/66
ABIs, linkers and other animals Stephen Kell - - PowerPoint PPT Presentation
ABIs, linkers and other animals Stephen Kell stephen.kell@cl.cam.ac.uk Computer Laboratory University of Cambridge ABIs, linkers . . . p.1/66 Subject of this talk introduce murky artifacts to those unfamiliar ABIs linkers
stephen.kell@cl.cam.ac.uk
ABIs, linkers. . . – p.1/66
ABIs, linkers. . . – p.2/66
compile
hardware
ABIs, linkers. . . – p.3/66
link compile
libc*.a
hardware
ABIs, linkers. . . – p.4/66
link
assemble compile compile assemble assemble
libc*.a
hardware
R S R S R S R S
ABIs, linkers. . . – p.5/66
ld.so
link
assemble compile compile assemble assemble
libc.so
libc*.a load (dyn. link)
hardware
U R S R S R S R S R S R S U U U U U
ABIs, linkers. . . – p.6/66
ld.so
link
assemble compile compile assemble assemble
ldscripts
libc.so
libc*.a load (dyn. link)
hardware
U R S R S R S R S R S R S R S U U U U U U
ABIs, linkers. . . – p.7/66
ld.so
link
assemble compile compile assemble assemble
ldscripts
libc.so
libc*.a load (dyn. link)
hardware
D U R S R S R S R S R S R S R S D U U D U D U D U D U
ABIs, linkers. . . – p.8/66
ABIs, linkers. . . – p.9/66
ABIs, linkers. . . – p.10/66
ABIs, linkers. . . – p.11/66
ABIs, linkers. . . – p.12/66
ABIs, linkers. . . – p.13/66
ABIs, linkers. . . – p.14/66
link compile
libc*.a
hardware
ABIs, linkers. . . – p.15/66
ABIs, linkers. . . – p.16/66
ABIs, linkers. . . – p.17/66
Not done yet.
ABIs, linkers. . . – p.18/66
ABIs, linkers. . . – p.19/66
ABIs, linkers. . . – p.20/66
ABIs, linkers. . . – p.21/66
ABIs, linkers. . . – p.22/66
ABIs, linkers. . . – p.23/66
ABIs, linkers. . . – p.24/66
ABIs, linkers. . . – p.25/66
ABIs, linkers. . . – p.26/66
ABIs, linkers. . . – p.27/66
ABIs, linkers. . . – p.28/66
ABIs, linkers. . . – p.29/66
ABIs, linkers. . . – p.30/66
$ cc -shared -o libhello.so hello.o /usr/bin/ld: hello.o: relocation R_X86_64_32 against ‘.rodata.str1.1’ can not be used when making a shared object; recompile with -fPIC
ABIs, linkers. . . – p.31/66
ABIs, linkers. . . – p.32/66
ABIs, linkers. . . – p.33/66
ABIs, linkers. . . – p.34/66
ABIs, linkers. . . – p.35/66
ABIs, linkers. . . – p.36/66
ld.so
link
assemble compile compile assemble assemble
ldscripts
libc.so
libc*.a load (dyn. link)
hardware
U R S R S R S R S R S R S R S U U U U U U
ABIs, linkers. . . – p.37/66
ld.so
link
assemble compile compile assemble assemble
libc.so
libc*.a load (dyn. link)
hardware
U R S R S R S R S R S R S U U U U U
ABIs, linkers. . . – p.38/66
ABIs, linkers. . . – p.39/66
ABIs, linkers. . . – p.40/66
ABIs, linkers. . . – p.41/66
ABIs, linkers. . . – p.42/66
ABIs, linkers. . . – p.43/66
ABIs, linkers. . . – p.44/66
ABIs, linkers. . . – p.45/66
ABIs, linkers. . . – p.46/66
ABIs, linkers. . . – p.47/66
ABIs, linkers. . . – p.48/66
ABIs, linkers. . . – p.49/66
ABIs, linkers. . . – p.50/66
ABIs, linkers. . . – p.51/66
ABIs, linkers. . . – p.52/66
ABIs, linkers. . . – p.53/66
ABIs, linkers. . . – p.54/66
ABIs, linkers. . . – p.55/66
ABIs, linkers. . . – p.56/66
ABIs, linkers. . . – p.57/66
ABIs, linkers. . . – p.58/66
ABIs, linkers. . . – p.59/66
ABIs, linkers. . . – p.60/66
ABIs, linkers. . . – p.61/66
ABIs, linkers. . . – p.62/66
ABIs, linkers. . . – p.63/66
ABIs, linkers. . . – p.64/66
ABIs, linkers. . . – p.65/66
ABIs, linkers. . . – p.66/66
ABIs, linkers. . . – p.67/66
ABIs, linkers. . . – p.68/66