- Jun 17, 2021
-
-
Jacob Lorentzon authored
-
- May 10, 2021
-
-
Jeremy Soller authored
-
- Apr 29, 2021
-
-
Jeremy Soller authored
-
- Mar 23, 2021
-
-
Peter Limkilde Svendsen authored
-
- Mar 17, 2021
-
-
Jeremy Soller authored
-
- Mar 12, 2021
-
-
Noah authored
-
- Feb 28, 2021
-
-
Jeremy Soller authored
-
- Feb 27, 2021
-
-
Jeremy Soller authored
-
- Feb 18, 2021
-
-
Peter Limkilde Svendsen authored
-
- Feb 14, 2021
-
-
Jeremy Soller authored
-
- Jan 18, 2021
-
-
Robin Randhawa authored
-
- Jan 14, 2021
-
-
8tab authored
-
8tab authored
BufWriter has more capacity (8k vs 1k) and doesn't flush the stream after '\n'. That change helps to reduce the number of syscalls, especially when dealing with text files. Since BufWriter has a different way of getting number of pending elements than LineWriter - Pending trait was introduced to deal with that.
-
- Jan 11, 2021
-
-
Jeremy Soller authored
-
Jeremy Soller authored
-
- Jan 05, 2021
- Jan 03, 2021
-
-
8tab authored
inner_scanf prematurely exited before parsing collected string
-
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.
-
- Dec 24, 2020
-
-
Jeremy Soller authored
-
Jeremy Soller authored
-
Jeremy Soller authored
-
- Dec 23, 2020
-
-
Jeremy Soller authored
-
Jeremy Soller authored
-
Jeremy Soller authored
-
Jeremy Soller authored
-
Jeremy Soller authored
-
- 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
- Sep 29, 2020
- Sep 17, 2020
-
-
Peter Limkilde Svendsen authored
-
Peter Limkilde Svendsen authored
-
Peter Limkilde Svendsen authored
-
- Sep 10, 2020
-
-
Peter Limkilde Svendsen authored
-
Jeremy Soller authored
-
- Aug 27, 2020
-
-
Peter Limkilde Svendsen authored
-