Re: [LEDE-DEV] [RFC] toolchain: fix GCC version check causing failure on Debian Testing with gcc-7

2017-12-17 Thread Peter Pöschl
Hi Jo,
 
(not subscribed, trying to reply to your mail extracted from the archives)

> > In Debian there were/are gcc-4.2 .. gcc-4.9, gcc-5 .. gcc-7.
> > And what about beauties like 'x86_64-linux-gnu-gcc-7'?
> > Why not ditch the 'gcc* --version' invocations and have people use
> > 'CC=fancy-named-gcc' on the command line if needed?
> ...
> I'm fine with removing the version checks entirely if we find an
> alternative to check for GCC > 4.8 - maybe a feature test of some sort?

Which features do you want to test for?
Alternatively, how about switching from a never-complete whitelist
to a blacklist like this:

Signed-off-by: Peter Pöschl 
---
diff --git a/include/prereq-build.mk b/include/prereq-build.mk
index 6a423d2c7d..4e63cde56a 100644
--- a/include/prereq-build.mk
+++ b/include/prereq-build.mk
@@ -28,13 +28,8 @@ $(eval $(call TestHostCommand,proper-umask, \
 
 $(eval $(call SetupHostCommand,gcc, \
Please install the GNU C Compiler (gcc) 4.8 or later \
-   $(CC) -dumpversion | grep -E 
'(4\.[8-9]|5\.?[0-9]?|6\.?[0-9]?|7\.?[0-9]?)', \
-   gcc -dumpversion | grep -E 
'(4\.[8-9]|5\.?[0-9]?|6\.?[0-9]?|7\.?[0-9]?)', \
-   gcc48 --version | grep gcc, \
-   gcc49 --version | grep gcc, \
-   gcc5 --version | grep gcc, \
-   gcc6 --version | grep gcc, \
-   gcc7 --version | grep gcc, \
+   $(CC) -dumpversion | grep -Ev '^([1-3]\.|4\.[0-7])', \
+   gcc -dumpversion | grep -Ev '^([1-3]\.|4\.[0-7])', \
gcc --version | grep Apple.LLVM ))
 
 $(eval $(call TestHostCommand,working-gcc, \
@@ -45,13 +40,8 @@ $(eval $(call TestHostCommand,working-gcc, \
 
 $(eval $(call SetupHostCommand,g++, \
Please install the GNU C++ Compiler (g++) 4.8 or later \
-   $(CXX) -dumpversion | grep -E 
'(4\.[8-9]|5\.?[0-9]?|6\.?[0-9]?|7\.?[0-9]?)', \
-   g++ -dumpversion | grep -E 
'(4\.[8-9]|5\.?[0-9]?|6\.?[0-9]?|7\.?[0-9]?)', \
-   g++48 --version | grep g++, \
-   g++49 --version | grep g++, \
-   g++5 --version | grep g++, \
-   g++6 --version | grep g++, \
-   g++7 --version | grep g++, \
+   $(CXX) -dumpversion | grep -Ev '^([1-3]\.|4\.[0-7])', \
+   g++ -dumpversion | grep -Ev '^([1-3]\.|4\.[0-7])', \
g++ --version | grep Apple.LLVM ))
 
 $(eval $(call TestHostCommand,working-g++, \




___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] [RFC] toolchain: fix GCC version check causing failure on Debian Testing with gcc-7

2017-11-28 Thread Jo-Philipp Wich
Hi Peter,

> In Debian there were/are gcc-4.2 .. gcc-4.9, gcc-5 .. gcc-7.
> And what about beauties like 'x86_64-linux-gnu-gcc-7'?
> Why not ditch the 'gcc* --version' invocations and have people use
> 'CC=fancy-named-gcc' on the command line if needed?

That should already work (after fixing the version regex). The build
system will call "$(CC) -dumpversion" and symlink that to
./staging_dir/host/bin/gcc if passing the check, so the extra "gcc-7"
patch hunk should not be needed if you're fine with invoking the
buildroot using "CC=gcc-7 make ...".

I'm fine with removing the version checks entirely if we find an
alternative to check for GCC > 4.8 - maybe a feature test of some sort?

~ Jo

___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] [RFC] toolchain: fix GCC version check causing failure on Debian Testing with gcc-7

2017-11-26 Thread Peter Pöschl
Hello Martin,

> [moved to top]
> > gcc7 --version | grep gcc, \
> > +   gcc-7 --version | grep gcc, \
> 
> this part is new

And unfortunately it is only the tip of the iceberg:

In Debian there were/are gcc-4.2 .. gcc-4.9, gcc-5 .. gcc-7.
And what about beauties like 'x86_64-linux-gnu-gcc-7'?
Why not ditch the 'gcc* --version' invocations and have people use
'CC=fancy-named-gcc' on the command line if needed?


> maybe you could check these and rebase your patch to improve the
> merged patch even further

how about this:

 * properly anchored at BOL (prohibits 2.5.6 etc.)

 * allows bare '5' and '6' (according to [1] these might actually exist on SUSE 
systems)

[1] https://gcc.gnu.org/ml/gcc-patches/2017-01/msg00851.html


Signed-off-by: Peter Pöschl 
---
diff --git a/include/prereq-build.mk b/include/prereq-build.mk
index d7562b4f72..10cf746809 100644
--- a/include/prereq-build.mk
+++ b/include/prereq-build.mk
@@ -28,8 +28,8 @@ $(eval $(call TestHostCommand,proper-umask, \
 
 $(eval $(call SetupHostCommand,gcc, \
Please install the GNU C Compiler (gcc) 4.8 or later \
-   $(CC) -dumpversion | grep -E 
'(4\.[8-9]|5\.?[0-9]?|6\.?[0-9]?|7\.?[0-9]?)', \
-   gcc -dumpversion | grep -E 
'(4\.[8-9]|5\.?[0-9]?|6\.?[0-9]?|7\.?[0-9]?)', \
+   $(CC) -dumpversion | grep -E '^(4\.[8-9]|[5-7](|\.[0-9]))', \
+   gcc -dumpversion | grep -E '^(4\.[8-9]|[5-7](|\.[0-9]))', \
gcc48 --version | grep gcc, \
gcc49 --version | grep gcc, \
gcc5 --version | grep gcc, \
@@ -45,8 +45,8 @@ $(eval $(call TestHostCommand,working-gcc, \
 
 $(eval $(call SetupHostCommand,g++, \
Please install the GNU C++ Compiler (g++) 4.8 or later \
-   $(CXX) -dumpversion | grep -E 
'(4\.[8-9]|5\.?[0-9]?|6\.?[0-9]?|7\.?[0-9]?)', \
-   g++ -dumpversion | grep -E 
'(4\.[8-9]|5\.?[0-9]?|6\.?[0-9]?|7\.?[0-9]?)', \
+   $(CXX) -dumpversion | grep -E '^(4\.[8-9]|[5-7](|\.[0-9]))', \
+   g++ -dumpversion | grep -E '^(4\.[8-9]|[5-7](|\.[0-9]))', \
g++48 --version | grep g++, \
g++49 --version | grep g++, \
g++5 --version | grep g++, \

--
2.15.0




___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


Re: [LEDE-DEV] [RFC] toolchain: fix GCC version check causing failure on Debian Testing with gcc-7

2017-11-26 Thread Martin Blumenstingl via Lede-dev
The sender domain has a DMARC Reject/Quarantine policy which disallows
sending mailing list messages using the original "From" header.

To mitigate this problem, the original message has been wrapped
automatically by the mailing list software.--- Begin Message ---
Hi Peter,

On Sun, Nov 26, 2017 at 5:12 PM, Peter Pöschl  wrote:
> In Debian Stretch/Testing gcc version 7 is called gcc-7 and g++-7 and
> 'gcc -dumpversion' returns '7' which causes 'make defconfig' to fail with
>
>Build dependency: Please install the GNU C Compiler ...
>Build dependency: Please install the GNU C++ Compiler ...
>
> The following patch is minimal invasive.
> Alternatively, it would be more robust to use the regex
>'^(4\.[8-9]|5\.[0-9]|6\.[0-9]|7(|.\[0-9]))'
> instead (currently even 1.4.0 would be accepted), but this might have 
> backward-compatibility ramifications.
a few hours ago a similar patch was pushed: [0] (I CC'ed the author of it)

there are some differences between your patch and the one which is
merged already
maybe you could check these and rebase your patch to improve the
merged patch even futher

>
> Signed-off-by: Peter Pöschl 
> ---
> diff --git a/include/prereq-build.mk b/include/prereq-build.mk
> index c6f99a2071..43a8da290f 100644
> --- a/include/prereq-build.mk
> +++ b/include/prereq-build.mk
> @@ -28,13 +28,14 @@ $(eval $(call TestHostCommand,proper-umask, \
>
>  $(eval $(call SetupHostCommand,gcc, \
> Please install the GNU C Compiler (gcc) 4.8 or later \
> -   $(CC) -dumpversion | grep -E '(4\.[8-9]|5\.[0-9]|6\.[0-9]|7\.[0-9])', 
> \
> -   gcc -dumpversion | grep -E '(4\.[8-9]|5\.[0-9]|6\.[0-9]|7\.[0-9])', \
> +   $(CC) -dumpversion | grep -E 
> '(4\.[8-9]|5\.[0-9]|6\.[0-9]|^7|7\.[0-9])', \
> +   gcc -dumpversion | grep -E 
> '(4\.[8-9]|5\.[0-9]|6\.[0-9]|^7|7\.[0-9])', \
your patch contains a match against EOL ($) which the merged version doesn't

> gcc48 --version | grep gcc, \
> gcc49 --version | grep gcc, \
> gcc5 --version | grep gcc, \
> gcc6 --version | grep gcc, \
> gcc7 --version | grep gcc, \
> +   gcc-7 --version | grep gcc, \
this part is new

> gcc --version | grep Apple.LLVM ))
>
>  $(eval $(call TestHostCommand,working-gcc, \
> @@ -45,13 +46,14 @@ $(eval $(call TestHostCommand,working-gcc, \
>
>  $(eval $(call SetupHostCommand,g++, \
> Please install the GNU C++ Compiler (g++) 4.8 or later \
> -   $(CXX) -dumpversion | grep -E 
> '(4\.[8-9]|5\.[0-9]|6\.[0-9]|7\.[0-9])', \
> -   g++ -dumpversion | grep -E '(4\.[8-9]|5\.[0-9]|6\.[0-9]|7\.[0-9])', \
> +   $(CXX) -dumpversion | grep -E 
> '(4\.[8-9]|5\.[0-9]|6\.[0-9]|^7|7\.[0-9])', \
> +   g++ -dumpversion | grep -E 
> '(4\.[8-9]|5\.[0-9]|6\.[0-9]|^7|7\.[0-9])', \
> g++48 --version | grep g++, \
> g++49 --version | grep g++, \
> g++5 --version | grep g++, \
> g++6 --version | grep g++, \
> g++7 --version | grep g++, \
> +   g++-7 --version | grep g++, \
> g++ --version | grep Apple.LLVM ))
>
>  $(eval $(call TestHostCommand,working-g++, \
> --
> 2.15.0
>
>
> ___
> Lede-dev mailing list
> Lede-dev@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/lede-dev

Thank you!
Martin

[0] 
https://git.lede-project.org/?p=source.git;a=commitdiff;h=8ee2d3f718c79dc7c2e5e859766e23e8058cf3a6

--- End Message ---
___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev


[LEDE-DEV] [RFC] toolchain: fix GCC version check causing failure on Debian Testing with gcc-7

2017-11-26 Thread Peter Pöschl
In Debian Stretch/Testing gcc version 7 is called gcc-7 and g++-7 and
'gcc -dumpversion' returns '7' which causes 'make defconfig' to fail with

   Build dependency: Please install the GNU C Compiler ...
   Build dependency: Please install the GNU C++ Compiler ...

The following patch is minimal invasive.
Alternatively, it would be more robust to use the regex 
   '^(4\.[8-9]|5\.[0-9]|6\.[0-9]|7(|.\[0-9]))'
instead (currently even 1.4.0 would be accepted), but this might have 
backward-compatibility ramifications.

Signed-off-by: Peter Pöschl 
---
diff --git a/include/prereq-build.mk b/include/prereq-build.mk
index c6f99a2071..43a8da290f 100644
--- a/include/prereq-build.mk
+++ b/include/prereq-build.mk
@@ -28,13 +28,14 @@ $(eval $(call TestHostCommand,proper-umask, \
 
 $(eval $(call SetupHostCommand,gcc, \
Please install the GNU C Compiler (gcc) 4.8 or later \
-   $(CC) -dumpversion | grep -E '(4\.[8-9]|5\.[0-9]|6\.[0-9]|7\.[0-9])', \
-   gcc -dumpversion | grep -E '(4\.[8-9]|5\.[0-9]|6\.[0-9]|7\.[0-9])', \
+   $(CC) -dumpversion | grep -E 
'(4\.[8-9]|5\.[0-9]|6\.[0-9]|^7|7\.[0-9])', \
+   gcc -dumpversion | grep -E 
'(4\.[8-9]|5\.[0-9]|6\.[0-9]|^7|7\.[0-9])', \
gcc48 --version | grep gcc, \
gcc49 --version | grep gcc, \
gcc5 --version | grep gcc, \
gcc6 --version | grep gcc, \
gcc7 --version | grep gcc, \
+   gcc-7 --version | grep gcc, \
gcc --version | grep Apple.LLVM ))
 
 $(eval $(call TestHostCommand,working-gcc, \
@@ -45,13 +46,14 @@ $(eval $(call TestHostCommand,working-gcc, \
 
 $(eval $(call SetupHostCommand,g++, \
Please install the GNU C++ Compiler (g++) 4.8 or later \
-   $(CXX) -dumpversion | grep -E '(4\.[8-9]|5\.[0-9]|6\.[0-9]|7\.[0-9])', \
-   g++ -dumpversion | grep -E '(4\.[8-9]|5\.[0-9]|6\.[0-9]|7\.[0-9])', \
+   $(CXX) -dumpversion | grep -E 
'(4\.[8-9]|5\.[0-9]|6\.[0-9]|^7|7\.[0-9])', \
+   g++ -dumpversion | grep -E 
'(4\.[8-9]|5\.[0-9]|6\.[0-9]|^7|7\.[0-9])', \
g++48 --version | grep g++, \
g++49 --version | grep g++, \
g++5 --version | grep g++, \
g++6 --version | grep g++, \
g++7 --version | grep g++, \
+   g++-7 --version | grep g++, \
g++ --version | grep Apple.LLVM ))
 
 $(eval $(call TestHostCommand,working-g++, \
-- 
2.15.0


___
Lede-dev mailing list
Lede-dev@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/lede-dev