Date: Mon, 17 Feb 2025 15:22:07 -0500 From: John Baldwin <jhb@FreeBSD.org> To: Kristof Provost <kp@FreeBSD.org> Cc: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: Re: git: 7e7f88001d7d - main - pf: use time_t for storing time_t values Message-ID: <06849674-d51f-4a20-9ddb-687e29ece68e@FreeBSD.org> In-Reply-To: <1B3E8B07-037B-4DA9-A8D7-81F866078A39@FreeBSD.org> References: <202502141750.51EHoOFm061342@gitrepo.freebsd.org> <5c019c51-949b-4255-bc44-926ac973a1af@FreeBSD.org> <1B3E8B07-037B-4DA9-A8D7-81F866078A39@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 2/17/25 12:08, Kristof Provost wrote: > On 17 Feb 2025, at 16:24, John Baldwin wrote: >> On 2/14/25 12:50, Kristof Provost wrote: >>> The branch main has been updated by kp: >>> >>> URL: >>> https://cgit.FreeBSD.org/src/commit/?id=7e7f88001d7dfec83cd7568369be6a587d4a51ff >>> >>> commit 7e7f88001d7dfec83cd7568369be6a587d4a51ff >>> Author: Kristof Provost <kp@FreeBSD.org> >>> AuthorDate: 2025-02-07 10:29:26 +0000 >>> Commit: Kristof Provost <kp@FreeBSD.org> >>> CommitDate: 2025-02-14 17:47:52 +0000 >>> >>> pf: use time_t for storing time_t values >>> No change to the underlying type, so no ABI change. >>> We define __time_t as uint64_t if __LP64__, otherwise >>> uint32_t, >>> and only define __LP64__ if long is 64 bits. >>> In other words: __time_t == long. >>> ok henning@ deraadt@ >>> Obtained from: OpenBSD, guenther <guenther@openbsd.org>, >>> 6c1b69a0ff >>> Sponsored by: Rubicon Communications, LLC ("Netgate") >>> Differential Revision: https://reviews.freebsd.org/D48963 >> >> This is an ABI change on non-i386 32-bit platforms in FreeBSD since >> they >> all use a 64-bit type for time_t that is not the same size as long. >> Not >> sure if the ABI change matters on FreeBSD though? >> > It wasn’t intended to be an ABI change, hence the commit message. It > appears that’s only correct for x86 though. I assumed the commit message was from OpenBSD as the comments about defining time_t conditional on __LP64__ are not correct on FreeBSD (each arch defines a __time_t in <machine/_types.h>, though amd64 and i386 share x86/include/_types.h which does use an #ifdef that perhaps is the source of confusion?) > So we’re only talking about armv7 and ppc32, if I’m not forgetting > anything. The former is on the removal list already, and the latter .. > well, I don’t know how many users there are. Both are likely to be > embedded platforms where the ABI change is going to be even less > relevant (because it really only matters if the kernel and userspace are > not updated together, and these are going to be embedded devices that > are far more likely to have everything updated simultaneously).> > So I’m unsure about what to do. I can revert this and we can just > carry this (trivial) diff to OpenBSD forever, or we can ignore the ABI > breakage given the above. I’m not inclined to do anything more > involved though. > > Do you have any thoughts? To be clear, armv7 is planned to be around a bit longer than other 32-bit platforms. That said, 32-bit plaforms are all Tier 2, so an ABI breakage in main is not necessarily the end of the world. Presumably these structures aren't used much in ports but only in base system tools anyway? (That is what my question about the ABI change mattering was trying to allude to) I agree with Justin that this is not something to MFC. -- John Baldwin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?06849674-d51f-4a20-9ddb-687e29ece68e>