- May 23, 2020
-
-
Ahmed Abd El Mawgood authored
Normally one shouldn't be using this datatype ever, but then someone have to tell that to gcc folks :(
-
- May 22, 2020
-
-
Jeremy Soller authored
-
Jeremy Soller authored
-
Jeremy Soller authored
-
- May 21, 2020
-
-
Jeremy Soller authored
- May 13, 2020
-
-
Jeremy Soller authored
Binutils regressions See merge request redox-os/relibc!269
-
Ahmed Abd El Mawgood authored
There was a bug (also uncovered via binutils) where R_X86_64_DTPOFF64 is set uncorrectly. This program is the minimal reproducer of the seg fault #include <errno.h> int main() { int oerrno = errno; } But it works after the bug fix.
-
- May 08, 2020
-
-
Ahmed Abd El Mawgood authored
-
Ahmed Abd El Mawgood authored
-
Ahmed Abd El Mawgood authored
There was bug in printf where space paddings cause segfault, the problem was that it was pulled from the stack twice while it should be only done once.
-
Ahmed Abd El Mawgood authored
In patch 1182d120, I mistakingly added the size of the gap to the total size of the binary, which was not accurate. As the size of the binary was calculate by subtracting the upperbound from the lower bound, thus all gaps in the middle are taking into account.
-
- May 03, 2020
-
-
Jeremy Soller authored
Ld.so regressions See merge request redox-os/relibc!268
-
Ahmed Abd El Mawgood authored
This fixes a regression in gdb where sometimes it decides to ignore the first entry in the list.
-
Ahmed Abd El Mawgood authored
I noticed that the implementation is noth precise although it worked. and instead of using the sections to identify memory addresses of DT_DEBUG. I used segements
-
Ahmed Abd El Mawgood authored
Some ELFs can have gaps between the segments, this results in problems when mprotecting or when converting (addr + size) into rust slice. Motivated by this This patch will fill these gaps with mmaped addresses. In theory no real memory should be allocated because mmap is lazy allocator.
-
- May 02, 2020
-
-
Jeremy Soller authored
Wide strings Functions See merge request redox-os/relibc!267
-
- Apr 26, 2020
-
-
Ahmed Abd El Mawgood authored
-
Ahmed Abd El Mawgood authored
This patch implements wcscasecmp and wcsncasecmp. These two function are required for binutils to link against relibc.
-
Ahmed Abd El Mawgood authored
-
Ahmed Abd El Mawgood authored
This patch creates wctype.h and impelementat two functions that belong to that header file towupper and towlower. These functions are building blocks for wcscasecmp and wcsncasecmp which are utilized by binutils. The implementation for towlower and towupper seams to be complex so this implementation is mimicking that of musl libc
-
- Apr 24, 2020
-
-
Jeremy Soller authored
Implement #include<sys/user.h> and #include<sys/procfs.h> See merge request redox-os/relibc!266
-
Ahmed Abd El Mawgood authored
This patch implements sys/user.h file that works for both x86_64 as well as aarch64. This include file is used by sys/procfs.h which is needed dependency for binutils. There is bug in this patch in aarch64 implementation which is the lack of f128 implementation in rust, thus we can't create cbinding for long double.
-
- Apr 19, 2020
-
-
Jeremy Soller authored
Init fini ld.so See merge request redox-os/relibc!265
-
Ahmed Abd El Mawgood authored
Most shared object in linux have their initialization in a separate .init_array section. but glibc does not have the same behavour. Instead the initialization is part of crt0. which (as it seams to me) run after .init_array section. As such, this patch move IO initialization to separate function that is marked as .init_array member and then the crt0 call this function only if init_array was never invoked (as in statically linked binaries).
-
Ahmed Abd El Mawgood authored
This patch implements ld.so code that makes use of both .init_array and .fini_array. .init_array is fully utilized and is used in the correct manner. However .fini_array is not used yet although the function that runs .fini_array exists
-
Ahmed Abd El Mawgood authored
This patch implements tree-based data-structure for catching circular dependency where libA.so will depen on arbitrarily long chain (including zero length) of libNs.so one of which will depend on libA.so again. The main intention of this patch was merely capturing the dependency tree to prioterize which Elf's .init_array and which .fini_array should run first, but as a side effect it can capture circular dependencies as well.
-
- Apr 15, 2020
-
-
Jeremy Soller authored
Debugger support See merge request redox-os/relibc!263
-
Jeremy Soller authored
sigaction should set sigaction.sa_restorer See merge request redox-os/relibc!264
-
- Apr 14, 2020
-
-
Graham MacDonald authored
-
- Apr 13, 2020
-
-
Ahmed Abd El Mawgood authored
This patch makes use of the data structures and functions impelemented in the last patch to enable RTLD debugging protocol as per SVR4
-
Ahmed Abd El Mawgood authored
-
- Apr 10, 2020
-
-
Jeremy Soller authored
Remove vendored cbindgen, use cbindgen dependency to generate includes in build.rs See merge request redox-os/relibc!261
-
-
- Apr 07, 2020
-
-
Jeremy Soller authored
Use Kernel mapped binaries when available. See merge request redox-os/relibc!262
-
Ahmed Abd El Mawgood authored
At least in linux kernel, assuming that a.out is an elf that is linked against relibc's own ld.so. When a user attempts `./a.out`, Linux kernel will map `./a.out`, then map `ld.so` and jump into ld.so entry point. In relibc ld.so will simply ignore the kernel mapped a.out and create its own mapping. This patch forces relic ld.so to use the already mapped `a.out` when ever possible. This would normally have slight performance improvement (especially that currently relibc doesn't map a.out but instead copy the data into empty mmaped memory). The real motivation behind this patch is while impelemnting Runtime linker debugging protocol for relibc. part of the protocol is ld.so inseting address of some ld.so managed data structure into .dynamic seciton of a.out then the debugger would check it there. The thing is that debuggers have information about the kernel loaded ./a.out and they check that one specifically which is in our case totally ignored by relibc.
-
- Mar 30, 2020
-
-
Jeremy Soller authored
-
- Mar 25, 2020
-
-
Jeremy Soller authored
-
- Mar 19, 2020
-
-
Jeremy Soller authored
Weak symbols See merge request redox-os/relibc!260
-
- Mar 11, 2020
-
-
Jeremy Soller authored
-