1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 <2020> 2021 2022 2023 2024 2025 | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 <2020> 2021 2022 2023 2024 2025 |
<== Date ==> | <== Thread ==> |
---|
Subject: | RE: XSPRESS3 hdf5 problems |
From: | Mark Rivers via Tech-talk <tech-talk at aps.anl.gov> |
To: | 'John Dobbins' <john.dobbins at cornell.edu>, "tech-talk at aps.anl.gov" <tech-talk at aps.anl.gov> |
Date: | Mon, 27 Jan 2020 18:50:21 +0000 |
Hi John, I found and fixed the problem. The pthread and rt libraries needed to be added to PROD_SYS_LIBS. They appear to be added automatically by the EPICS build system for static
builds, but not for dynamic builds. The master branch should now work correctly for dynamic builds. Mark From: John Dobbins <john.dobbins at cornell.edu>
Mark,
John From: Mark Rivers <rivers at cars.uchicago.edu> 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>
Mark, Matt, 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 On my machine locate libpthread /usr/lib64/libpthread-2.17.so /usr/lib64/libpthread.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 Any ideas? John From: Matt Newville <newville at cars.uchicago.edu> Hi John, 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. On Thu, Jan 23, 2020 at 10:55 AM John Dobbins <john.dobbins at cornell.edu> wrote:
-- --Matt Newville |