Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1614283 > unrolled thread

[PATCH] kbuild, LLVMLinux: Add -Werror to cc-option to support clang

Started byArnd Bergmann <arnd@arndb.de>
First post2017-03-31 22:50 +0200
Last post2017-04-05 19:20 +0200
Articles 4 — 3 participants

Back to article view | Back to linux.kernel


Contents

  [PATCH] kbuild, LLVMLinux: Add -Werror to cc-option to support clang Arnd Bergmann <arnd@arndb.de> - 2017-03-31 22:50 +0200
    Re: [PATCH] kbuild, LLVMLinux: Add -Werror to cc-option to support clang Kees Cook <keescook@chromium.org> - 2017-04-01 02:10 +0200
    Re: [PATCH] kbuild, LLVMLinux: Add -Werror to cc-option to support clang Masahiro Yamada <yamada.masahiro@socionext.com> - 2017-04-02 23:50 +0200
      Re: [PATCH] kbuild, LLVMLinux: Add -Werror to cc-option to support clang Masahiro Yamada <yamada.masahiro@socionext.com> - 2017-04-05 19:20 +0200

#1614283 — [PATCH] kbuild, LLVMLinux: Add -Werror to cc-option to support clang

FromArnd Bergmann <arnd@arndb.de>
Date2017-03-31 22:50 +0200
Subject[PATCH] kbuild, LLVMLinux: Add -Werror to cc-option to support clang
Message-ID<trbEC-15S-3@gated-at.bofh.it>
From: Mark Charlebois <charlebm@gmail.com>

Clang will warn about unknown warnings but will not return false
unless -Werror is set. GCC will return false if an unknown
warning is passed.

Adding -Werror make both compiler behave the same.

[arnd: it turns out we need the same patch for testing whether -ffunction-sections
       works right with gcc. I've build tested extensively with this patch 
       applied, so let's just merge this one now.]

Signed-off-by: Mark Charlebois <charlebm@gmail.com>
Signed-off-by: Behan Webster <behanw@converseincode.com>
Reviewed-by: Jan-Simon Möller <dl9pf@gmx.de>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 scripts/Kbuild.include | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
index d6ca649cb0e9..a70fd26204de 100644
--- a/scripts/Kbuild.include
+++ b/scripts/Kbuild.include
@@ -116,12 +116,12 @@ CC_OPTION_CFLAGS = $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS))
 # Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586)
 
 cc-option = $(call try-run,\
-	$(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2))
+	$(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2))
 
 # cc-option-yn
 # Usage: flag := $(call cc-option-yn,-march=winchip-c6)
 cc-option-yn = $(call try-run,\
-	$(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n)
+	$(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n)
 
 # cc-option-align
 # Prefix align with either -falign or -malign
@@ -131,7 +131,7 @@ cc-option-align = $(subst -functions=0,,\
 # cc-disable-warning
 # Usage: cflags-y += $(call cc-disable-warning,unused-but-set-variable)
 cc-disable-warning = $(call try-run,\
-	$(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1)))
+	$(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1)))
 
 # cc-name
 # Expands to either gcc or clang
-- 
2.9.0

[toc] | [next] | [standalone]


#1614341

FromKees Cook <keescook@chromium.org>
Date2017-04-01 02:10 +0200
Message-ID<treM9-3dJ-3@gated-at.bofh.it>
In reply to#1614283
On Fri, Mar 31, 2017 at 1:38 PM, Arnd Bergmann <arnd@arndb.de> wrote:
> From: Mark Charlebois <charlebm@gmail.com>
>
> Clang will warn about unknown warnings but will not return false
> unless -Werror is set. GCC will return false if an unknown
> warning is passed.
>
> Adding -Werror make both compiler behave the same.
>
> [arnd: it turns out we need the same patch for testing whether -ffunction-sections
>        works right with gcc. I've build tested extensively with this patch
>        applied, so let's just merge this one now.]
>
> Signed-off-by: Mark Charlebois <charlebm@gmail.com>
> Signed-off-by: Behan Webster <behanw@converseincode.com>
> Reviewed-by: Jan-Simon Möller <dl9pf@gmx.de>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Kees Cook <keescook@chromium.org>

-Kees

> ---
>  scripts/Kbuild.include | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
> index d6ca649cb0e9..a70fd26204de 100644
> --- a/scripts/Kbuild.include
> +++ b/scripts/Kbuild.include
> @@ -116,12 +116,12 @@ CC_OPTION_CFLAGS = $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS))
>  # Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586)
>
>  cc-option = $(call try-run,\
> -       $(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2))
> +       $(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",$(1),$(2))
>
>  # cc-option-yn
>  # Usage: flag := $(call cc-option-yn,-march=winchip-c6)
>  cc-option-yn = $(call try-run,\
> -       $(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n)
> +       $(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) $(1) -c -x c /dev/null -o "$$TMP",y,n)
>
>  # cc-option-align
>  # Prefix align with either -falign or -malign
> @@ -131,7 +131,7 @@ cc-option-align = $(subst -functions=0,,\
>  # cc-disable-warning
>  # Usage: cflags-y += $(call cc-disable-warning,unused-but-set-variable)
>  cc-disable-warning = $(call try-run,\
> -       $(CC) $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1)))
> +       $(CC) -Werror $(KBUILD_CPPFLAGS) $(CC_OPTION_CFLAGS) -W$(strip $(1)) -c -x c /dev/null -o "$$TMP",-Wno-$(strip $(1)))
>
>  # cc-name
>  # Expands to either gcc or clang
> --
> 2.9.0
>



