Re: [LEDE-DEV] [RFC] toolchain: fix GCC version check causing failure on Debian Testing with gcc-7
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
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
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