Hi Mark,
Thanks for the quick reply,
Here are some more details about my build process that will help explain this error message:
1. My EPICS directory tree looks like this:
/opt/epics/
/areaDetector-2-1
/......
/base-3.14.12.4
/IOC_example1
/synApps_5_7
/support
/allenBradley-2-2
/areaDetector-1-9-1
/asyn-4-21
/.....
2. I did install hdf5 in /usr/local/hdf5 (although reported a lot of warnings during the build - type conversions etc ); the libhdf5.a is located in /usr/local/hdf5/lib. In this configuration the ‘make’ of areaDetector fails with:
…….
make -C ./nexusSrc install
make[3]: Entering directory `/opt/epics/areaDetector-2-1/ADCore/ADApp/nexusSrc'
make -C O.linux-x86_64 -f ../Makefile TOP=../../.. T_A=linux-x86_64 install
make[4]: Entering directory `/opt/epics/areaDetector-2-1/ADCore/ADApp/nexusSrc/O.linux-x86_64'
make[4]: *** No rule to make target `../../../lib/linux-x86_64/libhdf5.a', needed by `libNeXus.so'. Stop.
make[4]: Leaving directory `/opt/epics/areaDetector-2-1/ADCore/ADApp/nexusSrc/O.linux-x86_64'
make[3]: *** [install.linux-x86_64] Error 2
A similar message was reported also for libsz.a, so I made a symbolic link for the 2 libs, hoping to overcome this error:
ln -s /usr/local/hdf5/lib/libhdf5.a /opt/epics/areaDetector-2-1/ADCore/ADApp/nexusSrc/O.linux-x86_64
ln -s /usr/local/lib/libhsz.a /opt/epics/areaDetector-2-1/ADCore/ADApp/nexusSrc/O.linux-x86_64
3. Not sure if this is relevant, but in an earlier stage of the areaDetector make, I had received another error mentioning that there was a duplicate of AREA_DETECTOR macro (found in both /opt/epics/areaDetector-2-1/configure/RELEASE_PATHS.local and /opt/epics/synApps_5_7 /support/areaDetector-1-9-1/RELEASE), so I commented out the latter.
regs,
Cristi
-----Original Message-----
From: Mark Rivers [mailto:[email protected]]
Sent: Friday, March 6, 2015 6:37 PM
To: Cristian Savlovschi; [email protected]
Subject: RE: Problem with libhdf5.a when installling areaDetector-2-1
Hi Cristi,
I don't understand this error message:
/usr/bin/ld: /opt/epics/areaDetector-2-1/ADCore/lib/linux-x86_64/libhdf5.a
There should not be a libhdf5.a in that directory. libhdf5 should be in some directory outside of ADCore. It looks like in your case you are building hdf5 in /usr/local/hdf5. Where did that file in ADCore/lib/linux-x86_64 come from?
Here is the contents of the ADCore/lib/linux-x86_64/ directory on my system after a successful build of ADCore.
/home/epics/devel/areaDetector/ADCore/lib/linux-x86_64
corvette:ADCore/lib/linux-x86_64>ls -l
total 15728
-r--r--r-- 1 epics epics 1649396 Mar 5 15:36 libADBase.a -r-xr-xr-x 1 epics epics 727178 Mar 5 15:36 libADBase.so
-r--r--r-- 1 epics epics 5930442 Mar 6 09:57 libNDPlugin.a -r-xr-xr-x 1 epics epics 2518160 Mar 6 09:57 libNDPlugin.so
-r--r--r-- 1 epics epics 483936 Mar 5 15:36 libNeXus.a -r-xr-xr-x 1 epics epics 262674 Mar 5 15:36 libNeXus.so
-r--r--r-- 1 epics epics 2299174 Mar 5 15:36 libnetCDF.a -r-xr-xr-x 1 epics epics 1645681 Mar 5 15:36 libnetCDF.so
-r--r--r-- 1 epics epics 373970 Mar 5 15:40 libsimDetector.a -r-xr-xr-x 1 epics epics 194233 Mar 5 15:40 libsimDetector.so
Mark
________________________________
From: [email protected] [[email protected]] on behalf of Cristian Savlovschi [[email protected]]
Sent: Friday, March 06, 2015 6:44 AM
To: [email protected]
Subject: Problem with libhdf5.a when installling areaDetector-2-1
Hi,
I’m trying to create a demo project based on EPICS, in the following configuration:
IOC (CA server) running on UBUNTU 14.04 linux-x86_64 CA Client (CSS) running on Windows 8 I’ve installed EPICS Base 3.14.12.4 + synApps 5.7 succesfully and was able to run the IOC for DG645 delay generator and connect to the hw device.
Now I’m stuck on the next step, which is to install another IOC application, for a Point Grey Flea3 CCD camera.
The driver for this device has been added to areaDetector package starting with release 2.0 (Apr 2014). The most recent version of areaDetector in synApps (at present time - March 2015) is 1.9.1, therefore I’ve decided to update this package. I’ve downloaded it from github and tried to install it in a separate ‘TOP’ folder following the installation instructions in https://github.com/areaDetector/areaDetector/blob/master/INSTALL_GUIDE.md
After customizing all the configuration files and installing all 3rd party packages, my ‘make’ is failing with the following error message:
make[4]: Entering directory `/opt/epics/areaDetector-2-1/ADCore/ADApp/nexusSrc/O.linux-x86_64'
/usr/bin/g++ -o libNeXus.so -shared -fPIC -Wl,-hlibNeXus.so -L/opt/epics/areaDetector-2-1/ADCore/lib/linux-x86_64 -Wl,-rpath,/opt/epics/areaDetector-2-1/ADCore/lib/linux-x86_64 -m64 napi.o napi5.o napiu.o nxdataset.o nxio.o nxstack.o nxxml.o stptok.o -lhdf5 -lsz -lpthread -lreadline -lm -lrt -ldl -lgcc
/usr/bin/ld: /opt/epics/areaDetector-2-1/ADCore/lib/linux-x86_64/libhdf5.a(H5.o): relocation R_X86_64_32 against `.rodata.str1.1' can not be used when making a shared object; recompile with -fPIC
/opt/epics/areaDetector-2-1/ADCore/lib/linux-x86_64/libhdf5.a: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
I cannot get pass this point, even after trying to rebuild the HDF5 package with additional –fPIC flag:
LDFLAGS=-fPIC ./configure --prefix=/usr/local/hdf5 --with-szlib=/usr/local
Any suggestions?
Note that I’m a EPICS & Linux beginner (~1 month)..
Thanks!
Cristi S