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: Why does libca.so depend on libreadline.so? |
From: | "Dmitry Yu. Bolkhovityanov via Tech-talk" <tech-talk at aps.anl.gov> |
To: | Michael Davidsaver <mdavidsaver at gmail.com> |
Cc: | tech-talk at aps.anl.gov |
Date: | Tue, 9 May 2023 11:45:54 +0700 (+07) |
Michael, On Sun, 7 May 2023, Michael Davidsaver wrote:
On 5/6/23 23:12, Dmitry Yu. Bolkhovityanov via Tech-talk wrote:P.S. Yes, I'm aware of a "COMMANDLINE_LIBRARY=EPICS" flag (which took some time to figure out :D), but the question remains -- why any commandline editing is needed for network communication libraries at all?This is a side-effect of the convention we use to support both dynamic and static linking with one configuration. Since static libraries do not carry dependency information, when linking statically it is necessary to give a complete list of all dependent libraries when linking any executable. This includes libreadline when libCom depends on it.One simple way to avoid this over-linking in the dynamic case by passing "-Wl,--as-needed"when linking. (assumes GCC or clang on an ELF target)
Thanks for this -- I didn't know of this linker option!However, I still don't understand: why libCom depends on libreadline (or any commandline-editing library)?
With best regards, Dmitry