summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2019-04-28README: fix silliness imported from libucontextA. Wilcox1-8/+3
2019-04-28README: syntax fixesA. Wilcox1-8/+8
2019-04-28Finally use an Adélie style README hereA. Wilcox2-69/+232
2019-04-08malloc: Add mtrace and muntrace stubsA. Wilcox2-1/+18
2019-02-19Merge branch 'patch-5' into 'master' A. Wilcox1-4/+6
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
2019-02-18pthread: Fix pthread_getname_npSamuel Holland1-4/+6
Remove the trailing newline, and ensure the string returned is always null-terminated. Signed-off-by: Samuel Holland <samuel@sholland.org>
2019-01-08Merge branch 'patch-4' into 'master' A. Wilcox6-23/+71
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
2019-01-05Fix compatibility with Linux 4.17+Samuel Holland2-1/+2
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>
2019-01-05pthread: Implement pthread_getname_npSamuel Holland2-1/+29
Signed-off-by: Samuel Holland <samuel@sholland.org>
2019-01-05Makefile: Detect and link an obstack librarySamuel Holland2-3/+20
Signed-off-by: Samuel Holland <samuel@sholland.org>
2019-01-05Makefile: Clean up compiler invocationsSamuel Holland1-9/+11
- 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>
2019-01-05run clang-format on the source codeSamuel Holland1-1/+1
Signed-off-by: Samuel Holland <samuel@sholland.org>
2019-01-05Makefile: depend on internal.h; format headersSamuel Holland3-11/+11
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-11-12wchar: Implement __wcstol_internalA. Wilcox2-0/+17
2018-09-21Release 0.3.00.3.0A. Wilcox1-1/+5
2018-09-21Merge branch 'patch-3' into 'master' A. Wilcox14-24/+177
Add some more functions (notably __cxa_thread_atexit_impl and realpath) and run clang-format See merge request !3
2018-09-11libgcompat: Fix formatting inconsistencies (clang-format)Samuel Holland6-24/+21
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-09-11unistd: Add __open_2 and its __open64_2 aliasSamuel Holland2-0/+14
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-09-11stdlib: Add secure_getenv alias to __secure_getenvSamuel Holland2-0/+9
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-09-11readlink: Report EIO on /proc read failureSamuel Holland2-0/+2
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-09-11realpath: Intercept realpath(/proc/self/exe)Samuel Holland3-2/+55
Reuse the machinery from readlink Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-09-11readlink: Report ENOSYS on dlsym failureSamuel Holland2-0/+8
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-09-11ctype: Add __ctype_bSamuel Holland3-0/+8
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-09-11cxx_thread: Add __cxa_thread_atexit_implSamuel Holland3-0/+62
Signed-off-by: Samuel Holland <samuel@sholland.org>
2018-07-08Merge branch 'master' into 'master' A. Wilcox2-0/+36
string: add memfrob and strfry This adds two missing glibc string functions. See merge request !2
2018-06-21string: add memfrob and strfryJason A. Donenfeld2-0/+36
2018-06-13string: add __strcspn_c2A. Wilcox2-0/+23
2018-06-13resolv: add __res_search aliasA. Wilcox2-0/+12
2018-04-03Update changelogElizabeth Myers1-0/+6
2018-04-03malloc: add malloc_trim functionElizabeth Myers1-0/+6
2018-04-03Fix stupid blunder in the changelogElizabeth Myers1-0/+5
2018-04-03socket: fix buildElizabeth Myers1-0/+1
2018-04-03Update changelogElizabeth Myers1-1/+1
2018-04-03socket: __poll_chkElizabeth Myers1-0/+13
2018-04-03Fix silly type in Contribution GuideA. Wilcox1-2/+2
2018-04-03Update CHANGELOGA. Wilcox1-0/+6
2018-04-03math: implement most of glibc's __*_finite functionsElizabeth Myers1-2/+1090
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.
2018-04-03GCOMPAT__assert_with_reason: omit format parameterElizabeth Myers1-2/+2
__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).
2018-03-16README: document WITH_LIBUCONTEXT variableWilliam Pitcock1-6/+7
2018-03-16CHANGELOG: note libucontext supportWilliam Pitcock1-0/+9
2018-03-16build: allow building with libucontext supportWilliam Pitcock2-2/+13
2018-02-23gnulib: use GCOMPAT__assert_with_reason() instead of bare assert()William Pitcock1-2/+10
2018-02-23libgcompat: add internal api for GCOMPAT__panic().William Pitcock3-0/+33
2018-02-20CHANGELOG: update for 0.2.00.2.0A. Wilcox1-1/+9
2018-02-15CONTRIBUTING: gcompat development is actually gcompat@lists.adelielinux.org nowWilliam Pitcock1-1/+1
2018-02-08loader: quiet some valgrind warningsWilliam Pitcock1-3/+3
2018-02-07misc: implement __libc_stack_endWilliam Pitcock1-0/+2
2018-02-07loader: gracefully handle user-exec of the ELF interpreter itselfWilliam Pitcock1-0/+12
2018-02-01socket: add __cmsg_nxthdrA. Wilcox2-0/+16
2018-02-01malloc: add __sbrkA. Wilcox2-0/+12