Age | Commit message (Collapse) | Author |
|
any longer
|
|
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>
|
|
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>
|
|
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
|
|
- 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>
|
|
- 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>
|
|
Remove ^L (0x0c) chars from source code.
Signed-off-by: Petr Vorel <petr.vorel@gmail.com>
|
|
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>
|
|
|
|
- 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>
|
|
MMU ELF
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Quelches a compiler warning by that memset was implicitly declared.
|
|
The variable is used since 04a676f3c8d2443499f27612f69ee88e12089e61.
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
|
|
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>
|
|
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>
|
|
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>
|
|
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
|
|
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>
|
|
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
|
|
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
|
|
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>
|
|
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
|
|
- 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>
|