On Tue, Jan 07, 2025 at 12:13:42PM +0100, Waldemar Brodkorb wrote:
Hi, Phil Sutter wrote,
Hi Waldemar,
On Tue, Jan 07, 2025 at 10:57:00AM +0100, Waldemar Brodkorb wrote:
Hi Phil, Waldemar Brodkorb wrote,
Hi Phil, Phil Sutter wrote,
Without it, on these architectures 'lvm pvscan' will busy-loop printing:
| io_getevents failed: No such file or directory
What C library you are using? Nowadays glibc/uClibc-ng and musl have 64 Bit time_t on all supported 32 Bit architectures with a recent enough kernel (=>5.1.0).
I'm using uClibc-ng version 1.0.50. B-)
I think using this kernel symbol is only required for C libraries not having 64 Bit time_t. So we could remove the symbol entirely in OpenADK.
While your point is valid regarding 64bit time_t, the problem here seems to be io_getevents syscall which expects a 32bit time_t in parameters. I guess this can't change due for compatibility reasons and one had to introduce a new syscall which accepts the larger time_t. Or is this just covered by the libc wrappers?
Good question, I don't know :-/
I checked this on my Cubox-i (ARM 32 Bit) and your patch is valid. It seems this kernel symbol is even required for time64 enabled userland.
Thanks for validating!
BTW: Does gcc-14 work for you? It built fine for me but I got compile errors building packages. Went with gcc-12 for now.
I use the default gcc-13 for now, which compiles all packages I use fine. Yes, gcc-14 will break a lot of packages.
Do you have any issue with gcc-13?
apcupsd linker stage fails:
| /home/n0-1/git/openadk-ds414/toolchain_synology-ds414_uclibc-ng_softfp_eabi_arm/usr/bin/arm-openadk-linux-uclibceabi-gcc -L/home/n0-1/git/openadk-ds414/target_synology-ds414_uclibc-ng_softfp_eabi_arm/lib -L/home/n0-1/git/openadk-ds414/target_synology-ds414_uclibc-ng_softfp_eabi_arm/usr/lib -Wl,-O1 -Wl,-rpath -Wl,/usr/lib -Wl,-rpath-link -Wl,/home/n0-1/git/openadk-ds414/target_synology-ds414_uclibc-ng_softfp_eabi_arm/usr/lib .obj/options.o .obj/device.o .obj/reports.o .obj/action.o .obj/apctest.o /home/n0-1/git/openadk-ds414/build_synology-ds414_uclibc-ng_softfp_eabi_arm/w-apcupsd-3.14.14-1/apcupsd-3.14.14/src/drivers/libdrivers.a /home/n0-1/git/openadk-ds414/build_synology-ds414_uclibc-ng_softfp_eabi_arm/w-apcupsd-3.14.14-1/apcupsd-3.14.14/src/drivers/apcsmart/libapcsmartdrv.a /home/n0-1/git/openadk-ds414/build_synology-ds414_uclibc-ng_softfp_eabi_arm/w-apcupsd-3.14.14-1/apcupsd-3.14.14/src/drivers/dumb/libdumbdrv.a /home/n0-1/git/openadk-ds414/build_synology-ds414_uclibc-ng_softfp_eabi_arm/w-apcupsd-3.14.14-1/apcupsd-3.14.14/src/drivers/usb/libusbdrv.a /home/n0-1/git/openadk-ds414/build_synology-ds414_uclibc-ng_softfp_eabi_arm/w-apcupsd-3.14.14-1/apcupsd-3.14.14/src/drivers/net/libnetdrv.a /home/n0-1/git/openadk-ds414/build_synology-ds414_uclibc-ng_softfp_eabi_arm/w-apcupsd-3.14.14-1/apcupsd-3.14.14/src/drivers/snmplite/libsnmplitedrv.a /home/n0-1/git/openadk-ds414/build_synology-ds414_uclibc-ng_softfp_eabi_arm/w-apcupsd-3.14.14-1/apcupsd-3.14.14/src/drivers/pcnet/libpcnetdrv.a /home/n0-1/git/openadk-ds414/build_synology-ds414_uclibc-ng_softfp_eabi_arm/w-apcupsd-3.14.14-1/apcupsd-3.14.14/src/drivers/modbus/libmodbusdrv.a /home/n0-1/git/openadk-ds414/build_synology-ds414_uclibc-ng_softfp_eabi_arm/w-apcupsd-3.14.14-1/apcupsd-3.14.14/src/lib/libapc.a -o apctest -lsupc++ -lpthread | /home/n0-1/git/openadk-ds414/toolchain_synology-ds414_uclibc-ng_softfp_eabi_arm/usr/lib/gcc/arm-openadk-linux-uclibceabi/13.3.0/../../../../arm-openadk-linux-uclibceabi/bin/ld: /home/n0-1/git/openadk-ds414/target_synology-ds414_uclibc-ng_softfp_eabi_arm/usr/lib/libsupc++.a(eh_alloc.o): in function `std::basic_string_view<char, std::char_traits<char> >::compare(unsigned int, unsigned int, char const*, unsigned int) const': | (.text._ZNKSt17basic_string_viewIcSt11char_traitsIcEE7compareEjjPKcj[_ZNKSt17basic_string_viewIcSt11char_traitsIcEE7compareEjjPKcj]+0x30): undefined reference to `std::__throw_out_of_range_fmt(char const*, ...)' | /home/n0-1/git/openadk-ds414/toolchain_synology-ds414_uclibc-ng_softfp_eabi_arm/usr/lib/gcc/arm-openadk-linux-uclibceabi/13.3.0/../../../../arm-openadk-linux-uclibceabi/bin/ld: /home/n0-1/git/openadk-ds414/target_synology-ds414_uclibc-ng_softfp_eabi_arm/usr/lib/libsupc++.a(eh_alloc.o): in function `std::basic_string_view<char, std::char_traits<char> >::compare(unsigned int, unsigned int, char const*, unsigned int) const': | (.text._ZNKSt17basic_string_viewIcSt11char_traitsIcEE7compareEjjPKcj[_ZNKSt17basic_string_viewIcSt11char_traitsIcEE7compareEjjPKcj]+0x30): undefined reference to `std::__throw_out_of_range_fmt(char const*, ...)'
Cheers, Phil