EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: RE: Asyn 4.8 compile error with Linux GPIB
From: "Mark Rivers" <[email protected]>
To: "Jiro Fujita" <[email protected]>, "Andrew Johnson" <[email protected]>, "EPICS tech-talk" <[email protected]>
Date: Mon, 16 Jul 2007 21:27:48 -0500
I think I may see the problem.  asyn/Makefile contains the lines:
 
ifeq ($(LINUX_GPIB),YES)
SRC_DIRS += $(ASYN)/linuxGpib
asyn_SRCS_Linux += drvLinuxGpib.c
DBD += drvLinuxGpib.dbd
asyn_LIBS += gpib
endif

The line 
 
asyn_LIBS += gpib
 
tells the EPICS build system to look for libgpib.a in the EPICS directories.  This does not seem to be correct, that is a system library, not an EPICS library.  So I think that line should be
 
SYS_LIBS += gpib
 
You will also need that line when building applications that use asyn with gpib.
 
I don't have Linux GPIB so I can't test it.  Please try it and let me know if it works.
 
Note, I think that LD_LIBRARY_PATH is used only at run-time to find .so files, not when building applications, so I would not expect it to work.  
 
I don't think you have explained how libgpib.a got in the asyn tree, if it really is there.
 
Mark
 

________________________________

From: Jiro Fujita [mailto:[email protected]]
Sent: Mon 7/16/2007 8:54 PM
To: Mark Rivers; Andrew Johnson; EPICS tech-talk
Subject: Re: Asyn 4.8 compile error with Linux GPIB



Never mind...  After make clean and make, I still get the original error...
So, I guess setting  LD_LIBRARY_PATH to /usr/local/lib wasn't it after all...

