Hi,
I'm looking at adding GCC14 to crosstool-ng. I've grabbed the latest uClibc-ng tarball and the commits from master that address some issues already but I'm currently hitting the following error on a arc-multilib-linux-uclibc configuration.
[ALL ] libc/sysdeps/linux/common/fstat64.c: In function 'fstat64': [ERROR] libc/sysdeps/linux/common/fstat64.c:33:38: error: passing argument 2 of '__syscall_fstat64' from incompatible pointer type [-Wincompatible-pointer-types] [ALL ] 33 | return __syscall_fstat64(fd, buf); [ALL ] | ^~~ [ALL ] | | [ALL ] | struct stat64 * [ALL ] In file included from ./include/sys/syscall.h:34, [ALL ] from libc/sysdeps/linux/common/fstat64.c:10: [ALL ] libc/sysdeps/linux/common/fstat64.c:18:72: note: expected 'struct stat *' but argument is of type 'struct stat64 *' [ALL ] 18 | int, filedes, struct kernel_stat64 *, buf) [ALL ] | ~~~~~~~~~~~~~~~~~~~~~~~~^~~ [ALL ] ./include/bits/syscalls-common.h:82:43: note: in definition of macro 'C_DECL_ARGS_1' [ALL ] 82 | #define C_DECL_ARGS_1(t, v) t v [ALL ] | ^ [ALL ] ./include/bits/syscalls-common.h:98:11: note: in expansion of macro 'C_DECL_ARGS_2' [ALL ] 98 | type name(C_DECL_ARGS_##nargs(args)) { | ^~~~~~~~~~~~ [ALL ] ./include/bits/syscalls-common.h:141:41: note: in expansion of macro 'SYSCALL_FUNC' [ALL ] 141 | #define _syscall2(args...) SYSCALL_FUNC(2, args) [ALL ] | ^~~~~~~~~~~~ [ALL ] libc/sysdeps/linux/common/fstat64.c:17:24: note: in expansion of macro '_syscall2' [ALL ] 17 | static __always_inline _syscall2(int, __syscall_fstat64, [ALL ] | ^~~~~~~~~ [ERROR] make[1]: *** [Makerules:373: libc/sysdeps/linux/common/fstat64.os] Error 1 [ALL ] make[1]: Leaving directory '/home/ctng/crosstool-ng/.build/arc-multilib-linux-uclibc/build/build-libc/multilib'
looking at the code I'm wondering of arc should be defining __ARCH_HAS_DEPRECATED_SYSCALLS__ or maybe declaring kernel_stat64 differently. Any advice would be much appreciated.
Thanks, Chris