Re: git: 2e7797cd9bba - main - Yet another try to fix printf format conflict.

From: Warner Losh <imp_at_bsdimp.com>
Date: Sun, 30 Apr 2023 13:21:59 UTC
On Sun, Apr 30, 2023, 1:08 AM Jessica Clarke <jrtc27@freebsd.org> wrote:

> On 30 Apr 2023, at 08:00, Kirk McKusick <mckusick@FreeBSD.org> wrote:
> >
> > The branch main has been updated by mckusick:
> >
> > URL:
> https://cgit.FreeBSD.org/src/commit/?id=2e7797cd9bba4fa82391b53a7dd7aac074baf716
> >
> > commit 2e7797cd9bba4fa82391b53a7dd7aac074baf716
> > Author:     Kirk McKusick <mckusick@FreeBSD.org>
> > AuthorDate: 2023-04-30 06:59:45 +0000
> > Commit:     Kirk McKusick <mckusick@FreeBSD.org>
> > CommitDate: 2023-04-30 07:00:23 +0000
> >
> >    Yet another try to fix printf format conflict.
> >
> >    I find it very annoying that there is no FreeBSD infrastructure to
> >    determine failures across architectures other than to check in
> >    changes and then have Jenkins find them.
>
> That’s what make universe/tinderbox/worlds/kernels are for? (See build(7))
>

There's other ways too. The long way is to 'make buildworld TARGET=i386'
which will catch things like this. However, that can take a while... If
you've done one of those in the past, there will be enough of a tree for
the next trick to work:

cd sbin/dumpfs
make buildenv TARGET=i386
make     # in a subshell
exit

This will also build things and see if you got the printf formatting right
and is pretty quick.

So of course I always do this before I commit.... the fix that the
tinderbox tells me I broke (since I don't always remember that I've changed
a printf in larger commits). it would be nice if clang had a magic flag to
catch this....

Warner

Jess
>
> >    Suggested by: Jessica Clarke
> >    MFC after:    1 week
> > ---
> > sbin/dumpfs/dumpfs.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/sbin/dumpfs/dumpfs.c b/sbin/dumpfs/dumpfs.c
> > index 743734660e57..a0767c39e6bf 100644
> > --- a/sbin/dumpfs/dumpfs.c
> > +++ b/sbin/dumpfs/dumpfs.c
> > @@ -245,7 +245,7 @@ dumpfs(const char *name, int dosb)
> >       default:
> >               goto err;
> >       }
> > -     printf("old_cpg\t%d\tsize_cg\t%d\tCGSIZE\t%d\n",
> > +     printf("old_cpg\t%d\tsize_cg\t%zu\tCGSIZE\t%zu\n",
> >           afs.fs_old_cpg, sizeof(struct cg), CGSIZE(&afs));
> >       printf("sblkno\t%d\tcblkno\t%d\tiblkno\t%d\tdblkno\t%d\n",
> >           afs.fs_sblkno, afs.fs_cblkno, afs.fs_iblkno, afs.fs_dblkno);
>
>