Makefile: improve the cc-option compatibility
diff mbox series

Message ID 20200730093520.26905-1-po-hsu.lin@canonical.com
State Superseded
Headers show
Series
  • Makefile: improve the cc-option compatibility
Related show

Commit Message

Po-Hsu Lin July 30, 2020, 9:35 a.m. UTC
The build on Ubuntu Xenial with GCC 5.4.0 will fail with:
    cc: error: unrecognized command line option ‘-Wimplicit-fallthrough’

This unsupported flag is not skipped as expected.

It is because of the /bin/sh shell on Ubuntu, DASH, which does not
support this &> redirection. Use 2>&1 to solve this problem.

Signed-off-by: Po-Hsu Lin <po-hsu.lin@canonical.com>
---
 Makefile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Po-Hsu Lin July 30, 2020, 1:21 p.m. UTC | #1
BTW this is for fsverity-utils.

I should put a [fsverity-utils] in the title, sorry about this.
I can resubmit one if you need.

Thank you
PHLin

On Thu, Jul 30, 2020 at 5:35 PM Po-Hsu Lin <po-hsu.lin@canonical.com> wrote:
>
> The build on Ubuntu Xenial with GCC 5.4.0 will fail with:
>     cc: error: unrecognized command line option ‘-Wimplicit-fallthrough’
>
> This unsupported flag is not skipped as expected.
>
> It is because of the /bin/sh shell on Ubuntu, DASH, which does not
> support this &> redirection. Use 2>&1 to solve this problem.
>
> Signed-off-by: Po-Hsu Lin <po-hsu.lin@canonical.com>
> ---
>  Makefile | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Makefile b/Makefile
> index 7d7247c..a4ce55a 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -27,7 +27,7 @@
>  #
>  ##############################################################################
>
> -cc-option = $(shell if $(CC) $(1) -c -x c /dev/null -o /dev/null &>/dev/null; \
> +cc-option = $(shell if $(CC) $(1) -c -x c /dev/null -o /dev/null > /dev/null 2>&1; \
>               then echo $(1); fi)
>
>  CFLAGS ?= -O2 -Wall -Wundef                                    \
> --
> 2.25.1
>
Eric Biggers Aug. 1, 2020, 6:12 p.m. UTC | #2
On Thu, Jul 30, 2020 at 09:21:38PM +0800, Po-Hsu Lin wrote:
> BTW this is for fsverity-utils.
> 
> I should put a [fsverity-utils] in the title, sorry about this.
> I can resubmit one if you need.
> 
> Thank you
> PHLin
> 
> On Thu, Jul 30, 2020 at 5:35 PM Po-Hsu Lin <po-hsu.lin@canonical.com> wrote:
> >
> > The build on Ubuntu Xenial with GCC 5.4.0 will fail with:
> >     cc: error: unrecognized command line option ‘-Wimplicit-fallthrough’
> >
> > This unsupported flag is not skipped as expected.
> >
> > It is because of the /bin/sh shell on Ubuntu, DASH, which does not
> > support this &> redirection. Use 2>&1 to solve this problem.
> >
> > Signed-off-by: Po-Hsu Lin <po-hsu.lin@canonical.com>
> > ---
> >  Makefile | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/Makefile b/Makefile
> > index 7d7247c..a4ce55a 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -27,7 +27,7 @@
> >  #
> >  ##############################################################################
> >
> > -cc-option = $(shell if $(CC) $(1) -c -x c /dev/null -o /dev/null &>/dev/null; \
> > +cc-option = $(shell if $(CC) $(1) -c -x c /dev/null -o /dev/null > /dev/null 2>&1; \
> >               then echo $(1); fi)
> >
> >  CFLAGS ?= -O2 -Wall -Wundef                                    \
> > --

Looks good, thanks!  I'll also want to add a test for building with dash to
scripts/run-tests.sh, but I can do that.

Note that we've just changed the license of fsverity-utils to the MIT license.
Can you rebase onto the latest master branch (commit ab794fd56511) and resend to
indicate that you agree?  And yes, I suggest "[fsverity-utils PATCH]", as this
mailing list is mostly used for kernel patches.  Thanks!

- Eric
Po-Hsu Lin Aug. 3, 2020, 3:09 a.m. UTC | #3
OK no problem,
I will send another one to add this subject format suggestion to the
Contributing section in README.md.

Thank you.
PHLin

On Sun, Aug 2, 2020 at 2:12 AM Eric Biggers <ebiggers@kernel.org> wrote:
>
> On Thu, Jul 30, 2020 at 09:21:38PM +0800, Po-Hsu Lin wrote:
> > BTW this is for fsverity-utils.
> >
> > I should put a [fsverity-utils] in the title, sorry about this.
> > I can resubmit one if you need.
> >
> > Thank you
> > PHLin
> >
> > On Thu, Jul 30, 2020 at 5:35 PM Po-Hsu Lin <po-hsu.lin@canonical.com> wrote:
> > >
> > > The build on Ubuntu Xenial with GCC 5.4.0 will fail with:
> > >     cc: error: unrecognized command line option ‘-Wimplicit-fallthrough’
> > >
> > > This unsupported flag is not skipped as expected.
> > >
> > > It is because of the /bin/sh shell on Ubuntu, DASH, which does not
> > > support this &> redirection. Use 2>&1 to solve this problem.
> > >
> > > Signed-off-by: Po-Hsu Lin <po-hsu.lin@canonical.com>
> > > ---
> > >  Makefile | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/Makefile b/Makefile
> > > index 7d7247c..a4ce55a 100644
> > > --- a/Makefile
> > > +++ b/Makefile
> > > @@ -27,7 +27,7 @@
> > >  #
> > >  ##############################################################################
> > >
> > > -cc-option = $(shell if $(CC) $(1) -c -x c /dev/null -o /dev/null &>/dev/null; \
> > > +cc-option = $(shell if $(CC) $(1) -c -x c /dev/null -o /dev/null > /dev/null 2>&1; \
> > >               then echo $(1); fi)
> > >
> > >  CFLAGS ?= -O2 -Wall -Wundef                                    \
> > > --
>
> Looks good, thanks!  I'll also want to add a test for building with dash to
> scripts/run-tests.sh, but I can do that.
>
> Note that we've just changed the license of fsverity-utils to the MIT license.
> Can you rebase onto the latest master branch (commit ab794fd56511) and resend to
> indicate that you agree?  And yes, I suggest "[fsverity-utils PATCH]", as this
> mailing list is mostly used for kernel patches.  Thanks!
>
> - Eric

Patch
diff mbox series

diff --git a/Makefile b/Makefile
index 7d7247c..a4ce55a 100644
--- a/Makefile
+++ b/Makefile
@@ -27,7 +27,7 @@ 
 #
 ##############################################################################
 
-cc-option = $(shell if $(CC) $(1) -c -x c /dev/null -o /dev/null &>/dev/null; \
+cc-option = $(shell if $(CC) $(1) -c -x c /dev/null -o /dev/null > /dev/null 2>&1; \
 	      then echo $(1); fi)
 
 CFLAGS ?= -O2 -Wall -Wundef					\