All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] tools: Stop re-defining -std= when building tools
@ 2021-10-10 19:23 Tom Rini
  2021-10-11  3:21 ` Bin Meng
  0 siblings, 1 reply; 4+ messages in thread
From: Tom Rini @ 2021-10-10 19:23 UTC (permalink / raw)
  To: u-boot

While we intentionally set -std=gnu11 for building host tools, and have
for quite some time, we never dropped -std=gnu99 from tools/Makefile.
This resulted in passing -std=gnu11 ... -std=gnu99 when building, and
gnu99 would win.  This in turn would result now in warnings such as:
tools/mkeficapsule.c:25:15: warning: redefinition of typedef 'u32' is a C11 feature [-Wtypedef-redefinition]
typedef __u32 u32;
              ^

Signed-off-by: Tom Rini <trini@konsulko.com>
---
 tools/Makefile | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/tools/Makefile b/tools/Makefile
index 999fd4653166..b45219e2c30c 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -295,8 +295,7 @@ HOST_EXTRACFLAGS += -include $(srctree)/include/compiler.h \
 		-I$(srctree)/tools \
 		-DUSE_HOSTCC \
 		-D__KERNEL_STRICT_NAMES \
-		-D_GNU_SOURCE \
-		-std=gnu99
+		-D_GNU_SOURCE
 
 __build:	$(LOGO-y)
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] tools: Stop re-defining -std= when building tools
  2021-10-10 19:23 [PATCH] tools: Stop re-defining -std= when building tools Tom Rini
@ 2021-10-11  3:21 ` Bin Meng
  2021-10-11 12:44   ` Tom Rini
  0 siblings, 1 reply; 4+ messages in thread
From: Bin Meng @ 2021-10-11  3:21 UTC (permalink / raw)
  To: Tom Rini; +Cc: U-Boot Mailing List

On Mon, Oct 11, 2021 at 3:23 AM Tom Rini <trini@konsulko.com> wrote:
>
> While we intentionally set -std=gnu11 for building host tools, and have
> for quite some time, we never dropped -std=gnu99 from tools/Makefile.
> This resulted in passing -std=gnu11 ... -std=gnu99 when building, and
> gnu99 would win.  This in turn would result now in warnings such as:
> tools/mkeficapsule.c:25:15: warning: redefinition of typedef 'u32' is a C11 feature [-Wtypedef-redefinition]
> typedef __u32 u32;
>               ^
>
> Signed-off-by: Tom Rini <trini@konsulko.com>
> ---
>  tools/Makefile | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/tools/Makefile b/tools/Makefile
> index 999fd4653166..b45219e2c30c 100644
> --- a/tools/Makefile
> +++ b/tools/Makefile
> @@ -295,8 +295,7 @@ HOST_EXTRACFLAGS += -include $(srctree)/include/compiler.h \
>                 -I$(srctree)/tools \
>                 -DUSE_HOSTCC \
>                 -D__KERNEL_STRICT_NAMES \
> -               -D_GNU_SOURCE \
> -               -std=gnu99
> +               -D_GNU_SOURCE

It looks like std=gnu11 is only added for Linux host.

KBUILD_HOSTCFLAGS += $(CSTD_FLAG)

Should we still keep it for other hosts?

Regards,
Bin

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] tools: Stop re-defining -std= when building tools
  2021-10-11  3:21 ` Bin Meng
@ 2021-10-11 12:44   ` Tom Rini
  2021-10-11 15:11     ` Tom Rini
  0 siblings, 1 reply; 4+ messages in thread
From: Tom Rini @ 2021-10-11 12:44 UTC (permalink / raw)
  To: Bin Meng; +Cc: U-Boot Mailing List

