- 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
-
- May 08, 2020
-
-
Ahmed Abd El Mawgood authored
-
- Apr 26, 2020
-
-
Ahmed Abd El Mawgood authored
-
Ahmed Abd El Mawgood authored
-
- Apr 14, 2020
-
-
Graham MacDonald authored
-
- Jan 13, 2020
-
-
Graham MacDonald authored
-
- Nov 14, 2019
-
-
- Sep 18, 2019
-
-
AdminXVII authored
-
- Sep 16, 2019
-
-
AdminXVII authored
-
- Sep 13, 2019
-
-
AdminXVII authored
-
- Aug 17, 2019
-
-
Steve McKay authored
libiconv expects program_invocation_name to be an lvalue
-
- Aug 11, 2019
-
-
AdminXVII authored
-
- Aug 04, 2019
-