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-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


[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