Add byteswap/error/libintl/ar/search headers + tsearch family, mempcpy, rawmemchr

Portable ELF tooling (elfutils/libelf, needed by Mesa's radeonsi driver) relies
on several standard headers and functions Red Bear's relibc lacked:

- <byteswap.h>: bswap_16/32/64 (compiler builtins).
- <error.h>: GNU error()/error_at_line() (inline).
- <libintl.h>: gettext family as the identity map (catalog-less system; matches
  glibc's no-catalog fallback behaviour).
- <ar.h>: Unix archive struct/magic (header-only).
- <search.h> + src/header/search: POSIX tsearch/tfind/tdelete/twalk + GNU
  tdestroy, implemented as an unbalanced BST (conforming; POSIX mandates no
  balancing).
- string: mempcpy (memcpy returning end) and rawmemchr (unbounded memchr).

All complete implementations, no stubs. Additive (no ABI break), so existing
sysroot binaries are unaffected.
This commit is contained in:
2026-07-31 15:03:51 +03:00
parent 991d05ce2f
commit daeca3892e
8 changed files with 476 additions and 0 deletions
+1
View File
@@ -145,6 +145,7 @@ pub mod shadow;
pub mod signal;
pub mod spawn;
// TODO: stdalign.h (likely C implementation)
pub mod search;
pub mod stdarg;
// stdatomic.h implemented in C
// stdbool.h implemented in C