Re: [PATCH v5 24/31] kconfig: add CC_IS_GCC and GCC_VERSION

2018-06-05 Thread Stefan Agner
On 05.06.2018 08:27, Masahiro Yamada wrote:
> 2018-06-05 14:50 GMT+09:00 Stefan Agner :
>> On 05.06.2018 02:07, Masahiro Yamada wrote:
>>> Hi Stefan
>>>
>>> 2018-06-05 6:49 GMT+09:00 Stefan Agner :
 Hi Masahiro,

 On 28.05.2018 11:22, Masahiro Yamada wrote:
> This will be useful to specify the required compiler version,
> like this:
>
> config FOO
> bool "Use Foo"
> depends on GCC_VERSION >= 40800
> help
>   This feature requires GCC 4.8 or newer.
>

 I tried using CC_IS_GCC today while using clang. It seems that it is set
 to y despite I am using CC=clang.

 .config looks like this after config:

 ...
 CONFIG_CC_IS_GCC=y
 CONFIG_GCC_VERSION=40201
 CONFIG_CC_IS_CLANG=y
 CONFIG_CLANG_VERSION=6
 ...


 I am using clang 6.0.0 on Arch Linux, which seems to return a version
 when using gcc-version.sh:
 ./scripts/gcc-version.sh clang | sed 's/^0*//'
 402

 I guess that should not be the case?

>>>
>>>
>>> What will 'clang --version' print on your machine?
>>
>> $ clang --version
>> clang version 6.0.0 (tags/RELEASE_600/final)
>> Target: x86_64-pc-linux-gnu
>> Thread model: posix
>> InstalledDir:
>> /home/ags/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf/bin
>>
>> I use a symlink to clang in my cross compiler toolchain, that is why
>> InstalledDir points to a GCC toolchain.
>>
> 
> Ah, I see.
> 
> 
> I will fix it up like follows:
> 
> 
> diff --git a/init/Kconfig b/init/Kconfig
> index e5a0d89..efc43c6 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -9,7 +9,7 @@ config DEFCONFIG_LIST
> default "arch/$(ARCH)/defconfig"
> 
>  config CC_IS_GCC
> -   def_bool $(success,$(CC) --version | grep -q gcc)
> +   def_bool $(success,$(CC) --version | head -n 1 | grep -q gcc)

Yes that works for me:

...
CONFIG_GCC_VERSION=0
   
CONFIG_CC_IS_CLANG=y
   
CONFIG_CLANG_VERSION=6
...

--
Stefan

> 
>  config GCC_VERSION
> int
> @@ -17,7 +17,7 @@ config GCC_VERSION
> default 0
> 
>  config CC_IS_CLANG
> -   def_bool $(success,$(CC) --version | grep -q clang)
> +   def_bool $(success,$(CC) --version | head -n 1 | grep -q clang)
> 
>  config CLANG_VERSION
> int
> 
> 
> 
> 
> Best Regards
> Masahiro Yamada


Re: [PATCH v5 24/31] kconfig: add CC_IS_GCC and GCC_VERSION

2018-06-05 Thread Stefan Agner
On 05.06.2018 08:27, Masahiro Yamada wrote:
> 2018-06-05 14:50 GMT+09:00 Stefan Agner :
>> On 05.06.2018 02:07, Masahiro Yamada wrote:
>>> Hi Stefan
>>>
>>> 2018-06-05 6:49 GMT+09:00 Stefan Agner :
 Hi Masahiro,

 On 28.05.2018 11:22, Masahiro Yamada wrote:
