Proceedings of the 2016 ACM SIGPLAN International Conference on Object-Oriented Programming, Systems, Languages, and Applicatio 2016
DOI: 10.1145/2983990.2983996
|View full text |Cite
|
Sign up to set email alerts
|

The missing link: explaining ELF static linking, semantically

Abstract: Beneath the surface, software usually depends on complex linker behaviour to work as intended. Even linking hello _ world.c is surprisingly involved, and systems software such as libc and operating system kernels rely on a host of linker features. But linking is poorly understood by working programmers and has largely been neglected by language researchers. In this paper we survey the many use-cases that linkers support and the poorly specified linker speak by which they are controlled: metadata in object file… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
15
0

Year Published

2017
2017
2022
2022

Publication Types

Select...
4
3
1

Relationship

1
7

Authors

Journals

citations
Cited by 16 publications
(15 citation statements)
references
References 25 publications
0
15
0
Order By: Relevance
“…OS kernel subsystems and formats are additional formalization targets: Bishop et al (2006) and Bishop et al (2018) defined and validated executable specifications in HOL4 for the TCP/IP stack, and Kell et al (2016) formalized the ELF binary format in HOL4 for executables used in Unix-like operating systems such as Linux.…”
Section: Proof Engineering For Program Verificationmentioning
confidence: 99%
“…OS kernel subsystems and formats are additional formalization targets: Bishop et al (2006) and Bishop et al (2018) defined and validated executable specifications in HOL4 for the TCP/IP stack, and Kell et al (2016) formalized the ELF binary format in HOL4 for executables used in Unix-like operating systems such as Linux.…”
Section: Proof Engineering For Program Verificationmentioning
confidence: 99%
“…The current paper demonstrates that GCC builtins are used more frequently than inline assembly, which provides even stronger incentives to implement support by C tools. Other studies focused on the role of linkers [20] and the preprocessor [13]. C projects are often built using Makefiles, whose feature usage has also been investigated [29].…”
Section: Related Workmentioning
confidence: 99%
“…Linker. Kell et al studied the semantic role of linkers in C [34]. As with inline assembly, linker features are used in C programs, but transcend the language.…”
Section: Related Workmentioning
confidence: 99%