Age | Commit message (Collapse) | Author | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
pthread: Fix pthread_getname_np
Remove the trailing newline, and ensure the string
returned is always null-terminated.
Signed-off-by: Samuel Holland <samuel@sholland.org>
See merge request !5
|
|
Remove the trailing newline, and ensure the string
returned is always null-terminated.
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
|
New kernel compatibility; obstack; pthread_getname_np
The gcompat loader compiled as a static binary doesn't work on Linux since [a4ff8e8620d3f4](https://github.com/torvalds/linux/commit/a4ff8e8620d3f4f50ac4b41e8067b7d395056843), failing with an error like:
```
[349055.473655] 13325 (cmake): Uhuuh, elf segment at 0000000000400000 requested but the memory is mapped already
```
This is because the actual binary we want to run is also loaded at 0x400000. While it's actually okay to overlap the binary, since we're going to call `execve` again, the kernel doesn't allow the overlap anymore. Fix that by compiling the loader as static PIE, so it can be put at a different address.
Also add `pthread_getname_np` and the option to link `obstack`.
See merge request !4
|
|
The gcompat loader compiled as a static binary doesn't work on Linux
since commit a4ff8e8620d3f4, failing with the error:
```
Uhuuh, elf segment at 0000000000400000 requested but the memory is mapped already
```
This is because the binary we are the ELF interpreter for is also loaded
at 0x400000. While it's actually okay to overlap the binary, since we're
going to call `execve` again, the kernel doesn't allow the overlap
anymore. Fix that by compiling the loader as static PIE, so it can be
loaded at a different address.
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
|
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
|
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
|
- Respect user CFLAGS and LDFLAGS consistently.
- Consistent use of curly braces for variables over parentheses.
- Sort flags, putting '-o' at the end for readability of `make` output.
- -fPIE doesn't mean anything to the linker
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
|
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
|
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
|
|
|
|
|
Add some more functions (notably __cxa_thread_atexit_impl and realpath) and run clang-format
See merge request !3
|
|
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
|
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
|
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
|
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
|
Reuse the machinery from readlink
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
|
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
|
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
|
Signed-off-by: Samuel Holland <samuel@sholland.org>
|
|
string: add memfrob and strfry
This adds two missing glibc string functions.
See merge request !2
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
These are supposed to be specialisations for speed, but these are just
faked. Some warnings were added too, if they return infinite values.
As a side effect of this change, scalbl is also now implemented.
As noted, not all functions are implemented; the big two blockers are an
implementation of j0l and y0l; I imagine Bessel functions aren't too
widely used, so I doubt that many things will want them. Someone (not
it) can implement them later.
|
|
__VA_ARGS__ expects one or more arguments; this is a cheesy hack to
allow passing only a format string (which is often all you need for
small asserts).
|
|
|