Anna Holin reports that there are some problems moving to SLF5 with older releases for two cases:
base release: S09-07-10-R2-00
test release pkgs: BeamMegaFit, Conventions, MCReweight, NugentInterface
/minos/app/annah1/Griffin_Production_v00 (used for official nue file production)
base release: R2.0.1
test release pkgs: Conventions, DataUtil, Mad MCCNNAnalysis, NueAna
- using the gcc 3.4.3 compiler w/ the native linker
- problems with an installation of "boost"
#1 Updated by Robert Hatcher over 9 years ago
- % Done changed from 10 to 20
on minos-slf4 one has /usr/include/boost/version.hpp ( 103200 == 1_32_0 )
minos-slf4$ rpm -a -q | grep boost
minos27$ rpm -a -q | grep boost
minos50$ rpm -a -q | grep boost # SLF5 node
install boost in relevant externals v0x?? (INSTALLATION)
same version, vs. what RPM can supply on SLF5
seems to have have boost-1_34_1 installed ... why isn't this good enough?
does a MINOS package using boost need -I added somewhere in GNUmakefile?
works on minos-slf4 due to system area?
#2 Updated by Robert Hatcher over 9 years ago
- % Done changed from 20 to 30
Re: compiler/linker mismatch
errors look like:
<**building library**> libNeugenInterface `.L1798' referenced in section `.rodata' of $testrel/tmp/Linux2.6-GCC_3_4/NeugenInterface/libNeugenInterface-shared/NeugenInterfaceCint.o: defined in discarded section `.gnu.linkonce.t._ZN10init_state9as_stringE15init_state_enum' of $testrel/tmp/Linux2.6-GCC_3_4/NeugenInterface/libNeugenInterface-shared/NeugenInterfaceCint.o
Numerous changes were made to CVS circa 2011-03-23 w/ log messages of the form:
Changes for gcc 3.4.3 used w/ ld 2.17 (vs 2.14) as found on SLF5. For this combination large-ish switch statements in inline methods (usually involving character constants) cause errors of the form: referenced in section `.rodata' myfile.o defined in discarded section during library linking stage. Moving these methods to the implementation side (i.e. non-inline) resolves the issue; any degradation due to the loss of inlining should be very minimal.
#3 Updated by Robert Hatcher over 9 years ago
setup_minos -r S09-07-10-R2-00 cd /path/to/test/release/dogwood1daikon07_final srt_setup -a
fix "boost" issue by:
cd $SRT_PRIVATE_CONTEXT/BeamMegaFit cvs update -dPA GNUmakefile
this picks up "boost" installed in $INSTALLATION (MINOS_EXTERN v03) for include + lib
fix "compiler/linker" issue by:
cd $SRT_PRIVATE_CONTEXT/NeugenInterface cvs update -dPA init_state.h init_state.cxx
will move the offending switch statement from the
.cxxwith no other changes. There are a number of other changes to this package that should probably be taken (and probably don't change behaviour) in:
GNUmakefile LinkDef.h deduce_fate.F inuke_reweight.F neugen_config.h neugen_wrapper.h neugen_wrapper.cxx. Users should review these changes in consultation with experts.
cd $SRT_PRIVATE_CONTEXT gmake
builds without errors (though a few minimal warnings). As a reminder, users should ignore all messages of the form:
/usr/bin/ld: skipping incompatible /usr/lib64/libc.so when searching for -lc /usr/bin/ld: skipping incompatible /usr/lib64/libc.a when searching for -lc
#4 Updated by Robert Hatcher over 9 years ago
setup_minos -r R2.0.1 cd /path/to/test/release/Griffin_Production_v00 srt_setup -a
all the problems are of the compiler/linker mismatch issue and can be resolved using the prescription:
cd $SRT_PRIVATE_CONTEXT addpkg CandSubShowerSR cd $SRT_PRIVATE_CONTEXT/CandSubShowerSR cvs update -dPA ClusterType.h ClusterType.cxx cd $SRT_PRIVATE_CONTEXT/NueAna/Reweight cvs update -dPA NueRW.h NueRW.cxx
One needs to add the
CandSubShowerSR package in order to pick up the change to
ClusterType used by CVS HEAD.