Re: [PATCH] hcidump: add support for time64 based libc

From: Guy Harris
Date: Fri Jan 10 2020 - 18:43:05 EST


On Jan 10, 2020, at 1:19 PM, Arnd Bergmann <arnd@xxxxxxxx> wrote:

> On Fri, Jan 10, 2020 at 10:05 PM Rich Felker <dalias@xxxxxxxx> wrote:
>>
>> On Fri, Jan 10, 2020 at 09:49:03PM +0100, Arnd Bergmann wrote:
>>> musl is moving to a default of 64-bit time_t on all architectures,
>>> glibc will follow later. This breaks reading timestamps through cmsg
>>> data with the HCI_TIME_STAMP socket option.
>>>
>>> Change both copies of hcidump to work on all architectures. This also
>>> fixes x32, which has never worked, and carefully avoids breaking sparc64,
>>> which is another special case.
>>
>> Won't it be broken on rv32 though? Based on my (albeit perhaps
>> incomplete) reading of the thread, I think use of HCI_TIME_STAMP
>> should just be dropped entirely in favor of using SO_TIMESTAMPNS -- my
>> understanding was that it works with bluetooth sockets too.
>
> All 32-bit architectures use old_timeval32 timestamps in the kernel
> here, even rv32 and x32. As a rule, we keep the types bug-for-bug
> compatible between architectures and fix them all at the same time.
>
> Changing hcidump to SO_TIMESTAMPNS would work as well, but
> that is a much bigger change and I don't know how to test that.

If so, maybe I'll just do that for libpcap. Libpcap *does* have an API to request capturing with nanoseconds in tv_usec (and I plan to give it pcapng-flavored APIs to deliver higher-resolution time stamps, as well as metadata such as "incoming" vs. "outgoing", as well).