On 7/19/24 17:20, Warner Losh wrote:
On Wed, Jul 10, 2024 at 12:19 PM John Baldwin <j...@freebsd.org> wrote:

On 7/6/24 17:56, John Baldwin wrote:
On 7/6/24 15:44, Warner Losh wrote:
The branch main has been updated by imp:

URL:
https://cgit.FreeBSD.org/src/commit/?id=6677621bad00191dfec1b0a20ae1618b92745d9b

commit 6677621bad00191dfec1b0a20ae1618b92745d9b
Author:     Warner Losh <i...@freebsd.org>
AuthorDate: 2024-07-06 19:42:37 +0000
Commit:     Warner Losh <i...@freebsd.org>
CommitDate: 2024-07-06 19:45:03 +0000

       cdefs.h: Fallback to printf0 for __printf0like

       For some reason, my tests were fine with this like it was, but CI
for
       gcc12 and gcc13 is complaining. Revert to the old form until that
can be
       worked out why the mismatch.

       Fixes: 0b82dac337e7
       Sponsored by:           Netflix
---
    sys/sys/cdefs.h | 7 +++++--
    1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/sys/sys/cdefs.h b/sys/sys/cdefs.h
index 6b861b1903f6..a56839d57c7a 100644
--- a/sys/sys/cdefs.h
+++ b/sys/sys/cdefs.h
@@ -356,9 +356,12 @@
     * Clang has always had printf and printf0 as aliases. gcc 11.0 now
follows
     * clang. So now this is an alias for __printflike, or nothing. In
the future
     * _Nullable or _Nonnull will replace this.
+ * XXX Except that doesn't work, so for now revert to printf0 for
clang and
+ * the FreeBSD gcc until I can work this out.
     */
-#if defined(__clang__) || __GNUC_PREREQ__(11, 0)
-#define     __printf0like(fmtarg, firstvararg) __printflike(fmtarg,
firstvararg)
+#if defined(__clang__) || (defined(__GNUC__) && defined
(__FreeBSD_cc_version))
+#define     __printf0like(fmtarg, firstvararg) \
+        __attribute__((__format__ (__printf0__, fmtarg, firstvararg)))
    #else
    #define   __printf0like(fmtarg, firstvararg)
    #endif

It's because my patch for devel/freebsd-gcc{12,13} is kind of wrong.  I
had a mismerge
when updating the printf0 patch from gcc9 to gcc12 that ended up
re-adding the
warn on NULL.  I need to update the ports to remove that part of the
patch.  I will
probably leave printf0 working for now in the ports just as an alias for
regular
printf to give us some transition time.

FYI, I have merged this fix to the ports, but not sure how we want to
manage doing
the patch to cdefs.h.  I kind of think we should apply the change to
cdefs.h in
main in another week or so.  I'm less certain of what to do for stable
branches.


I hadn't planned on merging this to stable branches. Is that your concern?

Yes, just if we wanted to merge the printf0 change in sys/cdefs.h to stable
branches.  I think it's fine to fix cdefs.h in main now.

--
John Baldwin


Reply via email to