[Top][All Lists]

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

Re: Some symbols missed in llib-ltinfo and llib-ltinfot for 6.1?

From: Dr. Werner Fink
Subject: Re: Some symbols missed in llib-ltinfo and llib-ltinfot for 6.1?
Date: Tue, 27 Feb 2018 08:22:46 +0100
User-agent: NeoMutt/20170912 (1.9.0)

On Mon, Feb 26, 2018 at 10:00:44PM +0000, Thomas Dickey wrote:
> On Mon, Feb 26, 2018 at 12:12:56PM +0100, Dr. Werner Fink wrote:
> > Hi,
> > 
> > just to check binary compatibility I see from a diff of the exported
> > functions for libtinfo and libtinfow
> offhand, that looks as expected:  the "ncursestw" variant should be
> supplying all of the symbols that are in "ncursest", but the reverse is
> not true.  (That was also true of the data section, so I assume you've
> been building/delivering the tinfo "w" flavor).
> The wide-character library adds entrypoints which support the 32-bit
> numbers, which use a larger (TERMTYPE2) structure than the one
> supporting 16-bit numbers (TERMTYPE).
> I named the new functions with a "2" on the end to denote their
> relationship to TERMTYPE2.
> When built as "ncursestw", the older functions accept a "TERMTYPE" (no
> "2") parameter, and the library converts as needed.
> Bear in mind that there were a few bug-reports last spring and early
> summer when I completed those changes, but it seems to be working as
> designed.
> By the way, to support 32-bit numbers in terminfo, you'll have to
> build/link the command-line utilities with the wide-character
> configuration.

OK ... the only problem seems to be that there are programs out there
which links to both libtinfo.so.6.1 (threadsafe) as well as to
libtinfow.so.6.1 (wide+threadsafe) and in the case od phython3 modules
this could lead to a deadlock if the order is wrong, in other word

  import bcc
  import curses

hangs whereas

  import curses
  import bcc

does not and the only difference is the order of loading libtinfo/libtinfow
as the bcc module does use libLLVM.so linked to both tinfo types.

For bcc first the gdb shows

  (gdb) info sharedlibrary
  0x00007f832fd86870  0x00007f832fd94598  Yes         /lib64/libtinfo.so.6
  0x00007f8329bb1a70  0x00007f8329bbfb58  Yes         /lib64/libtinfow.so.6
  0x00007f83287abb10  0x00007f83287d1c2f  Yes         /lib64/libncursesw.so.6

and the working case looks like

  (gdb) info sharedlibrary
  0x00007fd11d9d1870  0x00007fd11d9df598  Yes         /lib64/libtinfo.so.6
  0x00007fd11d582b10  0x00007fd11d5a8c2f  Yes         /lib64/libncursesw.so.6
  0x00007fd11d355a70  0x00007fd11d363b58  Yes         /lib64/libtinfow.so.6


  "Having a smoking section in a restaurant is like having
          a peeing section in a swimming pool." -- Edward Burr

Attachment: signature.asc
Description: PGP signature

reply via email to

[Prev in Thread] Current Thread [Next in Thread]