> This will be useful to specify the required compiler version,
> like this:
>
> config FOO
> bool "Use Foo"
> depends on GCC_VERSION >= 40800
> help
>   This feature requires GCC 4.8 or newer.
>

 I tried using CC_IS_GCC today while using clang. It seems that it is set
 to y despite I am using CC=clang.

 .config looks like this after config:

 ...
 CONFIG_CC_IS_GCC=y
 CONFIG_GCC_VERSION=40201
 CONFIG_CC_IS_CLANG=y
 CONFIG_CLANG_VERSION=6
 ...


 I am using clang 6.0.0 on Arch Linux, which seems to return a version
 when using gcc-version.sh:
 ./scripts/gcc-version.sh clang | sed 's/^0*//'
 402

 I guess that should not be the case?

>>>
>>>
>>> What will 'clang --version' print on your machine?
>>
>> $ clang --version
>> clang version 6.0.0 (tags/RELEASE_600/final)
>> Target: x86_64-pc-linux-gnu
>> Thread model: posix
>> InstalledDir:
>> /home/ags/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf/bin
>>
>> I use a symlink to clang in my cross compiler toolchain, that is why
>> InstalledDir points to a GCC toolchain.
>>
> 
> Ah, I see.
> 
> 
> I will fix it up like follows:
> 
> 
> diff --git a/init/Kconfig b/init/Kconfig
> index e5a0d89..efc43c6 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -9,7 +9,7 @@ config DEFCONFIG_LIST
> default "arch/$(ARCH)/defconfig"
> 
>  config CC_IS_GCC
> -   def_bool $(success,$(CC) --version | grep -q gcc)
> +   def_bool $(success,$(CC) --version | head -n 1 | grep -q gcc)

Yes that works for me:

...
CONFIG_GCC_VERSION=0
   
CONFIG_CC_IS_CLANG=y
   
CONFIG_CLANG_VERSION=6
...

--
Stefan

> 
>  config GCC_VERSION
> int
> @@ -17,7 +17,7 @@ config GCC_VERSION
> default 0
> 
>  config CC_IS_CLANG
> -   def_bool $(success,$(CC) --version | grep -q clang)
> +   def_bool $(success,$(CC) --version | head -n 1 | grep -q clang)
> 
>  config CLANG_VERSION
> int
> 
> 
> 
> 
> Best Regards
> Masahiro Yamada


Re: [PATCH v5 24/31] kconfig: add CC_IS_GCC and GCC_VERSION

2018-06-05 Thread Masahiro Yamada
2018-06-05 14:50 GMT+09:00 Stefan Agner :
> On 05.06.2018 02:07, Masahiro Yamada wrote:
>> Hi Stefan
>>
>> 2018-06-05 6:49 GMT+09:00 Stefan Agner :
>>> Hi Masahiro,
>>>
>>> On 28.05.2018 11:22, Masahiro Yamada wrote:
 This will be useful to specify the required compiler version,
 like this:

 config FOO
 bool "Use Foo"
 depends on GCC_VERSION >= 40800
 help
   This feature requires GCC 4.8 or newer.

>>>
>>> I tried using CC_IS_GCC today while using clang. It seems that it is set
>>> to y despite I am using CC=clang.
>>>
>>> .config looks like this after config:
>>>
>>> ...
>>> CONFIG_CC_IS_GCC=y
>>> CONFIG_GCC_VERSION=40201
>>> CONFIG_CC_IS_CLANG=y
>>> CONFIG_CLANG_VERSION=6
>>> ...
>>>
>>>
>>> I am using clang 6.0.0 on Arch Linux, which seems to return a version
>>> when using gcc-version.sh:
>>> ./scripts/gcc-version.sh clang | sed 's/^0*//'
>>> 402
>>>
>>> I guess that should not be the case?
>>>
>>
>>
>> What will 'clang --version' print on your machine?
>
> $ clang --version
> clang version 6.0.0 (tags/RELEASE_600/final)
> Target: x86_64-pc-linux-gnu
> Thread model: posix
> InstalledDir:
> /home/ags/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf/bin
>
> I use a symlink to clang in my cross compiler toolchain, that is why
> InstalledDir points to a GCC toolchain.
>

Ah, I see.


I will fix it up like follows:


