summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-04-20x86: Fix __libc_sigaction implementation.Dmitry Chestnykh
For x86 we have to copy only mask, handler and flags. We haven't set SA_RESTORER bit in sa_flags anyway. This patch fixes multiple test failures on x86. Also we have to build uClibc with FP for x86 because without FP NPTL and libgcc code cannot properly unwind the stack during asynchronous cancellation of system calls. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-04-20remove shared FLAT support from menuconfig, not supported by Linux kernel ↵Waldemar Brodkorb
any longer
2024-04-20Switch x86 NPTL impl to generic C code.Dmitry Chestnykh
The asm code has high maintainance cost. The cost is extremely high if we take into consideration time64 implementation which implies operating with 64bit numbers on 32bit system. Also glibc uses mainly C in NPTL code. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-04-18aarch64: Apply relocations to use TLS GD access model.Dmitry Chestnykh
In aarch64 when the general dynamic access model is used for tls data the linker emits two dynamic relocs (R_AARCH64_TLS_DTPMOD(64) and R_AARCH64_TLS_DTPREL(64)) that must be applied by ld.so during object loading. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-04-18Add vDSO support for aarch64.Dmitry Chestnykh
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-04-18Generalize vDSO code.Dmitry Chestnykh
- Add macroses for vDSO functions names because in some architectures these names differ from the default ones. - Add header guards in dl-syscalls.h . Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-04-18Fix vDSO support for all supported architectures.Dmitry Chestnykh
- Cleanup dl-vdso.c code. - Pass `void *` as first arg to `load_vdso()`, using 32-bit type is completely wrong on 64bit architectures. - Split libc code and vDSO-related code. Move arch-specific implementations into separate files. The performance improvement is for example 50-60 times on ARMv7 and about 4 times on x86_64. Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
2024-04-14tree: Remove ^LPetr Vorel
Remove ^L (0x0c) chars from source code. Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
2024-04-14libuargp: restrict compatibility macros in argp.h onlyYao Zi
Macros __attribute__, __format__ and __printf__ are defined in argp.h for compatibility with ANSI and old gccs. But leaving them effective out of the scope of the header may break applications relying on these compiler attributes even with __STRICT_ANSI__ defined. So undef the macros after using. Signed-off-by: Yao Zi <ziyao@disroot.org> Reviewed-by: Petr Vorel <petr.vorel@gmail.com>
2024-04-14riscv32: allow ELF PIE noMMU buildWaldemar Brodkorb
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>