Hello,
uClibc-ng 1.0.50 + Linux headers 4.4 fails to build with:
In file included from ./include/sys/syscall.h:33, from ./ldso/include/dl-syscall.h:12, from ./ldso/include/ldso.h:52, from ldso/ldso/ldso.c:32: ./ldso/include/dl-syscall.h: In function '_dl_fstat': ./include/bits/syscalls-common.h:34:63: error: '__NR__dl_fstat' undeclared (first use in this function); did you mean '_dl_fstat'? # define INLINE_SYSCALL(name, nr, args...) INLINE_SYSCALL_NCS(__NR_##name, nr, args)
This is reproducible with Buildroot's arcturus_ucp1020_defconfig, and a log is visible at:
https://gitlab.com/buildroot.org/buildroot/-/jobs/8864051076
With the full log at:
https://buildroot.org.gitlab.io/-/buildroot/-/jobs/8864051076/artifacts/buil...
Any clue?
Thomas
Hi, Thomas Petazzoni wrote,
Hello,
uClibc-ng 1.0.50 + Linux headers 4.4 fails to build with:
In file included from ./include/sys/syscall.h:33, from ./ldso/include/dl-syscall.h:12, from ./ldso/include/ldso.h:52, from ldso/ldso/ldso.c:32: ./ldso/include/dl-syscall.h: In function '_dl_fstat': ./include/bits/syscalls-common.h:34:63: error: '__NR__dl_fstat' undeclared (first use in this function); did you mean '_dl_fstat'? # define INLINE_SYSCALL(name, nr, args...) INLINE_SYSCALL_NCS(__NR_##name, nr, args)
This is reproducible with Buildroot's arcturus_ucp1020_defconfig, and a log is visible at:
https://gitlab.com/buildroot.org/buildroot/-/jobs/8864051076
With the full log at:
https://buildroot.org.gitlab.io/-/buildroot/-/jobs/8864051076/artifacts/buil...
Any clue?
We enabled time64 by default in uClibc-ng a while ago. With 1.0.51 you will get: #error 64bit time on 32bit targets is not supported on Linux < 5.1.0
We somehow need to handle UCLIBC_USE_TIME64 inside Buildroot and disable it for Linux < 5.1.0 systems.
Any idea how to manage it?
best regards Waldemar
Hello Waldemar,
On Sun, 19 Jan 2025 15:55:09 +0100 Waldemar Brodkorb wbx@openadk.org wrote:
We enabled time64 by default in uClibc-ng a while ago. With 1.0.51 you will get: #error 64bit time on 32bit targets is not supported on Linux < 5.1.0
We somehow need to handle UCLIBC_USE_TIME64 inside Buildroot and disable it for Linux < 5.1.0 systems.
Any idea how to manage it?
Like this (totally untested):
diff --git a/package/uclibc/uclibc.mk b/package/uclibc/uclibc.mk index fdd5850874..db208cf610 100644 --- a/package/uclibc/uclibc.mk +++ b/package/uclibc/uclibc.mk @@ -72,6 +72,15 @@ define UCLIBC_BINFMT_CONFIG endef endif
+# +# 64-bit time_t is enabled by default but needs headers >= 5.1.0 +# +ifeq ($(BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1),) +define UCLIBC_DISABLE_TIME64 + $(call KCONFIG_DISABLE_OPT,UCLIBC_USE_TIME64) +endef +endif + # # AArch64 definitions #
Thomas