diff --git a/init/Kconfig b/init/Kconfig
index e5a0d89..efc43c6 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -9,7 +9,7 @@ config DEFCONFIG_LIST
default "arch/$(ARCH)/defconfig"

 config CC_IS_GCC
-   def_bool $(success,$(CC) --version | grep -q gcc)
+   def_bool $(success,$(CC) --version | head -n 1 | grep -q gcc)

 config GCC_VERSION
int
@@ -17,7 +17,7 @@ config GCC_VERSION
default 0

 config CC_IS_CLANG
-   def_bool $(success,$(CC) --version | grep -q clang)
+   def_bool $(success,$(CC) --version | head -n 1 | grep -q clang)

 config CLANG_VERSION
int




Best Regards
Masahiro Yamada


Re: [PATCH v5 24/31] kconfig: add CC_IS_GCC and GCC_VERSION

2018-06-05 Thread Masahiro Yamada
2018-06-05 14:50 GMT+09:00 Stefan Agner :
> On 05.06.2018 02:07, Masahiro Yamada wrote:
>> Hi Stefan
>>
>> 2018-06-05 6:49 GMT+09:00 Stefan Agner :
>>> Hi Masahiro,
>>>
>>> On 28.05.2018 11:22, Masahiro Yamada wrote:
 This will be useful to specify the required compiler version,
 like this:

 config FOO
 bool "Use Foo"
 depends on GCC_VERSION >= 40800
 help
   This feature requires GCC 4.8 or newer.

>>>
>>> I tried using CC_IS_GCC today while using clang. It seems that it is set
>>> to y despite I am using CC=clang.
>>>
>>> .config looks like this after config:
>>>
>>> ...
>>> CONFIG_CC_IS_GCC=y
>>> CONFIG_GCC_VERSION=40201
>>> CONFIG_CC_IS_CLANG=y
>>> CONFIG_CLANG_VERSION=6
>>> ...
>>>
>>>
>>> I am using clang 6.0.0 on Arch Linux, which seems to return a version
>>> when using gcc-version.sh:
>>> ./scripts/gcc-version.sh clang | sed 's/^0*//'
>>> 402
>>>
>>> I guess that should not be the case?
>>>
>>
>>
>> What will 'clang --version' print on your machine?
>
> $ clang --version
> clang version 6.0.0 (tags/RELEASE_600/final)
> Target: x86_64-pc-linux-gnu
> Thread model: posix
> InstalledDir:
> /home/ags/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf/bin
>
> I use a symlink to clang in my cross compiler toolchain, that is why
> InstalledDir points to a GCC toolchain.
>

Ah, I see.


I will fix it up like follows:


diff --git a/init/Kconfig b/init/Kconfig
index e5a0d89..efc43c6 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -9,7 +9,7 @@ config DEFCONFIG_LIST
default "arch/$(ARCH)/defconfig"

 config CC_IS_GCC
-   def_bool $(success,$(CC) --version | grep -q gcc)
+   def_bool $(success,$(CC) --version | head -n 1 | grep -q gcc)

 config GCC_VERSION
int
@@ -17,7 +17,7 @@ config GCC_VERSION
default 0

 config CC_IS_CLANG
-   def_bool $(success,$(CC) --version | grep -q clang)
+   def_bool $(success,$(CC) --version | head -n 1 | grep -q clang)

 config CLANG_VERSION
int




Best Regards
Masahiro Yamada


Re: [PATCH v5 24/31] kconfig: add CC_IS_GCC and GCC_VERSION

