From: | Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com> |
---|---|
To: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
Cc: | PostgreSQL Hackers <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Allowing printf("%m") only where it actually works |
Date: | 2018-05-21 02:41:28 |
Message-ID: | CAEepm=29o4wi5WEBFfwhBUuiYSymbTcORw_cvdaaxPPoAkrsvA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Mon, May 21, 2018 at 12:30 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> For amusement's sake, I was playing around with NetBSD-current (9-to-be)
> today, and tried to compile Postgres on it. It works OK --- and I can
> even confirm that our new code for using ARM v8 CRC instructions works
Excellent news.
> there --- but I got a boatload of compile warnings like this:
>
> latch.c:1180:4: warning: %m is only allowed in syslog(3) like functions [-Wformat=]
> ereport(ERROR,
> ^~~~~~~
>
> A bit of googling turned up the patch that caused this [1], which was
> soon followed by some well-reasoned push-back [2]; but the warning's
> still there, so evidently the forces of bullheadedness won. I was
> ready to discount the whole thing as being another badly designed
> no-wonder-gcc-upstream-won't-take-it compiler warning, when I noticed that
> the last few warnings in my output were pointing out a live bug, to wit
> using %m with plain old printf rather than elog/ereport. So I fixed
> that [3], but I'm thinking that we need to take a bit more care here.
I tried this on macOS and FreeBSD using GCC and Clang: both accept
printf("%m") without warning and then just print out "m". It'll be
interesting to see if the NetBSD patch/idea travels further or some
other solution can be found. I've raised this on the freebsd-hackers
list, let's see... I bet there's other software out there that just
prints out "m" when things go wrong. It's arguably something that
you'd want the complier to understand as a C dialect thing.
--
Thomas Munro
http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2018-05-21 03:54:47 | Re: Allowing printf("%m") only where it actually works |
Previous Message | Tsunakawa, Takayuki | 2018-05-21 01:42:07 | RE: [HACKERS] Transactions involving multiple postgres foreign servers |