summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-04-13Provide fixups for riscv32.Dmitry Chestnykh
- Use TIME64 by default for rv32, usage of 32-bit time leads to a lot of incompatibilities with linux kernel 6.6.x and later versions. - Add some other corrections to use proper system calls on riscv32 platform. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-04-01riscv64: partially revert cb9d1f53717dd67892ba943626f3d1b46f3e760b, fixes no ↵Waldemar Brodkorb
MMU ELF
2024-03-29riscv32: implement linuxthreads, from sorearWaldemar Brodkorb
2024-03-28libm: fix nexttoward failures, fixed by sorearWaldemar Brodkorb
2024-03-28riscv64: implement Linuxthreads, from sorearWaldemar Brodkorb
2024-03-27bump version for 1.0.47 releasev1.0.47Waldemar Brodkorb
2024-03-27riscv: add __UCLIBC_ABORT_INSTRUCTION__, suggested by sorearWaldemar Brodkorb
2024-03-22riscv: fix pread64/pwrite64 users like git, suggested by sorearWaldemar Brodkorb
2024-03-20riscv64: enable CTORS, fixes C++ applications, found by sorearWaldemar Brodkorb
2024-03-20riscv32: sync with riscv64Waldemar Brodkorb
2024-03-19riscv64: add atomic.h, fixes tst-cond16, suggested by sorearWaldemar Brodkorb
2024-03-19riscv64: clone behaves like on aarch64, fixes tst-basic3, reported by sorearWaldemar Brodkorb
2024-03-19riscv64: sync with glibc clone.SWaldemar Brodkorb
2024-03-19riscv64: page size is 4096, reported by sorearWaldemar Brodkorb
2024-03-19riscv64: sync with glibc, fix all TLS errors in uClibc-ng-testWaldemar Brodkorb
2024-03-12add explicit_bzero from muslWaldemar Brodkorb
2024-03-12add reallocarray from muslWaldemar Brodkorb
2024-03-07libpthread/linuxthreads: add missing string.h include in condvar.cMarcus Haehnel
Quelches a compiler warning by that memset was implicitly declared.
2024-03-07libpthread: Remove no longer valid attribute_unusedMarcus Haehnel
The variable is used since 04a676f3c8d2443499f27612f69ee88e12089e61.
2024-03-04bump version for 1.0.46 releasev1.0.46Waldemar Brodkorb
2024-03-04update MAINTAINERSWaldemar Brodkorb
2024-03-04libm/w_j0f.c: Call correct ieee754 functionMarcus Haehnel
The j0f implementation should, like the other float implementations, call the __ieee754_y0 variant for doubles. A float variant is not declared and leads to a compile error on c99 builds.
2024-03-03x86: enable time64Waldemar Brodkorb
2024-03-03m68k: enable time64Waldemar Brodkorb
2024-03-03superh: enable time64Waldemar Brodkorb
2024-03-03microblaze: enable time64Waldemar Brodkorb
2024-03-03riscv32: add basic support for NPTLWaldemar Brodkorb
2024-03-03riscv32: add ldso support, enable time64.Waldemar Brodkorb
2024-03-03riscv32: decouple from riscv64Waldemar Brodkorb
2024-03-03remove symlinkWaldemar Brodkorb
2024-03-02Add time64 support to ARC.Dmitry Chestnykh
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-03-01libc: Remove 32bit timespec structures everywhere.Dmitry Chestnykh
With time64 enabled we use statx() system call and the appropriate routines for results conversion. There is no need in `__ts32_struct` anymore. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-02-29libc: restore correct definition of semid_ds struct.Dmitry Chestnykh
Previously the common definition of this structure was broken by a mistake. Restore it correctly for all needed architectures and all use cases. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-02-29Add time64 support for sparc.Dmitry Chestnykh
By some reason sparc ld.so cannot work properly with statx() system call, so fallback to regular stat() family in ld.so. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-02-28Add time64 support to OpenRISC.Dmitry Chestnykh
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-02-28libc: Pass 64bit-only time structures to syscalls.Dmitry Chestnykh
With time64 enabled we need to pass structure which consists of two 64bit fields to clock_gettime64() and clock_nanosleep_time64() syscalls with proper conversion to regular timespec structure after syscall execution. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-02-28libc: always redirect *stat() family to statx() with time64 enabled.Dmitry Chestnykh
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-02-28ldso: Use statx() when time64 is enabled.Dmitry Chestnykh
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-02-27Fix *stat() and *stat64() when the time is beyond year 2038.Dmitry Chestnykh
To obtain correct `st_atim`, `st_mtim` and `st_ctim` fields we need to use statx() syscall and then convert the data from the kernel to the regular stat structure. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-02-26Add time64 support for MIPS32.Dmitry Chestnykh
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-02-26Refactor `ts32_struct` and `TO_ITS64_P`.Dmitry Chestnykh
- Renamed `ts32_struct` to `__ts32_struct` like `__ts64_struct` and moved its definition to the header. - Removed extra space from TO_ITS64_P() macro. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-02-25Add time64 support for PowerPC.Dmitry Chestnykh
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-02-25Add support for using time64 on big-endian machines.Dmitry Chestnykh
For BE architectures there is one significant difference in comparison with time64 support for little-endian architectures like ARMv7. The difference is that we strictly need to pass two 64bit values to system calls because Linux Kernel internally uses `struct __kernel_timespec` and similar, which consists of two 64bit fields. For this reason many files have been changed to convert pointers to timespec-family structures (mixed of 64bit and 32bit values) to the pointer of the similar but 64bit-only structures for using as system calls args. This is general prerequisite for any BE architecture. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-02-25Remove unneeded comparisons.Dmitry Chestnykh
Inside `if` branches the conditions `as->ino == bs->ino` and `as->dev == bs->dev` are always false. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-02-25ldso: Remove unneeded semicolons.Dmitry Chestnykh
We use semicolons in the place of `DL_RELOCATE_RELR()` and `DL_DO_RELOCATE_RELR()` 'calling' so the semicolon in the macro definition leads to semicolon duplication after preprocessing. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-02-22xtensa: Add time64 support.Dmitry Chestnykh
- xtensa is the second architecture that supports time64 inside uClibc-ng. - Linux Kernel always uses 32bit time variables inside `stat` structures, so there is a need to use `st_atime`, `st_mtime` and `st_ctime` structures with the same 32bit-wide `tv_sec` and `tv_nsec` variables even if time64 is enabled. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-02-22Introduce time64 support.Dmitry Chestnykh
This patch introduces *time64 syscalls support for uClibc-ng. Currently the redirection of syscalls to their *time64 analogs is fully supported for 32bit ARM (ARMv5, ARMv6, ARMv7). The main changes that take effect when time64 feature is enabled are: - sizeof(time_t) is 8. - There is a possibility os setting date beyond year 2038. - some syscalls are redirected: clock_adjtime -> clock_adjtime64 clock_getres -> clock_getres_time64 clock_gettime -> clock_gettime64 clock_nanosleep -> clock_nanosleep_time64 clock_settime -> clock_settime64 futex -> futex_time64 mq_timedreceive -> mq_timedreceive_time64 mq_timedsend -> mq_timedsend_time64 ppoll -> ppoll_time64 pselect6 -> pselect6_time64 recvmmsg -> recvmmsg_time64 rt_sigtimedwait -> rt_sigtimedwait_time64 sched_rr_get_interval -> sched_rr_get_interval_time64 semtimedop -> semtimedop_time64 timer_gettime -> timer_gettime64 timer_settime -> timer_settime64 timerfd_gettime -> timerfd_gettime64 timerfd_settime -> timerfd_settime64 utimensat -> utimensat_time64. - settimeofday uses clock_settime (like in glibc/musl). - gettimeofday uses clock_gettime (like in glibc/musl). - nanosleep uses clock_nanosleep (like in glibc/musl). - There are some fixes in data structures used by libc and kernel for correct data handling both with and without enabled time64 support. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-02-20Replace null subtraction with castSven Linker
Clang warns about null-pointer subtractions, which are undefined behavior per the C standards. Replace the subtractions with explicit casts to `uintptr_t`.
2024-02-20libc: Fix some unused parameter warningsSven Linker
2024-02-20Remove duplicate semicolonsMarcus Haehnel
While they are not a problem per-se they cause issues with some tooling (such as clang coverage) and are confusing to the reader.