-- 
Kees Cook
Pixel Security

[toc] | [prev] | [next] | [standalone]


#1614827

FromMasahiro Yamada <yamada.masahiro@socionext.com>
Date2017-04-02 23:50 +0200
Message-ID<trVxM-6aX-1@gated-at.bofh.it>
In reply to#1614283
Hi Arnd,


2017-04-01 5:38 GMT+09:00 Arnd Bergmann <arnd@arndb.de>:
> From: Mark Charlebois <charlebm@gmail.com>
>
> Clang will warn about unknown warnings but will not return false
> unless -Werror is set. GCC will return false if an unknown
> warning is passed.
>
> Adding -Werror make both compiler behave the same.
>
> [arnd: it turns out we need the same patch for testing whether -ffunction-sections
>        works right with gcc. I've build tested extensively with this patch
>        applied, so let's just merge this one now.]
>
> Signed-off-by: Mark Charlebois <charlebm@gmail.com>
> Signed-off-by: Behan Webster <behanw@converseincode.com>
> Reviewed-by: Jan-Simon Möller <dl9pf@gmx.de>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


Thank you for forwarding this patch.


The code diff looks good to me,
but I'd like to be sure about git-log before applying it.


As far as I tested, the statement
"Clang will warn about unknown warnings but will not
return false unless -Werror is set." does not seem true
on recent versions.



[1] When I use version 3.3

masahiro@grover:~$ clang --version
clang version 3.3 (tags/RELEASE_33/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
masahiro@grover:~$ clang  -foobar -c -x c /dev/null
clang: warning: argument unused during compilation: '-foobar'
masahiro@grover:~$ echo $?

0


[2] When I use version 3.4

masahiro@grover:~$ clang --version
clang version 3.4 (tags/RELEASE_34/final)
Target: x86_64-unknown-linux-gnu
Thread model: posix
masahiro@grover:~$ clang  -foobar -c -x c /dev/null
clang: error: unknown argument: '-foobar'
masahiro@grover:~$ echo $?
1




I agree we can apply this patch anyway
even if the original motivation is not true anymore.


Can you check it out,
and add a little more comments if you agree?


-- 
Best Regards
Masahiro Yamada

[toc] | [prev] | [next] | [standalone]


#1617206

FromMasahiro Yamada <yamada.masahiro@socionext.com>
Date2017-04-05 19:20 +0200
Message-ID<tsWLa-5w8-69@gated-at.bofh.it>
In reply to#1614827
Hi Arnd,

2017-04-03 6:46 GMT+09:00 Masahiro Yamada <yamada.masahiro@socionext.com>:
> Hi Arnd,
>
>
> 2017-04-01 5:38 GMT+09:00 Arnd Bergmann <arnd@arndb.de>:
>> From: Mark Charlebois <charlebm@gmail.com>
>>
>> Clang will warn about unknown warnings but will not return false
>> unless -Werror is set. GCC will return false if an unknown
>> warning is passed.
>>
>> Adding -Werror make both compiler behave the same.
>>
>> [arnd: it turns out we need the same patch for testing whether -ffunction-sections
>>        works right with gcc. I've build tested extensively with this patch
>>        applied, so let's just merge this one now.]
>>
>> Signed-off-by: Mark Charlebois <charlebm@gmail.com>
>> Signed-off-by: Behan Webster <behanw@converseincode.com>
>> Reviewed-by: Jan-Simon Möller <dl9pf@gmx.de>
>> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
>
>
> Thank you for forwarding this patch.
>
>
> The code diff looks good to me,
> but I'd like to be sure about git-log before applying it.
>
>
> As far as I tested, the statement
> "Clang will warn about unknown warnings but will not
> return false unless -Werror is set." does not seem true
> on recent versions.
>
>
>
> [1] When I use version 3.3
>
> masahiro@grover:~$ clang --version
> clang version 3.3 (tags/RELEASE_33/final)
> Target: x86_64-unknown-linux-gnu
> Thread model: posix
> masahiro@grover:~$ clang  -foobar -c -x c /dev/null
> clang: warning: argument unused during compilation: '-foobar'
> masahiro@grover:~$ echo $?
> 0
>
>
> [2] When I use version 3.4
>
> masahiro@grover:~$ clang --version
> clang version 3.4 (tags/RELEASE_34/final)
> Target: x86_64-unknown-linux-gnu
> Thread model: posix
> masahiro@grover:~$ clang  -foobar -c -x c /dev/null
> clang: error: unknown argument: '-foobar'
> masahiro@grover:~$ echo $?
> 1
>
>
>
>
> I agree we can apply this patch anyway
> even if the original motivation is not true anymore.
>
>
> Can you check it out,
> and add a little more comments if you agree?


Sorry.  This was my misunderstanding.
You do not have to answer my question.

I found this patch is still useful for recent clang versions.

I will apply this patch shortly.  Thanks!




-- 
Best Regards
Masahiro Yamada

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web