2018-06-04 Thread Stefan Agner
On 05.06.2018 02:07, Masahiro Yamada wrote:
> Hi Stefan
> 
> 2018-06-05 6:49 GMT+09:00 Stefan Agner :
>> Hi Masahiro,
>>
>> On 28.05.2018 11:22, Masahiro Yamada wrote:
>>> This will be useful to specify the required compiler version,
>>> like this:
>>>
>>> config FOO
>>> bool "Use Foo"
>>> depends on GCC_VERSION >= 40800
>>> help
>>>   This feature requires GCC 4.8 or newer.
>>>
>>
>> I tried using CC_IS_GCC today while using clang. It seems that it is set
>> to y despite I am using CC=clang.
>>
>> .config looks like this after config:
>>
>> ...
>> CONFIG_CC_IS_GCC=y
>> CONFIG_GCC_VERSION=40201
>> CONFIG_CC_IS_CLANG=y
>> CONFIG_CLANG_VERSION=6
>> ...
>>
>>
>> I am using clang 6.0.0 on Arch Linux, which seems to return a version
>> when using gcc-version.sh:
>> ./scripts/gcc-version.sh clang | sed 's/^0*//'
>> 402
>>
>> I guess that should not be the case?
>>
> 
> 
> What will 'clang --version' print on your machine?

