- Jun 05, 2023
-
-
- Jul 27, 2022
-
-
Nagy Tibor authored
-
- Jan 03, 2021
-
-
8tab authored
Instead of a single source of symbols, now linker keeps a list of DSO (former Library) objects with their own symbols map. That helps to process R_X86_64_COPY relocations correctly. For example, if 'a.out' executable with dependencies ['libstdc++.so', 'libc.so'] is being loaded and 'a.out' uses 'stdout' symbol from 'libc.so', its relocation process goes as follows: - linker processes relocation entry 'stdout' of type R_X86_64_GLOB_DAT from 'libc.so', - it goes through object list ['a.out', 'libstdc++.so', 'libc.so'] to find first object that exports 'stdout' symbol. The symbol is in 'a.out' with the value e.g. '0x404070', - linker sets 'stdout' symbol GOT entry in 'libc.so' to '0x404070', .... - linker processes relocation entry 'stdout' of type R_X86_64_COPY from 'a.out', - it goes through object list excluding 'a.out': ['libstdc++.so', 'libc.so']. The symbol is found in 'libc.so', - linker copies the 'stdout' symbol content from 'libc.so' to memory at address '0x404070' (in 'a.out' object). Objects are relocated in reverse order they were loaded. So in the example above, linker starts with relocating 'libc.so' and ends with 'a.out'. It is necessary e.g. when linking with 'libstdc++.so' - there are many relocations which symbols are found in 'libstdc++.so', so they need to be resolved before their contents are copied to 'a.out'. That also matches GNU ld.so behavior.
-
- Jul 07, 2019
-
-
Jeremy Soller authored
-
- Jun 26, 2019
-
-
jD91mZM2 authored
-
- Mar 28, 2019
-
-
Jeremy Soller authored
-
- Jan 15, 2019
-
-
Jeremy Soller authored
-
Jeremy Soller authored
-
- Jan 06, 2019
-
-
Jeremy Soller authored
-
- Nov 25, 2018
-
-
Jeremy Soller authored
-
Jeremy Soller authored
-
- Nov 17, 2018
-
-
Jeremy Soller authored
-
- Oct 02, 2018
-
-
jD91mZM2 authored
-
- Sep 19, 2018
-
-
Jeremy Soller authored
-
- Sep 18, 2018
-
-
Jeremy Soller authored
- clean up trace macro some
-
Jeremy Soller authored
-
jD91mZM2 authored
-
Jeremy Soller authored
-
- Sep 17, 2018
-
-
Jeremy Soller authored
-
- Sep 05, 2018
-
-
jD91mZM2 authored
-
- Aug 26, 2018
-
-
Jeremy Soller authored
-