Commit Graph

1736 Commits

Author SHA1 Message Date
Peter Limkilde Svendsen ee4f346ef0 Add docs and deprecations for time.h 2025-02-02 22:19:57 +01:00
Peter Limkilde Svendsen 85f01e8412 Add stubs for missing functions 2025-02-01 18:36:07 +01:00
Peter Limkilde Svendsen 26fdc200bf Add docs for unistd submodules 2025-02-01 18:07:51 +01:00
Peter Limkilde Svendsen 99e0948e0c Reexport ctermid, cuserid 2025-02-01 18:07:23 +01:00
Peter Limkilde Svendsen 5116c80d2f Reorder functions alphabetically 2025-02-01 17:34:20 +01:00
Peter Limkilde Svendsen bfde89c7cc Add docs and deprecations for unistd.h 2025-02-01 17:23:36 +01:00
Jeremy Soller e7a24b3f7f Merge branch 'sleep-intr' into 'master'
Make nanosleep and sleep handle interrupts correctly, plus fix alarm

See merge request redox-os/relibc!605
2025-01-31 21:10:15 +00:00
Ron Williams c528c0885f Make nanosleep and sleep handle interrupts correctly, plus fix alarm 2025-01-31 21:10:14 +00:00
Jeremy Soller 1871e8b08b Merge branch 'arpa-inet-docs' into 'master'
Add docs for arpa/inet.h, allow testing deprecated functions

See merge request redox-os/relibc!607
2025-01-31 21:09:42 +00:00
Peter Limkilde Svendsen b441916279 Add docs for dirent.h 2025-01-31 21:09:21 +00:00
Peter Limkilde Svendsen a285728610 Formatting 2025-01-30 21:35:43 +01:00
Peter Limkilde Svendsen f4c75e99cd Align function parameter names and types with POSIX 2025-01-30 21:35:11 +01:00
Peter Limkilde Svendsen b36ae4cab5 Reorder functions alphabetically 2025-01-30 21:23:54 +01:00
Peter Limkilde Svendsen 5ec734a672 Add docstrings and deprecations for arpa/inet.h 2025-01-30 21:19:20 +01:00
Josh Megnauth c458d3d7a2 Support arguments in shebang (#!) 2025-01-25 00:08:20 +00:00
Anhad Singh d3073fdad4 feat(ld.so): more debug info for scopes
When scopes is set for `LD_DEBUG`, more debug information is displayed
now,

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-01-19 00:11:51 +11:00
Anhad Singh 99449094d4 chore: formatting
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-01-19 00:03:07 +11:00
Anhad Singh 4a08220664 fix(ld.so): copy relocations
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-01-18 23:51:53 +11:00
Anhad Singh e3dc5d0617 chore(dso): remove unused members
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-01-18 21:20:10 +11:00
Anhad Singh 3440985729 fix(dso): 32-bit
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-01-15 21:32:40 +11:00
Anhad Singh 07ff79069e feat(ld.so): add support for DT_RELR
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-01-15 13:49:27 +11:00
Jeremy Soller a3c12e27e4 Fix build for i686 2025-01-14 18:01:26 -07:00
Jeremy Soller b011dbe366 Merge branch 'master' of https://gitlab.redox-os.org/redox-os/relibc 2025-01-14 12:24:38 -07:00
Jeremy Soller 5a69226af6 Fix compilation with new nightly 2025-01-14 12:24:33 -07:00
Anhad Singh b9e0505715 fix(ld.so): less locks
Acquire the global scope lock at the start of relocate.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-01-13 23:48:03 +11:00
Jeremy Soller 90f30c5f51 Make NulTerminated::new return option 2025-01-09 13:33:56 -07:00
Jeremy Soller af50d18d16 Return error instead of panic when load_library cannot find root DSO 2025-01-09 13:33:29 -07:00
Jeremy Soller 02520b194e Fix compilation with trace feature 2025-01-09 12:23:23 -07:00
Jeremy Soller 01d7f7b44a Fixup last commit 2025-01-09 10:22:28 -07:00
Jeremy Soller 431d55aa24 Add setlinebuf 2025-01-09 10:21:17 -07:00
Jeremy Soller 77d96541d9 Merge branch 'langinfo' into 'master'
Implement 'langinfo.h' and refactor strftime() to use langinfo constants

See merge request redox-os/relibc!599
2025-01-08 21:31:46 +00:00
Anhad Singh aae27c5e0c feat(ld.so): switch to object crate
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-01-08 16:50:47 +11:00
Anhad Singh e49072655c feat(ld.so): partially switch to object
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-01-08 16:50:10 +11:00
Anhad Singh e219f9768e feat(ld.so): GNU hash table
Note that the ELF specification mandates the presence of either the GNU
hash table or SysV hash table. See Figure 2-7. Dynamic Array Tags.

Also both can be present, though that is not currently handled.

BLAZINGLY FAST!

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2025-01-08 16:48:26 +11:00
Guillaume Gielly 420a902e2b Readd item constants... 2025-01-07 13:55:54 +01:00
Guillaume Gielly b0c45af008 Refactor langinfo module to use a static string table for constants 2025-01-07 13:47:05 +01:00
Guillaume Gielly b5b5bd2522 Support building with #![deny(unsafe_op_in_unsafe_fn)] 2025-01-05 23:02:04 +01:00
Guillaume Gielly cf106906b5 Code cleanup 2025-01-05 22:30:35 +01:00
Guillaume Gielly ffd5edd283 Add strptime() module and clean up unused strptime function 2025-01-05 20:10:50 +01:00
Guillaume Gielly ba225e2000 Refactor strftime() to use langinfo constants for locale-based formatting :
- replaced hardcoded day and month names with calls to nl_langinfo,
- integrated langinfo constants  DAY_1, ABDAY_1, MON_1, ABMON_1) for weekday and month names,
- used AM_STR and PM_STR for AM/PM strings in %p and %P specifiers,
- add comments.
2025-01-05 19:45:29 +01:00
Guillaume Gielly 770e768818 Implement 'langinfo.h' 2025-01-05 18:20:42 +01:00
Josh Megnauth 922878b22e fix: GNU seems to prefer its own glob.h
Make (and possibly other) GNU programs seem to prefer using its own
`glob.h`. For Make, its configure detects if GNU's glob then uses it if
it is OR compiles a bundled version if it's not.

