Error Building HDDM Python Module

Gcc command generated on branch different than command on master. Branch is “recon-2017_01-ver02-sim”.

branch:

running

python .Linux_CentOS7-x86_64-gcc4.8.5-cntr/libraries/HDDM/setup_hddm_mc_s.py build -b build_hddm_mc_s

generates

gcc -pthread -fno-strict-aliasing -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 \
-fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 \
-grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -DNDEBUG \
-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong \
--param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE \
-fPIC -fwrapv -fPIC \
-I/group/halld/Software/builds/Linux_CentOS7-x86_64-gcc4.8.5-cntr/sim-recon/sim-recon-recon-2017_01-ver02-sim_ver02/Linux_CentOS7-x86_64-gcc4.8.5-cntr/include \
-I/group/halld/Software/builds/Linux_CentOS7-x86_64-gcc4.8.5-cntr/sim-recon/sim-recon-recon-2017_01-ver02-sim_ver02/src/libraries/include \
-I/group/halld/Software/builds/Linux_CentOS7-x86_64-gcc4.8.5-cntr/sim-recon/sim-recon-recon-2017_01-ver02-sim_ver02/src/.Linux_CentOS7-x86_64-gcc4.8.5-cntr/libraries/HDDM \
-I/usr/include/python2.7 -c pyhddm_mc_s.cxx -o build_hddm_mc_s/temp.linux-x86_64-2.7/pyhddm_mc_s.o -std=c++11

master:

running

python .Linux_RHEL7-x86_64-gcc4.8.5/libraries/HDDM/setup_hddm_mc_s.py build -b build_hddm_mc_s

generates

gcc -pthread -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall \
-Wstrict-prototypes -fPIC \
-I/u/scratch/gluex/nightly/2018-04-23/Linux_RHEL7-x86_64-gcc4.8.5/sim-recon/Linux_RHEL7-x86_64-gcc4.8.5/include \
-I/u/scratch/gluex/nightly/2018-04-23/Linux_RHEL7-x86_64-gcc4.8.5/sim-recon/src/libraries/include \
-I/u/scratch/gluex/nightly/2018-04-23/Linux_RHEL7-x86_64-gcc4.8.5/sim-recon/src/.Linux_RHEL7-x86_64-gcc4.8.5/libraries/HDDM \
-I/apps/python/2.7.12/include/python2.7 -c pyhddm_mc_s.cxx \
<span id="mce_SELREST_start" style="overflow:hidden;line-height:0;"></span>-o build_hddm_mc_s/temp.linux-x86_64-2.7/pyhddm_mc_s.o -std=c++11
Advertisements

Sqlite version requirement imposed by SQLiteCpp

Users on RedHat Enterprise Linux 6 or CentOS 6 will now have to use a private version of SQLite. The version shipped with the distribution is too old. Some options:

Option 1: Environment variable based.

1) Build SQLite.
2) set the SQLITE_HOME environment variable.

Option 2: OS based.

Have flags for Redhat6 everywhere.

1) modify your version.xml to have a version of sqlite defined
2) do your build

Option 3: make sqlite a required library

1) when version.xml is updated, make sure sqlite is present in your community build
2) opt out by using version=”distribution”

The Error

This is the error that you get when trying to build SQLiteCpp with a version 3.6 era sqlite library:

[ 14%] Building CXX object CMakeFiles/SQLiteCpp.dir/src/Backup.cpp.o
/u/scratch/marki/sqlt2/SQLiteCpp-2.2.0/src/Backup.cpp: In member function 'int SQLite::Backup::executeStep(int)':
/u/scratch/marki/sqlt2/SQLiteCpp-2.2.0/src/Backup.cpp:87:51: error: 'sqlite3_errstr' was not declared in this scope
throw SQLite::Exception(sqlite3_errstr(res), res);
^
make[3]: *** [CMakeFiles/SQLiteCpp.dir/src/Backup.cpp.o] Error 1

 

GlueX Singularity Container Notes

OSG experience

  • Ran with Richard’s osg-container.sh
  • Invoked using Thomas’s MCwrapper
  • Jobs fail for lack of RCDB access

Singularity work

  • singularity ext3 gluex image
    • start from Docker, centos:latest
    • initial build into “sandbox” (standard directory tree)
    • do package additions via build_scripts
    • convert from sandbox to ext3
    • container size: 1.1 GB
  • complete build of gluex stack using container, but external to container
    • built with version_2.26.xml (most recent is 2.27)
    • starts at 28 GB
    • after trimming: 8.4 GB with everything (below, sizes in kB)
      • 4914204 sim-recon
      • 1613104 geant4
      • 1146088 root
      • 383184 hdgeant4
      • 189660 jana
      • 152736 cernlib
      • 105552 lapack
      • 65732 ccdb
      • 58660 xerces-c
      • 58376 rcdb
      • 10268 sqlitecpp
      • 6988 hdds
      • 4344 evio
      • 3460 amptools
      • 2924 gluex_root_analysis
      • 1728 hd_utilities
      • 428 build_scripts-latest
      • 48 latest.tar.gz
      • 4 version.xml
      • 4 setup.sh
      • 4 setup.csh
      • 0 build_scripts
  • questions:
    • how to put on oasis?
      • proposal: use build_scripts directory structure
    • will it run in existing container?
      • likely yes
    • what to do about CCDB, RCDB, resources?
      • proposal: reproduce /group/halld directory structure
        • can update in an rsync-like manner