[Pkg-sssd-devel] Bug#1086769: uid-wrapper FTBFS on hppa, powerpc and x32

Helge Deller deller at gmx.de
Wed Nov 6 15:19:32 GMT 2024


Hi Simon,

On 11/6/24 09:26, Simon Josefsson wrote:
> Hi.  The uid-wrapper autopkgtest fails on armel and armhf:
>
> https://tracker.debian.org/pkg/uid-wrapper
> https://ci.debian.net/packages/u/uid-wrapper/testing/armel/54125843/
> https://ci.debian.net/packages/u/uid-wrapper/testing/armhf/54125865/
>
> The C flags are hidden, and I am working on unhiding them via
> -DCMAKE_VERBOSE_MAKEFILE=ON but it doesn't look like the self-tests are
> built with -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64, unless that comes
> from config.h: https://salsa.debian.org/jas/uid-wrapper/-/jobs/6543041
>
> The failing code here is uid-wrapper/tests/test_syscall.c line 53:
>
> 	assert_int_equal(tv1.tv_sec, tv2.tv_sec);
>
> Maybe the previous arm32 patch is still relevant?

No, the previous arm32 patch was just a hack and is completely wrong.

This is the error reported:
[  ERROR   ] --- 0x672a9fe1 != 0xf2839672a9fe1
0xf2839672a9fe1 is the value which is stored in tv2.tv_sec.
That number is a 64-bit value (you need more than 32bits to store that value).
So, "-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" was definitively set in your build,
otherwise tv2.tv_sec would not be 64-bits wide.

> Reading that self-test makes me wonder if it really support
> -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64.  The code is low-level so
> shouldn't it have internal magic for the 32-bit vs 64-bit case?

This library should do no magic.
It should simply emulate the original syscalls correctly.

> uid-wrapper generally: the self test checks gettimeofday vs
> SYS_gettimeofday, but uid-wrapper never does anything related to
> gettimeofday.

Right.

> As discussed in
> https://gitlab.com/cwrap/uid_wrapper/-/issues/1 one fix would be to use
> a SYS_gettimeofday64 call instead, but that doesn't seem to exist.

Right. There is no such syscall.
Instead glibc uses clock_gettime() to provide a 64-bit time on 32-bit platforms.
So, there is no need for uid-wrapper to emulate such a call.

> Maybe the purpose of this self-test is to merely test the syscall
> facility, and that they happened to pick gettimeofday which used to be
> an uncomplicated interface but lately haven't been?

Yes, I think so.
As an example, the x32 build currently fails because the syscall isn't executed.

> Thoughts?  Maybe just add back Draw's patch?

No.

Helge



More information about the Pkg-sssd-devel mailing list