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

2017-04-11 Thread Masahiro Yamada
2017-04-01 5:38 GMT+09:00 Arnd Bergmann :
> From: Mark Charlebois 
>
> 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 
> Signed-off-by: Behan Webster 
> Reviewed-by: Jan-Simon Möller 
> Signed-off-by: Arnd Bergmann 

Applied to linux-kbuild/kbuild.
Thanks!




-- 
Best Regards
Masahiro Yamada


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

2017-04-11 Thread Masahiro Yamada
2017-04-01 5:38 GMT+09:00 Arnd Bergmann :
> From: Mark Charlebois 
>
> 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 
> Signed-off-by: Behan Webster 
> Reviewed-by: Jan-Simon Möller 
> Signed-off-by: Arnd Bergmann 

Applied to linux-kbuild/kbuild.
Thanks!




-- 
Best Regards
Masahiro Yamada


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

2017-04-05 Thread Masahiro Yamada
Hi Arnd,

2017-04-03 6:46 GMT+09:00 Masahiro Yamada :
> Hi Arnd,
>
>
> 2017-04-01 5:38 GMT+09:00 Arnd Bergmann :
>> From: Mark Charlebois 
>>
>> 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 
>> Signed-off-by: Behan Webster 
>> Reviewed-by: Jan-Simon Möller 
>> Signed-off-by: Arnd Bergmann 
>
>
> 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


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

2017-04-05 Thread Masahiro Yamada
Hi Arnd,

2017-04-03 6:46 GMT+09:00 Masahiro Yamada :
> Hi Arnd,
>
>
> 2017-04-01 5:38 GMT+09:00 Arnd Bergmann :
>> From: Mark Charlebois 
>>
>> 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 
>> Signed-off-by: Behan Webster 
>> Reviewed-by: Jan-Simon Möller 
>> Signed-off-by: Arnd Bergmann 
>
>
> 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


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

2017-04-02 Thread Masahiro Yamada
Hi Arnd,


2017-04-01 5:38 GMT+09:00 Arnd Bergmann :
> From: Mark Charlebois 
>
> 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 
> Signed-off-by: Behan Webster 
> Reviewed-by: Jan-Simon Möller 
> Signed-off-by: Arnd Bergmann 


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


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

2017-04-02 Thread Masahiro Yamada
Hi Arnd,


2017-04-01 5:38 GMT+09:00 Arnd Bergmann :
> From: Mark Charlebois 
>
> 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 
> Signed-off-by: Behan Webster 
> Reviewed-by: Jan-Simon Möller 
> Signed-off-by: Arnd Bergmann 


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


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

2017-03-31 Thread Kees Cook
On Fri, Mar 31, 2017 at 1:38 PM, Arnd Bergmann  wrote:
> From: Mark Charlebois 
>
> 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 
> Signed-off-by: Behan Webster 
> Reviewed-by: Jan-Simon Möller 
> Signed-off-by: Arnd Bergmann 

Acked-by: Kees Cook 

-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


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

2017-03-31 Thread Kees Cook
On Fri, Mar 31, 2017 at 1:38 PM, Arnd Bergmann  wrote:
> From: Mark Charlebois 
>
> 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 
> Signed-off-by: Behan Webster 
> Reviewed-by: Jan-Simon Möller 
> Signed-off-by: Arnd Bergmann 

Acked-by: Kees Cook 

-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


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

2014-09-25 Thread Behan Webster

On 09/25/14 06:34, Michal Marek wrote:

On 2014-09-24 20:50, Behan Webster wrote:

Getting clang to error on unused flags wasn't trivial (this change broke
a lot of builds apparently). Fortunately we weren't the only ones who
wanted it to behave like gcc in this case. I think it's going to be
*much* harder to do the same for warnings. The argument given by
supporters of the current situation is that if a warning isn't
supported, why break the build? *sigh*

I guess the reason to accept unknown warnings opentions is compatibility
with Makefiles with hardcoded gcc-isms. BTW, GCC at some point started
to ignore unknown -Wno-* options, for everyone's good of course. That's
why we ended up with the cc-disable-warning function. If -W* options for
clang need special care, then it might be a good idea to introduce
cc-warning with the conditional -Werror for clang. There are not that
many places where we add warnings, so the patch would be still short.
That way, the possible silent failure is limited only to warning options
with clang, which is not such a big deal.

I'll try this approach.

Thanks,

Behan

