[PATCH v7 07/14] print_timespec: Print the 32-bit timespec for HAVE_ARCH_TIMESPEC32
Alistair Francis
alistair23 at gmail.com
Mon Apr 20 17:57:38 UTC 2020
On Sun, Apr 19, 2020 at 3:12 PM Dmitry V. Levin <ldv at altlinux.org> wrote:
>
> On Fri, Apr 17, 2020 at 09:47:17AM -0700, Alistair Francis wrote:
> > When printing
> > print_struct_timespec_data_size/print_struct_timespec_array_data_size
> > print the 32-bit version if HAVE_ARCH_TIMESPEC32 is set to 1.
> >
> > Signed-off-by: Alistair Francis <alistair.francis at wdc.com>
> > ---
> > defs.h | 4 ++--
> > kernel_timespec.h | 2 +-
> > print_timespec.c | 8 ++++++++
> > print_timespec32.c | 4 ++--
> > 4 files changed, 13 insertions(+), 5 deletions(-)
> [...]
> > --- a/print_timespec.c
> > +++ b/print_timespec.c
> > @@ -37,12 +37,20 @@ typedef kernel_timespec64_t timespec_t;
> > MPERS_PRINTER_DECL(bool, print_struct_timespec_data_size,
> > const void *arg, const size_t size)
> > {
> > +#if HAVE_ARCH_TIMESPEC32
> > + return print_timespec32_data_size(arg, size);
> > +#else
> > return PRINT_TIMESPEC_DATA_SIZE(arg, size);
> > +#endif
> > }
> >
> > MPERS_PRINTER_DECL(bool, print_struct_timespec_array_data_size,
> > const void *arg, const unsigned int nmemb,
> > const size_t size)
> > {
> > +#if HAVE_ARCH_TIMESPEC32
> > + return print_timespec32_array_data_size(arg, nmemb, size);
> > +#else
> > return PRINT_TIMESPEC_ARRAY_DATA_SIZE(arg, nmemb, size);
> > +#endif
> > }
>
> Many 64-bit architectures including x86-64 have HAVE_ARCH_TIMESPEC32
> defined to 1 because they have personality with sizeof(kernel_long_t) == 4,
> so this patch would break all of them.
>
> I've applied a different patch instead, at least it doesn't break anything
> I could test. Please test it on your architecture.
Thanks for applying the patches. Everything looks good on my side.
Alistair
>
>
> --
> ldv
More information about the Strace-devel
mailing list