Experimental Physics and
| |||||||||||||||
|
All of the recent talk about readline support for the IOC shell has pointed out the apparent reason why my IOC doesn't have the customary commandline editing and history for my ARM CPU IOC. As I explored the setup, I saw that readline was not being used, and so I set about to get it installed. On a Linux-x86 build host, using the cross-compiler I use for building EPICS, I built both the readline & curses libraries, and installed those in a suitable location on the build host. To the file base/configure/os/CONFIG_SITE.linux-x86.linux-arm_el, I added: COMMANDLINE_LIBRARY = READLINE LDLIBS_READLINE = -lreadline -lcurses USR_LDFLAGS += -L $(GNU_DIR)/lib $(GNU_DIR) points to the base of my cross compiler, and the readline & curses libs are installed there. When I then try to build the ARM IOC, the buuld fails with: /usr1/local/aux/CrossDevel/arm-rn100707ctng170-linux-gnu/bin/arm-rn100707ctng170-linux-gnu-g++ -o softIoc-L/usr1/local/epics/release/R3.14.10/base-arm/lib/linux-arm_el -Wl,-rpath,/usr1/local/epics/release/R3.14.10/base-arm/lib/linux-arm_el -Wl,-rpath-link,/usr1/local/epics/release/R3.14.10/base-arm/lib/linux-arm_el -L /usr1/local/aux/CrossDevel/arm-rn100707ctng170-linux-gnu/lib -L/usr1/local/aux/CrossDevel/arm-rn100707ctng170-linux-gnu/arm-rn100707ctng170-linux-gnu/lib softIoc_registerRecordDeviceDriver.o softMain.o -lrecIoc -lsoftDevIoc -lmiscIoc -lrsrvIoc -ldbtoolsIoc -lasIoc -ldbIoc -lregistryIoc -ldbStaticIoc -lca -lCom ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ NOTE: No -lreadline &/or -lcurses > /usr1/local/aux/CrossDevel/arm-rn100707ctng170-linux-gnu/bin/../lib/gcc/arm-rn100707ctng170-linux-gnu/4.2.1/../../../../arm-rn100707ctng170-linux-gnu/bin/ld: warning: libreadline.so.6, needed by /usr1/local/epics/release/R3.14.10/base-arm/lib/linux-arm_el/librecIoc.so, not found (try using -rpath or -rpath-link) /usr1/local/epics/release/R3.14.10/base-arm/lib/linux-arm_el/libCom.so: undefined reference to `stifle_history' /usr1/local/epics/release/R3.14.10/base-arm/lib/linux-arm_el/libCom.so: undefined reference to `readline' /usr1/local/epics/release/R3.14.10/base-arm/lib/linux-arm_el/libCom.so: undefined reference to `rl_insert' /usr1/local/epics/release/R3.14.10/base-arm/lib/linux-arm_el/libCom.so: undefined reference to `add_history' /usr1/local/epics/release/R3.14.10/base-arm/lib/linux-arm_el/libCom.so: undefined reference to `rl_bind_key' collect2: ld returned 1 exit status Using 'nm' I see that the undefined references would be satisfied by libreadline.so. So the build isn't trying to link the readline or curses libraries. How do I make it do so? Will that be enough to get full commandline editing working in my IOC? Thanks. Rod Nussbaumer ISAC Controls, TRIUMF Vancouver, Canada
| ||||||||||||||
ANJ, 31 Oct 2010 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |