Re: [uclibc-ng-devel] LTP test fstatat01.c FTBFS on Buildroot bootlin-sh4-uclibc toolchain

Nadav Tasher <[email protected]>
Newsgroups gmane.linux.ports.sh.devel,gmane.comp.lib.uclibc-ng,gmane.linux.ltp
Message-ID <Z5q7NwweeZ0iNlzc@nadav-dell>
On Wed, Jan 29, 2025 at 11:46:31PM +0100, Petr Vorel wrote:
> Hi all,
> 
> LTP test fstatat01.c [1] FTBFS on Buildroot bootlin-sh4-uclibc toolchain
> (uclibc: 1.0.50, kernel headers: 4.19.255). It looks to me that other bootlin
> uclibc based toolchains are working, therefore it's probably sh4 problem.
> 
> Looking into include/sys/stat.h in uclibc-ng [2], extern int fstatat (int __fd,
> ...) definition is guarded only by: #  ifdef __REDIRECT_NTH.
> But in glibc io/sys/stat.h [3] guardes it with #  ifdef __USE_TIME64_REDIRECTS
> added glibc 2.40 a4ed0471d7 ("Always define __USE_TIME_BITS64 when 64 bit time_t is used")
> which replaced previous __USE_TIME_BITS64 added in in glibc 2.34 47f24c21ee [4]
> ("y2038: Add support for 64-bit time on legacy ABIs") [5]. Should similar change
> be added to uclibc-ng?
> 
> Kind regards,
> Petr
> 
> $ cd ~/br-test-pkg/bootlin-sh4-uclibc/build/ltp-testsuite-728759506cbe08612183275b3543007d1c47f7f4/testcases/kernel/syscalls/fstatat
> $ make V=1 fstatat01
> br-test-pkg/bootlin-sh4-uclibc/host/bin/sh4-linux-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -I../../../../include -I../../../../include -I../../../../include/old/ -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -O2 -g0  -Ibr-test-pkg/bootlin-sh4-uclibc/host/bin/../sh4-buildroot-linux-uclibc/sysroot/usr/include/tirpc -g -O2 -fno-strict-aliasing -pipe -Wall -W -Wold-style-definition -std=gnu99 -L../../../../lib fstatat01.c  -Lbr-test-pkg/bootlin-sh4-uclibc/host/bin/../sh4-buildroot-linux-uclibc/sysroot/usr/lib -ltirpc -lfts -lltp -o fstatat01
> fstatat01.c:63:5: error: conflicting types for ‘fstatat’; have ‘int(int,  const char *, struct stat64 *, int)’
>    63 | int fstatat(int dirfd, const char *filename, struct stat64 *statbuf, int flags)
>       |     ^~~~~~~
> In file included from br-test-pkg/bootlin-sh4-uclibc/host/sh4-buildroot-linux-uclibc/sysroot/usr/include/features.h:409,
>                  from br-test-pkg/bootlin-sh4-uclibc/host/sh4-buildroot-linux-uclibc/sysroot/usr/include/sys/types.h:26,
>                  from fstatat01.c:27:
> br-test-pkg/bootlin-sh4-uclibc/host/sh4-buildroot-linux-uclibc/sysroot/usr/include/sys/stat.h:243:12: note: previous declaration of ‘fstatat’ with type ‘int(int,  const char * restrict,  struct stat * restrict,  int)’
>   243 | extern int __REDIRECT_NTH (fstatat, (int __fd, const char *__restrict __file,
>       |            ^~~~~~~~~~~~~~
> 
> [1] https://github.com/linux-test-project/ltp/blob/master/testcases/kernel/syscalls/fstatat/fstatat01.c
> [2] https://cgit.openadk.org/cgi/cgit/uclibc-ng.git/tree/include/sys/stat.h#n247
> [3] https://sourceware.org/git/?p=glibc.git;a=blob;f=io/sys/stat.h;h=4bea9e9a7785f51af8eefd035874f475b92bb26d;hb=HEAD#l268
> [4] https://sourceware.org/git/?p=glibc.git;a=commit;h=a4ed0471d71739928a0d0fa3258b3ff3b158e9b9
> [5] https://sourceware.org/git/?p=glibc.git;a=commit;h=47f24c21ee38701ae275aa9e451f70fa3e77478c
> _______________________________________________
> devel mailing list -- [email protected]
> To unsubscribe send an email to [email protected]
My guess is that this is somehow caused by the fact that time64 on 32-bit targets is
not supported on Linux < 5.1.0.

Regards,
Nadav
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.