Mark,
Thanks, adding STATIC_BUILD=YES to xspress3/iocs/xspress3IOC/xspress3App/src/Makefile works.
John
From: Mark Rivers <rivers at cars.uchicago.edu>
Sent: Monday, January 27, 2020 12:18 PM
To: John Dobbins <john.dobbins at cornell.edu>; tech-talk at aps.anl.gov <tech-talk at aps.anl.gov>
Cc: Matt Newville <newville at cars.uchicago.edu>
Subject: RE: XSPRESS3 hdf5 problems
Hi John,
This is what I get when I build with gcc 4.8.5 on a Centos 7 system with base 7.0.3.1. It works when I build statically (STATIC_BUILD=YES).
/usr/bin/g++ -o xspress3App -Wl,-Bstatic -L/home/epics/devel/xspress3-2-2/lib/linux-x86_64 -L/home/epics/devel/xspress3-2-2/iocs/xspress3IOC/lib/linux-x86_64 -L/home/epics/devel/areaDetector-3-8/ADCore/lib/linux-x86_64
-L/home/epics/devel/areaDetector-3-8/ADSupport/lib/linux-x86_64 -L/home/epics/devel/asyn-4-37/lib/linux-x86_64 -L/home/epics/devel/autosave-5-10/lib/linux-x86_64 -L/home/epics/devel/busy-1-7-2/lib/linux-x86_64 -L/home/epics/devel/calc-3-7-3/lib/linux-x86_64
-L/home/epics/devel/devIocStats-3-1-16/lib/linux-x86_64 -L/home/epics/devel/seq-2-2-5/lib/linux-x86_64 -L/home/epics/devel/sscan-2-11-3/lib/linux-x86_64 -L/usr/local/epics-devel/base-7.0.3.1/lib/linux-x86_64 -Wl,-rpath,/home/epics/devel/xspress3-2-2/lib/linux-x86_64
-Wl,-rpath,/home/epics/devel/xspress3-2-2/iocs/xspress3IOC/lib/linux-x86_64 -Wl,-rpath,/home/epics/devel/areaDetector-3-8/ADCore/lib/linux-x86_64 -Wl,-rpath,/home/epics/devel/areaDetector-3-8/ADSupport/lib/linux-x86_64 -Wl,-rpath,/home/epics/devel/asyn-4-37/lib/linux-x86_64
-Wl,-rpath,/home/epics/devel/autosave-5-10/lib/linux-x86_64 -Wl,-rpath,/home/epics/devel/busy-1-7-2/lib/linux-x86_64 -Wl,-rpath,/home/epics/devel/calc-3-7-3/lib/linux-x86_64 -Wl,-rpath,/home/epics/devel/devIocStats-3-1-16/lib/linux-x86_64 -Wl,-rpath,/home/epics/devel/seq-2-2-5/lib/linux-x86_64
-Wl,-rpath,/home/epics/devel/sscan-2-11-3/lib/linux-x86_64 -Wl,-rpath,/usr/local/epics-devel/base-7.0.3.1/lib/linux-x86_64 -rdynamic -m64 xspress3App_registerRecordDeviceDriver.o xspress3AppMain.o -lxspress3Epics -lxspress3 -limg_mod -lNDPlugin
-lADBase -lqsrv -lntndArrayConverter -lnt -lpvDatabase -lpvAccessIOC -lpvAccessCA -lpvAccess -lpvData -lnetCDF -lMagick++ -lcoders -lMagick -ljbig -ljp2 -lbzlib -lpng -lwebp -llcms -lttf -lwmf -lfilters -ltiff -lxml2 -lNeXus -lhdf5 -lhdf5_hl -lbitshuffle -lblosc
-lszip -lzlib -ljpeg -lasyn -lautosave -lbusy -lcalc -ldevIocStats -lsscan -lseq -lpv -ldbRecStd -ldbCore -lca -lCom -Wl,-Bdynamic -lboost_system -lX11 -lXext -lpthread -lreadline -lm -lrt -ldl –lgcc
If I edit xspress3/iocs/xspress3IOC/xspress3App/src/Makefile to have STATIC_BUILD=NO it fails the same as you:
/usr/bin/g++ -o xspress3App -L/home/epics/devel/xspress3-2-2/lib/linux-x86_64 -L/home/epics/devel/xspress3-2-2/iocs/xspress3IOC/lib/linux-x86_64 -L/home/epics/devel/areaDetector-3-8/ADCore/lib/linux-x86_64
-L/home/epics/devel/areaDetector-3-8/ADSupport/lib/linux-x86_64 -L/home/epics/devel/asyn-4-37/lib/linux-x86_64 -L/home/epics/devel/autosave-5-10/lib/linux-x86_64 -L/home/epics/devel/busy-1-7-2/lib/linux-x86_64 -L/home/epics/devel/calc-3-7-3/lib/linux-x86_64
-L/home/epics/devel/devIocStats-3-1-16/lib/linux-x86_64 -L/home/epics/devel/seq-2-2-5/lib/linux-x86_64 -L/home/epics/devel/sscan-2-11-3/lib/linux-x86_64 -L/usr/local/epics-devel/base-7.0.3.1/lib/linux-x86_64 -Wl,-rpath,/home/epics/devel/xspress3-2-2/lib/linux-x86_64
-Wl,-rpath,/home/epics/devel/xspress3-2-2/iocs/xspress3IOC/lib/linux-x86_64 -Wl,-rpath,/home/epics/devel/areaDetector-3-8/ADCore/lib/linux-x86_64 -Wl,-rpath,/home/epics/devel/areaDetector-3-8/ADSupport/lib/linux-x86_64 -Wl,-rpath,/home/epics/devel/asyn-4-37/lib/linux-x86_64
-Wl,-rpath,/home/epics/devel/autosave-5-10/lib/linux-x86_64 -Wl,-rpath,/home/epics/devel/busy-1-7-2/lib/linux-x86_64 -Wl,-rpath,/home/epics/devel/calc-3-7-3/lib/linux-x86_64 -Wl,-rpath,/home/epics/devel/devIocStats-3-1-16/lib/linux-x86_64 -Wl,-rpath,/home/epics/devel/seq-2-2-5/lib/linux-x86_64
-Wl,-rpath,/home/epics/devel/sscan-2-11-3/lib/linux-x86_64 -Wl,-rpath,/usr/local/epics-devel/base-7.0.3.1/lib/linux-x86_64 -rdynamic -m64 xspress3App_registerRecordDeviceDriver.o xspress3AppMain.o -lxspress3Epics -lxspress3 -limg_mod -lNDPlugin
-lADBase -lqsrv -lntndArrayConverter -lnt -lpvDatabase -lpvAccessIOC -lpvAccessCA -lpvAccess -lpvData -lnetCDF -lMagick++ -lcoders -lMagick -ljbig -ljp2 -lbzlib -lpng -lwebp -llcms -lttf -lwmf -lfilters -ltiff -lxml2 -lNeXus -lhdf5 -lhdf5_hl -lbitshuffle -lblosc
-lszip -lzlib -ljpeg -lasyn -lautosave -lbusy -lcalc -ldevIocStats -lsscan -lseq -lpv -ldbRecStd -ldbCore -lca -lCom -lboost_system -lX11 -lXext
/bin/ld: /home/epics/devel/xspress3-2-2/lib/linux-x86_64/libxspress3.a(xspress3_histogram.o): undefined reference to symbol 'pthread_cancel@@GLIBC_2.2.5'
//lib64/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[1]: *** [xspress3App] Error 1
make[1]: Leaving directory `/home/epics/devel/xspress3-2-2/iocs/xspress3IOC/xspress3App/src/O.linux-x86_64'
make: *** [install.linux-x86_64] Error 2
We have not noticed the problem because we normally build statically. I will investigate.
Meanwhile, you can probably work around the problem by adding STATIC_BUILD=YES to xspress3/iocs/xspress3IOC/xspress3App/src/Makefile.
Mark
From: John Dobbins <john.dobbins at cornell.edu>
Sent: Monday, January 27, 2020 10:45 AM
To: tech-talk at aps.anl.gov
Cc: Mark Rivers <rivers at cars.uchicago.edu>; Matt Newville <newville at cars.uchicago.edu>
Subject: Re: XSPRESS3 hdf5 problems
I am attempting to build epics-modules/xspress3 (latest master).
On CentOS Linux release 7.5.1804, I have built base 3.15.7, areaDetector R3-7.
If BUILD_IOCS = NO then Xspress3 build succeeds but with BUILD_IOCS=YES I get
/usr/bin/g++ -o xspress3App -L/home/xspress3/epics/synApps_6_1/support/xspress/lib/linux-x86_64 -L/home/xspress3/epics/synApps_6_1/support/xspress/iocs/xspress3IOC/lib/linux-x86_64 -L/home/xspress3/epics/base-3.15.7/lib/linux-x86_64
-L/home/xspress3/epics/synApps_6_1/support/areaDetector-R3-7/ADCore/lib/linux-x86_64 -L/home/xspress3/epics/synApps_6_1/support/areaDetector-R3-7/ADSupport/lib/linux-x86_64 -L/home/xspress3/epics/synApps_6_1/support/asyn-R4-36/lib/linux-x86_64 -L/home/xspress3/epics/synApps_6_1/support/autosave-R5-10/lib/linux-x86_64
-L/home/xspress3/epics/synApps_6_1/support/busy-R1-7-2/lib/linux-x86_64 -L/home/xspress3/epics/synApps_6_1/support/calc-R3-7-3/lib/linux-x86_64 -L/home/xspress3/epics/synApps_6_1/support/iocStats-3-1-16/lib/linux-x86_64 -L/home/xspress3/epics/synApps_6_1/support/seq-2-2-6/lib/linux-x86_64
-L/home/xspress3/epics/synApps_6_1/support/sscan-R2-11-3/lib/linux-x86_64 -Wl,-rpath,/home/xspress3/epics/synApps_6_1/support/xspress/lib/linux-x86_64 -Wl,-rpath,/home/xspress3/epics/synApps_6_1/support/xspress/iocs/xspress3IOC/lib/linux-x86_64 -Wl,-rpath,/home/xspress3/epics/base-3.15.7/lib/linux-x86_64
-Wl,-rpath,/home/xspress3/epics/synApps_6_1/support/areaDetector-R3-7/ADCore/lib/linux-x86_64 -Wl,-rpath,/home/xspress3/epics/synApps_6_1/support/areaDetector-R3-7/ADSupport/lib/linux-x86_64 -Wl,-rpath,/home/xspress3/epics/synApps_6_1/support/asyn-R4-36/lib/linux-x86_64
-Wl,-rpath,/home/xspress3/epics/synApps_6_1/support/autosave-R5-10/lib/linux-x86_64 -Wl,-rpath,/home/xspress3/epics/synApps_6_1/support/busy-R1-7-2/lib/linux-x86_64 -Wl,-rpath,/home/xspress3/epics/synApps_6_1/support/calc-R3-7-3/lib/linux-x86_64 -Wl,-rpath,/home/xspress3/epics/synApps_6_1/support/iocStats-3-1-16/lib/linux-x86_64
-Wl,-rpath,/home/xspress3/epics/synApps_6_1/support/seq-2-2-6/lib/linux-x86_64 -Wl,-rpath,/home/xspress3/epics/synApps_6_1/support/sscan-R2-11-3/lib/linux-x86_64 -rdynamic -m64 xspress3App_registerRecordDeviceDriver.o xspress3AppMain.o
-lxspress3Epics -lxspress3 -limg_mod -lNDPlugin -lADBase -lnetCDF -lMagick++ -lcoders -lMagick -ljbig -ljp2 -lbzlib -lpng -lwebp -llcms -lttf -lwmf -lfilters -ltiff -lxml2 -lNeXus -lhdf5 -lhdf5_hl -lbitshuffle -lblosc -lszip -lzlib -ljpeg -lasyn -lautosave
-lbusy -lcalc -ldevIocStats -lsscan -lseq -lpv -ldbRecStd -ldbCore -lca -lCom -lX11 -lXext
/usr/bin/ld: /home/xspress3/epics/synApps_6_1/support/xspress/lib/linux-x86_64/libxspress3.a(xspress3_histogram.o): undefined reference to symbol 'pthread_cancel@@GLIBC_2.2.5'
//usr/lib64/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
locate libpthread
/usr/lib64/libpthread-2.17.so
/usr/lib64/libpthread.so.0
/usr/lib64/libpthread_nonshared.a
readelf -s /lib64/libpthread.so.0 | grep pthread_cancel
200: 000000000000cae0 167 FUNC GLOBAL DEFAULT 13 pthread_cancel@@GLIBC_2.2.5
233: 0000000000000000 0 FILE LOCAL DEFAULT ABS pthread_cancel.c
485: 00000000000111b4 12 OBJECT LOCAL DEFAULT 16 _thread_db_pthread_cancel
508: 000000000000fe30 260 FUNC LOCAL DEFAULT 13 pthread_cancel_init
949: 000000000000cae0 167 FUNC GLOBAL DEFAULT 13 pthread_cancel
gcc 4.8.5
Just to follow up: I don't recall ever seeing that error from HDF5 with epics-modules/xspress3. I believe there were some known problems with HDF5 that were fixed around AD 2, but I don't recall the details.
Thanks. I'll give that a try.
Hi John,
Ø
I have contacted Quantum. I thought that while waiting to hear from them it would make sense to build an IOC from source. On github I see
Ø
epics-modules/xspress3
The IOC that Quantum distributes is ancient, using areaDetector R1-9-1.
That is the one I recommend you use. Matt Newville in our group here at the APS is maintaining it. It is working with the latest version of ADCore, ADSupport, etc.
It uses NDPluginROIStat for ROI statistics.
There are new OPI screens.
Mark
I have a new 5 channel Quantum Xspress3 data readout unit which when taking multiple frames will start generating hdf5 related error messages at what seems like random (will acquire between a few or
thousands of frames before generating errors). Once these messages start they seem to continue until the IOC segfaults.
repeating pair of error messages on the IOC console:
HDF5-DIAG: Error detected in HDF5 (1.8.12) thread 0:
#000: ../../src/H5Dio.c line 231 in H5Dwrite(): can't prepare for writing data
#001: ../../src/H5Dio.c line 348 in H5D__pre_write(): file selection+offset not within extent
This IOC is a binary that comes with the detector.
I have contacted Quantum. I thought that while waiting to hear from them it would make sense to build an IOC from source. On github I see
quantumdetectors/xspress3-epics forked from the above.
Any advice on which i should go with? Any suspicions regarding the hdf5 errors?
Research Support Specialist
Cornell High Energy Synchrotron Source
--
|