Hi Zen,
This is a known problem with areaDetector R1-7 on older Linux systems. It is documented in the R1-8 release notes:
- Support libraries. The static Linux support libraries provided in R1-7 were built on a Fedora Core 9 system (gcc 4.3.0) for 32-bit linux-x86, and on a Fedora Core 14 system (gcc 4.5.1) for 64-bit linux-x86_64. Problems arose when trying to build with these libraries or to run the pre-built binaries on older Linux systems, e.g. those with gcc 4.1.2. These were fixed as follows:
- The Prosilica libPvAPI.a file had been taken from the AVT gcc 4.3 directory. This was replaced with the one from the gcc 4.1 directory because the 4.3 version requires a newer version of GLIBCXX.
- The HDF5 library had been built with the default -std=c99. This caused the function isoc99_sscanf() to be called instead of sscanf(), and the former function does not exist on older Linux systems. The HDF library was rebuilt with -std=gnu89 on 32-bit and 64-bit Linux.
- libGraphicsMagic++.a on 64-bit was invoking std::_List_mode_base functions that do not exist in earlier versions of GLIBCXX. GraphicsMagick was rebuilt on an older Linux system (gcc 4.2.1) for 64-bit Linux.
- All of the prebuilt 64-bit binaries were recompiled and relinked on an older Linux system (gcc 4.2.1).
R1-8 has not been released yet, but R1-8beta1 has been released, and it fixes this problem.
Mark
-----Original Message-----
From: Szalata, Zenon M. [mailto:[email protected]]
Sent: Wednesday, February 01, 2012 12:11 PM
To: Mark Rivers; [email protected]
Subject: RE: mcaR7-0
Hi Mark,
I should have remembered that.
So now I am building area detector on RHEL6 64bit Linux and I am getting this link error:
/usr/bin/g++ -c -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -D_XOPEN_SOURCE=500 -D_X86_64_ -DUNIX -D_BSD_SOURCE -Dlinux -D_REENTRANT -g -Wall -m64 -MMD -I. -I../O.Common -I. -I.. -I../../../include/os/Linux -I../../../include -I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/asyn/R4.18/include -I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/calc/R2.9/include -I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/busy/R1.4/include -I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/sscan/R2.7/include -I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/mca/R7.0/include -I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/autosave/R4.8/include/os/Linux -I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/autosave/R4.8/include -I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/areaD/R1.7/include/os/Linux -I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/areaD/R1.7/include -I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/base/include/os/Linux -I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/base/include ../simDetectorAppMain.cpp
/usr/bin/g++ -o simDetectorApp -Wl,-Bstatic -L/afs/slac.stanford.edu/g/testfac/vol1/rhel6/epics/R3.14.12.2/modules/areaD/R1.7/lib/linux-x86_64 -L/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/base/lib/linux-x86_64 -L/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/asyn/R4.18/lib/linux-x86_64 -L/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/autosave/R4.8/lib/linux-x86_64 -L/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/busy/R1.4/lib/linux-x86_64 -L/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/calc/R2.9/lib/linux-x86_64 -L/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/mca/R7.0/lib/linux-x86_64 -L/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/sscan/R2.7/lib/linux-x86_64 -Wl,-rpath,/afs/slac.stanford.edu/g/testfac/vol1/rhel6/epics/R3.14.12.2/modules/areaD/R1.7/lib/linux-x86_64 -Wl,-rpath,/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/base/lib/linux-x86_64 -Wl,-rpath,/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/asyn/R4.18/lib/linux-x86_64 -Wl,-rpath,/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/autosave/R4.8/lib/linux-x86_64 -Wl,-rpath,/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/busy/R1.4/lib/linux-x86_64 -Wl,-rpath,/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/calc/R2.9/lib/linux-x86_64 -Wl,-rpath,/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/mca/R7.0/lib/linux-x86_64 -Wl,-rpath,/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/sscan/R2.7/lib/linux-x86_64 -m64 simDetectorApp_registerRecordDeviceDriver.o simDetectorAppMain.o -lsimDetector -lNDPlugin -lADBase -lnetCDF -lcalc -lbusy -lsscan -lautosave -lmca -lasyn -lrecIoc -lsoftDevIoc -lmiscIoc -lrsrvIoc -ldbtoolsIoc -lasIoc -ldbIoc -lregistryIoc -ldbStaticIoc -lca -lCom -lPvAPI -lGraphicsMagick++ -lGraphicsMagickWand -lGraphicsMagick -lNeXus -lhdf5 -lsz -ltiff -ljpeg -lz -Wl,-Bdynamic -lgomp -lX11 -lxml2 -lpng12 -lbz2 -lXext -lfreetype -lpthread -lreadline -lncurses -lm -lrt -ldl -lgcc
/afs/slac.stanford.edu/g/testfac/vol1/rhel6/epics/R3.14.12.2/modules/areaD/R1.7/lib/linux-x86_64/libGraphicsMagick++.a(Drawable.o): In function `std::list<Magick::Coordinate, std::allocator<Magick::Coordinate> >::_M_insert(std::_List_iterator<Magick::Coordinate>, Magick::Coordinate const&)':
Drawable.cpp:(.text._ZNSt4listIN6Magick10CoordinateESaIS1_EE9_M_insertESt14_List_iteratorIS1_ERKS1_[std::list<Magick::Coordinate, std::allocator<Magick::Coordinate> >::_M_insert(std::_List_iterator<Magick::Coordinate>, Magick::Coordinate const&)]+0x3a): undefined reference to `std::_List_node_base::_M_hook(std::_List_node_base*)'
/afs/slac.stanford.edu/g/testfac/vol1/rhel6/epics/R3.14.12.2/modules/areaD/R1.7/lib/linux-x86_64/libGraphicsMagick++.a(Drawable.o): In function `std::list<Magick::VPath, std::allocator<Magick::VPath> >::_M_insert(std::_List_iterator<Magick::VPath>, Magick::VPath const&)':
Drawable.cpp:(.text._ZNSt4listIN6Magick5VPathESaIS1_EE9_M_insertESt14_List_iteratorIS1_ERKS1_[std::list<Magick::VPath, std::allocator<Magick::VPath> >::_M_insert(std::_List_iterator<Magick::VPath>, Magick::VPath const&)]+0x3a): undefined reference to `std::_List_node_base::_M_hook(std::_List_node_base*)'
/afs/slac.stanford.edu/g/testfac/vol1/rhel6/epics/R3.14.12.2/modules/areaD/R1.7/lib/linux-x86_64/libGraphicsMagick++.a(Drawable.o): In function `std::list<Magick::PathArcArgs, std::allocator<Magick::PathArcArgs> >::_M_insert(std::_List_iterator<Magick::PathArcArgs>, Magick::PathArcArgs const&)':
Drawable.cpp:(.text._ZNSt4listIN6Magick11PathArcArgsESaIS1_EE9_M_insertESt14_List_iteratorIS1_ERKS1_[std::list<Magick::PathArcArgs, std::allocator<Magick::PathArcArgs> >::_M_insert(std::_List_iterator<Magick::PathArcArgs>, Magick::PathArcArgs const&)]+0x3a): undefined reference to `std::_List_node_base::_M_hook(std::_List_node_base*)'
/afs/slac.stanford.edu/g/testfac/vol1/rhel6/epics/R3.14.12.2/modules/areaD/R1.7/lib/linux-x86_64/libGraphicsMagick++.a(Drawable.o): In function `std::list<Magick::PathCurvetoArgs, std::allocator<Magick::PathCurvetoArgs> >::_M_insert(std::_List_iterator<Magick::PathCurvetoArgs>, Magick::PathCurvetoArgs const&)':
Drawable.cpp:(.text._ZNSt4listIN6Magick15PathCurvetoArgsESaIS1_EE9_M_insertESt14_List_iteratorIS1_ERKS1_[std::list<Magick::PathCurvetoArgs, std::allocator<Magick::PathCurvetoArgs> >::_M_insert(std::_List_iterator<Magick::PathCurvetoArgs>, Magick::PathCurvetoArgs const&)]+0x3a): undefined reference to `std::_List_node_base::_M_hook(std::_List_node_base*)'
/afs/slac.stanford.edu/g/testfac/vol1/rhel6/epics/R3.14.12.2/modules/areaD/R1.7/lib/linux-x86_64/libGraphicsMagick++.a(Drawable.o): In function `std::list<Magick::PathQuadraticCurvetoArgs, std::allocator<Magick::PathQuadraticCurvetoArgs> >::_M_insert(std::_List_iterator<Magick::PathQuadraticCurvetoArgs>, Magick::PathQuadraticCurvetoArgs const&)':
Drawable.cpp:(.text._ZNSt4listIN6Magick24PathQuadraticCurvetoArgsESaIS1_EE9_M_insertESt14_List_iteratorIS1_ERKS1_[std::list<Magick::PathQuadraticCurvetoArgs, std::allocator<Magick::PathQuadraticCurvetoArgs> >::_M_insert(std::_List_iterator<Magick::PathQuadraticCurvetoArgs>, Magick::PathQuadraticCurvetoArgs const&)]+0x3a): undefined reference to `std::_List_node_base::_M_hook(std::_List_node_base*)'
collect2: ld returned 1 exit status
make[3]: *** [simDetectorApp] Error 1
make[3]: Leaving directory `/afs/slac.stanford.edu/g/testfac/vol1/rhel6/epics/R3.14.12.2/modules/areaD/R1.7/ADApp/simDetectorSrc/O.linux-x86_64'
make[2]: *** [install.linux-x86_64] Error 2
make[2]: Leaving directory `/afs/slac.stanford.edu/g/testfac/vol1/rhel6/epics/R3.14.12.2/modules/areaD/R1.7/ADApp/simDetectorSrc'
make[1]: *** [simDetectorSrc.install] Error 2
make[1]: Leaving directory `/afs/slac.stanford.edu/g/testfac/vol1/rhel6/epics/R3.14.12.2/modules/areaD/R1.7/ADApp'
make: *** [ADApp.install] Error 2
I modified ADApp/Makefile to build only a few components. Here is my Makefile:
zms@ilc-esb09 $ less Makefile
TOP = ..
include $(TOP)/configure/CONFIG
DIRS += ADSrc
DIRS += netCDFSrc
DIRS += cbfSrc
# prosilicaSupport must be built before pluginSrc or prosilicaSrc because it installs
# header and library files needed by both
DIRS += prosilicaSupport
DIRS += tiffSupport
DIRS += hdf5Support
DIRS += nexusSrc
DIRS += pvcamSupport
DIRS += magickSupport
DIRS += pluginSrc
pluginSrc_DEPEND_DIRS = ADSrc netCDFSrc prosilicaSupport tiffSupport hdf5Support nexusSrc magickSupport
DIRS += simDetectorSrc
simDetectorSrc_DEPEND_DIRS = pluginSrc
DIRS += URLSrc
URLSrc_DEPEND_DIRS = pluginSrc
DIRS += prosilicaSrc
prosilicaSrc_DEPEND_DIRS = pluginSrc
#DIRS += pilatusSrc
#pilatusSrc_DEPEND_DIRS = pluginSrc cbfSrc
#DIRS += marCCDSrc
#marCCDSrc_DEPEND_DIRS = pluginSrc
#DIRS += mar345Src
#mar345Src_DEPEND_DIRS = pluginSrc
#DIRS += adscSrc
#adscSrc_DEPEND_DIRS = pluginSrc
#DIRS += roperSrc
#roperSrc_DEPEND_DIRS = pluginSrc
#DIRS += firewireWinSrc
#firewireWinSrc_DEPEND_DIRS = pluginSrc
#DIRS += perkinElmerSrc
#perkinElmerSrc_DEPEND_DIRS = pluginSrc
#DIRS += pvcamSrc
#pvcamSrc_DEPEND_DIRS = pluginSrc pvcamSupport
#DIRS += brukerSrc
#brukerSrc_DEPEND_DIRS = pluginSrc
#DIRS += PSLSrc
#PSLSrc_DEPEND_DIRS = pluginSrc
DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *db*))
DIRS := $(DIRS) $(filter-out $(DIRS), $(wildcard *Db*))
include $(TOP)/configure/RULES_DIRS
> -----Original Message-----
> From: Mark Rivers [mailto:[email protected]]
> Sent: Tuesday, January 31, 2012 6:41 PM
> To: Szalata, Zenon M.; [email protected]
> Subject: RE: mcaR7-0
>
>
> Hi Zen,
>
> The CanberraSrc directory in mcaApp is failing because you don't have libnet
> and libpcap installed on that system.
>
> Here are 3 choices. Any one of them should fix your problem.
>
> 1) Install libnet and libpcap. I would only recommend doing this if you want to
> use the Canberra mca modules.
>
> 2) If you are building using the top-level synApps files then in
> $(SUPPORT)/configure/CONFIG_SITE you will find these lines:
>
> #Set the following variable to YES if libnet has been installled
> #on the host Linux system for the MCA support module, otherwise,
> #set to NO.
> LINUX_NET_INSTALLED = YES
> export LINUX_NET_INSTALLED
>
> Change YES to NO and rebuild.
>
> You could also put that in mca/configure/CONFIG_SITE
>
> 3) In mcaApp/Makefile comment out the line to build CanberraSrc
>
> Cheers,
> Mark
>
>
>
>
>
> *************************************************************
> *******************************
>
> From: Szalata, Zenon M. [[email protected]]
>
> Sent: Tuesday, January 31, 2012 7:58 PM
>
> To: Mark Rivers; [email protected]
>
> Subject: mcaR7-0
>
>
>
> Hi Mark,
> I am failing miserably to build this module on RHEL6 64bit Linux.
> I get a lot of errors, but some of the first are:
>
> /usr/bin/gcc -c -D_POSIX_C_SOURCE=199506L -D_POSIX_THREADS -
> D_XOPEN_SOURCE=500 -D_X86_64_ -DUNIX -D_BSD_SOURCE -Dlinux -
> D_REENTRANT -g -Wall -DUSE_LIBNET -g `libnet-config
> --defines` -m64 -fPIC -MMD -I. -I../O.Common -I. -I.. -I../../../include/os/Linux
> -I../../../include -
> I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/calc/R2.9/include -
> I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/sscan/R2.7/include
> -I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/busy/R1.4/include -
> I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/autosave/R4.8/include/os
> /Linux -
> I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/autosave/R4.8/include -
> I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/asyn/R4.18/include
> -
> I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/mca/R7.0/include/os/Linu
> x -I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/modules/mca/R7.0/include -
> I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/base/include/os/Linux -
> I/afs/slac/g/testfac/rhel6/epics/R3.14.12.2/base/include
> ../nmc_comm_subs_1.c
> /bin/sh: libnet-config: command not found
> In file included from ../nmc_comm_subs_1.c:70:
> ../nmc_sys_defs.h:52:24: warning: libnet.h: No such file or directory
> ../nmc_sys_defs.h:53:22: warning: pcap.h: No such file or directory
> In file included from ../nmc_comm_subs_1.c:70:
> ../nmc_sys_defs.h:158: error: expected specifier-qualifier-list before 'libnet_t'
> ../nmc_sys_defs.h:188: error: expected specifier-qualifier-list before 'pcap_t'
> ../nmc_sys_defs.h:262: warning: 'struct pcap_pkthdr' declared inside
> parameter list
> ../nmc_sys_defs.h:262: warning: its scope is only this definition or declaration,
> which is probably not what you want
> ../nmc_comm_subs_1.c: In function 'nmc_initialize':
> ../nmc_comm_subs_1.c:170: error: 'PCAP_ERRBUF_SIZE' undeclared (first use
> in this function)
> ../nmc_comm_subs_1.c:170: error: (Each undeclared identifier is reported
> only once
> ../nmc_comm_subs_1.c:170: error: for each function it appears in.)
> ../nmc_comm_subs_1.c:171: error: storage size of 'bpfprog' isn't known
> ../nmc_comm_subs_1.c:172: error: 'bpf_u_int32' undeclared (first use in this
> function)
> ../nmc_comm_subs_1.c:172: error: expected ';' before 'netp'
> ../nmc_comm_subs_1.c:323: error: 'struct nmc_comm_info_struct' has no
> member named 'pcap'
> ../nmc_comm_subs_1.c:323: warning: implicit declaration of function
> 'pcap_open_live'
> ../nmc_comm_subs_1.c:327: error: 'struct nmc_comm_info_struct' has no
> member named 'pcap'
> ../nmc_comm_subs_1.c:330: error: 'pcap_if_t' undeclared (first use in this
> function)
> ../nmc_comm_subs_1.c:330: error: 'alldevs' undeclared (first use in this
> function)
> ../nmc_comm_subs_1.c:331: error: 'd' undeclared (first use in this function)
>
> Should I try an earlier version of mca?
>
> Thanks,
> Zen
>
>
>