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: | Han Lee via Tech-talk <tech-talk at aps.anl.gov> |
To: | "Dmitry Yu. Bolkhovityanov" <D.Yu.Bolkhovityanov at inp.nsk.su> |
Cc: | tech-talk at aps.anl.gov |
Date: | Mon, 8 May 2023 23:04:22 -0700 |
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