$ clang --version
clang version 6.0.0 (tags/RELEASE_600/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir:
/home/ags/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf/bin

I use a symlink to clang in my cross compiler toolchain, that is why
InstalledDir points to a GCC toolchain.

--
Stefan


Re: [PATCH v5 24/31] kconfig: add CC_IS_GCC and GCC_VERSION

2018-06-04 Thread Stefan Agner
On 05.06.2018 02:07, Masahiro Yamada wrote:
> Hi Stefan
> 
> 2018-06-05 6:49 GMT+09:00 Stefan Agner :
>> Hi Masahiro,
>>
>> On 28.05.2018 11:22, Masahiro Yamada wrote:
>>> This will be useful to specify the required compiler version,
>>> like this:
>>>
>>> config FOO
>>> bool "Use Foo"
>>> depends on GCC_VERSION >= 40800
>>> help
>>>   This feature requires GCC 4.8 or newer.
>>>
>>
>> I tried using CC_IS_GCC today while using clang. It seems that it is set
>> to y despite I am using CC=clang.
>>
>> .config looks like this after config:
>>
>> ...
>> CONFIG_CC_IS_GCC=y
>> CONFIG_GCC_VERSION=40201
>> CONFIG_CC_IS_CLANG=y
>> CONFIG_CLANG_VERSION=6
>> ...
>>
>>
>> I am using clang 6.0.0 on Arch Linux, which seems to return a version
>> when using gcc-version.sh:
>> ./scripts/gcc-version.sh clang | sed 's/^0*//'
>> 402
>>
>> I guess that should not be the case?
>>
> 
> 
> What will 'clang --version' print on your machine?

$ clang --version
clang version 6.0.0 (tags/RELEASE_600/final)
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir:
/home/ags/gcc-linaro-7.2.1-2017.11-x86_64_arm-linux-gnueabihf/bin

I use a symlink to clang in my cross compiler toolchain, that is why
InstalledDir points to a GCC toolchain.

--
Stefan


Re: [PATCH v5 24/31] kconfig: add CC_IS_GCC and GCC_VERSION

2018-06-04 Thread Masahiro Yamada
Hi Stefan

2018-06-05 6:49 GMT+09:00 Stefan Agner :
> Hi Masahiro,
>
> On 28.05.2018 11:22, Masahiro Yamada wrote:
>> This will be useful to specify the required compiler version,
>> like this:
>>
>> config FOO
>> bool "Use Foo"
>> depends on GCC_VERSION >= 40800
>> help
>>   This feature requires GCC 4.8 or newer.
>>
>
> I tried using CC_IS_GCC today while using clang. It seems that it is set
> to y despite I am using CC=clang.
>
> .config looks like this after config:
>
> ...
> CONFIG_CC_IS_GCC=y
> CONFIG_GCC_VERSION=40201
> CONFIG_CC_IS_CLANG=y
> CONFIG_CLANG_VERSION=6
> ...
>
>
> I am using clang 6.0.0 on Arch Linux, which seems to return a version
> when using gcc-version.sh:
> ./scripts/gcc-version.sh clang | sed 's/^0*//'
> 402
>
> I guess that should not be the case?
>


What will 'clang --version' print on your machine?


Re: [PATCH v5 24/31] kconfig: add CC_IS_GCC and GCC_VERSION

2018-06-04 Thread Masahiro Yamada
Hi Stefan

2018-06-05 6:49 GMT+09:00 Stefan Agner :
> Hi Masahiro,
>
> On 28.05.2018 11:22, Masahiro Yamada wrote:
>> This will be useful to specify the required compiler version,
>> like this:
>>
>> config FOO
>> bool "Use Foo"
>> depends on GCC_VERSION >= 40800
>> help
>>   This feature requires GCC 4.8 or newer.
>>
>
> I tried using CC_IS_GCC today while using clang. It seems that it is set
> to y despite I am using CC=clang.
>
> .config looks like this after config:
>
> ...
> CONFIG_CC_IS_GCC=y
> CONFIG_GCC_VERSION=40201
> CONFIG_CC_IS_CLANG=y
> CONFIG_CLANG_VERSION=6
> ...
>
>
> I am using clang 6.0.0 on Arch Linux, which seems to return a version
> when using gcc-version.sh:
> ./scripts/gcc-version.sh clang | sed 's/^0*//'
> 402
>
> I guess that should not be the case?
>


What will 'clang --version' print on your machine?


Re: [PATCH v5 24/31] kconfig: add CC_IS_GCC and GCC_VERSION

2018-06-04 Thread Stefan Agner
Hi Masahiro,

On 28.05.2018 11:22, Masahiro Yamada wrote:
> This will be useful to specify the required compiler version,
> like this:
> 
> config FOO
> bool "Use Foo"
> depends on GCC_VERSION >= 40800
> help
>   This feature requires GCC 4.8 or newer.
> 

I tried using CC_IS_GCC today while using clang. It seems that it is set
to y despite I am using CC=clang.

.config looks like this after config:

...
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=40201
CONFIG_CC_IS_CLANG=y
CONFIG_CLANG_VERSION=6
...


I am using clang 6.0.0 on Arch Linux, which seems to return a version
when using gcc-version.sh:
./scripts/gcc-version.sh clang | sed 's/^0*//'
402

I guess that should not be the case?

--
Stefan

> Signed-off-by: Masahiro Yamada 
> Reviewed-by: Kees Cook 
> ---
> 
> Changes in v5: None
> Changes in v4: None
> Changes in v3: None
> Changes in v2: None
> 
>  init/Kconfig | 8 
>  1 file changed, 8 insertions(+)
> 
> diff --git a/init/Kconfig b/init/Kconfig
> index f1b0cfb..2e33d93 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -8,6 +8,14 @@ config DEFCONFIG_LIST
>   default ARCH_DEFCONFIG
>   default "arch/$(ARCH)/defconfig"
>  
> +config CC_IS_GCC
> + def_bool $(success,$(CC) --version | grep -q gcc)
> +
> +config GCC_VERSION
> + int
> + default $(shell,$(srctree)/scripts/gcc-version.sh -p $(CC) | sed
> 's/^0*//') if CC_IS_GCC
> + default 0
> +
>  config CONSTRUCTORS
>   bool
>   depends on !UML


Re: [PATCH v5 24/31] kconfig: add CC_IS_GCC and GCC_VERSION

2018-06-04 Thread Stefan Agner
Hi Masahiro,

On 28.05.2018 11:22, Masahiro Yamada wrote:
> This will be useful to specify the required compiler version,
> like this:
> 
> config FOO
> bool "Use Foo"
> depends on GCC_VERSION >= 40800
> help
>   This feature requires GCC 4.8 or newer.
> 

I tried using CC_IS_GCC today while using clang. It seems that it is set
to y despite I am using CC=clang.

.config looks like this after config:

...
CONFIG_CC_IS_GCC=y
CONFIG_GCC_VERSION=40201
CONFIG_CC_IS_CLANG=y
CONFIG_CLANG_VERSION=6
...


I am using clang 6.0.0 on Arch Linux, which seems to return a version
when using gcc-version.sh:
./scripts/gcc-version.sh clang | sed 's/^0*//'
402

I guess that should not be the case?

--
Stefan

> Signed-off-by: Masahiro Yamada 
> Reviewed-by: Kees Cook 
> ---
> 
> Changes in v5: None
> Changes in v4: None
> Changes in v3: None
> Changes in v2: None
> 
>  init/Kconfig | 8 
>  1 file changed, 8 insertions(+)
> 
> diff --git a/init/Kconfig b/init/Kconfig
> index f1b0cfb..2e33d93 100644
> --- a/init/Kconfig
> +++ b/init/Kconfig
> @@ -8,6 +8,14 @@ config DEFCONFIG_LIST
>   default ARCH_DEFCONFIG
>   default "arch/$(ARCH)/defconfig"
>  
> +config CC_IS_GCC
> + def_bool $(success,$(CC) --version | grep -q gcc)
> +
> +config GCC_VERSION
> + int
> + default $(shell,$(srctree)/scripts/gcc-version.sh -p $(CC) | sed
> 's/^0*//') if CC_IS_GCC
> + default 0
> +
>  config CONSTRUCTORS
>   bool
>   depends on !UML


[PATCH v5 24/31] kconfig: add CC_IS_GCC and GCC_VERSION

2018-05-28 Thread Masahiro Yamada
This will be useful to specify the required compiler version,
like this:

config FOO
bool "Use Foo"
depends on GCC_VERSION >= 40800
help
  This feature requires GCC 4.8 or newer.

Signed-off-by: Masahiro Yamada 
Reviewed-by: Kees Cook 
---

Changes in v5: None
Changes in v4: None
Changes in v3: None
Changes in v2: None

 init/Kconfig | 8 
 1 file changed, 8 insertions(+)

diff --git a/init/Kconfig b/init/Kconfig
index f1b0cfb..2e33d93 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -8,6 +8,14 @@ config DEFCONFIG_LIST
default ARCH_DEFCONFIG
default "arch/$(ARCH)/defconfig"
 
+config CC_IS_GCC
+   def_bool $(success,$(CC) --version | grep -q gcc)
+
+config GCC_VERSION
+   int
+   default $(shell,$(srctree)/scripts/gcc-version.sh -p $(CC) | sed 
's/^0*//') if CC_IS_GCC
+   default 0
+
 config CONSTRUCTORS
bool
depends on !UML
-- 
2.7.4



[PATCH v5 24/31] kconfig: add CC_IS_GCC and GCC_VERSION

2018-05-28 Thread Masahiro Yamada
This will be useful to specify the required compiler version,
like this:

config FOO
bool "Use Foo"
depends on GCC_VERSION >= 40800
help
  This feature requires GCC 4.8 or newer.

Signed-off-by: Masahiro Yamada 
Reviewed-by: Kees Cook 
---

Changes in v5: None
Changes in v4: None
Changes in v3: None
Changes in v2: None

 init/Kconfig | 8 
 1 file changed, 8 insertions(+)

diff --git a/init/Kconfig b/init/Kconfig
index f1b0cfb..2e33d93 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -8,6 +8,14 @@ config DEFCONFIG_LIST
default ARCH_DEFCONFIG
default "arch/$(ARCH)/defconfig"
 
+config CC_IS_GCC
+   def_bool $(success,$(CC) --version | grep -q gcc)
+
+config GCC_VERSION
+   int
+   default $(shell,$(srctree)/scripts/gcc-version.sh -p $(CC) | sed 
's/^0*//') if CC_IS_GCC
+   default 0
+
 config CONSTRUCTORS
bool
depends on !UML
-- 
2.7.4