Hi Ryu,
Ø
there in no CONFIG_SITE.linux-arm.linux-arm as you see like below list
Then you will need to add one. You can use CONFIG_SITE.linux-x86_64.linux-x86_64 as your model.
Ø
2. and below the list is the output of the command you requested.
Ø
pi@raspberrypi:~/epics/extensions/src $ ldd /usr/lib/arm-linux-gnueabihf/libX11.so
linux-vdso.so.1 (0xbe968000)
…
That looks fine. When you build it will link with that .so file, and not the .a file.
Ø
3. there is no header file of libX11 library to set X11_INC variable .
There is no include file is not called libX11.h. There should be an entire directory with X11 include files. This is what I find on my Centos 7 system.
corvette:~/devel/dante>ls /usr/include/X11
CallbackI.h Core.h HookObjI.h IntrinsicP.h RectObjP.h ShellI.h VarargsI.h XWDFile.h Xcursor Xlib.h Xos.h Xregion.h Xwindows.h extensions
Composite.h CoreP.h ICE Object.h ResConfigP.h ShellP.h Vendor.h Xalloca.h Xdefs.h XlibConf.h Xos_r.h Xresource.h Xwinsock.h fonts
CompositeP.h CreateI.h ImUtil.h ObjectP.h ResourceI.h StringDefs.h VendorP.h Xarch.h Xft Xlibint.h Xosdefs.h Xthreads.h ap_keysym.h keysym.h
ConstrainP.h DECkeysym.h InitialI.h PM SM Sunkeysym.h X.h Xatom.h Xfuncproto.h Xlocale.h Xpoll.h Xtos.h bitmaps keysymdef.h
Constraint.h EventI.h Intrinsic.h PassivGraI.h SelectionI.h ThreadsI.h XF86keysym.h Xauth.h Xfuncs.h Xmd.h Xproto.h Xutil.h cursorfont.h
ConvertI.h HPkeysym.h IntrinsicI.h RectObj.h Shell.h TranslateI.h XKBlib.h Xcms.h Xlib-xcb.h Xmu Xprotostr.h Xw32defs.h dri
You need to find the equivalent directory on your system and define X11_INC to point to it.
Mark
1. there in no CONFIG_SITE.linux-arm.linux-arm as you see like below list
pi@raspberrypi:~/epics/extensions/configure $ ls os/
CONFIG.linux-x86.linux-386 CONFIG_SITE.linux-x86.linux-athlon
CONFIG_SITE.aix-ppc.aix-ppc CONFIG_SITE.linux-x86.linux-x86
CONFIG_SITE.aix-ppc-gnu.aix-ppc-gnu CONFIG_SITE.osf-alpha.osf-alpha
CONFIG_SITE.Common.Common CONFIG_SITE.solaris-sparc64-gnu.solaris-sparc64-gnu
CONFIG_SITE.cygwin-x86.cygwin-x86 CONFIG_SITE.solaris-sparc64.solaris-sparc64
CONFIG_SITE.darwin-ppc.darwin-ppc CONFIG_SITE.solaris-sparc-debug.solaris-sparc-debug
CONFIG_SITE.darwin-ppcx86.darwin-ppcx86 CONFIG_SITE.solaris-sparc-gnu.solaris-sparc-gnu
CONFIG_SITE.darwin-x86.darwin-x86 CONFIG_SITE.solaris-sparc.solaris-sparc
CONFIG_SITE.freebsd-x86_64.freebsd-x86_64 CONFIG_SITE.solaris-sparc.solaris-sparc64
CONFIG_SITE.freebsd-x86.freebsd-x86 CONFIG_SITE.solaris-x86_64.solaris-x86_64
CONFIG_SITE.hpux-parisc-gnu.hpux-parisc-gnu CONFIG_SITE.solaris-x86-gnu.solaris-x86-gnu
CONFIG_SITE.hpux-parisc.hpux-parisc CONFIG_SITE.solaris-x86.solaris-x86
CONFIG_SITE.interix-x86.interix-x86 CONFIG_SITE.solaris-x86.solaris-x86_64
CONFIG_SITE.linux-ppc.linux-ppc CONFIG_SITE.win32-x86-cygwin.win32-x86-cygwin
CONFIG_SITE.linux-x86_64-debug.linux-x86_64-debug CONFIG_SITE.win32-x86-debug.win32-x86-debug
CONFIG_SITE.linux-x86_64.linux-x86_64 CONFIG_SITE.win32-x86-mingw.win32-x86-mingw
CONFIG_SITE.linux-x86-debug.linux-x86-debug CONFIG_SITE.win32-x86.win32-x86
2. and below the list is the output of the command you requested.
pi@raspberrypi:~/epics/extensions/src $ ldd /usr/lib/arm-linux-gnueabihf/libX11.so
linux-vdso.so.1 (0xbe968000)
/usr/lib/arm-linux-gnueabihf/libarmmem-${PLATFORM}.so => /usr/lib/arm-linux-gnueabihf/libarmmem-v7l.so (0xb6df2000)
libxcb.so.1 => /lib/arm-linux-gnueabihf/libxcb.so.1 (0xb6dad000)
libdl.so.2 => /lib/arm-linux-gnueabihf/libdl.so.2 (0xb6d9a000)
libc.so.6 => /lib/arm-linux-gnueabihf/libc.so.6 (0xb6c4c000)
/lib/ld-linux-armhf.so.3 (0xb6f29000)
libXau.so.6 => /lib/arm-linux-gnueabihf/libXau.so.6 (0xb6c39000)
libXdmcp.so.6 => /lib/arm-linux-gnueabihf/libXdmcp.so.6 (0xb6c24000)
libbsd.so.0 => /lib/arm-linux-gnueabihf/libbsd.so.0 (0xb6bfc000)
librt.so.1 => /lib/arm-linux-gnueabihf/librt.so.1 (0xb6be5000)
libpthread.so.0 => /lib/arm-linux-gnueabihf/libpthread.so.0 (0xb6bbb000)
3. there is no header file of libX11 library to set X11_INC variable .
pi@raspberrypi:~/epics/extensions/src $ locate libX11
/usr/lib/arm-linux-gnueabihf/libX11-xcb.so.1
/usr/lib/arm-linux-gnueabihf/libX11-xcb.so.1.0.0
/usr/lib/arm-linux-gnueabihf/libX11.a
/usr/lib/arm-linux-gnueabihf/libX11.so
/usr/lib/arm-linux-gnueabihf/libX11.so.6
/usr/lib/arm-linux-gnueabihf/libX11.so.6.3.0
> So I confirmed the location of libX11.a and copied this file( /usr/lib/arm-linux-gnueabihf/libX11.a ) to /home/pi/epics/base-3.15.8/lib/linux-arm/.
That is definitely not the right way to do it.
In epics/extensions/configure/os you need to edit the correct CONFIG_SITE.* file to define the location of X11. For example CONFIG_SITE.linux-x86_64.linux-x86_64 on my system contains these lines:
X11_LIB=/usr/lib64
X11_INC=/usr/include
# OpenMotif location
MOTIF_LIB=/usr/lib64
MOTIF_INC=/usr/include
You need to define the X11_LIB and X11_INC directories for your system.
But I am not sure that will fix your problem. Do you only have the static library /usr/lib/arm-linux-gnueabihf/libX11.a, or do you also have the dynamic library libX11.so? If you do have the libX11.so file, then please send the output of this command:
ldd libX11.so
Mark
________________________________
From: Huyn Woo Ryu <acoustic2000 at gmail.com>
Sent: Tuesday, April 27, 2021 7:19 PM
To: Mark Rivers
Cc: tech-talk at aps.anl.gov
Subject: Re: how to install alh on raspberry pi 4
Hi, Mark
Thank you for your reply
Before this error occurred, I had the below error.
make -C O.linux-arm -f ../Makefile TOP=../../.. \
T_A=linux-arm install
make[1]: Entering directory '/home/pi/epics/extensions/src/alh1_2_35/O.linux-arm'
make[1]: *** No rule to make target '../../../lib/linux-arm/libX11.a', needed by 'alh'. Stop.
make[1]: Leaving directory '/home/pi/epics/extensions/src/alh1_2_35/O.linux-arm'
make: *** [../../../base/configure/RULES_ARCHS:58: install.linux-arm] Error 2
So I confirmed the location of libX11.a and copied this file( /usr/lib/arm-linux-gnueabihf/libX11.a ) to /home/pi/epics/base-3.15.8/lib/linux-arm/.
pi@raspberrypi:~/epics/extensions/src/alh1_2_35 $ locate libX11.a
/usr/lib/arm-linux-gnueabihf/libX11.a
On Tue, Apr 27, 2021 at 8:42 PM Mark Rivers <rivers at cars.uchicago.edu<mailto:rivers at cars.uchicago.edu>> wrote:
Hi Ryu,
I have not worked with linux-arm, so I may be off base.
Error messages like this:
/usr/bin/ld: /home/pi/epics/base-3.15.8/lib/linux-arm/libX11.a(CrGlCur.o): undefined reference to symbol 'dlopen@@GLIBC_2.4'
often mean that the version of gcc (which supplies GLBIC) is older than the version required by a library you are using.
Where did you get this file? /home/pi/epics/base-3.15.8/lib/linux-arm/libX11.a
That seems like an unusual location for the X11 library file.
Mark
From: Tech-talk <tech-talk-bounces at aps.anl.gov<mailto:tech-talk-bounces at aps.anl.gov>> on behalf of Huyn Woo Ryu via Tech-talk
<tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov>>
Sent: Tuesday, April 27, 2021 4:51 AM
To: tech-talk at aps.anl.gov<mailto:tech-talk at aps.anl.gov>
Subject: how to install alh on raspberry pi 4
Hi,I installed base-3.15.8 successfully on raspberry piBut when I install 'alh1_2_35' on raspberry pi OS(kernel version 5.10) on raspberry pi 4, it can't make successfully, the err as follows:
/usr/bin/ld: /home/pi/epics/base-3.15.8/lib/linux-arm/libX11.a(CrGlCur.o): undefined reference to symbol 'dlopen@@GLIBC_2.4'
/usr/bin/ld: //lib/arm-linux-gnueabihf/libdl.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make[1]: *** [../../../../base/configure/RULES_BUILD:204: alh] Error 1
make[1]: Leaving directory '/home/pi/epics/extensions/src/alh1_2_35/O.linux-arm'
make: *** [../../../base/configure/RULES_ARCHS:58: install.linux-arm] Error 2 I don't know how to fix it, could you give me some advice on it?Please, Help me! I consumed many time for this problem.Ryu