Re: Linking problem with ncurses on rawhide, not f37

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

 



* Ron Olson:

> In Rawhide the ncurses libs are at 6.3-4.20221126, while f37 is
> 6.3-3.20220501. I recall seeing some messages go by related to ncurses
> on the list here regarding the -compat library, but I’m not sure if
> that’s related to my issue. It seems weird that some of the functions
> it’s unable to find are part of the library (e.g. wtimeout is a valid
> function, according to the man pages).
>
> Could there be something weird with rawhide’s copy of ncurses or was
> there some big update that removed all these functions?

Recently, ncurses introduced symbol versioning at run time, but not at
link time (bug 1875587).  I missed that ncurses constitutes of multiple
shared objects that depend on each other.  What seems to happen here is
that some other object in that link depends on libncurses, which results
in linker using the versioned libncurses (the run-time version).  The
versioned libncurses depends on the versioned libtinfo because it uses
versioned symbol references.  But -ltinfo uses a linker script to link
against the unversioned libtinfo, so that the application sticks to the
Fedora ncurses ABI, and that is not suitable for resolving the symbol
references in the versioned libncurses.

It may work to use this for libtinfo.so:

GROUP (/usr/lib64/ncurses-novs/libtinfo.so.6 AS_NEEDED (/usr/lib64/ncurses-novs/libncurses.so.6))

But the AS_NEEDED might come too late to have an effect, after the
versioned libncurses has been loaded.  It's also possible that the build
system for this particular package has an explicit reference to
/usr/lib64/libncurses.so.6 somewhere that we cannot easily get rid of
from the outside.  In the latter case, even a special directory for
unversioned, link-time search objects, a directory that is injected into
the build using -rpath-link (via the default linker flags in
redhat-rpm-config) would fail to hide the versioned libncurses variant.

Miroslav, we may have to revert the versioning change if the AS_NEEDED
approach does not work.  This is also not something that would have been
solved by a stub generator.  Linking versioned libncurses against
unversioned libtinfo etc. would solve this, but I don't know how it
would to get to this point.

Thanks,
Florian
_______________________________________________
devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux