- Mar 12, 2024
-
-
- Mar 04, 2024
-
-
- Mar 01, 2024
-
-
- Feb 08, 2024
-
-
Jeremy Soller authored
-
- Jan 17, 2024
-
-
- Jan 03, 2024
-
-
- Nov 12, 2023
-
-
Jacob Lorentzon authored
-
Jacob Lorentzon authored
-
- Oct 20, 2023
-
-
- Oct 19, 2023
-
-
- Aug 21, 2023
-
-
- Jun 01, 2023
-
-
Jeremy Soller authored
-
- May 22, 2023
-
-
- May 11, 2023
-
-
-
Jeremy Soller authored
-
- May 09, 2023
-
-
- May 08, 2023
-
-
- May 06, 2023
-
-
Jacob Lorentzon authored
-
Jacob Lorentzon authored
-
Ron Williams authored
-
- Dec 17, 2022
-
-
Jeremy Soller authored
-
Jeremy Soller authored
-
- Mar 02, 2021
-
-
Jeremy Soller authored
-
- Feb 23, 2021
-
-
Peter Limkilde Svendsen authored
-
- Jan 05, 2021
- 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.
-
- Oct 01, 2020
-
-
8tab authored
* load TLS segment for executable - while we can skip PT_LOAD for executable, we still have to load TLS segment. * set TCB address based on if elf is position independent
-
- Sep 30, 2020
-
-
8tab authored
-
- Sep 29, 2020
-
-
8tab authored
-
- Jul 30, 2020
-
- Jul 08, 2020
-
-
Wren Turkal authored
This function is used to set the orientation of a stream to either byte-oriented or wchar-oriented. More info on this function is here: https://man7.org/linux/man-pages/man3/fwide.3p.html This implementation only impmlemnts the manual switching and does not yet guard against using a byte-oriented stream with wchar functions and vice versa. Those step will come in additional commits. Signed-off-by:
Wren Turkal <wt@penguintechs.org>
-
- Jun 23, 2020
-
-
Peter Limkilde Svendsen authored
-
- Jun 22, 2020
-
-
- Jun 03, 2020
-
-
Ahmed Abd El Mawgood authored
-
- May 23, 2020
-
-
Ahmed Abd El Mawgood authored
-
Ahmed Abd El Mawgood authored
-
Ahmed Abd El Mawgood authored
-
Ahmed Abd El Mawgood authored
-