[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] tools: link executables with libtinfo explicitly



On Sat, May 30, 2015 at 12:07:28AM +0200, Daniel Kiper wrote:
> binutils 2.22 changed ld default from --copy-dt-needed-entries
> to -no-copy-dt-needed-entries. This revealed that some objects
> are linked implicitly with libtinfo and newer ld fails to build
> relevant executables.
> 
> Below is short explanation why we should not do that...
> 
> http://fedoraproject.org/wiki/UnderstandingDSOLinkChange says:
> 
> The default behaviour for ld (my note: before version 2.22) allows
> users to 'indirectly' link to required objects/libraries through
> intermediate objects/libraries. While this is convenient, it can
> also be dangerous because it makes your program's dependencies tied
> to the dependencies of other objects. If those objects ever change
> their linkages, they can break your program without any changes
> to your own code!
> 
> Signed-off-by: Daniel Kiper <daniel.kiper@xxxxxxxxxx>
> ---
>  config/Tools.mk.in            |    1 +
>  tools/configure               |   46 
> +++++++++++++++++++++++++++++++++++++++++

Since your autoconf version might be different from the one used by
committers, it might be better you don't include the changes to
configure in your patch and add a line to prompt committer to rerun
autogen.sh.

>  tools/configure.ac            |    4 ++++
>  tools/misc/Makefile           |    2 +-
>  tools/xenstat/xentop/Makefile |    2 +-
>  5 files changed, 53 insertions(+), 2 deletions(-)
> 
> diff --git a/config/Tools.mk.in b/config/Tools.mk.in
> index d67352e..aef9ed6 100644
> --- a/config/Tools.mk.in
> +++ b/config/Tools.mk.in
> @@ -77,5 +77,6 @@ CONFIG_LIBICONV     := @libiconv@
>  CONFIG_GCRYPT       := @libgcrypt@
>  EXTFS_LIBS          := @EXTFS_LIBS@
>  CURSES_LIBS         := @CURSES_LIBS@
> +TINFO_LIBS          := @TINFO_LIBS@
>  
>  FILE_OFFSET_BITS    := @FILE_OFFSET_BITS@
[...]
>  
>  
> diff --git a/tools/configure.ac b/tools/configure.ac
> index 9bf6450..1a06ddf 100644
> --- a/tools/configure.ac
> +++ b/tools/configure.ac
> @@ -318,6 +318,10 @@ i[[3456]]86|x86_64)
>  esac
>   AX_CHECK_UUID
>   AX_CHECK_CURSES
> +AS_IF([test "$ncurses" = "y"], [
> +AC_CHECK_LIB([tinfo], [define_key], [TINFO_LIBS=-ltinfo])

"define_key"?

> +])
> +AC_SUBST(TINFO_LIBS)
>  

This doesn't look right. Tinfo is needed by libxenstat. It should not
depend on presence of curses library.

Wei.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.