Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 10 Jul 2024 14:19:06 -0400
From:      John Baldwin <jhb@FreeBSD.org>
To:        Warner Losh <imp@FreeBSD.org>, src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org
Subject:   Re: git: 6677621bad00 - main - cdefs.h: Fallback to printf0 for __printf0like
Message-ID:  <bddd5f4c-401a-4169-885d-58a81a7a122a@FreeBSD.org>
In-Reply-To: <a4a051a8-5715-4c5d-b755-83bd4bf8473f@FreeBSD.org>
References:  <202407061944.466JiiQ3026410@gitrepo.freebsd.org> <a4a051a8-5715-4c5d-b755-83bd4bf8473f@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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 <imp@FreeBSD.org>
>> AuthorDate: 2024-07-06 19:42:37 +0000
>> Commit:     Warner Losh <imp@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.

-- 
John Baldwin




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bddd5f4c-401a-4169-885d-58a81a7a122a>