Make fails to link now that we have `glob.h` (duplicated symbols).
2025-01-05 02:37:41 -05:00
Jeremy Soller 25b0da4876 Merge branch 'sigsetjmp_x64_implementation' into 'master'
Implement sigsetjmp and siglongjmp for X64

See merge request redox-os/relibc!478
2025-01-04 00:29:19 +00:00
Bendeguz Pisch 35a3efd936 Implement sigsetjmp and siglongjmp for X64 2025-01-04 00:29:19 +00:00
Darley Barreto c14b2cee4c Adding tzset, timezone awareness, and some tweaks 2025-01-02 20:19:34 +00:00
Jeremy Soller 94e264d253 Merge branch 'patch5' into 'master'
fix(ld.so): errors UB

See merge request redox-os/relibc!595
2025-01-01 14:18:37 +00:00
Anhad Singh bfe1c0b545 fix(ld.so): redox build
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2024-12-31 19:30:37 +11:00
Anhad Singh 01e6eda258 misc(dlfcn): cleanup
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2024-12-31 19:03:05 +11:00
Anhad Singh 42d884c6a3 fix(ld.so): errors UB
Currently, how ld.so errors are handled by functions in dlfcn is wrong.
dlopen calls `linker.load_library` which returns a
`Result<ObjectHandler, goblin::Error>`. Now `goblin::Error` may have
variants that are heap allocated. For example:
`Error::Malformed(format!("invalid path: '{}': {}", path, err))`. The
error string would be allocated by ld.so's allocator but will be dropped
inside libc. This is UB.

After this patch, we now return a custom `DlError` instead. To get more
information about the error, `LD_DEBUG=all` can be set.

Signed-off-by: Anhad Singh <andypython@protonmail.com>
2024-12-31 18:35:20 +11:00
Anhad Singh 9cf72fd0b2 feat(ld.so): add all option for LD_DEBUG
Signed-off-by: Anhad Singh <andypython@protonmail.com>
2024-12-31 18:00:45 +11:00