<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body>
    <p>Folks,</p>
    <p>This message describes a first step on a path towards using
      modern versions of the support software packages we use, as well
      as taking advantage of modern C++ features. It describes a system
      for using GCC 8 with the GlueX software stack. This is a test
      system for now, not meant for production launches.<br>
      <br>
      RedHat Enterprise Linux 7 was first released in June of 2014. The
      version of CentOS 7 that we use now is based on RHEL 7.7. It uses
      GCC 4.8.5 which was released in June of 2015. Note that the latest
      GCC is version 11.1. We have arrived at the point were
      collaborators would like to press forward with modern versions of
      some of the software tools we rely on. In particular, the latest
      Geant4 requires a compiler more advanced than GCC 4.8.5, but
      clearly if it was not Geant4, then sooner or later it would be
      another package that forces our hand.<br>
      <br>
      I have succeeded in building our standard software with GCC 8.3.1,
      including Xerces-C, CERNLIB, LAPACK, etc. The scheme uses:<br>
      <br>
      1. A Singularity container running  CentOS 7.7. Again, this is the
      distribution we have on the JLab farm.<br>
    </p>
    <p>2. Developer Toolset 8 from Software Collections. This provides
      an environment that uses GCC 8.3.1.<br>
    </p>
    <p>3. A version set that requires a more recent GCC  than is shipped
      with CentOS 7. It is $HALLD_VERSION/version_beta_1.0.xml. Versions
      have been incremented as follows:<br>
    </p>
    <ul>
      <li>LAPACK, from 3.6.0 to 3.9.0</li>
      <li>ROOT, from 6.08.06 to 6.24.0</li>
      <li>Geant4, from 10.02.p02 to 10.06.p01</li>
      <li>halld_recon: 4.27.1 to the "version_upgrade_fixes" branch of
        the markito3/halld_recon repository</li>
      <li>halld_sim: 4.31.0 to the "version_upgrade_fixes" branch of the
        markito3/halld_sim repository</li>
      <li>gluex_root_analysis: 1.18.0 to the "version_upgrade_fixes"
        branch of the markito3/gluex_root_analysis repository<br>
      </li>
    </ul>
    <p>4. A new release of Build Scripts, version 2.15. This is now
      installed at JLab.<br>
    </p>
    <p>5. A build on the group disk. This one is in
      /group/halld/Software/builds/Linux_CentOS7-x86_64-gcc8.3.1-cntr .
      It was built using the environment provided by 1, 2, 3, and 4
      above.<br>
      <br>
      For others to use this build productively, many will have to be
      able to compile their own source code against the build. I've
      written a HOWTO with instructions for accessing the build, both to
      run the code as is, or as a base for development efforts. Find it
      here:<br>
      <br>
       
<a class="moz-txt-link-freetext" href="https://halldweb.jlab.org/wiki/index.php/HOWTO_Run_Gluex_Software_with_GCC_8">https://halldweb.jlab.org/wiki/index.php/HOWTO_Run_Gluex_Software_with_GCC_8</a><br>
      <br>
      The instructions are narrowly tailored to the farm/ifarm at JLab.
      Folks familiar with the techniques will see that the raw materials
      provided can be applied on nearly any modern Linux or
      Linux-compatible system.<br>
      <br>
      In addition, for running on the OSG and the HPC centers, the
      markito3/gluex_docker_devel container has been re-built to be
      identical to the container specified in the HOWTO, just tweaked
      for the OSG environment. It is available from the
      singularity.opensciencegrid.org CVMFS share. The build itself is
      available on the oasis.opensciencegrid.org CVMFS share. <br>
      <br>
      There are other ways to accomplish the goal of GCC  > 4.8.5 and
      they are being explored as well. <br>
      <br>
      Finally, thanks to Richard Jones for initially suggesting this
      direction.<br>
    </p>
    <p>  -- Mark</p>
    <p><br>
    </p>
  </body>
</html>