Re: llvm on CentOS 7
On 24/9/19 6:08 am, Gedare Bloom wrote: > On Mon, Sep 16, 2019 at 4:16 PM Chris Johns wrote: >> >> On 17/9/19 12:36 am, Joel Sherrill wrote: >>> Running log as I work through this. >> >> Thanks, it is appreciated. >> >>> Build failed because I didn't have cmake. Double-checked and sb-check >>> wouldn't >>> have reported this. Not sure we should report it missing unless we can >>> designate >>> something as "needed by some packages" or let folks know which one(s). >> >> Cmake is tagged as optional as llvm is optional. >> > > Is there a (simple) way for sb-check to take arguments to check > pre-requisites on specific packages? There is no support. I think it would be good to have but I am not sure how we could collect this data and manage it. For example hosts have different names for some commands. Would it be simpler to collect the packages a specific host OS needs? Chris ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: llvm on CentOS 7
On Mon, Sep 16, 2019 at 4:16 PM Chris Johns wrote: > > On 17/9/19 12:36 am, Joel Sherrill wrote: > > Running log as I work through this. > > Thanks, it is appreciated. > > > Build failed because I didn't have cmake. Double-checked and sb-check > > wouldn't > > have reported this. Not sure we should report it missing unless we can > > designate > > something as "needed by some packages" or let folks know which one(s). > > Cmake is tagged as optional as llvm is optional. > Is there a (simple) way for sb-check to take arguments to check pre-requisites on specific packages? > The __cmake define in source-builder/defaults.mc could be changes to remove > the > absolute path and the environment's path will be searched. This is already > done > in FreeBSD, MacOS and I think Windows so maybe this should be the default. > > > Loaded cmake, then got this beauty: > > > > /usr/bin/cmake -Wno-dev -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=Release > > -DCMAKE_INSTALL_PREFIX=/home/joel/rtems-work/tools/5 > > '-DPACKAGE_VERSION=8.0.1 (RTEMS 5, RSB > > 4b7af073000d612b21b9dece538d2bcc85c0c240)' > > -DLLDB_CODESIGN_IDENTITY=llvm ../llvm-8.0.1 > > -- Configuring incomplete, errors occurred! > > CMake Error at CMakeLists.txt:3 (cmake_minimum_required): > > CMake 3.4.3 or higher is required. You are running version 2.8.12.2 > > > > Plenty of people on the net say to download and build it but it turns > > out that EPEL > > has a cmake3 RPM. That's a very respectable repo (unlike Ghettoforge which > > also > > had it). > > > > yum erase cmake > > yum install cmake3 > > > > That installed /usr/bin/cmake3 which the build doesn't know about so I > > symbolically > > linked /usr/bin/cmake3 to ${HOME}/bin/cmake. > > > > This didn't work because it checks for /usr/bin/cmake so I made that > > symlink to cmake3. > > If this is needed for a specific CentOS version I suggest you detect this in > source-builder/sb/linux.py and set __cmake to cmake3. The llvm references > %{__cmake}. I would prefer this over documenting symlinks. > > > This resulted in a failure further along. > > > > -- Detecting CXX compile features - done > > CMake Error at cmake/modules/CheckCompilerVersion.cmake:40 (message): > > Host GCC version should be at least 5.1 because LLVM will soon use new C++ > > features which your toolchain version doesn't support. Your version is > > 4.8.5. You can temporarily opt out using > > LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN, but very soon your toolchain won't > > be > > supported. > > Call Stack (most recent call first): > > cmake/modules/CheckCompilerVersion.cmake:45 (check_compiler_version) > > cmake/config-ix.cmake:13 (include) > > CMakeLists.txt:590 (include) > > > > Ouch. > > > -- Configuring incomplete, errors occurred! > > See also > > "/home/joel/rtems-work/rtems-source-builder/rtems/build/rtems-llvm-8.0.1-x86_64-linux-gnu-1/build/CMakeFiles/CMakeOutput.log". > > shell cmd failed: /bin/sh -ex > > /home/joel/rtems-work/rtems-source-builder/rtems/build/rtems-llvm-8.0.1-x86_64-linux-gnu-1/do-build > > error: building rtems-llvm-8.0.1-x86_64-linux-gnu-1 > > > > Looks like I need to move to a machine with newer gcc. There is a > > floor on the host environment without doing some work. I think the > > CentOS machine I use to do test builds of our tools from > > gcc/binutils/newlib master should work since it has installs of > > various newer gcc. > > > > That may take until I get home. > > Again thanks. > > FYI Windows with MSYS2 is not bilding even after upgrading it to latest > packages > and installing clang-8.0.2 as a package to build clang-8.0.2 with. > > On Windows the unpacking of the source has proved problematic because the cfe > tarball contains links to files that are extracted after the link and on > Windows > that fails, the target needs to exist. I have added support to the RSB to > handle > this however the testsuite contains a bad link to a non-existent target for > testing and this means the untar always fails. I have added a work around to > the > RSB for this but it is a little painful. > > I think this highlights there is a reasonable amount of work to get LLVM and > clang building on all hosts. On the other hand MSYS2 is like other packaging > systems, it provides clang-8.0.2 and it is built with all targets. Our users > can > then decide to use the packaged LLVM or build from source. > > Chris > ___ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: llvm on CentOS 7
> On Sep 16, 2019, at 17:52 , Joel Sherrill wrote: > > I need to install that! That’s in regards to: >> >> You can also install “devtoolset-7” from the CentOS Software Collection Sig >> (https://wiki.centos.org/SpecialInterestGroup/SCLo). I have that installed. >> devtoolset-7-binutils.x86_64 2.28-11.el7 >> @centos-sclo-rh >> >> That will give you gcc 7.3.1 and friends: This is the CentOS version of the formal Red Hat way to get required newer tools on existing systems, so it’s a good way to go. Peter - Peter Dufault HD Associates, Inc. Software and System Engineering This email is delivered through the public internet using protocols subject to interception and tampering. ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: llvm on CentOS 7
On 17/9/19 8:09 am, Joel Sherrill wrote: > On Mon, Sep 16, 2019 at 4:57 PM Chris Johns wrote: >> >> On 17/9/19 7:52 am, Joel Sherrill wrote: >>> I need to install that! In the mean time, I used the machine I test >>> odd new gcc versions on and this happened: >>> >>> -- Check for working CXX compiler: /usr/bin/c++ >>> -- Check for working CXX compiler: /usr/bin/c++ -- works >>> -- Detecting CXX compiler ABI info >>> -- Detecting CXX compiler ABI info - done >>> -- Detecting CXX compile features >>> -- Detecting CXX compile features - done >>> >>> $ type gcc >>> gcc is hashed (/home/joel/test-gcc/install-master/bin/gcc) >>> $ type c++ >>> c++ is /home/joel/test-gcc/install-master/bin/c++ >>> >>> It looks like something has hard-coded c++ to use /usr/bin which is not >>> nice. >>> >> >> I suspect you would need to see what cmake is doing to understand this. >> >> Try adding to the cmake command line >> 'CXX=/home/joel/test-gcc/install-master/bin/c++' >> CC=/home/joel/test-gcc/install-master/bin/cc'. > > I went down in .../build and had to remove the cmake cache file. Then the > following built to completion. Oh hmm, best of luck playing with those files. > Not sure if there are other steps: > > CXX=/home/joel/test-gcc/install-master/bin/c++ > CC=/home/joel/test-gcc/install-master/bin/gcc /usr/bin/cmake -Wno-dev > -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=Release > -DCMAKE_INSTALL_PREFIX=/home/joel/rtems-work/tools/5 > '-DPACKAGE_VERSION=8.0.1 (RTEMS 5, RSB > d6d8e1df57492e81d971316b36cff019cb8541fc)' > -DLLDB_CODESIGN_IDENTITY=llvm ../llvm-8.0.1 > > Something should be using the compiler from my PATH The only sure way is to clean and run cmake again. My experience with cmake over the last 5 years is playing with the cache requires follow up therapy. Chris ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: llvm on CentOS 7
On 17/9/19 12:36 am, Joel Sherrill wrote: > Running log as I work through this. Thanks, it is appreciated. > Build failed because I didn't have cmake. Double-checked and sb-check wouldn't > have reported this. Not sure we should report it missing unless we can > designate > something as "needed by some packages" or let folks know which one(s). Cmake is tagged as optional as llvm is optional. The __cmake define in source-builder/defaults.mc could be changes to remove the absolute path and the environment's path will be searched. This is already done in FreeBSD, MacOS and I think Windows so maybe this should be the default. > Loaded cmake, then got this beauty: > > /usr/bin/cmake -Wno-dev -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=Release > -DCMAKE_INSTALL_PREFIX=/home/joel/rtems-work/tools/5 > '-DPACKAGE_VERSION=8.0.1 (RTEMS 5, RSB > 4b7af073000d612b21b9dece538d2bcc85c0c240)' > -DLLDB_CODESIGN_IDENTITY=llvm ../llvm-8.0.1 > -- Configuring incomplete, errors occurred! > CMake Error at CMakeLists.txt:3 (cmake_minimum_required): > CMake 3.4.3 or higher is required. You are running version 2.8.12.2 > > Plenty of people on the net say to download and build it but it turns > out that EPEL > has a cmake3 RPM. That's a very respectable repo (unlike Ghettoforge which > also > had it). > > yum erase cmake > yum install cmake3 > > That installed /usr/bin/cmake3 which the build doesn't know about so I > symbolically > linked /usr/bin/cmake3 to ${HOME}/bin/cmake. > > This didn't work because it checks for /usr/bin/cmake so I made that > symlink to cmake3. If this is needed for a specific CentOS version I suggest you detect this in source-builder/sb/linux.py and set __cmake to cmake3. The llvm references %{__cmake}. I would prefer this over documenting symlinks. > This resulted in a failure further along. > > -- Detecting CXX compile features - done > CMake Error at cmake/modules/CheckCompilerVersion.cmake:40 (message): > Host GCC version should be at least 5.1 because LLVM will soon use new C++ > features which your toolchain version doesn't support. Your version is > 4.8.5. You can temporarily opt out using > LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN, but very soon your toolchain won't be > supported. > Call Stack (most recent call first): > cmake/modules/CheckCompilerVersion.cmake:45 (check_compiler_version) > cmake/config-ix.cmake:13 (include) > CMakeLists.txt:590 (include) > Ouch. > -- Configuring incomplete, errors occurred! > See also > "/home/joel/rtems-work/rtems-source-builder/rtems/build/rtems-llvm-8.0.1-x86_64-linux-gnu-1/build/CMakeFiles/CMakeOutput.log". > shell cmd failed: /bin/sh -ex > /home/joel/rtems-work/rtems-source-builder/rtems/build/rtems-llvm-8.0.1-x86_64-linux-gnu-1/do-build > error: building rtems-llvm-8.0.1-x86_64-linux-gnu-1 > > Looks like I need to move to a machine with newer gcc. There is a > floor on the host environment without doing some work. I think the > CentOS machine I use to do test builds of our tools from > gcc/binutils/newlib master should work since it has installs of > various newer gcc. > > That may take until I get home. Again thanks. FYI Windows with MSYS2 is not bilding even after upgrading it to latest packages and installing clang-8.0.2 as a package to build clang-8.0.2 with. On Windows the unpacking of the source has proved problematic because the cfe tarball contains links to files that are extracted after the link and on Windows that fails, the target needs to exist. I have added support to the RSB to handle this however the testsuite contains a bad link to a non-existent target for testing and this means the untar always fails. I have added a work around to the RSB for this but it is a little painful. I think this highlights there is a reasonable amount of work to get LLVM and clang building on all hosts. On the other hand MSYS2 is like other packaging systems, it provides clang-8.0.2 and it is built with all targets. Our users can then decide to use the packaged LLVM or build from source. Chris ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: llvm on CentOS 7
On Mon, Sep 16, 2019 at 4:57 PM Chris Johns wrote: > > On 17/9/19 7:52 am, Joel Sherrill wrote: > > I need to install that! In the mean time, I used the machine I test > > odd new gcc versions on and this happened: > > > > -- Check for working CXX compiler: /usr/bin/c++ > > -- Check for working CXX compiler: /usr/bin/c++ -- works > > -- Detecting CXX compiler ABI info > > -- Detecting CXX compiler ABI info - done > > -- Detecting CXX compile features > > -- Detecting CXX compile features - done > > > > $ type gcc > > gcc is hashed (/home/joel/test-gcc/install-master/bin/gcc) > > $ type c++ > > c++ is /home/joel/test-gcc/install-master/bin/c++ > > > > It looks like something has hard-coded c++ to use /usr/bin which is not > > nice. > > > > I suspect you would need to see what cmake is doing to understand this. > > Try adding to the cmake command line > 'CXX=/home/joel/test-gcc/install-master/bin/c++' > CC=/home/joel/test-gcc/install-master/bin/cc'. I went down in .../build and had to remove the cmake cache file. Then the following built to completion. Not sure if there are other steps: CXX=/home/joel/test-gcc/install-master/bin/c++ CC=/home/joel/test-gcc/install-master/bin/gcc /usr/bin/cmake -Wno-dev -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/home/joel/rtems-work/tools/5 '-DPACKAGE_VERSION=8.0.1 (RTEMS 5, RSB d6d8e1df57492e81d971316b36cff019cb8541fc)' -DLLDB_CODESIGN_IDENTITY=llvm ../llvm-8.0.1 Something should be using the compiler from my PATH > > Chris ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: llvm on CentOS 7
On 17/9/19 7:52 am, Joel Sherrill wrote: > I need to install that! In the mean time, I used the machine I test > odd new gcc versions on and this happened: > > -- Check for working CXX compiler: /usr/bin/c++ > -- Check for working CXX compiler: /usr/bin/c++ -- works > -- Detecting CXX compiler ABI info > -- Detecting CXX compiler ABI info - done > -- Detecting CXX compile features > -- Detecting CXX compile features - done > > $ type gcc > gcc is hashed (/home/joel/test-gcc/install-master/bin/gcc) > $ type c++ > c++ is /home/joel/test-gcc/install-master/bin/c++ > > It looks like something has hard-coded c++ to use /usr/bin which is not nice. > I suspect you would need to see what cmake is doing to understand this. Try adding to the cmake command line 'CXX=/home/joel/test-gcc/install-master/bin/c++' CC=/home/joel/test-gcc/install-master/bin/cc'. Chris ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: llvm on CentOS 7
I need to install that! In the mean time, I used the machine I test odd new gcc versions on and this happened: -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done $ type gcc gcc is hashed (/home/joel/test-gcc/install-master/bin/gcc) $ type c++ c++ is /home/joel/test-gcc/install-master/bin/c++ It looks like something has hard-coded c++ to use /usr/bin which is not nice. On Mon, Sep 16, 2019 at 1:57 PM Peter Dufault wrote: > > > > On Sep 16, 2019, at 10:36 , Joel Sherrill wrote: > > > > Hi > > > > Running log as I work through this. > > > > Build failed because I didn't have cmake. Double-checked and sb-check > > wouldn't > > have reported this. Not sure we should report it missing unless we can > > designate > > something as "needed by some packages" or let folks know which one(s). > > > > Loaded cmake, then got this beauty: > > > > /usr/bin/cmake -Wno-dev -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=Release > > -DCMAKE_INSTALL_PREFIX=/home/joel/rtems-work/tools/5 > > '-DPACKAGE_VERSION=8.0.1 (RTEMS 5, RSB > > 4b7af073000d612b21b9dece538d2bcc85c0c240)' > > -DLLDB_CODESIGN_IDENTITY=llvm ../llvm-8.0.1 > > -- Configuring incomplete, errors occurred! > > CMake Error at CMakeLists.txt:3 (cmake_minimum_required): > > CMake 3.4.3 or higher is required. You are running version 2.8.12.2 > > > > Plenty of people on the net say to download and build it but it turns > > out that EPEL > > has a cmake3 RPM. That's a very respectable repo (unlike Ghettoforge which > > also > > had it). > > > > yum erase cmake > > yum install cmake3 > > > > That installed /usr/bin/cmake3 which the build doesn't know about so I > > symbolically > > linked /usr/bin/cmake3 to ${HOME}/bin/cmake. > > > > This didn't work because it checks for /usr/bin/cmake so I made that > > symlink to cmake3. > > > > This resulted in a failure further along. > > > > -- Detecting CXX compile features - done > > CMake Error at cmake/modules/CheckCompilerVersion.cmake:40 (message): > > Host GCC version should be at least 5.1 because LLVM will soon use new C++ > > features which your toolchain version doesn't support. Your version is > > 4.8.5. You can temporarily opt out using > > LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN, but very soon your toolchain won't be > > supported. > > Call Stack (most recent call first): > > cmake/modules/CheckCompilerVersion.cmake:45 (check_compiler_version) > > cmake/config-ix.cmake:13 (include) > > CMakeLists.txt:590 (include) > > > > > > -- Configuring incomplete, errors occurred! > > See also > > "/home/joel/rtems-work/rtems-source-builder/rtems/build/rtems-llvm-8.0.1-x86_64-linux-gnu-1/build/CMakeFiles/CMakeOutput.log". > > shell cmd failed: /bin/sh -ex > > /home/joel/rtems-work/rtems-source-builder/rtems/build/rtems-llvm-8.0.1-x86_64-linux-gnu-1/do-build > > error: building rtems-llvm-8.0.1-x86_64-linux-gnu-1 > > > > Looks like I need to move to a machine with newer gcc. There is a > > floor on the host environment without doing some work. I think the > > CentOS machine I use to do test builds of our tools from > > gcc/binutils/newlib master should work since it has installs of > > various newer gcc. > > > > That may take until I get home. > > You can also install “devtoolset-7” from the CentOS Software Collection Sig > (https://wiki.centos.org/SpecialInterestGroup/SCLo). I have that installed. > devtoolset-7-binutils.x86_64 2.28-11.el7 > @centos-sclo-rh > > That will give you gcc 7.3.1 and friends: > > [dufault@fubar ~]$ /opt/rh/devtoolset-7/root/bin/gcc --version > gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5) > Copyright (C) 2017 Free Software Foundation, Inc. > This is free software; see the source for copying conditions. There is NO > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > > [dufault@fubar ~]$ > > Peter > - > Peter Dufault > HD Associates, Inc. Software and System Engineering > > This email is delivered through the public internet using protocols subject > to interception and tampering. > ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel
Re: llvm on CentOS 7
> On Sep 16, 2019, at 10:36 , Joel Sherrill wrote: > > Hi > > Running log as I work through this. > > Build failed because I didn't have cmake. Double-checked and sb-check wouldn't > have reported this. Not sure we should report it missing unless we can > designate > something as "needed by some packages" or let folks know which one(s). > > Loaded cmake, then got this beauty: > > /usr/bin/cmake -Wno-dev -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=Release > -DCMAKE_INSTALL_PREFIX=/home/joel/rtems-work/tools/5 > '-DPACKAGE_VERSION=8.0.1 (RTEMS 5, RSB > 4b7af073000d612b21b9dece538d2bcc85c0c240)' > -DLLDB_CODESIGN_IDENTITY=llvm ../llvm-8.0.1 > -- Configuring incomplete, errors occurred! > CMake Error at CMakeLists.txt:3 (cmake_minimum_required): > CMake 3.4.3 or higher is required. You are running version 2.8.12.2 > > Plenty of people on the net say to download and build it but it turns > out that EPEL > has a cmake3 RPM. That's a very respectable repo (unlike Ghettoforge which > also > had it). > > yum erase cmake > yum install cmake3 > > That installed /usr/bin/cmake3 which the build doesn't know about so I > symbolically > linked /usr/bin/cmake3 to ${HOME}/bin/cmake. > > This didn't work because it checks for /usr/bin/cmake so I made that > symlink to cmake3. > > This resulted in a failure further along. > > -- Detecting CXX compile features - done > CMake Error at cmake/modules/CheckCompilerVersion.cmake:40 (message): > Host GCC version should be at least 5.1 because LLVM will soon use new C++ > features which your toolchain version doesn't support. Your version is > 4.8.5. You can temporarily opt out using > LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN, but very soon your toolchain won't be > supported. > Call Stack (most recent call first): > cmake/modules/CheckCompilerVersion.cmake:45 (check_compiler_version) > cmake/config-ix.cmake:13 (include) > CMakeLists.txt:590 (include) > > > -- Configuring incomplete, errors occurred! > See also > "/home/joel/rtems-work/rtems-source-builder/rtems/build/rtems-llvm-8.0.1-x86_64-linux-gnu-1/build/CMakeFiles/CMakeOutput.log". > shell cmd failed: /bin/sh -ex > /home/joel/rtems-work/rtems-source-builder/rtems/build/rtems-llvm-8.0.1-x86_64-linux-gnu-1/do-build > error: building rtems-llvm-8.0.1-x86_64-linux-gnu-1 > > Looks like I need to move to a machine with newer gcc. There is a > floor on the host environment without doing some work. I think the > CentOS machine I use to do test builds of our tools from > gcc/binutils/newlib master should work since it has installs of > various newer gcc. > > That may take until I get home. You can also install “devtoolset-7” from the CentOS Software Collection Sig (https://wiki.centos.org/SpecialInterestGroup/SCLo). I have that installed. devtoolset-7-binutils.x86_64 2.28-11.el7 @centos-sclo-rh That will give you gcc 7.3.1 and friends: [dufault@fubar ~]$ /opt/rh/devtoolset-7/root/bin/gcc --version gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5) Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. [dufault@fubar ~]$ Peter - Peter Dufault HD Associates, Inc. Software and System Engineering This email is delivered through the public internet using protocols subject to interception and tampering. ___ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel