* [PATCH] fs/pipe: stop duplicating union pipe_index declaration
@ 2025-10-23 8:21 Rasmus Villemoes
2025-10-23 16:44 ` Nathan Chancellor
2025-10-29 13:41 ` Christian Brauner
0 siblings, 2 replies; 19+ messages in thread
From: Rasmus Villemoes @ 2025-10-23 8:21 UTC (permalink / raw)
To: Linus Torvalds
Cc: Alexander Viro, Christian Brauner, linux-fsdevel, linux-kernel,
linux-kbuild, Nathan Chancellor, David Sterba, Rasmus Villemoes
Now that we build with -fms-extensions, union pipe_index can be
included as an anonymous member in struct pipe_inode_info, avoiding
the duplication.
Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
---
Do we want to do this as well? At the very least it would give some
more test coverage if this could be in -next for most of a cycle.
Context for new people:
https://lore.kernel.org/lkml/CAHk-=wjeZwww6Zswn6F_iZTpUihTSNKYppLqj36iQDDhfntuEw@mail.gmail.com/
https://lore.kernel.org/linux-kbuild/20251020142228.1819871-1-linux@rasmusvillemoes.dk/
include/linux/pipe_fs_i.h | 15 +--------------
1 file changed, 1 insertion(+), 14 deletions(-)
diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
index 9d42d473d201..80539972e569 100644
--- a/include/linux/pipe_fs_i.h
+++ b/include/linux/pipe_fs_i.h
@@ -44,12 +44,6 @@ typedef unsigned int pipe_index_t;
typedef unsigned short pipe_index_t;
#endif
-/*
- * We have to declare this outside 'struct pipe_inode_info',
- * but then we can't use 'union pipe_index' for an anonymous
- * union, so we end up having to duplicate this declaration
- * below. Annoying.
- */
union pipe_index {
unsigned long head_tail;
struct {
@@ -87,14 +81,7 @@ struct pipe_inode_info {
struct mutex mutex;
wait_queue_head_t rd_wait, wr_wait;
- /* This has to match the 'union pipe_index' above */
- union {
- unsigned long head_tail;
- struct {
- pipe_index_t head;
- pipe_index_t tail;
- };
- };
+ union pipe_index;
unsigned int max_usage;
unsigned int ring_size;
base-commit: 778740ee2d00e5c04d0c8ffd9c3beea89b1ec554
--
2.51.0
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH] fs/pipe: stop duplicating union pipe_index declaration
2025-10-23 8:21 [PATCH] fs/pipe: stop duplicating union pipe_index declaration Rasmus Villemoes
@ 2025-10-23 16:44 ` Nathan Chancellor
2025-10-23 16:48 ` Linus Torvalds
2025-10-29 13:41 ` Christian Brauner
1 sibling, 1 reply; 19+ messages in thread
From: Nathan Chancellor @ 2025-10-23 16:44 UTC (permalink / raw)
To: Rasmus Villemoes
Cc: Linus Torvalds, Alexander Viro, Christian Brauner, linux-fsdevel,
linux-kernel, linux-kbuild, David Sterba, Nicolas Schier
On Thu, Oct 23, 2025 at 10:21:42AM +0200, Rasmus Villemoes wrote:
> Now that we build with -fms-extensions, union pipe_index can be
> included as an anonymous member in struct pipe_inode_info, avoiding
> the duplication.
>
> Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
> ---
> Do we want to do this as well? At the very least it would give some
> more test coverage if this could be in -next for most of a cycle.
Yeah, this would also be a good conversion example so we could include
it in kbuild-next with the appropriate Acks. We probably do not want to
take too many other conversions in the initial pull. If people really
want to use this in other places for 6.19, we should probably do a
shared branch for these changes that maintainers could pull into their
own trees.
> Context for new people:
>
> https://lore.kernel.org/lkml/CAHk-=wjeZwww6Zswn6F_iZTpUihTSNKYppLqj36iQDDhfntuEw@mail.gmail.com/
> https://lore.kernel.org/linux-kbuild/20251020142228.1819871-1-linux@rasmusvillemoes.dk/
>
> include/linux/pipe_fs_i.h | 15 +--------------
> 1 file changed, 1 insertion(+), 14 deletions(-)
>
> diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
> index 9d42d473d201..80539972e569 100644
> --- a/include/linux/pipe_fs_i.h
> +++ b/include/linux/pipe_fs_i.h
> @@ -44,12 +44,6 @@ typedef unsigned int pipe_index_t;
> typedef unsigned short pipe_index_t;
> #endif
>
> -/*
> - * We have to declare this outside 'struct pipe_inode_info',
> - * but then we can't use 'union pipe_index' for an anonymous
> - * union, so we end up having to duplicate this declaration
> - * below. Annoying.
> - */
> union pipe_index {
> unsigned long head_tail;
> struct {
> @@ -87,14 +81,7 @@ struct pipe_inode_info {
> struct mutex mutex;
> wait_queue_head_t rd_wait, wr_wait;
>
> - /* This has to match the 'union pipe_index' above */
> - union {
> - unsigned long head_tail;
> - struct {
> - pipe_index_t head;
> - pipe_index_t tail;
> - };
> - };
> + union pipe_index;
>
> unsigned int max_usage;
> unsigned int ring_size;
>
> base-commit: 778740ee2d00e5c04d0c8ffd9c3beea89b1ec554
> --
> 2.51.0
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] fs/pipe: stop duplicating union pipe_index declaration
2025-10-23 16:44 ` Nathan Chancellor
@ 2025-10-23 16:48 ` Linus Torvalds
2025-10-29 13:42 ` Christian Brauner
0 siblings, 1 reply; 19+ messages in thread
From: Linus Torvalds @ 2025-10-23 16:48 UTC (permalink / raw)
To: Nathan Chancellor
Cc: Rasmus Villemoes, Alexander Viro, Christian Brauner,
linux-fsdevel, linux-kernel, linux-kbuild, David Sterba,
Nicolas Schier
On Thu, 23 Oct 2025 at 06:44, Nathan Chancellor <nathan@kernel.org> wrote:
>
> Yeah, this would also be a good conversion example so we could include
> it in kbuild-next with the appropriate Acks. We probably do not want to
> take too many other conversions in the initial pull. If people really
> want to use this in other places for 6.19, we should probably do a
> shared branch for these changes that maintainers could pull into their
> own trees.
Yes. This is a good example of what the use case is and why we're
doing this extension. So Ack both on including it as such, and on the
whole "let's not go overboard with other conversions" thing.
Linus
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] fs/pipe: stop duplicating union pipe_index declaration
2025-10-23 8:21 [PATCH] fs/pipe: stop duplicating union pipe_index declaration Rasmus Villemoes
2025-10-23 16:44 ` Nathan Chancellor
@ 2025-10-29 13:41 ` Christian Brauner
2025-10-29 17:38 ` Nathan Chancellor
1 sibling, 1 reply; 19+ messages in thread
From: Christian Brauner @ 2025-10-29 13:41 UTC (permalink / raw)
To: Linus Torvalds, Rasmus Villemoes
Cc: Christian Brauner, Alexander Viro, linux-fsdevel, linux-kernel,
linux-kbuild, Nathan Chancellor, David Sterba
On Thu, 23 Oct 2025 10:21:42 +0200, Rasmus Villemoes wrote:
> Now that we build with -fms-extensions, union pipe_index can be
> included as an anonymous member in struct pipe_inode_info, avoiding
> the duplication.
>
>
Applied to the vfs-6.19.misc branch of the vfs/vfs.git tree.
Patches in the vfs-6.19.misc branch should appear in linux-next soon.
Please report any outstanding bugs that were missed during review in a
new review to the original patch series allowing us to drop it.
It's encouraged to provide Acked-bys and Reviewed-bys even though the
patch has now been applied. If possible patch trailers will be updated.
Note that commit hashes shown below are subject to change due to rebase,
trailer updates or similar. If in doubt, please check the listed branch.
tree: https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git
branch: vfs-6.19.misc
[1/1] fs/pipe: stop duplicating union pipe_index declaration
https://git.kernel.org/vfs/vfs/c/ade24f8214fe
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] fs/pipe: stop duplicating union pipe_index declaration
2025-10-23 16:48 ` Linus Torvalds
@ 2025-10-29 13:42 ` Christian Brauner
0 siblings, 0 replies; 19+ messages in thread
From: Christian Brauner @ 2025-10-29 13:42 UTC (permalink / raw)
To: Linus Torvalds
Cc: Nathan Chancellor, Rasmus Villemoes, Alexander Viro,
linux-fsdevel, linux-kernel, linux-kbuild, David Sterba,
Nicolas Schier
On Thu, Oct 23, 2025 at 06:48:13AM -1000, Linus Torvalds wrote:
> On Thu, 23 Oct 2025 at 06:44, Nathan Chancellor <nathan@kernel.org> wrote:
> >
> > Yeah, this would also be a good conversion example so we could include
> > it in kbuild-next with the appropriate Acks. We probably do not want to
> > take too many other conversions in the initial pull. If people really
> > want to use this in other places for 6.19, we should probably do a
> > shared branch for these changes that maintainers could pull into their
> > own trees.
>
> Yes. This is a good example of what the use case is and why we're
> doing this extension. So Ack both on including it as such, and on the
> whole "let's not go overboard with other conversions" thing.
WHAT??? We're actually doing that? This is fscking lovely! I thought
this would never fly and so I actually never proposed it. Who do I have
to hug for doing this? I'm a very happy boy right now.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] fs/pipe: stop duplicating union pipe_index declaration
2025-10-29 13:41 ` Christian Brauner
@ 2025-10-29 17:38 ` Nathan Chancellor
2025-10-29 22:25 ` Christian Brauner
0 siblings, 1 reply; 19+ messages in thread
From: Nathan Chancellor @ 2025-10-29 17:38 UTC (permalink / raw)
To: Christian Brauner
Cc: Linus Torvalds, Rasmus Villemoes, Alexander Viro, linux-fsdevel,
linux-kernel, linux-kbuild, David Sterba
Hi Christian,
On Wed, Oct 29, 2025 at 02:41:06PM +0100, Christian Brauner wrote:
> On Thu, 23 Oct 2025 10:21:42 +0200, Rasmus Villemoes wrote:
> > Now that we build with -fms-extensions, union pipe_index can be
> > included as an anonymous member in struct pipe_inode_info, avoiding
> > the duplication.
> >
> >
>
> Applied to the vfs-6.19.misc branch of the vfs/vfs.git tree.
> Patches in the vfs-6.19.misc branch should appear in linux-next soon.
>
> Please report any outstanding bugs that were missed during review in a
> new review to the original patch series allowing us to drop it.
>
> It's encouraged to provide Acked-bys and Reviewed-bys even though the
> patch has now been applied. If possible patch trailers will be updated.
>
> Note that commit hashes shown below are subject to change due to rebase,
> trailer updates or similar. If in doubt, please check the listed branch.
>
> tree: https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git
> branch: vfs-6.19.misc
>
> [1/1] fs/pipe: stop duplicating union pipe_index declaration
> https://git.kernel.org/vfs/vfs/c/ade24f8214fe
As you may have noticed since I do not actually see this pushed, this
change requires the '-fms-extensions' change that we are carrying in the
kbuild tree for 6.19.
https://git.kernel.org/kbuild/c/778740ee2d00e5c04d0c8ffd9c3beea89b1ec554
Would you be okay with us carrying this change there as well with your
Ack? Once '-fms-extensions' makes it into 6.19-rc1, you should be free
to make any other changes like this.
Cheers,
Nathan
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] fs/pipe: stop duplicating union pipe_index declaration
2025-10-29 17:38 ` Nathan Chancellor
@ 2025-10-29 22:25 ` Christian Brauner
2025-10-29 22:53 ` Linus Torvalds
0 siblings, 1 reply; 19+ messages in thread
From: Christian Brauner @ 2025-10-29 22:25 UTC (permalink / raw)
To: Nathan Chancellor
Cc: Linus Torvalds, Rasmus Villemoes, Alexander Viro, linux-fsdevel,
linux-kernel, linux-kbuild, David Sterba
On Wed, Oct 29, 2025 at 10:38:28AM -0700, Nathan Chancellor wrote:
> Hi Christian,
>
> On Wed, Oct 29, 2025 at 02:41:06PM +0100, Christian Brauner wrote:
> > On Thu, 23 Oct 2025 10:21:42 +0200, Rasmus Villemoes wrote:
> > > Now that we build with -fms-extensions, union pipe_index can be
> > > included as an anonymous member in struct pipe_inode_info, avoiding
> > > the duplication.
> > >
> > >
> >
> > Applied to the vfs-6.19.misc branch of the vfs/vfs.git tree.
> > Patches in the vfs-6.19.misc branch should appear in linux-next soon.
> >
> > Please report any outstanding bugs that were missed during review in a
> > new review to the original patch series allowing us to drop it.
> >
> > It's encouraged to provide Acked-bys and Reviewed-bys even though the
> > patch has now been applied. If possible patch trailers will be updated.
> >
> > Note that commit hashes shown below are subject to change due to rebase,
> > trailer updates or similar. If in doubt, please check the listed branch.
> >
> > tree: https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git
> > branch: vfs-6.19.misc
> >
> > [1/1] fs/pipe: stop duplicating union pipe_index declaration
> > https://git.kernel.org/vfs/vfs/c/ade24f8214fe
>
> As you may have noticed since I do not actually see this pushed, this
> change requires the '-fms-extensions' change that we are carrying in the
> kbuild tree for 6.19.
>
> https://git.kernel.org/kbuild/c/778740ee2d00e5c04d0c8ffd9c3beea89b1ec554
Meh, I thought it was already enabled.
Are you pushing this as a new feature for v6.19 or is Linus ok with
enabling this still during v6.18?
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] fs/pipe: stop duplicating union pipe_index declaration
2025-10-29 22:25 ` Christian Brauner
@ 2025-10-29 22:53 ` Linus Torvalds
2025-10-29 23:13 ` Christian Brauner
0 siblings, 1 reply; 19+ messages in thread
From: Linus Torvalds @ 2025-10-29 22:53 UTC (permalink / raw)
To: Christian Brauner
Cc: Nathan Chancellor, Rasmus Villemoes, Alexander Viro,
linux-fsdevel, linux-kernel, linux-kbuild, David Sterba
On Wed, 29 Oct 2025 at 15:25, Christian Brauner <brauner@kernel.org> wrote:
>
> Meh, I thought it was already enabled.
> Are you pushing this as a new feature for v6.19 or is Linus ok with
> enabling this still during v6.18?
I wasn't planning on doing any conversions for 6.18, but if it makes
things easier for people to start doing this, I could certainly take
just the "add new compiler flags" at any time.
Alternatively, maybe Rasmus/Nathan could just expose that commit
778740ee2d00 ("Kbuild: enable -fms-extensions") as a shared stable
branch.
That commit seems to be directly on top of 6.18-rc2, so people who
want it could just pull that commit instead.
Linus
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] fs/pipe: stop duplicating union pipe_index declaration
2025-10-29 22:53 ` Linus Torvalds
@ 2025-10-29 23:13 ` Christian Brauner
2025-10-29 23:30 ` Nathan Chancellor
0 siblings, 1 reply; 19+ messages in thread
From: Christian Brauner @ 2025-10-29 23:13 UTC (permalink / raw)
To: Linus Torvalds
Cc: Nathan Chancellor, Rasmus Villemoes, Alexander Viro,
linux-fsdevel, linux-kernel, linux-kbuild, David Sterba
On Wed, Oct 29, 2025 at 03:53:37PM -0700, Linus Torvalds wrote:
> On Wed, 29 Oct 2025 at 15:25, Christian Brauner <brauner@kernel.org> wrote:
> >
> > Meh, I thought it was already enabled.
> > Are you pushing this as a new feature for v6.19 or is Linus ok with
> > enabling this still during v6.18?
>
> I wasn't planning on doing any conversions for 6.18, but if it makes
> things easier for people to start doing this, I could certainly take
> just the "add new compiler flags" at any time.
Oh nice!
>
> Alternatively, maybe Rasmus/Nathan could just expose that commit
> 778740ee2d00 ("Kbuild: enable -fms-extensions") as a shared stable
> branch.
>
> That commit seems to be directly on top of 6.18-rc2, so people who
> want it could just pull that commit instead.
I'm fine either way. @Nathan, if you just want to give Linus the patch
if it's small enough or just want to give me a stable branch I can pull
I'll be content. Thanks!
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH] fs/pipe: stop duplicating union pipe_index declaration
2025-10-29 23:13 ` Christian Brauner
@ 2025-10-29 23:30 ` Nathan Chancellor
2025-10-30 13:23 ` fms extension (Was: [PATCH] fs/pipe: stop duplicating union pipe_index declaration) Christian Brauner
0 siblings, 1 reply; 19+ messages in thread
From: Nathan Chancellor @ 2025-10-29 23:30 UTC (permalink / raw)
To: Christian Brauner, Linus Torvalds
Cc: Rasmus Villemoes, Alexander Viro, linux-fsdevel, linux-kernel,
linux-kbuild, David Sterba
On Thu, Oct 30, 2025 at 12:13:11AM +0100, Christian Brauner wrote:
> I'm fine either way. @Nathan, if you just want to give Linus the patch
> if it's small enough or just want to give me a stable branch I can pull
> I'll be content. Thanks!
I do not care either way but I created a shared branch/tag since it was
easy enough to do. If Linus wants to take these directly for -rc4, I am
fine with that as well.
Cheers,
Nathan
The following changes since commit 3a8660878839faadb4f1a6dd72c3179c1df56787:
Linux 6.18-rc1 (2025-10-12 13:42:36 -0700)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux.git tags/kbuild-ms-extensions-6.19
for you to fetch changes up to c4781dc3d1cf0e017e1f290607ddc56cfe187afc:
Kbuild: enable -fms-extensions (2025-10-29 16:23:47 -0700)
----------------------------------------------------------------
Shared branch between Kbuild and other trees for enabling '-fms-extensions' for 6.19
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
----------------------------------------------------------------
Nathan Chancellor (1):
jfs: Rename _inline to avoid conflict with clang's '-fms-extensions'
Rasmus Villemoes (1):
Kbuild: enable -fms-extensions
Makefile | 3 +++
fs/jfs/jfs_incore.h | 6 +++---
scripts/Makefile.extrawarn | 4 +++-
3 files changed, 9 insertions(+), 4 deletions(-)
^ permalink raw reply [flat|nested] 19+ messages in thread
* fms extension (Was: [PATCH] fs/pipe: stop duplicating union pipe_index declaration)
2025-10-29 23:30 ` Nathan Chancellor
@ 2025-10-30 13:23 ` Christian Brauner
2025-10-30 13:38 ` Ard Biesheuvel
0 siblings, 1 reply; 19+ messages in thread
From: Christian Brauner @ 2025-10-30 13:23 UTC (permalink / raw)
To: Nathan Chancellor, Linus Torvalds
Cc: Ard Biesheuvel, linux-efi, Rasmus Villemoes, Alexander Viro,
linux-fsdevel, linux-kernel, linux-kbuild, David Sterba
On Wed, Oct 29, 2025 at 04:30:57PM -0700, Nathan Chancellor wrote:
> On Thu, Oct 30, 2025 at 12:13:11AM +0100, Christian Brauner wrote:
> > I'm fine either way. @Nathan, if you just want to give Linus the patch
> > if it's small enough or just want to give me a stable branch I can pull
> > I'll be content. Thanks!
>
> I do not care either way but I created a shared branch/tag since it was
> easy enough to do. If Linus wants to take these directly for -rc4, I am
> fine with that as well.
>
> Cheers,
> Nathan
>
> The following changes since commit 3a8660878839faadb4f1a6dd72c3179c1df56787:
>
> Linux 6.18-rc1 (2025-10-12 13:42:36 -0700)
>
> are available in the Git repository at:
>
> git://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux.git tags/kbuild-ms-extensions-6.19
Thanks, I pulled this and placed it into a branch that I can base other
branches on.
_But_, I'm already running into problems. :)
I'm changing a struct ns_common in ns_common.h (struct ns_common) and
wanted to make use of the fms extensions. ns_common.h is heavily
included by virtue of the namespace stuff. So we get an include chain
like the following:
In file included from ./include/linux/cgroup.h:23,
from ./include/linux/memcontrol.h:13,
from ./include/linux/swap.h:9,
from ./include/asm-generic/tlb.h:15,
from ./arch/x86/include/asm/tlb.h:8,
from ./arch/x86/include/asm/efi.h:7,
from drivers/firmware/efi/libstub/x86-stub.c:13:
./include/linux/ns_common.h:132:31: error: declaration does not declare anything [-Werror]
132 | struct ns_tree;
| ^
./include/linux/ns_common.h: In function '__ns_ref_active_read':
./include/linux/ns_common.h:228:31: error: 'const struct ns_common' has no member named '__ns_ref_active'
228 | return atomic_read(&ns->__ns_ref_active);
| ^~
In file included from ./arch/x86/include/asm/bug.h:108,
from ./arch/x86/include/asm/alternative.h:9,
from ./arch/x86/include/asm/segment.h:6,
from ./arch/x86/include/asm/ptrace.h:5,
from ./arch/x86/include/asm/math_emu.h:5,
from ./arch/x86/include/asm/processor.h:13,
from ./arch/x86/include/asm/timex.h:5,
from ./include/linux/timex.h:67,
from ./include/linux/time32.h:13,
from ./include/linux/time.h:60,
from ./include/linux/efi.h:17,
from drivers/firmware/efi/libstub/x86-stub.c:9:
Because struct cgroup_namespace embeddds struct ns_common and it
proliferates via mm stuff into the efi code.
So the EFI cod has it's own KBUILD_CFLAGS. It does:
# non-x86 reuses KBUILD_CFLAGS, x86 does not
cflags-y := $(KBUILD_CFLAGS)
<snip>
KBUILD_CFLAGS := $(subst $(CC_FLAGS_FTRACE),,$(cflags-y)) \
-Os -DDISABLE_BRANCH_PROFILING \
-include $(srctree)/include/linux/hidden.h \
-D__NO_FORTIFY \
-ffreestanding \
-fno-stack-protector \
$(call cc-option,-fno-addrsig) \
-D__DISABLE_EXPORTS
which means x86 doesn't get -fms-extension breaking the build. If I
manually insert:
diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile
index 94b05e4451dd..4ad2f8f42134 100644
--- a/drivers/firmware/efi/libstub/Makefile
+++ b/drivers/firmware/efi/libstub/Makefile
@@ -42,6 +42,8 @@ KBUILD_CFLAGS := $(subst $(CC_FLAGS_FTRACE),,$(cflags-y)) \
-ffreestanding \
-fno-stack-protector \
$(call cc-option,-fno-addrsig) \
+ -fms-extensions \
+ -Wno-microsoft-anon-tag \
-D__DISABLE_EXPORTS
The build works...
I think we need to decide how to fix this now because as soon as someone
makes use of the extension that is indirectly included by that libstub
thing we're fscked.
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: fms extension (Was: [PATCH] fs/pipe: stop duplicating union pipe_index declaration)
2025-10-30 13:23 ` fms extension (Was: [PATCH] fs/pipe: stop duplicating union pipe_index declaration) Christian Brauner
@ 2025-10-30 13:38 ` Ard Biesheuvel
2025-10-30 17:29 ` Nathan Chancellor
0 siblings, 1 reply; 19+ messages in thread
From: Ard Biesheuvel @ 2025-10-30 13:38 UTC (permalink / raw)
To: Christian Brauner
Cc: Nathan Chancellor, Linus Torvalds, linux-efi, Rasmus Villemoes,
Alexander Viro, linux-fsdevel, linux-kernel, linux-kbuild,
David Sterba
On Thu, 30 Oct 2025 at 14:23, Christian Brauner <brauner@kernel.org> wrote:
>
> On Wed, Oct 29, 2025 at 04:30:57PM -0700, Nathan Chancellor wrote:
> > On Thu, Oct 30, 2025 at 12:13:11AM +0100, Christian Brauner wrote:
> > > I'm fine either way. @Nathan, if you just want to give Linus the patch
> > > if it's small enough or just want to give me a stable branch I can pull
> > > I'll be content. Thanks!
> >
> > I do not care either way but I created a shared branch/tag since it was
> > easy enough to do. If Linus wants to take these directly for -rc4, I am
> > fine with that as well.
> >
> > Cheers,
> > Nathan
> >
> > The following changes since commit 3a8660878839faadb4f1a6dd72c3179c1df56787:
> >
> > Linux 6.18-rc1 (2025-10-12 13:42:36 -0700)
> >
> > are available in the Git repository at:
> >
> > git://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux.git tags/kbuild-ms-extensions-6.19
>
> Thanks, I pulled this and placed it into a branch that I can base other
> branches on.
>
> _But_, I'm already running into problems. :)
>
...
>
> Because struct cgroup_namespace embeddds struct ns_common and it
> proliferates via mm stuff into the efi code.
>
> So the EFI cod has it's own KBUILD_CFLAGS. It does:
>
> # non-x86 reuses KBUILD_CFLAGS, x86 does not
> cflags-y := $(KBUILD_CFLAGS)
>
> <snip>
>
> KBUILD_CFLAGS := $(subst $(CC_FLAGS_FTRACE),,$(cflags-y)) \
> -Os -DDISABLE_BRANCH_PROFILING \
> -include $(srctree)/include/linux/hidden.h \
> -D__NO_FORTIFY \
> -ffreestanding \
> -fno-stack-protector \
> $(call cc-option,-fno-addrsig) \
> -D__DISABLE_EXPORTS
>
> which means x86 doesn't get -fms-extension breaking the build. If I
> manually insert:
>
> diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile
> index 94b05e4451dd..4ad2f8f42134 100644
> --- a/drivers/firmware/efi/libstub/Makefile
> +++ b/drivers/firmware/efi/libstub/Makefile
> @@ -42,6 +42,8 @@ KBUILD_CFLAGS := $(subst $(CC_FLAGS_FTRACE),,$(cflags-y)) \
> -ffreestanding \
> -fno-stack-protector \
> $(call cc-option,-fno-addrsig) \
> + -fms-extensions \
> + -Wno-microsoft-anon-tag \
> -D__DISABLE_EXPORTS
>
> The build works...
>
> I think we need to decide how to fix this now because as soon as someone
> makes use of the extension that is indirectly included by that libstub
> thing we're fscked.
Unless anyone is feeling brave and wants to untangle the x86 command
line delta between the stub and core kernel, I suggest we just add
these flags just like you proposed (assuming all supported compilers
tolerate their presence)
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: fms extension (Was: [PATCH] fs/pipe: stop duplicating union pipe_index declaration)
2025-10-30 13:38 ` Ard Biesheuvel
@ 2025-10-30 17:29 ` Nathan Chancellor
2025-10-30 20:16 ` Christian Brauner
0 siblings, 1 reply; 19+ messages in thread
From: Nathan Chancellor @ 2025-10-30 17:29 UTC (permalink / raw)
To: Ard Biesheuvel
Cc: Christian Brauner, Linus Torvalds, linux-efi, Rasmus Villemoes,
Alexander Viro, linux-fsdevel, linux-kernel, linux-kbuild,
David Sterba
On Thu, Oct 30, 2025 at 02:38:50PM +0100, Ard Biesheuvel wrote:
> On Thu, 30 Oct 2025 at 14:23, Christian Brauner <brauner@kernel.org> wrote:
> >
> > On Wed, Oct 29, 2025 at 04:30:57PM -0700, Nathan Chancellor wrote:
> > > On Thu, Oct 30, 2025 at 12:13:11AM +0100, Christian Brauner wrote:
> > > > I'm fine either way. @Nathan, if you just want to give Linus the patch
> > > > if it's small enough or just want to give me a stable branch I can pull
> > > > I'll be content. Thanks!
> > >
> > > I do not care either way but I created a shared branch/tag since it was
> > > easy enough to do. If Linus wants to take these directly for -rc4, I am
> > > fine with that as well.
> > >
> > > Cheers,
> > > Nathan
> > >
> > > The following changes since commit 3a8660878839faadb4f1a6dd72c3179c1df56787:
> > >
> > > Linux 6.18-rc1 (2025-10-12 13:42:36 -0700)
> > >
> > > are available in the Git repository at:
> > >
> > > git://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux.git tags/kbuild-ms-extensions-6.19
> >
> > Thanks, I pulled this and placed it into a branch that I can base other
> > branches on.
> >
> > _But_, I'm already running into problems. :)
> >
> ...
> >
> > Because struct cgroup_namespace embeddds struct ns_common and it
> > proliferates via mm stuff into the efi code.
> >
> > So the EFI cod has it's own KBUILD_CFLAGS. It does:
> >
> > # non-x86 reuses KBUILD_CFLAGS, x86 does not
> > cflags-y := $(KBUILD_CFLAGS)
> >
> > <snip>
> >
> > KBUILD_CFLAGS := $(subst $(CC_FLAGS_FTRACE),,$(cflags-y)) \
> > -Os -DDISABLE_BRANCH_PROFILING \
> > -include $(srctree)/include/linux/hidden.h \
> > -D__NO_FORTIFY \
> > -ffreestanding \
> > -fno-stack-protector \
> > $(call cc-option,-fno-addrsig) \
> > -D__DISABLE_EXPORTS
> >
> > which means x86 doesn't get -fms-extension breaking the build. If I
> > manually insert:
> >
> > diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile
> > index 94b05e4451dd..4ad2f8f42134 100644
> > --- a/drivers/firmware/efi/libstub/Makefile
> > +++ b/drivers/firmware/efi/libstub/Makefile
> > @@ -42,6 +42,8 @@ KBUILD_CFLAGS := $(subst $(CC_FLAGS_FTRACE),,$(cflags-y)) \
> > -ffreestanding \
> > -fno-stack-protector \
> > $(call cc-option,-fno-addrsig) \
> > + -fms-extensions \
> > + -Wno-microsoft-anon-tag \
> > -D__DISABLE_EXPORTS
> >
> > The build works...
> >
> > I think we need to decide how to fix this now because as soon as someone
> > makes use of the extension that is indirectly included by that libstub
> > thing we're fscked.
>
> Unless anyone is feeling brave and wants to untangle the x86 command
> line delta between the stub and core kernel, I suggest we just add
> these flags just like you proposed (assuming all supported compilers
> tolerate their presence)
There are several other places in the kernel that blow away
KBUILD_CFLAGS like this that will need the same fix (I went off of
searching for -std=gnu11, as that was needed in many places to fix GCC
15). It is possible that we might want to take the opportunity to unify
these flags into something like KBUILD_DIALECT_CFLAGS but for now, I
just bothered with adding the flags in the existing places.
diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile
index ffa3536581f6..9d0efed91414 100644
--- a/arch/arm64/kernel/vdso32/Makefile
+++ b/arch/arm64/kernel/vdso32/Makefile
@@ -63,7 +63,7 @@ VDSO_CFLAGS += -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
$(filter -Werror,$(KBUILD_CPPFLAGS)) \
-Werror-implicit-function-declaration \
-Wno-format-security \
- -std=gnu11
+ -std=gnu11 -fms-extensions
VDSO_CFLAGS += -O2
# Some useful compiler-dependent flags from top-level Makefile
VDSO_CFLAGS += $(call cc32-option,-Wno-pointer-sign)
@@ -71,6 +71,7 @@ VDSO_CFLAGS += -fno-strict-overflow
VDSO_CFLAGS += $(call cc32-option,-Werror=strict-prototypes)
VDSO_CFLAGS += -Werror=date-time
VDSO_CFLAGS += $(call cc32-option,-Werror=incompatible-pointer-types)
+VDSO_CFLAGS += $(if $(CONFIG_CC_IS_CLANG),-Wno-microsoft-anon-tag)
# Compile as THUMB2 or ARM. Unwinding via frame-pointers in THUMB2 is
# unreliable.
diff --git a/arch/loongarch/vdso/Makefile b/arch/loongarch/vdso/Makefile
index d8316f993482..c0cc3ca5da9f 100644
--- a/arch/loongarch/vdso/Makefile
+++ b/arch/loongarch/vdso/Makefile
@@ -19,7 +19,7 @@ ccflags-vdso := \
cflags-vdso := $(ccflags-vdso) \
-isystem $(shell $(CC) -print-file-name=include) \
$(filter -W%,$(filter-out -Wa$(comma)%,$(KBUILD_CFLAGS))) \
- -std=gnu11 -O2 -g -fno-strict-aliasing -fno-common -fno-builtin \
+ -std=gnu11 -fms-extensions -O2 -g -fno-strict-aliasing -fno-common -fno-builtin \
-fno-stack-protector -fno-jump-tables -DDISABLE_BRANCH_PROFILING \
$(call cc-option, -fno-asynchronous-unwind-tables) \
$(call cc-option, -fno-stack-protector)
diff --git a/arch/parisc/boot/compressed/Makefile b/arch/parisc/boot/compressed/Makefile
index 17c42d718eb3..f8481e4e9d21 100644
--- a/arch/parisc/boot/compressed/Makefile
+++ b/arch/parisc/boot/compressed/Makefile
@@ -18,7 +18,7 @@ KBUILD_CFLAGS += -fno-PIE -mno-space-regs -mdisable-fpregs -Os
ifndef CONFIG_64BIT
KBUILD_CFLAGS += -mfast-indirect-calls
endif
-KBUILD_CFLAGS += -std=gnu11
+KBUILD_CFLAGS += -std=gnu11 -fms-extensions
LDFLAGS_vmlinux := -X -e startup --as-needed -T
$(obj)/vmlinux: $(obj)/vmlinux.lds $(addprefix $(obj)/, $(OBJECTS)) $(LIBGCC) FORCE
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index c47b78c1d3e7..f1a4761ebd44 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -70,7 +70,7 @@ BOOTCPPFLAGS := -nostdinc $(LINUXINCLUDE)
BOOTCPPFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
BOOTCFLAGS := $(BOOTTARGETFLAGS) \
- -std=gnu11 \
+ -std=gnu11 -fms-extensions \
-Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-fno-strict-aliasing -O2 \
-msoft-float -mno-altivec -mno-vsx \
@@ -86,6 +86,7 @@ BOOTARFLAGS := -crD
ifdef CONFIG_CC_IS_CLANG
BOOTCFLAGS += $(CLANG_FLAGS)
+BOOTCFLAGS += -Wno-microsoft-anon-tag
BOOTAFLAGS += $(CLANG_FLAGS)
endif
diff --git a/arch/s390/Makefile b/arch/s390/Makefile
index b4769241332b..8578361133a4 100644
--- a/arch/s390/Makefile
+++ b/arch/s390/Makefile
@@ -22,7 +22,7 @@ KBUILD_AFLAGS_DECOMPRESSOR := $(CLANG_FLAGS) -m64 -D__ASSEMBLY__
ifndef CONFIG_AS_IS_LLVM
KBUILD_AFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO),$(aflags_dwarf))
endif
-KBUILD_CFLAGS_DECOMPRESSOR := $(CLANG_FLAGS) -m64 -O2 -mpacked-stack -std=gnu11
+KBUILD_CFLAGS_DECOMPRESSOR := $(CLANG_FLAGS) -m64 -O2 -mpacked-stack -std=gnu11 -fms-extensions
KBUILD_CFLAGS_DECOMPRESSOR += -DDISABLE_BRANCH_PROFILING -D__NO_FORTIFY
KBUILD_CFLAGS_DECOMPRESSOR += -D__DECOMPRESSOR
KBUILD_CFLAGS_DECOMPRESSOR += -Wno-pointer-sign
@@ -35,6 +35,7 @@ KBUILD_CFLAGS_DECOMPRESSOR += $(call cc-disable-warning, address-of-packed-membe
KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO),-g)
KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO_DWARF4), $(call cc-option, -gdwarf-4,))
KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_CC_NO_ARRAY_BOUNDS),-Wno-array-bounds)
+KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_CC_IS_CLANG),-Wno-microsoft-anon-tag)
UTS_MACHINE := s390x
STACK_SIZE := $(if $(CONFIG_KASAN),65536,$(if $(CONFIG_KMSAN),65536,16384))
diff --git a/arch/s390/purgatory/Makefile b/arch/s390/purgatory/Makefile
index bd39b36e7bd6..0c196a5b194a 100644
--- a/arch/s390/purgatory/Makefile
+++ b/arch/s390/purgatory/Makefile
@@ -13,7 +13,7 @@ CFLAGS_sha256.o := -D__NO_FORTIFY
$(obj)/mem.o: $(srctree)/arch/s390/lib/mem.S FORCE
$(call if_changed_rule,as_o_S)
-KBUILD_CFLAGS := -std=gnu11 -fno-strict-aliasing -Wall -Wstrict-prototypes
+KBUILD_CFLAGS := -std=gnu11 -fms-extensions -fno-strict-aliasing -Wall -Wstrict-prototypes
KBUILD_CFLAGS += -Wno-pointer-sign -Wno-sign-compare
KBUILD_CFLAGS += -fno-zero-initialized-in-bss -fno-builtin -ffreestanding
KBUILD_CFLAGS += -Os -m64 -msoft-float -fno-common
@@ -21,6 +21,7 @@ KBUILD_CFLAGS += -fno-stack-protector
KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
KBUILD_CFLAGS += -D__DISABLE_EXPORTS
KBUILD_CFLAGS += $(CLANG_FLAGS)
+KBUILD_CFLAGS += $(if $(CONFIG_CC_IS_CLANG),-Wno-microsoft-anon-tag)
KBUILD_CFLAGS += $(call cc-option,-fno-PIE)
KBUILD_AFLAGS := $(filter-out -DCC_USING_EXPOLINE,$(KBUILD_AFLAGS))
KBUILD_AFLAGS += -D__DISABLE_EXPORTS
diff --git a/arch/x86/Makefile b/arch/x86/Makefile
index 4db7e4bf69f5..e20e25b8b16c 100644
--- a/arch/x86/Makefile
+++ b/arch/x86/Makefile
@@ -48,7 +48,8 @@ endif
# How to compile the 16-bit code. Note we always compile for -march=i386;
# that way we can complain to the user if the CPU is insufficient.
-REALMODE_CFLAGS := -std=gnu11 -m16 -g -Os -DDISABLE_BRANCH_PROFILING -D__DISABLE_EXPORTS \
+REALMODE_CFLAGS := -std=gnu11 -fms-extensions -m16 -g -Os \
+ -DDISABLE_BRANCH_PROFILING -D__DISABLE_EXPORTS \
-Wall -Wstrict-prototypes -march=i386 -mregparm=3 \
-fno-strict-aliasing -fomit-frame-pointer -fno-pic \
-mno-mmx -mno-sse $(call cc-option,-fcf-protection=none)
@@ -60,6 +61,7 @@ REALMODE_CFLAGS += $(cc_stack_align4)
REALMODE_CFLAGS += $(CLANG_FLAGS)
ifdef CONFIG_CC_IS_CLANG
REALMODE_CFLAGS += -Wno-gnu
+REALMODE_CFLAGS += -Wno-microsoft-anon-tag
endif
export REALMODE_CFLAGS
diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
index 74657589264d..68f9d7a1683b 100644
--- a/arch/x86/boot/compressed/Makefile
+++ b/arch/x86/boot/compressed/Makefile
@@ -25,7 +25,7 @@ targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma \
# avoid errors with '-march=i386', and future flags may depend on the target to
# be valid.
KBUILD_CFLAGS := -m$(BITS) -O2 $(CLANG_FLAGS)
-KBUILD_CFLAGS += -std=gnu11
+KBUILD_CFLAGS += -std=gnu11 -fms-extensions
KBUILD_CFLAGS += -fno-strict-aliasing -fPIE
KBUILD_CFLAGS += -Wundef
KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
@@ -36,7 +36,10 @@ KBUILD_CFLAGS += -mno-mmx -mno-sse
KBUILD_CFLAGS += -ffreestanding -fshort-wchar
KBUILD_CFLAGS += -fno-stack-protector
KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
-KBUILD_CFLAGS += $(call cc-disable-warning, gnu)
+ifdef CONFIG_CC_IS_CLANG
+KBUILD_CFLAGS += -Wno-gnu
+KBUILD_CFLAGS += -Wno-microsoft-anon-tag
+endif
KBUILD_CFLAGS += -Wno-pointer-sign
KBUILD_CFLAGS += -fno-asynchronous-unwind-tables
KBUILD_CFLAGS += -D__DISABLE_EXPORTS
diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile
index 94b05e4451dd..7d15a85d579f 100644
--- a/drivers/firmware/efi/libstub/Makefile
+++ b/drivers/firmware/efi/libstub/Makefile
@@ -11,12 +11,12 @@ cflags-y := $(KBUILD_CFLAGS)
cflags-$(CONFIG_X86_32) := -march=i386
cflags-$(CONFIG_X86_64) := -mcmodel=small
-cflags-$(CONFIG_X86) += -m$(BITS) -D__KERNEL__ -std=gnu11 \
+cflags-$(CONFIG_X86) += -m$(BITS) -D__KERNEL__ -std=gnu11 -fms-extensions \
-fPIC -fno-strict-aliasing -mno-red-zone \
-mno-mmx -mno-sse -fshort-wchar \
-Wno-pointer-sign \
$(call cc-disable-warning, address-of-packed-member) \
- $(call cc-disable-warning, gnu) \
+ $(if $(CONFIG_CC_IS_CLANG),-Wno-gnu -Wno-microsoft-anon-tag) \
-fno-asynchronous-unwind-tables \
$(CLANG_FLAGS)
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: fms extension (Was: [PATCH] fs/pipe: stop duplicating union pipe_index declaration)
2025-10-30 17:29 ` Nathan Chancellor
@ 2025-10-30 20:16 ` Christian Brauner
2025-10-31 1:34 ` Nathan Chancellor
0 siblings, 1 reply; 19+ messages in thread
From: Christian Brauner @ 2025-10-30 20:16 UTC (permalink / raw)
To: Nathan Chancellor
Cc: Ard Biesheuvel, Linus Torvalds, linux-efi, Rasmus Villemoes,
Alexander Viro, linux-fsdevel, linux-kernel, linux-kbuild,
David Sterba
On Thu, Oct 30, 2025 at 10:29:18AM -0700, Nathan Chancellor wrote:
> On Thu, Oct 30, 2025 at 02:38:50PM +0100, Ard Biesheuvel wrote:
> > On Thu, 30 Oct 2025 at 14:23, Christian Brauner <brauner@kernel.org> wrote:
> > >
> > > On Wed, Oct 29, 2025 at 04:30:57PM -0700, Nathan Chancellor wrote:
> > > > On Thu, Oct 30, 2025 at 12:13:11AM +0100, Christian Brauner wrote:
> > > > > I'm fine either way. @Nathan, if you just want to give Linus the patch
> > > > > if it's small enough or just want to give me a stable branch I can pull
> > > > > I'll be content. Thanks!
> > > >
> > > > I do not care either way but I created a shared branch/tag since it was
> > > > easy enough to do. If Linus wants to take these directly for -rc4, I am
> > > > fine with that as well.
> > > >
> > > > Cheers,
> > > > Nathan
> > > >
> > > > The following changes since commit 3a8660878839faadb4f1a6dd72c3179c1df56787:
> > > >
> > > > Linux 6.18-rc1 (2025-10-12 13:42:36 -0700)
> > > >
> > > > are available in the Git repository at:
> > > >
> > > > git://git.kernel.org/pub/scm/linux/kernel/git/kbuild/linux.git tags/kbuild-ms-extensions-6.19
> > >
> > > Thanks, I pulled this and placed it into a branch that I can base other
> > > branches on.
> > >
> > > _But_, I'm already running into problems. :)
> > >
> > ...
> > >
> > > Because struct cgroup_namespace embeddds struct ns_common and it
> > > proliferates via mm stuff into the efi code.
> > >
> > > So the EFI cod has it's own KBUILD_CFLAGS. It does:
> > >
> > > # non-x86 reuses KBUILD_CFLAGS, x86 does not
> > > cflags-y := $(KBUILD_CFLAGS)
> > >
> > > <snip>
> > >
> > > KBUILD_CFLAGS := $(subst $(CC_FLAGS_FTRACE),,$(cflags-y)) \
> > > -Os -DDISABLE_BRANCH_PROFILING \
> > > -include $(srctree)/include/linux/hidden.h \
> > > -D__NO_FORTIFY \
> > > -ffreestanding \
> > > -fno-stack-protector \
> > > $(call cc-option,-fno-addrsig) \
> > > -D__DISABLE_EXPORTS
> > >
> > > which means x86 doesn't get -fms-extension breaking the build. If I
> > > manually insert:
> > >
> > > diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile
> > > index 94b05e4451dd..4ad2f8f42134 100644
> > > --- a/drivers/firmware/efi/libstub/Makefile
> > > +++ b/drivers/firmware/efi/libstub/Makefile
> > > @@ -42,6 +42,8 @@ KBUILD_CFLAGS := $(subst $(CC_FLAGS_FTRACE),,$(cflags-y)) \
> > > -ffreestanding \
> > > -fno-stack-protector \
> > > $(call cc-option,-fno-addrsig) \
> > > + -fms-extensions \
> > > + -Wno-microsoft-anon-tag \
> > > -D__DISABLE_EXPORTS
> > >
> > > The build works...
> > >
> > > I think we need to decide how to fix this now because as soon as someone
> > > makes use of the extension that is indirectly included by that libstub
> > > thing we're fscked.
> >
> > Unless anyone is feeling brave and wants to untangle the x86 command
> > line delta between the stub and core kernel, I suggest we just add
> > these flags just like you proposed (assuming all supported compilers
> > tolerate their presence)
>
> There are several other places in the kernel that blow away
> KBUILD_CFLAGS like this that will need the same fix (I went off of
> searching for -std=gnu11, as that was needed in many places to fix GCC
> 15). It is possible that we might want to take the opportunity to unify
> these flags into something like KBUILD_DIALECT_CFLAGS but for now, I
> just bothered with adding the flags in the existing places.
That should hopefully do it. Can you update the shared branch with that
and then tell me when I can repull?
>
> diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile
> index ffa3536581f6..9d0efed91414 100644
> --- a/arch/arm64/kernel/vdso32/Makefile
> +++ b/arch/arm64/kernel/vdso32/Makefile
> @@ -63,7 +63,7 @@ VDSO_CFLAGS += -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
> $(filter -Werror,$(KBUILD_CPPFLAGS)) \
> -Werror-implicit-function-declaration \
> -Wno-format-security \
> - -std=gnu11
> + -std=gnu11 -fms-extensions
> VDSO_CFLAGS += -O2
> # Some useful compiler-dependent flags from top-level Makefile
> VDSO_CFLAGS += $(call cc32-option,-Wno-pointer-sign)
> @@ -71,6 +71,7 @@ VDSO_CFLAGS += -fno-strict-overflow
> VDSO_CFLAGS += $(call cc32-option,-Werror=strict-prototypes)
> VDSO_CFLAGS += -Werror=date-time
> VDSO_CFLAGS += $(call cc32-option,-Werror=incompatible-pointer-types)
> +VDSO_CFLAGS += $(if $(CONFIG_CC_IS_CLANG),-Wno-microsoft-anon-tag)
>
> # Compile as THUMB2 or ARM. Unwinding via frame-pointers in THUMB2 is
> # unreliable.
> diff --git a/arch/loongarch/vdso/Makefile b/arch/loongarch/vdso/Makefile
> index d8316f993482..c0cc3ca5da9f 100644
> --- a/arch/loongarch/vdso/Makefile
> +++ b/arch/loongarch/vdso/Makefile
> @@ -19,7 +19,7 @@ ccflags-vdso := \
> cflags-vdso := $(ccflags-vdso) \
> -isystem $(shell $(CC) -print-file-name=include) \
> $(filter -W%,$(filter-out -Wa$(comma)%,$(KBUILD_CFLAGS))) \
> - -std=gnu11 -O2 -g -fno-strict-aliasing -fno-common -fno-builtin \
> + -std=gnu11 -fms-extensions -O2 -g -fno-strict-aliasing -fno-common -fno-builtin \
> -fno-stack-protector -fno-jump-tables -DDISABLE_BRANCH_PROFILING \
> $(call cc-option, -fno-asynchronous-unwind-tables) \
> $(call cc-option, -fno-stack-protector)
> diff --git a/arch/parisc/boot/compressed/Makefile b/arch/parisc/boot/compressed/Makefile
> index 17c42d718eb3..f8481e4e9d21 100644
> --- a/arch/parisc/boot/compressed/Makefile
> +++ b/arch/parisc/boot/compressed/Makefile
> @@ -18,7 +18,7 @@ KBUILD_CFLAGS += -fno-PIE -mno-space-regs -mdisable-fpregs -Os
> ifndef CONFIG_64BIT
> KBUILD_CFLAGS += -mfast-indirect-calls
> endif
> -KBUILD_CFLAGS += -std=gnu11
> +KBUILD_CFLAGS += -std=gnu11 -fms-extensions
>
> LDFLAGS_vmlinux := -X -e startup --as-needed -T
> $(obj)/vmlinux: $(obj)/vmlinux.lds $(addprefix $(obj)/, $(OBJECTS)) $(LIBGCC) FORCE
> diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> index c47b78c1d3e7..f1a4761ebd44 100644
> --- a/arch/powerpc/boot/Makefile
> +++ b/arch/powerpc/boot/Makefile
> @@ -70,7 +70,7 @@ BOOTCPPFLAGS := -nostdinc $(LINUXINCLUDE)
> BOOTCPPFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
>
> BOOTCFLAGS := $(BOOTTARGETFLAGS) \
> - -std=gnu11 \
> + -std=gnu11 -fms-extensions \
> -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
> -fno-strict-aliasing -O2 \
> -msoft-float -mno-altivec -mno-vsx \
> @@ -86,6 +86,7 @@ BOOTARFLAGS := -crD
>
> ifdef CONFIG_CC_IS_CLANG
> BOOTCFLAGS += $(CLANG_FLAGS)
> +BOOTCFLAGS += -Wno-microsoft-anon-tag
> BOOTAFLAGS += $(CLANG_FLAGS)
> endif
>
> diff --git a/arch/s390/Makefile b/arch/s390/Makefile
> index b4769241332b..8578361133a4 100644
> --- a/arch/s390/Makefile
> +++ b/arch/s390/Makefile
> @@ -22,7 +22,7 @@ KBUILD_AFLAGS_DECOMPRESSOR := $(CLANG_FLAGS) -m64 -D__ASSEMBLY__
> ifndef CONFIG_AS_IS_LLVM
> KBUILD_AFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO),$(aflags_dwarf))
> endif
> -KBUILD_CFLAGS_DECOMPRESSOR := $(CLANG_FLAGS) -m64 -O2 -mpacked-stack -std=gnu11
> +KBUILD_CFLAGS_DECOMPRESSOR := $(CLANG_FLAGS) -m64 -O2 -mpacked-stack -std=gnu11 -fms-extensions
> KBUILD_CFLAGS_DECOMPRESSOR += -DDISABLE_BRANCH_PROFILING -D__NO_FORTIFY
> KBUILD_CFLAGS_DECOMPRESSOR += -D__DECOMPRESSOR
> KBUILD_CFLAGS_DECOMPRESSOR += -Wno-pointer-sign
> @@ -35,6 +35,7 @@ KBUILD_CFLAGS_DECOMPRESSOR += $(call cc-disable-warning, address-of-packed-membe
> KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO),-g)
> KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO_DWARF4), $(call cc-option, -gdwarf-4,))
> KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_CC_NO_ARRAY_BOUNDS),-Wno-array-bounds)
> +KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_CC_IS_CLANG),-Wno-microsoft-anon-tag)
>
> UTS_MACHINE := s390x
> STACK_SIZE := $(if $(CONFIG_KASAN),65536,$(if $(CONFIG_KMSAN),65536,16384))
> diff --git a/arch/s390/purgatory/Makefile b/arch/s390/purgatory/Makefile
> index bd39b36e7bd6..0c196a5b194a 100644
> --- a/arch/s390/purgatory/Makefile
> +++ b/arch/s390/purgatory/Makefile
> @@ -13,7 +13,7 @@ CFLAGS_sha256.o := -D__NO_FORTIFY
> $(obj)/mem.o: $(srctree)/arch/s390/lib/mem.S FORCE
> $(call if_changed_rule,as_o_S)
>
> -KBUILD_CFLAGS := -std=gnu11 -fno-strict-aliasing -Wall -Wstrict-prototypes
> +KBUILD_CFLAGS := -std=gnu11 -fms-extensions -fno-strict-aliasing -Wall -Wstrict-prototypes
> KBUILD_CFLAGS += -Wno-pointer-sign -Wno-sign-compare
> KBUILD_CFLAGS += -fno-zero-initialized-in-bss -fno-builtin -ffreestanding
> KBUILD_CFLAGS += -Os -m64 -msoft-float -fno-common
> @@ -21,6 +21,7 @@ KBUILD_CFLAGS += -fno-stack-protector
> KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
> KBUILD_CFLAGS += -D__DISABLE_EXPORTS
> KBUILD_CFLAGS += $(CLANG_FLAGS)
> +KBUILD_CFLAGS += $(if $(CONFIG_CC_IS_CLANG),-Wno-microsoft-anon-tag)
> KBUILD_CFLAGS += $(call cc-option,-fno-PIE)
> KBUILD_AFLAGS := $(filter-out -DCC_USING_EXPOLINE,$(KBUILD_AFLAGS))
> KBUILD_AFLAGS += -D__DISABLE_EXPORTS
> diff --git a/arch/x86/Makefile b/arch/x86/Makefile
> index 4db7e4bf69f5..e20e25b8b16c 100644
> --- a/arch/x86/Makefile
> +++ b/arch/x86/Makefile
> @@ -48,7 +48,8 @@ endif
>
> # How to compile the 16-bit code. Note we always compile for -march=i386;
> # that way we can complain to the user if the CPU is insufficient.
> -REALMODE_CFLAGS := -std=gnu11 -m16 -g -Os -DDISABLE_BRANCH_PROFILING -D__DISABLE_EXPORTS \
> +REALMODE_CFLAGS := -std=gnu11 -fms-extensions -m16 -g -Os \
> + -DDISABLE_BRANCH_PROFILING -D__DISABLE_EXPORTS \
> -Wall -Wstrict-prototypes -march=i386 -mregparm=3 \
> -fno-strict-aliasing -fomit-frame-pointer -fno-pic \
> -mno-mmx -mno-sse $(call cc-option,-fcf-protection=none)
> @@ -60,6 +61,7 @@ REALMODE_CFLAGS += $(cc_stack_align4)
> REALMODE_CFLAGS += $(CLANG_FLAGS)
> ifdef CONFIG_CC_IS_CLANG
> REALMODE_CFLAGS += -Wno-gnu
> +REALMODE_CFLAGS += -Wno-microsoft-anon-tag
> endif
> export REALMODE_CFLAGS
>
> diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
> index 74657589264d..68f9d7a1683b 100644
> --- a/arch/x86/boot/compressed/Makefile
> +++ b/arch/x86/boot/compressed/Makefile
> @@ -25,7 +25,7 @@ targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma \
> # avoid errors with '-march=i386', and future flags may depend on the target to
> # be valid.
> KBUILD_CFLAGS := -m$(BITS) -O2 $(CLANG_FLAGS)
> -KBUILD_CFLAGS += -std=gnu11
> +KBUILD_CFLAGS += -std=gnu11 -fms-extensions
> KBUILD_CFLAGS += -fno-strict-aliasing -fPIE
> KBUILD_CFLAGS += -Wundef
> KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
> @@ -36,7 +36,10 @@ KBUILD_CFLAGS += -mno-mmx -mno-sse
> KBUILD_CFLAGS += -ffreestanding -fshort-wchar
> KBUILD_CFLAGS += -fno-stack-protector
> KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
> -KBUILD_CFLAGS += $(call cc-disable-warning, gnu)
> +ifdef CONFIG_CC_IS_CLANG
> +KBUILD_CFLAGS += -Wno-gnu
> +KBUILD_CFLAGS += -Wno-microsoft-anon-tag
> +endif
> KBUILD_CFLAGS += -Wno-pointer-sign
> KBUILD_CFLAGS += -fno-asynchronous-unwind-tables
> KBUILD_CFLAGS += -D__DISABLE_EXPORTS
> diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile
> index 94b05e4451dd..7d15a85d579f 100644
> --- a/drivers/firmware/efi/libstub/Makefile
> +++ b/drivers/firmware/efi/libstub/Makefile
> @@ -11,12 +11,12 @@ cflags-y := $(KBUILD_CFLAGS)
>
> cflags-$(CONFIG_X86_32) := -march=i386
> cflags-$(CONFIG_X86_64) := -mcmodel=small
> -cflags-$(CONFIG_X86) += -m$(BITS) -D__KERNEL__ -std=gnu11 \
> +cflags-$(CONFIG_X86) += -m$(BITS) -D__KERNEL__ -std=gnu11 -fms-extensions \
> -fPIC -fno-strict-aliasing -mno-red-zone \
> -mno-mmx -mno-sse -fshort-wchar \
> -Wno-pointer-sign \
> $(call cc-disable-warning, address-of-packed-member) \
> - $(call cc-disable-warning, gnu) \
> + $(if $(CONFIG_CC_IS_CLANG),-Wno-gnu -Wno-microsoft-anon-tag) \
> -fno-asynchronous-unwind-tables \
> $(CLANG_FLAGS)
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: fms extension (Was: [PATCH] fs/pipe: stop duplicating union pipe_index declaration)
2025-10-30 20:16 ` Christian Brauner
@ 2025-10-31 1:34 ` Nathan Chancellor
2025-11-01 13:10 ` Christian Brauner
0 siblings, 1 reply; 19+ messages in thread
From: Nathan Chancellor @ 2025-10-31 1:34 UTC (permalink / raw)
To: Christian Brauner
Cc: Ard Biesheuvel, Linus Torvalds, linux-efi, Rasmus Villemoes,
Alexander Viro, linux-fsdevel, linux-kernel, linux-kbuild,
David Sterba
On Thu, Oct 30, 2025 at 09:16:02PM +0100, Christian Brauner wrote:
> On Thu, Oct 30, 2025 at 10:29:18AM -0700, Nathan Chancellor wrote:
> > There are several other places in the kernel that blow away
> > KBUILD_CFLAGS like this that will need the same fix (I went off of
> > searching for -std=gnu11, as that was needed in many places to fix GCC
> > 15). It is possible that we might want to take the opportunity to unify
> > these flags into something like KBUILD_DIALECT_CFLAGS but for now, I
> > just bothered with adding the flags in the existing places.
>
> That should hopefully do it. Can you update the shared branch with that
> and then tell me when I can repull?
I have applied this as commit e066b73bd881 ("kbuild: Add
'-fms-extensions' to areas with dedicated CFLAGS") in the
kbuild-ms-extensions branch. I may solicit acks from architecture
maintainers but I would like to make sure there are no other surprises
before then.
> > diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile
> > index ffa3536581f6..9d0efed91414 100644
> > --- a/arch/arm64/kernel/vdso32/Makefile
> > +++ b/arch/arm64/kernel/vdso32/Makefile
> > @@ -63,7 +63,7 @@ VDSO_CFLAGS += -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
> > $(filter -Werror,$(KBUILD_CPPFLAGS)) \
> > -Werror-implicit-function-declaration \
> > -Wno-format-security \
> > - -std=gnu11
> > + -std=gnu11 -fms-extensions
> > VDSO_CFLAGS += -O2
> > # Some useful compiler-dependent flags from top-level Makefile
> > VDSO_CFLAGS += $(call cc32-option,-Wno-pointer-sign)
> > @@ -71,6 +71,7 @@ VDSO_CFLAGS += -fno-strict-overflow
> > VDSO_CFLAGS += $(call cc32-option,-Werror=strict-prototypes)
> > VDSO_CFLAGS += -Werror=date-time
> > VDSO_CFLAGS += $(call cc32-option,-Werror=incompatible-pointer-types)
> > +VDSO_CFLAGS += $(if $(CONFIG_CC_IS_CLANG),-Wno-microsoft-anon-tag)
> >
> > # Compile as THUMB2 or ARM. Unwinding via frame-pointers in THUMB2 is
> > # unreliable.
> > diff --git a/arch/loongarch/vdso/Makefile b/arch/loongarch/vdso/Makefile
> > index d8316f993482..c0cc3ca5da9f 100644
> > --- a/arch/loongarch/vdso/Makefile
> > +++ b/arch/loongarch/vdso/Makefile
> > @@ -19,7 +19,7 @@ ccflags-vdso := \
> > cflags-vdso := $(ccflags-vdso) \
> > -isystem $(shell $(CC) -print-file-name=include) \
> > $(filter -W%,$(filter-out -Wa$(comma)%,$(KBUILD_CFLAGS))) \
> > - -std=gnu11 -O2 -g -fno-strict-aliasing -fno-common -fno-builtin \
> > + -std=gnu11 -fms-extensions -O2 -g -fno-strict-aliasing -fno-common -fno-builtin \
> > -fno-stack-protector -fno-jump-tables -DDISABLE_BRANCH_PROFILING \
> > $(call cc-option, -fno-asynchronous-unwind-tables) \
> > $(call cc-option, -fno-stack-protector)
> > diff --git a/arch/parisc/boot/compressed/Makefile b/arch/parisc/boot/compressed/Makefile
> > index 17c42d718eb3..f8481e4e9d21 100644
> > --- a/arch/parisc/boot/compressed/Makefile
> > +++ b/arch/parisc/boot/compressed/Makefile
> > @@ -18,7 +18,7 @@ KBUILD_CFLAGS += -fno-PIE -mno-space-regs -mdisable-fpregs -Os
> > ifndef CONFIG_64BIT
> > KBUILD_CFLAGS += -mfast-indirect-calls
> > endif
> > -KBUILD_CFLAGS += -std=gnu11
> > +KBUILD_CFLAGS += -std=gnu11 -fms-extensions
> >
> > LDFLAGS_vmlinux := -X -e startup --as-needed -T
> > $(obj)/vmlinux: $(obj)/vmlinux.lds $(addprefix $(obj)/, $(OBJECTS)) $(LIBGCC) FORCE
> > diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
> > index c47b78c1d3e7..f1a4761ebd44 100644
> > --- a/arch/powerpc/boot/Makefile
> > +++ b/arch/powerpc/boot/Makefile
> > @@ -70,7 +70,7 @@ BOOTCPPFLAGS := -nostdinc $(LINUXINCLUDE)
> > BOOTCPPFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
> >
> > BOOTCFLAGS := $(BOOTTARGETFLAGS) \
> > - -std=gnu11 \
> > + -std=gnu11 -fms-extensions \
> > -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
> > -fno-strict-aliasing -O2 \
> > -msoft-float -mno-altivec -mno-vsx \
> > @@ -86,6 +86,7 @@ BOOTARFLAGS := -crD
> >
> > ifdef CONFIG_CC_IS_CLANG
> > BOOTCFLAGS += $(CLANG_FLAGS)
> > +BOOTCFLAGS += -Wno-microsoft-anon-tag
> > BOOTAFLAGS += $(CLANG_FLAGS)
> > endif
> >
> > diff --git a/arch/s390/Makefile b/arch/s390/Makefile
> > index b4769241332b..8578361133a4 100644
> > --- a/arch/s390/Makefile
> > +++ b/arch/s390/Makefile
> > @@ -22,7 +22,7 @@ KBUILD_AFLAGS_DECOMPRESSOR := $(CLANG_FLAGS) -m64 -D__ASSEMBLY__
> > ifndef CONFIG_AS_IS_LLVM
> > KBUILD_AFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO),$(aflags_dwarf))
> > endif
> > -KBUILD_CFLAGS_DECOMPRESSOR := $(CLANG_FLAGS) -m64 -O2 -mpacked-stack -std=gnu11
> > +KBUILD_CFLAGS_DECOMPRESSOR := $(CLANG_FLAGS) -m64 -O2 -mpacked-stack -std=gnu11 -fms-extensions
> > KBUILD_CFLAGS_DECOMPRESSOR += -DDISABLE_BRANCH_PROFILING -D__NO_FORTIFY
> > KBUILD_CFLAGS_DECOMPRESSOR += -D__DECOMPRESSOR
> > KBUILD_CFLAGS_DECOMPRESSOR += -Wno-pointer-sign
> > @@ -35,6 +35,7 @@ KBUILD_CFLAGS_DECOMPRESSOR += $(call cc-disable-warning, address-of-packed-membe
> > KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO),-g)
> > KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_DEBUG_INFO_DWARF4), $(call cc-option, -gdwarf-4,))
> > KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_CC_NO_ARRAY_BOUNDS),-Wno-array-bounds)
> > +KBUILD_CFLAGS_DECOMPRESSOR += $(if $(CONFIG_CC_IS_CLANG),-Wno-microsoft-anon-tag)
> >
> > UTS_MACHINE := s390x
> > STACK_SIZE := $(if $(CONFIG_KASAN),65536,$(if $(CONFIG_KMSAN),65536,16384))
> > diff --git a/arch/s390/purgatory/Makefile b/arch/s390/purgatory/Makefile
> > index bd39b36e7bd6..0c196a5b194a 100644
> > --- a/arch/s390/purgatory/Makefile
> > +++ b/arch/s390/purgatory/Makefile
> > @@ -13,7 +13,7 @@ CFLAGS_sha256.o := -D__NO_FORTIFY
> > $(obj)/mem.o: $(srctree)/arch/s390/lib/mem.S FORCE
> > $(call if_changed_rule,as_o_S)
> >
> > -KBUILD_CFLAGS := -std=gnu11 -fno-strict-aliasing -Wall -Wstrict-prototypes
> > +KBUILD_CFLAGS := -std=gnu11 -fms-extensions -fno-strict-aliasing -Wall -Wstrict-prototypes
> > KBUILD_CFLAGS += -Wno-pointer-sign -Wno-sign-compare
> > KBUILD_CFLAGS += -fno-zero-initialized-in-bss -fno-builtin -ffreestanding
> > KBUILD_CFLAGS += -Os -m64 -msoft-float -fno-common
> > @@ -21,6 +21,7 @@ KBUILD_CFLAGS += -fno-stack-protector
> > KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
> > KBUILD_CFLAGS += -D__DISABLE_EXPORTS
> > KBUILD_CFLAGS += $(CLANG_FLAGS)
> > +KBUILD_CFLAGS += $(if $(CONFIG_CC_IS_CLANG),-Wno-microsoft-anon-tag)
> > KBUILD_CFLAGS += $(call cc-option,-fno-PIE)
> > KBUILD_AFLAGS := $(filter-out -DCC_USING_EXPOLINE,$(KBUILD_AFLAGS))
> > KBUILD_AFLAGS += -D__DISABLE_EXPORTS
> > diff --git a/arch/x86/Makefile b/arch/x86/Makefile
> > index 4db7e4bf69f5..e20e25b8b16c 100644
> > --- a/arch/x86/Makefile
> > +++ b/arch/x86/Makefile
> > @@ -48,7 +48,8 @@ endif
> >
> > # How to compile the 16-bit code. Note we always compile for -march=i386;
> > # that way we can complain to the user if the CPU is insufficient.
> > -REALMODE_CFLAGS := -std=gnu11 -m16 -g -Os -DDISABLE_BRANCH_PROFILING -D__DISABLE_EXPORTS \
> > +REALMODE_CFLAGS := -std=gnu11 -fms-extensions -m16 -g -Os \
> > + -DDISABLE_BRANCH_PROFILING -D__DISABLE_EXPORTS \
> > -Wall -Wstrict-prototypes -march=i386 -mregparm=3 \
> > -fno-strict-aliasing -fomit-frame-pointer -fno-pic \
> > -mno-mmx -mno-sse $(call cc-option,-fcf-protection=none)
> > @@ -60,6 +61,7 @@ REALMODE_CFLAGS += $(cc_stack_align4)
> > REALMODE_CFLAGS += $(CLANG_FLAGS)
> > ifdef CONFIG_CC_IS_CLANG
> > REALMODE_CFLAGS += -Wno-gnu
> > +REALMODE_CFLAGS += -Wno-microsoft-anon-tag
> > endif
> > export REALMODE_CFLAGS
> >
> > diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
> > index 74657589264d..68f9d7a1683b 100644
> > --- a/arch/x86/boot/compressed/Makefile
> > +++ b/arch/x86/boot/compressed/Makefile
> > @@ -25,7 +25,7 @@ targets := vmlinux vmlinux.bin vmlinux.bin.gz vmlinux.bin.bz2 vmlinux.bin.lzma \
> > # avoid errors with '-march=i386', and future flags may depend on the target to
> > # be valid.
> > KBUILD_CFLAGS := -m$(BITS) -O2 $(CLANG_FLAGS)
> > -KBUILD_CFLAGS += -std=gnu11
> > +KBUILD_CFLAGS += -std=gnu11 -fms-extensions
> > KBUILD_CFLAGS += -fno-strict-aliasing -fPIE
> > KBUILD_CFLAGS += -Wundef
> > KBUILD_CFLAGS += -DDISABLE_BRANCH_PROFILING
> > @@ -36,7 +36,10 @@ KBUILD_CFLAGS += -mno-mmx -mno-sse
> > KBUILD_CFLAGS += -ffreestanding -fshort-wchar
> > KBUILD_CFLAGS += -fno-stack-protector
> > KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
> > -KBUILD_CFLAGS += $(call cc-disable-warning, gnu)
> > +ifdef CONFIG_CC_IS_CLANG
> > +KBUILD_CFLAGS += -Wno-gnu
> > +KBUILD_CFLAGS += -Wno-microsoft-anon-tag
> > +endif
> > KBUILD_CFLAGS += -Wno-pointer-sign
> > KBUILD_CFLAGS += -fno-asynchronous-unwind-tables
> > KBUILD_CFLAGS += -D__DISABLE_EXPORTS
> > diff --git a/drivers/firmware/efi/libstub/Makefile b/drivers/firmware/efi/libstub/Makefile
> > index 94b05e4451dd..7d15a85d579f 100644
> > --- a/drivers/firmware/efi/libstub/Makefile
> > +++ b/drivers/firmware/efi/libstub/Makefile
> > @@ -11,12 +11,12 @@ cflags-y := $(KBUILD_CFLAGS)
> >
> > cflags-$(CONFIG_X86_32) := -march=i386
> > cflags-$(CONFIG_X86_64) := -mcmodel=small
> > -cflags-$(CONFIG_X86) += -m$(BITS) -D__KERNEL__ -std=gnu11 \
> > +cflags-$(CONFIG_X86) += -m$(BITS) -D__KERNEL__ -std=gnu11 -fms-extensions \
> > -fPIC -fno-strict-aliasing -mno-red-zone \
> > -mno-mmx -mno-sse -fshort-wchar \
> > -Wno-pointer-sign \
> > $(call cc-disable-warning, address-of-packed-member) \
> > - $(call cc-disable-warning, gnu) \
> > + $(if $(CONFIG_CC_IS_CLANG),-Wno-gnu -Wno-microsoft-anon-tag) \
> > -fno-asynchronous-unwind-tables \
> > $(CLANG_FLAGS)
> >
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: fms extension (Was: [PATCH] fs/pipe: stop duplicating union pipe_index declaration)
2025-10-31 1:34 ` Nathan Chancellor
@ 2025-11-01 13:10 ` Christian Brauner
2025-11-01 16:38 ` Nathan Chancellor
0 siblings, 1 reply; 19+ messages in thread
From: Christian Brauner @ 2025-11-01 13:10 UTC (permalink / raw)
To: Nathan Chancellor
Cc: Ard Biesheuvel, Linus Torvalds, linux-efi, Rasmus Villemoes,
Alexander Viro, linux-fsdevel, linux-kernel, linux-kbuild,
David Sterba
On Thu, Oct 30, 2025 at 09:34:57PM -0400, Nathan Chancellor wrote:
> On Thu, Oct 30, 2025 at 09:16:02PM +0100, Christian Brauner wrote:
> > On Thu, Oct 30, 2025 at 10:29:18AM -0700, Nathan Chancellor wrote:
> > > There are several other places in the kernel that blow away
> > > KBUILD_CFLAGS like this that will need the same fix (I went off of
> > > searching for -std=gnu11, as that was needed in many places to fix GCC
> > > 15). It is possible that we might want to take the opportunity to unify
> > > these flags into something like KBUILD_DIALECT_CFLAGS but for now, I
> > > just bothered with adding the flags in the existing places.
> >
> > That should hopefully do it. Can you update the shared branch with that
> > and then tell me when I can repull?
>
> I have applied this as commit e066b73bd881 ("kbuild: Add
> '-fms-extensions' to areas with dedicated CFLAGS") in the
> kbuild-ms-extensions branch. I may solicit acks from architecture
> maintainers but I would like to make sure there are no other surprises
> before then.
I'd like a stable branch before -rc5, please.
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: fms extension (Was: [PATCH] fs/pipe: stop duplicating union pipe_index declaration)
2025-11-01 13:10 ` Christian Brauner
@ 2025-11-01 16:38 ` Nathan Chancellor
2025-11-06 22:09 ` Christian Brauner
0 siblings, 1 reply; 19+ messages in thread
From: Nathan Chancellor @ 2025-11-01 16:38 UTC (permalink / raw)
To: Christian Brauner
Cc: Ard Biesheuvel, Linus Torvalds, linux-efi, Rasmus Villemoes,
Alexander Viro, linux-fsdevel, linux-kernel, linux-kbuild,
David Sterba
On Sat, Nov 01, 2025 at 02:10:42PM +0100, Christian Brauner wrote:
> I'd like a stable branch before -rc5, please.
Sure thing. I have sent the change out for Acks now:
https://lore.kernel.org/20251101-kbuild-ms-extensions-dedicated-cflags-v1-1-38004aba524b@kernel.org/
I will finalize the branch by Thursday at the latest and ping you when
it is ready.
Cheers,
Nathan
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: fms extension (Was: [PATCH] fs/pipe: stop duplicating union pipe_index declaration)
2025-11-01 16:38 ` Nathan Chancellor
@ 2025-11-06 22:09 ` Christian Brauner
2025-11-06 23:20 ` Nathan Chancellor
0 siblings, 1 reply; 19+ messages in thread
From: Christian Brauner @ 2025-11-06 22:09 UTC (permalink / raw)
To: Nathan Chancellor
Cc: Ard Biesheuvel, Linus Torvalds, linux-efi, Rasmus Villemoes,
Alexander Viro, linux-fsdevel, linux-kernel, linux-kbuild,
David Sterba
On Sat, Nov 01, 2025 at 12:38:28PM -0400, Nathan Chancellor wrote:
> On Sat, Nov 01, 2025 at 02:10:42PM +0100, Christian Brauner wrote:
> > I'd like a stable branch before -rc5, please.
>
> Sure thing. I have sent the change out for Acks now:
>
> https://lore.kernel.org/20251101-kbuild-ms-extensions-dedicated-cflags-v1-1-38004aba524b@kernel.org/
>
> I will finalize the branch by Thursday at the latest and ping you when
> it is ready.
Hey Nathan!
Any status update on this?
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: fms extension (Was: [PATCH] fs/pipe: stop duplicating union pipe_index declaration)
2025-11-06 22:09 ` Christian Brauner
@ 2025-11-06 23:20 ` Nathan Chancellor
0 siblings, 0 replies; 19+ messages in thread
From: Nathan Chancellor @ 2025-11-06 23:20 UTC (permalink / raw)
To: Christian Brauner
Cc: Ard Biesheuvel, Linus Torvalds, linux-efi, Rasmus Villemoes,
Alexander Viro, linux-fsdevel, linux-kernel, linux-kbuild,
David Sterba
Hey Christian,
On Thu, Nov 06, 2025 at 11:09:25PM +0100, Christian Brauner wrote:
> On Sat, Nov 01, 2025 at 12:38:28PM -0400, Nathan Chancellor wrote:
> > On Sat, Nov 01, 2025 at 02:10:42PM +0100, Christian Brauner wrote:
> > > I'd like a stable branch before -rc5, please.
> >
> > Sure thing. I have sent the change out for Acks now:
> >
> > https://lore.kernel.org/20251101-kbuild-ms-extensions-dedicated-cflags-v1-1-38004aba524b@kernel.org/
> >
> > I will finalize the branch by Thursday at the latest and ping you when
> > it is ready.
>
> Any status update on this?
Did https://lore.kernel.org/20251106174752.GA2440428@ax162/ not make it
into your inbox?
Cheers,
Nathan
^ permalink raw reply [flat|nested] 19+ messages in thread
end of thread, other threads:[~2025-11-06 23:20 UTC | newest]
Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-10-23 8:21 [PATCH] fs/pipe: stop duplicating union pipe_index declaration Rasmus Villemoes
2025-10-23 16:44 ` Nathan Chancellor
2025-10-23 16:48 ` Linus Torvalds
2025-10-29 13:42 ` Christian Brauner
2025-10-29 13:41 ` Christian Brauner
2025-10-29 17:38 ` Nathan Chancellor
2025-10-29 22:25 ` Christian Brauner
2025-10-29 22:53 ` Linus Torvalds
2025-10-29 23:13 ` Christian Brauner
2025-10-29 23:30 ` Nathan Chancellor
2025-10-30 13:23 ` fms extension (Was: [PATCH] fs/pipe: stop duplicating union pipe_index declaration) Christian Brauner
2025-10-30 13:38 ` Ard Biesheuvel
2025-10-30 17:29 ` Nathan Chancellor
2025-10-30 20:16 ` Christian Brauner
2025-10-31 1:34 ` Nathan Chancellor
2025-11-01 13:10 ` Christian Brauner
2025-11-01 16:38 ` Nathan Chancellor
2025-11-06 22:09 ` Christian Brauner
2025-11-06 23:20 ` Nathan Chancellor
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).