--
Behan Webster
beh...@converseincode.com

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2014-09-25 Thread Michal Marek
On 2014-09-24 20:50, Behan Webster wrote:
> On 09/24/14 05:07, Michal Marek wrote:
>> On 2014-09-23 21:28, beh...@converseincode.com wrote:
>>> From: Mark Charlebois 
>>>
>>> Clang will warn about unknown warnings but will not return false
>> You mean unknown options, right?
> 2 kinds of options: flags and warnings. clang used to merely warn about 
> unused/unsupported flags/warnings. It now returns errors for unknown 
> flags, but not warnings (unless you specify -Werror).

Ah, unknown warning options. Now I understand.


> Getting clang to error on unused flags wasn't trivial (this change broke 
> a lot of builds apparently). Fortunately we weren't the only ones who 
> wanted it to behave like gcc in this case. I think it's going to be 
> *much* harder to do the same for warnings. The argument given by 
> supporters of the current situation is that if a warning isn't 
> supported, why break the build? *sigh*

I guess the reason to accept unknown warnings opentions is compatibility
with Makefiles with hardcoded gcc-isms. BTW, GCC at some point started
to ignore unknown -Wno-* options, for everyone's good of course. That's
why we ended up with the cc-disable-warning function. If -W* options for
clang need special care, then it might be a good idea to introduce
cc-warning with the conditional -Werror for clang. There are not that
many places where we add warnings, so the patch would be still short.
That way, the possible silent failure is limited only to warning options
with clang, which is not such a big deal.

Michal
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2014-09-25 Thread Behan Webster

On 09/25/14 06:34, Michal Marek wrote:

On 2014-09-24 20:50, Behan Webster wrote:

Getting clang to error on unused flags wasn't trivial (this change broke
a lot of builds apparently). Fortunately we weren't the only ones who
wanted it to behave like gcc in this case. I think it's going to be
*much* harder to do the same for warnings. The argument given by
supporters of the current situation is that if a warning isn't
supported, why break the build? *sigh*

I guess the reason to accept unknown warnings opentions is compatibility
with Makefiles with hardcoded gcc-isms. BTW, GCC at some point started
to ignore unknown -Wno-* options, for everyone's good of course. That's
why we ended up with the cc-disable-warning function. If -W* options for
clang need special care, then it might be a good idea to introduce
cc-warning with the conditional -Werror for clang. There are not that
many places where we add warnings, so the patch would be still short.
That way, the possible silent failure is limited only to warning options
with clang, which is not such a big deal.

I'll try this approach.

Thanks,

Behan

--
Behan Webster
beh...@converseincode.com

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2014-09-25 Thread Michal Marek
On 2014-09-24 20:50, Behan Webster wrote:
 On 09/24/14 05:07, Michal Marek wrote:
 On 2014-09-23 21:28, beh...@converseincode.com wrote:
 From: Mark Charlebois charl...@gmail.com

 Clang will warn about unknown warnings but will not return false
 You mean unknown options, right?
 2 kinds of options: flags and warnings. clang used to merely warn about 
 unused/unsupported flags/warnings. It now returns errors for unknown 
 flags, but not warnings (unless you specify -Werror).

Ah, unknown warning options. Now I understand.


 Getting clang to error on unused flags wasn't trivial (this change broke 
 a lot of builds apparently). Fortunately we weren't the only ones who 
 wanted it to behave like gcc in this case. I think it's going to be 
 *much* harder to do the same for warnings. The argument given by 
 supporters of the current situation is that if a warning isn't 
 supported, why break the build? *sigh*

I guess the reason to accept unknown warnings opentions is compatibility
with Makefiles with hardcoded gcc-isms. BTW, GCC at some point started
to ignore unknown -Wno-* options, for everyone's good of course. That's
why we ended up with the cc-disable-warning function. If -W* options for
clang need special care, then it might be a good idea to introduce
cc-warning with the conditional -Werror for clang. There are not that
many places where we add warnings, so the patch would be still short.
That way, the possible silent failure is limited only to warning options
with clang, which is not such a big deal.

Michal
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2014-09-24 Thread Behan Webster

On 09/24/14 05:07, Michal Marek wrote:

On 2014-09-23 21:28, beh...@converseincode.com wrote:

From: Mark Charlebois 

Clang will warn about unknown warnings but will not return false

You mean unknown options, right?
2 kinds of options: flags and warnings. clang used to merely warn about 
unused/unsupported flags/warnings. It now returns errors for unknown 
flags, but not warnings (unless you specify -Werror).


The issue is that a lot of existing projects which use clang expect the 
former behaviour (I agree that makes no sense, but there you go).



unless -Werror is set. GCC will return false if an unknown
warning is passed.

Adding -Werror make both compiler behave the same.

Can you please limit it to the clang case? Add an internal variable that
either contains -Werror or nothing, depending on the compiler.

