Skip to content

ARM Fixes, master branch (2020.11.11.)

These are updates I had to make to be able to compile the code against the aarch64-centos7-gcc9-opt LCG nightly from:

/cvmfs/sft-nightlies.cern.ch/lcg/views/devARM/

I am able to compile the code, with these changes in place, like:

[bash][techlab-arm64-thunderx2-01]:build > source /cvmfs/sft-nightlies.cern.ch/lcg/views/devARM/latest/aarch64-centos7-gcc9-opt/setup.sh 
[bash][techlab-arm64-thunderx2-01]:build > cmake -DCMAKE_BUILD_TYPE=Release -DGAUDI_USE_DOXYGEN=FALSE -DGAUDI_USE_GPERFTOOLS=FALSE ../GaudiGaudi/
-- The CXX compiler identification is GNU 9.2.0
-- Check for working CXX compiler: /cvmfs/sft.cern.ch/lcg/releases/gcc/9.2.0-6bb1e/aarch64-centos7/bin/g++
-- Check for working CXX compiler: /cvmfs/sft.cern.ch/lcg/releases/gcc/9.2.0-6bb1e/aarch64-centos7/bin/g++ - works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for C++ include pthread.h
-- Looking for C++ include pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE  
-- Found Python: /cvmfs/sft-nightlies.cern.ch/lcg/views/devARM/Wed/aarch64-centos7-gcc9-opt/bin/python3.8 (found suitable version "3.8.6", minimum required is "3.7") found components: Interpreter Development 
-- Found ROOT: /cvmfs/sft-nightlies.cern.ch/lcg/views/devARM/Wed/aarch64-centos7-gcc9-opt/cmake (found version 6.22.02)
-- Found TBB: /cvmfs/sft-nightlies.cern.ch/lcg/views/devARM/Wed/aarch64-centos7-gcc9-opt/include (found version "2020.2.11102.2") found components: tbb malloc malloc_proxy
-- Found UUID: /usr/include  
--   Import target: UUID::uuid
-- Found ZLIB: /cvmfs/sft-nightlies.cern.ch/lcg/views/devARM/Wed/aarch64-centos7-gcc9-opt/lib/libz.so (found suitable version "1.2.11", minimum required is "1.2.11") 
-- Found Rangev3: /cvmfs/sft-nightlies.cern.ch/lcg/views/devARM/Wed/aarch64-centos7-gcc9-opt/include  
--   Import target: Rangev3::rangev3
-- Found cppgsl: /cvmfs/sft-nightlies.cern.ch/lcg/views/devARM/Wed/aarch64-centos7-gcc9-opt/include  
--   Import target: cppgsl::cppgsl
-- Found nlohmann_json: /cvmfs/sft-nightlies.cern.ch/lcg/views/devARM/Wed/aarch64-centos7-gcc9-opt/lib64/cmake/nlohmann_json/nlohmann_jsonConfig.cmake (found version "3.9.1") 
-- Found AIDA: /cvmfs/sft-nightlies.cern.ch/lcg/views/devARM/Wed/aarch64-centos7-gcc9-opt/src/cpp  
--   Import target: AIDA::aida
-- Found XercesC: /cvmfs/sft-nightlies.cern.ch/lcg/views/devARM/Wed/aarch64-centos7-gcc9-opt/lib/libxerces-c.so (found version "3.2.3") 
-- Found HepPDT: /cvmfs/sft-nightlies.cern.ch/lcg/views/devARM/Wed/aarch64-centos7-gcc9-opt/include  
--   Import target: HepPDT::heppdt
-- Found CppUnit: /cvmfs/sft-nightlies.cern.ch/lcg/views/devARM/Wed/aarch64-centos7-gcc9-opt/include  
--   Import target: CppUnit::cppunit
-- Found unwind: /cvmfs/sft-nightlies.cern.ch/lcg/views/devARM/Wed/aarch64-centos7-gcc9-opt/include  
--   Import target: unwind::unwind
-- Found jemalloc: /cvmfs/sft-nightlies.cern.ch/lcg/views/devARM/Wed/aarch64-centos7-gcc9-opt/lib/libjemalloc.so  
--   Import target: jemalloc::jemalloc
-- Gaudi's required optional dependencies found:
 * AIDA
 * XercesC
 * CLHEP (required version >= 2.4.0.1)
 * HepPDT
 * CppUnit
 * unwind
 * jemalloc

-- Gaudi will be built using C++17 standard.
CMake Warning at GaudiKernel/CMakeLists.txt:31 (message):
  using internal VectorClass instrset_detect (2.01.02)


-- Using VectorClass instrset_detect 1.25 at /build/krasznaa/GaudiGaudi/GaudiKernel/src/contrib
-- GaudiProfiling: the module PerfMon profiler is disabled
-- GaudiProfiling: the module Google PerfTools profiler is disabled
-- GaudiProfiling: the module Intel VTune profiler is disabled
-- Configuring done
-- Generating done
-- Build files have been written to: /build/krasznaa/build
[bash][techlab-arm64-thunderx2-01]:build > make -j256
Scanning dependencies of target Gaudi_confuserdb
Scanning dependencies of target GaudiExamples_confuserdb
Scanning dependencies of target GaudiKernelDict-gen
Scanning dependencies of target GaudiMPDict-gen
Scanning dependencies of target GaudiPythonDict-gen
Scanning dependencies of target RootCnvDict-gen
Scanning dependencies of target GaudiExamplesDict-gen
Scanning dependencies of target makeThesis
Scanning dependencies of target PyCPUFamily
Scanning dependencies of target GaudiPluginService
Scanning dependencies of target PyExample
[  1%] Generating ConfigurableUser of GaudiExamples
[  0%] Generating GaudiKernelDict.cxx and GaudiKernelDict.rootmap and GaudiKernelDict_rdict.pcm
[  2%] Building CXX object GaudiProfiling/CMakeFiles/PyCPUFamily.dir/src/python/CPUFamily.cpp.o
[  2%] Building CXX object GaudiHive/CMakeFiles/makeThesis.dir/src/bin/makeThesis.cpp.o
[  2%] Generating RootCnvDict.cxx and RootCnvDict.rootmap and RootCnvDict_rdict.pcm
[  1%] Generating ConfigurableUser of Gaudi
[  2%] Generating GaudiExamplesDict.cxx and GaudiExamplesDict.rootmap and GaudiExamplesDict_rdict.pcm
[  2%] Generating GaudiPythonDict.cxx and GaudiPythonDict.rootmap and GaudiPythonDict_rdict.pcm
[  2%] Generating GaudiMPDict.cxx and GaudiMPDict.rootmap and GaudiMPDict_rdict.pcm
[  3%] Building CXX object GaudiExamples/CMakeFiles/PyExample.dir/src/PythonModule/Functions.cpp.o
[  3%] Building CXX object GaudiExamples/CMakeFiles/PyExample.dir/src/PythonModule/PyExample.cpp.o
...

Turning off Doxygen is necessary since that's simply not part of the devARM nightly (yet). However GPerfTools usage needs to be disabled because of:

https://sft.its.cern.ch/jira/browse/SPI-1747

Which is a bit more annoying. 😦

This is meant to fix/address ATEAM-669.

Merge request reports