Age | Commit message (Collapse) | Author |
|
add two ioctls to get and set struct epoll_params to allow users to
control epoll based busy polling of network sockets.
added to uapi in commit 18e2bf0edf4dd88d9656ec92395aa47392e85b61 (Linux
kernel 6.9 and newer).
Signed-off-by: Joe Damato <jdamato@fastly.com>
|
|
Make _init and _fini hidden so that references to these symbols bind
locally in the shared objects. glibc does the same.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
|
Starting with gcc-13 the compiler provides configuration-specific macro
definitions for the target xtensa core. Use them when available instead
of the configuration overlay file xtensa-config.h
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
|
linuxthreads use a helper function to invoke signal handlers, this
function needs stack unwinding information to enable stack unwinding
from signal handlers over signal frames.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
|
GCC-14 raises `-Wint-conversion` error
if lvalues are of pointer types and rvalues
are of integer types.
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
|
|
Commit 48591e2a259d84247ae38f050bd58e6f7450bb77 forgot to update utime.c
resulting in the following riscv32 build failure with applications using
utime such as bzip2:
/home/buildroot/autobuild/instance-0/output-1/host/riscv32-buildroot-linux-uclibc/bin/ld.real: bzip2.o: in function `copyFileName':
bzip2.c:(.text+0x1fcc): undefined reference to `utime'
Fixes: 48591e2a259d84247ae38f050bd58e6f7450bb77
- http://autobuild.buildroot.org/results/2e37d4e0bcef515fe9e643737419bfd26aa2833e
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
|
|
The correct one is `struct ucontext` -> `ucontext_t`.
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
|
|
The correct typedef is `struct ucontext` -> `ucontext_t`,
not `struct ucontext_t` -> `ucontext_t` like for other architectures.
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
|
|
Add missing includes and function decls.
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
|
|
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
|
|
This reverts commit 6b6f51c21dd29685bd1339de0bdffc0929316c63.
|
|
- Include sys/types.h instead of asm/types.h
to prevent types conflict for uClibc typedefs and kernel headers
typedefs.
- Cast 3rd arg of utimensat_time64 syscall to integer type
to avoid compiler's -Wint-conversion error. The error was found
during uClibc compilation for mips32.
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
|
|
The commit 74ca8d6f5d2e ("remove UCLIBC_HAS_LFS") removed conditional
compilation dependent on __UCLIBC_HAS_LFS__, assuming it to be always
defined, but removed the wrong branch in the definition of
kernel_stat64.
Fix kernel_stat64 definition to be stat64.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
Tested-by: Chris Packham <judge.packham@gmail.com>
|
|
Check that the size passed to memalign() is not greater than PTRDIFF_MAX
before adjusting it, otherwise it may wrap around in the adjustment.
This fixes gcc testsuite test gcc.dg/torture/pr60092.c
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
|
|
|
|
|
With gcc-14 warnings caused by type mismatches turn to errors:
- got_entry is a pointer in the _dl_linux_resolver(), but the function
_dl_linux_resolver() returns unsigned long. Convert got_entry to
unsigned long when returning
- first argument of _dl_funcdesc_for() is a pointer, but (symbol_addr +
reloc_value) is unsigned long in the _dl_do_reloc(). Convert function
argument to (void *)
- struct funcdesc_value::entry_point is a pointer, but DL_RELOC_ADDR
returns ElfW(Addr). Convert DL_RELOC_ADDR result to (void *) before
assigning to funcdesc_value::entry_point
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
|
With gcc-14 warnings caused by type mismatches turn to errors:
- (void **) needs explicit conversion operator to become
struct funcdesc_value **entry
- both subexpressions of the ternary operator must be pointers
- %p should be used instead of %x to print a pointer
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
|
With gcc-14 warnings caused by type mismatches turn to errors:
- iconv_t is not a pointer type, convert the result directly to iconv_t
in combine_to_from()
- unsigned int is not the same as wchar_t, use temporary wchar_t wc as
an argument for utf8dec_wchar()
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
|
|
|
|
|
|
|
This function haven't have prologue/epilogue/cfi directives etc.
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
|
|
Glibc and musl both defines this macro.
Glibc defines it for 64-bit time_t on 32-bit arch
and for 64-bit architectures.
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
|
|
Make rule that announces and makes static libc archive can generate
command line that is too long when a full path O= option is used. That
breaks the build with the following message:
make: /bin/sh: Argument list too long
Use make $(file) construct to generate file list file and use that file
as $(AR) argument instead.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
|
When building libc out-of-tree *context functions cannot find generated
header ucontext_i.h:
libc/sysdeps/linux/xtensa/setcontext.S:19:10:
fatal error: ucontext_i.h: No such file or directory
Fix that by adding include path to the build directory with that file to
the compiler flags.
Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
|
|
Signed-off-by: Dmitry Chestnykh <dm.chestnykh@gmail.com>
|
|
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>
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|