Hi Andrew, On Wed, Apr 12, 2023 at 2:34 PM Petr Vorel <pvorel@xxxxxxx> wrote: > > > On Wed, Apr 12, 2023 at 9:24 AM Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote: > > > > > The patch titled > > > Subject: uapi/linux/const.h: prefer ISO-friendly __typeof__ > > > has been added to the -mm mm-nonmm-unstable branch. Its filename is > > > uapi-linux-consth-prefer-iso-friendly-__typeof__.patch > > > > This patch will shortly appear at > > > https://git.kernel.org/pub/scm/linux/kernel/git/akpm/25-new.git/tree/patches/uapi-linux-consth-prefer-iso-friendly-__typeof__.patch > > > > This patch will later appear in the mm-nonmm-unstable branch at > > > git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm > > > > Before you just go and hit "reply", please: > > > a) Consider who else should be cc'ed > > > b) Prefer to cc a suitable mailing list as well > > > c) Ideally: find the original patch on the mailing list and do a > > > reply-to-all to that, adding suitable additional cc's > > > > *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** > > > > The -mm tree is included into linux-next via the mm-everything > > > branch at git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm > > > and is updated there every 2-3 working days > > > > ------------------------------------------------------ > > > From: Kevin Brodsky <kevin.brodsky@xxxxxxx> > > > Subject: uapi/linux/const.h: prefer ISO-friendly __typeof__ > > > Date: Tue, 11 Apr 2023 10:27:47 +0100 > > > > typeof is (still) a GNU extension, which means that it cannot be used when > > > building ISO C (e.g. -std=c99). It should therefore be avoided in uapi > > > headers in favour of the ISO-friendly __typeof__. > > > > Unfortunately this issue could not be detected by > > > CONFIG_UAPI_HEADER_TEST=y as the __ALIGN_KERNEL() macro is not expanded in > > > any uapi header. > > > > Link: https://lkml.kernel.org/r/20230411092747.3759032-1-kevin.brodsky@xxxxxxx > > > Fixes: d6fc9fcbaa65 ("kbuild: compile-test exported headers to ensure they are self-contained") > > > > This tag is wrong. > > > The correct one is: > > > Fixes: a85cbe6159ff ("uapi: move constants from <linux/kernel.h> to > > <linux/const.h>") > > I'm sorry if I misinterpreted the history. The reason why I think it was > d6fc9fcbaa65 (which introduced -std=c90) is because there was already some > typeof() uses before this commit (uapi/linux/kernel.h and > uapi/linux/netfilter/x_tables.h). Sorry, I wrongly read the code. Fixes: a85cbe6159ff ("uapi: move constants from <linux/kernel.h> to <linux/const.h>") was also wrong. Before a85cbe6159ff, 'typeof' existed in include/uapi/linux/kernel.h. So, it was exported to userspace. Kevin suspects 607ca46e97a1 ("UAPI: (Scripted) Disintegrate include/linux"), but I think the issue goes back more. I think the following is the first commit that exported it. Fixes: a79ff731a1b2 ("netfilter: xtables: make XT_ALIGN() usable in exported headers by exporting __ALIGN_KERNEL()") -- Best Regards Masahiro Yamada