1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 <2025> | Index | 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 <2025> |
<== Date ==> | <== Thread ==> |
---|
Subject: | Re: EPICS INSTALL_LOCATION/FINAL_LOCATION doesn't work? |
From: | Han Lee via Tech-talk <tech-talk at aps.anl.gov> |
To: | "Muir, John Lewis" <jlmuir at imca-cat.org> |
Cc: | EPICS Tech-Talk <tech-talk at aps.anl.gov> |
Date: | Tue, 21 Jan 2025 11:40:51 -0800 |
Hi Lewis,
I think your recipe needs to be something like I’ve shown below, which (after experimentation and carefully reading the Release Notes) works for me on a RHEL-8 system. I suspect this doesn’t need LD_LIBRARY_PATH to be set at all though. The PYTHON=python3 setting is only necessary for RHEL-8 and above — EPICS builds only need python when you set LINKER_USE_RPATH=ORIGIN. I am planning to replace the Python script with Perl though (thanks Argo!).
cswdev02% cat /etc/redhat-release
Red Hat Enterprise Linux release 8.9 (Ootpa)
cswdev02% mkdir /tmp/45
cswdev02% cd /tmp/45
cswdev02% mkdir distfiles opt src work
cswdev02% cd distfiles
cswdev02% curl -OL https://epics.anl.gov/download/base/base-7.0.8.1.tar.gz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 3059k 100 3059k 0 0 4941k 0 --:--:-- --:--:-- --:--:-- 4941k
cswdev02% cd ../src
cswdev02% tar xzf ../distfiles/base-7.0.8.1.tar.gz
cswdev02% cd base-7.0.8.1
cswdev02% cat > configure/CONFIG_SITE.local
INSTALL_LOCATION=/tmp/45/work
FINAL_LOCATION=/tmp/45/opt/epics-7.0.8.1
LINKER_USE_RPATH=ORIGIN
LINKER_ORIGIN_ROOT=/tmp/45
export LD_LIBRARY_PATH=$(INSTALL_LOCATION)/lib/$(EPICS_HOST_ARCH)
PYTHON=python3
^D
cswdev02% setenv EPICS_HOST_ARCH linux-x86_64
cswdev02% make -sj
...
cswdev02% cd /tmp/45
cswdev02% ldd work/bin/linux-x86_64/caget
linux-vdso.so.1 (0x00007ffcbc3dd000)
libca.so.4.14.4 => /tmp/45/work/bin/linux-x86_64/../../lib/linux-x86_64/libca.so.4.14.4 (0x00007f31e0ced000)
libCom.so.3.23.1 => /tmp/45/work/bin/linux-x86_64/../../lib/linux-x86_64/libCom.so.3.23.1 (0x00007f31e0a6f000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f31e06da000)
libm.so.6 => /lib64/libm.so.6 (0x00007f31e0358000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f31e0140000)
libc.so.6 => /lib64/libc.so.6 (0x00007f31dfd7b000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f31dfb5b000)
libreadline.so.7 => /lib64/libreadline.so.7 (0x00007f31df90c000)
librt.so.1 => /lib64/librt.so.1 (0x00007f31df704000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f31df500000)
/lib64/ld-linux-x86-64.so.2 (0x00007f31e0f53000)
libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007f31df2d3000)
cswdev02% mv work opt/epics-7.0.8.1
cswdev02% ldd opt/epics-7.0.8.1/bin/linux-x86_64/caget
linux-vdso.so.1 (0x00007fff2212b000)
libca.so.4.14.4 => /tmp/45/opt/epics-7.0.8.1/bin/linux-x86_64/../../lib/linux-x86_64/libca.so.4.14.4 (0x00007f30c97b6000)
libCom.so.3.23.1 => /tmp/45/opt/epics-7.0.8.1/bin/linux-x86_64/../../lib/linux-x86_64/libCom.so.3.23.1 (0x00007f30c9538000)
libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f30c91a3000)
libm.so.6 => /lib64/libm.so.6 (0x00007f30c8e21000)
libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x00007f30c8c09000)
libc.so.6 => /lib64/libc.so.6 (0x00007f30c8844000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f30c8624000)
libreadline.so.7 => /lib64/libreadline.so.7 (0x00007f30c83d5000)
librt.so.1 => /lib64/librt.so.1 (0x00007f30c81cd000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f30c7fc9000)
/lib64/ld-linux-x86-64.so.2 (0x00007f30c9a1c000)
libtinfo.so.6 => /lib64/libtinfo.so.6 (0x00007f30c7d9c000)
One thing I haven’t tried is to move $(FINAL_LOCATION) outside of $(LINKER_ORIGIN_ROOT), but I don’t think that should be a problem.
- Andrew
--
Complexity comes for free, Simplicity you have to work for.