I can do that. Will fix.


  What I
fear is that if we use -Werror unconditionally and the user (or some
automated build system) decides to add some silly option to KCFLAGS, we
will get silent failures in the cc-option tests.

A valid concern for sure.


BTW, is there a chance that this would be fixed in some later clang
version? Accepting unknown commandline options is a rather unusual
behavior. How are all the ./configure scripts going to cope with it?
Again, clang does error out on unknown compiler flags (as opposed to 
warnings).


Getting clang to error on unused flags wasn't trivial (this change broke 
a lot of builds apparently). Fortunately we weren't the only ones who 
wanted it to behave like gcc in this case. I think it's going to be 
*much* harder to do the same for warnings. The argument given by 
supporters of the current situation is that if a warning isn't 
supported, why break the build? *sigh*


The LLVMLinux project is pushing hard to fix these sorts of things in 
clang, but some changes are more likely than others.


Thanks,

Behan

--
Behan Webster
beh...@converseincode.com

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2014-09-24 Thread Michal Marek
On 2014-09-23 21:28, beh...@converseincode.com wrote:
> From: Mark Charlebois 
> 
> Clang will warn about unknown warnings but will not return false

You mean unknown options, right?


> unless -Werror is set. GCC will return false if an unknown
> warning is passed.
> 
> Adding -Werror make both compiler behave the same.

Can you please limit it to the clang case? Add an internal variable that
either contains -Werror or nothing, depending on the compiler. What I
fear is that if we use -Werror unconditionally and the user (or some
automated build system) decides to add some silly option to KCFLAGS, we
will get silent failures in the cc-option tests. Of course, the same can
happen with clang, but there seems to be no way around it.

BTW, is there a chance that this would be fixed in some later clang
version? Accepting unknown commandline options is a rather unusual
behavior. How are all the ./configure scripts going to cope with it?

Thanks,
Michal
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2014-09-24 Thread Michal Marek
On 2014-09-23 21:28, beh...@converseincode.com wrote:
 From: Mark Charlebois charl...@gmail.com
 
 Clang will warn about unknown warnings but will not return false

You mean unknown options, right?


 unless -Werror is set. GCC will return false if an unknown
 warning is passed.
 
 Adding -Werror make both compiler behave the same.

Can you please limit it to the clang case? Add an internal variable that
either contains -Werror or nothing, depending on the compiler. What I
fear is that if we use -Werror unconditionally and the user (or some
automated build system) decides to add some silly option to KCFLAGS, we
will get silent failures in the cc-option tests. Of course, the same can
happen with clang, but there seems to be no way around it.

BTW, is there a chance that this would be fixed in some later clang
version? Accepting unknown commandline options is a rather unusual
behavior. How are all the ./configure scripts going to cope with it?

Thanks,
Michal
--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/


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

2014-09-24 Thread Behan Webster

On 09/24/14 05:07, Michal Marek wrote:

On 2014-09-23 21:28, beh...@converseincode.com wrote:

From: Mark Charlebois charl...@gmail.com

Clang will warn about unknown warnings but will not return false

You mean unknown options, right?
2 kinds of options: flags and warnings. clang used to merely warn about 
unused/unsupported flags/warnings. It now returns errors for unknown 
flags, but not warnings (unless you specify -Werror).


The issue is that a lot of existing projects which use clang expect the 
former behaviour (I agree that makes no sense, but there you go).



unless -Werror is set. GCC will return false if an unknown
warning is passed.

Adding -Werror make both compiler behave the same.

Can you please limit it to the clang case? Add an internal variable that
either contains -Werror or nothing, depending on the compiler.

I can do that. Will fix.


  What I
fear is that if we use -Werror unconditionally and the user (or some
automated build system) decides to add some silly option to KCFLAGS, we
will get silent failures in the cc-option tests.

A valid concern for sure.


BTW, is there a chance that this would be fixed in some later clang
version? Accepting unknown commandline options is a rather unusual
behavior. How are all the ./configure scripts going to cope with it?
Again, clang does error out on unknown compiler flags (as opposed to 
warnings).


Getting clang to error on unused flags wasn't trivial (this change broke 
a lot of builds apparently). Fortunately we weren't the only ones who 
wanted it to behave like gcc in this case. I think it's going to be 
*much* harder to do the same for warnings. The argument given by 
supporters of the current situation is that if a warning isn't 
supported, why break the build? *sigh*


The LLVMLinux project is pushing hard to fix these sorts of things in 
clang, but some changes are more likely than others.


Thanks,

Behan

--
Behan Webster
beh...@converseincode.com

--
To unsubscribe from this list: send the line unsubscribe linux-kernel in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/