On 7/16/07, Jiro Fujita <[email protected]> wrote:
> As far as I can tell, that libgpib.a got created once I put the
> LD_LIBRARY_PATH to /usr/local/lib.  I can try make clean and make
> again to see what happens.
>
>
> On 7/16/07, Mark Rivers <[email protected]> wrote:
> > > Turns out, libgpib.so is in the same directory as libgpib.la
> > > (/usr/local/lib).  So, I decided to set LD_LIBRARY_PATH to
> > > /usr/local/bin.
> >
> > So it should be looking for /usr/local/lib/libgpib.so
> >
> > > /home/sysuser/epics.3.14.9/modules/soft/asyn4-8g/lib/linux-x86/libgpib.a:
> > > file not recognized: File format not recognized
> >
> >
> > But instead it is finding
> >
> > /home/sysuser/epics.3.14.9/modules/soft/asyn4-8g/lib/linux-x86/libgpib.a
> >
> > Where did that libgpib.a file come from?  Did you perhaps create it somehow when trying things with the .la file.  Make sure that /home/sysuser/epics.3.14.9/modules/soft/asyn4-8g/lib/linux-x86/libgpib.a does not exist.
> >
> > Mark
> >
> >
> >
> >
> >
> >
> > ________________________________
> >
> > From: [email protected] on behalf of Jiro Fujita
> > Sent: Mon 7/16/2007 5:55 PM
> > To: Andrew Johnson; EPICS tech-talk
> > Subject: Re: Asyn 4.8 compile error with Linux GPIB
> >
> >
> >
> > After I saw Guy's reply, I took a look at libgpib.la, and he is
> > correct.  Turns out, libgpib.so is in the same directory as libgpib.la
> > (/usr/local/lib).  So, I decided to set LD_LIBRARY_PATH to
> > /usr/local/bin.
> > This worked as far as the problem I had: I now do get pass libgpib.a
> > issue.  However, I now get this error:
> >
> > /usr/bin/ar -rc   libasyn.a      asynManager.o
> > epicsInterruptibleSyscall.o asynGpib.o drvAsynSerialPort.o
> > drvAsynIPPort.o drvAsynIPServerPort.o asynInt32Base.o
> > asynInt32SyncIO.o asynInt32ArrayBase.o asynUInt32DigitalBase.o
> > asynUInt32DigitalSyncIO.o asynFloat64Base.o asynFloat64SyncIO.o
> > asynFloat64ArrayBase.o asynOctetBase.o asynOctetSyncIO.o
> > asynCommonSyncIO.o asynShellCommands.o asynInterposeEos.o
> > asynInterposeFlush.o devAsynOctet.o asynEpicsUtils.o devAsynInt32.o
> > devAsynInt32Array.o devAsynUInt32Digital.o devAsynFloat64.o
> > devAsynFloat64Array.o asynRecord.o drvAsyn.o vxi11core_xdr.o
> > drvVxi11.o E5810Reboot.o E2050Reboot.o TDS3000Reboot.o devCommonGpib.o
> > devSupportGpib.o boSRQonOff.o drvLinuxGpib.o
> > /usr/bin/ranlib libasyn.a
> > Installing library ../../lib/linux-x86/libasyn.a
> > /usr/bin/ranlib ../../lib/linux-x86/libasyn.a
> > /usr/bin/g++ -o libasyn.so -shared -fPIC
> > -L/home/sysuser/epics.3.14.9/modules/soft/asyn4-8g/lib/linux-x86
> > -L/home/sysuser/epics.3.14.9/base-3.14.9/lib/linux-x86/
> > -Wl,-rpath,/home/sysuser/epics.3.14.9/modules/soft/asyn4-8g/lib/linux-x86
> > -Wl,-rpath,/home/sysuser/epics.3.14.9/base-3.14.9/lib/linux-x86/
> >           asynManager.o epicsInterruptibleSyscall.o asynGpib.o
> > drvAsynSerialPort.o drvAsynIPPort.o drvAsynIPServerPort.o
> > asynInt32Base.o asynInt32SyncIO.o asynInt32ArrayBase.o
> > asynUInt32DigitalBase.o asynUInt32DigitalSyncIO.o asynFloat64Base.o
> > asynFloat64SyncIO.o asynFloat64ArrayBase.o asynOctetBase.o
> > asynOctetSyncIO.o asynCommonSyncIO.o asynShellCommands.o
> > asynInterposeEos.o asynInterposeFlush.o devAsynOctet.o
> > asynEpicsUtils.o devAsynInt32.o devAsynInt32Array.o
> > devAsynUInt32Digital.o devAsynFloat64.o devAsynFloat64Array.o
> > asynRecord.o drvAsyn.o vxi11core_xdr.o drvVxi11.o E5810Reboot.o
> > E2050Reboot.o TDS3000Reboot.o devCommonGpib.o devSupportGpib.o
> > boSRQonOff.o drvLinuxGpib.o    -lrecIoc -lsoftDevIoc -liocsh -lmiscIoc
> > -lrsrvIoc -ldbtoolsIoc -lasIoc -ldbIoc -lregistryIoc -ldbStaticIoc
> > -lca -lCom -lgpib  -lpthread   -lreadline -lcurses -lm -lrt -lgcc
> > /home/sysuser/epics.3.14.9/modules/soft/asyn4-8g/lib/linux-x86/libgpib.a:
> > file not recognized: File format not recognized
> > collect2: ld returned 1 exit status
> > make[2]: *** [libasyn.so] Error 1
> > make[2]: Leaving directory
> > `/home/sysuser/epics.3.14.9/modules/soft/asyn4-8g/asyn/O.linux-x86'
> > make[1]: *** [install.linux-x86] Error 2
> > make[1]: Leaving directory
> > `/home/sysuser/epics.3.14.9/modules/soft/asyn4-8g/asyn'
> > make: *** [asyn.install] Error 2
> >
> >
> > Any ideas??
> >
> > On 7/16/07, Andrew Johnson <[email protected]> wrote:
> > > Guy Jennings wrote:
> > > > If you look at the .la file with a text editor it should be
> > > > human-readable and
> > > > should contain a line like 'libdir=/usr/lib' which tells where libtool
> > > > thought
> > > > that the real .a (or .so) library was to be installed.
> > >
> > > Guy is correct; IIRC the .la file is actually a shell script which
> > > programs that use libtool seem to be able to use instead of a library
> > > somehow before they've been properly installed (it may be that this is
> > > only possible as a shared library).  The real libgpib.a (or maybe
> > > libgpib.so) file should be available in a hidden directory inside the
> > > same directory where the .la file is - you'll have to use 'ls -a' to
> > > find that directory though as I don't remember what the naming
> > > convention is that it uses; its name might be mentioned in the .la file
> > > itself too.
> > >
> > > - Andrew
> > >
> > > > On Jul 16, 2007, at 4:03 PM, Jiro Fujita wrote:
> > > >
> > > >> I originally installed the driver from National Instrument.  Then,
> > > >> when I realized that it appears that Asyn wants to use Linux GPIB
> > > >> package library, according to asynDriver documentation
> > > >> (http://www.aps.anl.gov/epics/modules/soft/asyn/R4-8/asynDriver.html#Linux-gpib),
> > > >>
> > > >> I downloaded linux-gpib-3.2.09, did make and make install.
> > > >> I don't see libgpib.a anywhere on my machine: not in the same
> > > >> directory as libgpib.la nor where I compiled.
> > > >> It appears that at some point, libgpib.a has gotten renamed to
> > > >> libgpib.la in Linux GPIB package library.  There has been some
> > > >> references of libgpib.a in older Linux GPIB package library (at least
> > > >> old version, I see a reference of it).
> > > >> I have not tracked down far enough to see where the reference to
> > > >> libgpib.a is made in Asyn (the assumption is that I need to change a
> > > >> few lines somewhere).
> > > >>
> > > >>
> > > >> On 7/16/07, Andrew Johnson <[email protected]> wrote:
> > > >>> Hi,
> > > >>>
> > > >>> Jiro Fujita wrote:
> > > >>> > I have been trying to compile Asyn 4-8 with Linux GPIB support.  I am
> > > >>> > using a National Instrument PCI GPIB card with EPICS Base 3.14.9 on a
> > > >>> > Scientific Linux 4.2.  The card is recognized by the system.  I have
> > > >>> > installed linux-gpib-3.2.09.
> > > >>> > When I try to compile Asyn, I get the following error:
> > > >>>
> > > >>> ...
> > > >>>
> > > >>> > I looked for libgpib.a, but I don't see it on my machine.  Instead, I
> > > >>> > find libgpib.la.  Does anybody have an idea how to fix this??
> > > >>>
> > > >>> I have no experience with your specific problem, but I do know that a
> > > >>> libXXX.la file is usually a version of a library created by an
> > > >>> application that uses GNU libtool before it is installed using 'make
> > > >>> install'.
> > > >>>
> > > >>> Did you compile the National Instruments libgpib.la program yourself?
> > > >>> If so, try doing a 'make install' in that directory which in my
> > > >>> experience will cause the appropriate libgpib.a file to be created and
> > > >>> installed in the appropriate location.  If you can't do that because you
> > > >>> don't have write access to the target directory you might need to re-run
> > > >>> the ./configure program in the GPIB build area specifying a
> > > >>> --prefix=/path/to/somewhere.
> > > >>>
> > > >>> As an alternative, you can try looking for a hidden directory in the
> > > >>> same directory as the libgpib.la file which I think will contain the
> > > >>> actual libgpib.a file that you're looking for.
> > > >>>
> > > >>> HTH,
> > > >>>
> > > >>> - Andrew
> > > >>> --
> > > >>> The right to be heard does not automatically include
> > > >>> the right to be taken seriously. -- Hubert H. Humphrey
> > > >>>
> > > >
> > >
> > >
> > > --
> > > The right to be heard does not automatically include
> > > the right to be taken seriously. -- Hubert H. Humphrey
> > >
> >
> >
> >
>




Replies:
Re: RE: Asyn 4.8 compile error with Linux GPIB Andrew Johnson
References:
Asyn 4.8 compile error with Linux GPIB Jiro Fujita
Re: Asyn 4.8 compile error with Linux GPIB Andrew Johnson
Re: Asyn 4.8 compile error with Linux GPIB Jiro Fujita
Re: Asyn 4.8 compile error with Linux GPIB Guy Jennings
Re: Asyn 4.8 compile error with Linux GPIB Andrew Johnson
Re: Asyn 4.8 compile error with Linux GPIB Jiro Fujita
RE: Asyn 4.8 compile error with Linux GPIB Mark Rivers
Re: Asyn 4.8 compile error with Linux GPIB Jiro Fujita
Re: Asyn 4.8 compile error with Linux GPIB Jiro Fujita

Navigate by Date:
Prev: Re: Asyn 4.8 compile error with Linux GPIB Jiro Fujita
Next: MEDM fonts? Heinrich du Toit
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: Re: Asyn 4.8 compile error with Linux GPIB Jiro Fujita
Next: Re: RE: Asyn 4.8 compile error with Linux GPIB Andrew Johnson
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  <20072008  2009  2010  2011  2012  2013  2014  2015  2016  2017  2018  2019  2020  2021  2022  2023  2024 
ANJ, 10 Nov 2011 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·