[-- Attachment #1: Type: text/plain, Size: 1751 bytes --]

On Mon, Oct 11, 2021 at 11:21:49AM +0800, Bin Meng wrote:
> On Mon, Oct 11, 2021 at 3:23 AM Tom Rini <trini@konsulko.com> wrote:
> >
> > While we intentionally set -std=gnu11 for building host tools, and have
> > for quite some time, we never dropped -std=gnu99 from tools/Makefile.
> > This resulted in passing -std=gnu11 ... -std=gnu99 when building, and
> > gnu99 would win.  This in turn would result now in warnings such as:
> > tools/mkeficapsule.c:25:15: warning: redefinition of typedef 'u32' is a C11 feature [-Wtypedef-redefinition]
> > typedef __u32 u32;
> >               ^
> >
> > Signed-off-by: Tom Rini <trini@konsulko.com>
> > ---
> >  tools/Makefile | 3 +--
> >  1 file changed, 1 insertion(+), 2 deletions(-)
> >
> > diff --git a/tools/Makefile b/tools/Makefile
> > index 999fd4653166..b45219e2c30c 100644
> > --- a/tools/Makefile
> > +++ b/tools/Makefile
> > @@ -295,8 +295,7 @@ HOST_EXTRACFLAGS += -include $(srctree)/include/compiler.h \
> >                 -I$(srctree)/tools \
> >                 -DUSE_HOSTCC \
> >                 -D__KERNEL_STRICT_NAMES \
> > -               -D_GNU_SOURCE \
> > -               -std=gnu99
> > +               -D_GNU_SOURCE
> 
> It looks like std=gnu11 is only added for Linux host.
> 
> KBUILD_HOSTCFLAGS += $(CSTD_FLAG)
> 
> Should we still keep it for other hosts?

Good question.  Looking at the Linux kernel, we're of course vastly
diverged again at this point, but it always passes -std=gnu89 (because
hey, we demand a newer minimum than the kernel) unless it's a tool/test
that spells out something else.  Given that Azure builds macOS and
cygwin for us, I'll see what happens when we tell everyone to use
-std=gnu11 and report back.

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] tools: Stop re-defining -std= when building tools
  2021-10-11 12:44   ` Tom Rini
@ 2021-10-11 15:11     ` Tom Rini
  0 siblings, 0 replies; 4+ messages in thread
From: Tom Rini @ 2021-10-11 15:11 UTC (permalink / raw)
  To: Bin Meng; +Cc: U-Boot Mailing List

[-- Attachment #1: Type: text/plain, Size: 2556 bytes --]

On Mon, Oct 11, 2021 at 08:44:09AM -0400, Tom Rini wrote:
> On Mon, Oct 11, 2021 at 11:21:49AM +0800, Bin Meng wrote:
> > On Mon, Oct 11, 2021 at 3:23 AM Tom Rini <trini@konsulko.com> wrote:
> > >
> > > While we intentionally set -std=gnu11 for building host tools, and have
> > > for quite some time, we never dropped -std=gnu99 from tools/Makefile.
> > > This resulted in passing -std=gnu11 ... -std=gnu99 when building, and
> > > gnu99 would win.  This in turn would result now in warnings such as:
> > > tools/mkeficapsule.c:25:15: warning: redefinition of typedef 'u32' is a C11 feature [-Wtypedef-redefinition]
> > > typedef __u32 u32;
> > >               ^
> > >
> > > Signed-off-by: Tom Rini <trini@konsulko.com>
> > > ---
> > >  tools/Makefile | 3 +--
> > >  1 file changed, 1 insertion(+), 2 deletions(-)
> > >
> > > diff --git a/tools/Makefile b/tools/Makefile
> > > index 999fd4653166..b45219e2c30c 100644
> > > --- a/tools/Makefile
> > > +++ b/tools/Makefile
> > > @@ -295,8 +295,7 @@ HOST_EXTRACFLAGS += -include $(srctree)/include/compiler.h \
> > >                 -I$(srctree)/tools \
> > >                 -DUSE_HOSTCC \
> > >                 -D__KERNEL_STRICT_NAMES \
> > > -               -D_GNU_SOURCE \
> > > -               -std=gnu99
> > > +               -D_GNU_SOURCE
> > 
> > It looks like std=gnu11 is only added for Linux host.
> > 
> > KBUILD_HOSTCFLAGS += $(CSTD_FLAG)
> > 
> > Should we still keep it for other hosts?
> 
> Good question.  Looking at the Linux kernel, we're of course vastly
> diverged again at this point, but it always passes -std=gnu89 (because
> hey, we demand a newer minimum than the kernel) unless it's a tool/test
> that spells out something else.  Given that Azure builds macOS and
> cygwin for us, I'll see what happens when we tell everyone to use
> -std=gnu11 and report back.

The build completed:
https://dev.azure.com/u-boot/u-boot/_build/results?buildId=3024&view=results
and the interesting parts are:
https://dev.azure.com/u-boot/u-boot/_build/results?buildId=3024&view=logs&j=35e64860-b659-5ca1-bdf9-6e9833a3e679&t=17b0785b-bff7-569f-a47c-ec4f4762bca5
https://dev.azure.com/u-boot/u-boot/_build/results?buildId=3024&view=logs&j=54366476-fdb5-57fd-e8dc-672a8abc134d&t=4b05ba05-ad38-52b6-35d9-bb8255f5e2ea

In sum, we can use -std=gnu11 everywhere.  There's warnings on these
hosts, but that's been true before this change:
https://dev.azure.com/u-boot/u-boot/_build/results?buildId=2991&view=results

Posting v2 in a moment.

-- 
Tom

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 659 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-10-11 15:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-10 19:23 [PATCH] tools: Stop re-defining -std= when building tools Tom Rini
2021-10-11  3:21 ` Bin Meng
2021-10-11 12:44   ` Tom Rini
2021-10-11 15:11     ` Tom Rini

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.