[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: |
Wed, 28 Feb 2018 12:35:07 +0100 |
User-agent: |
NeoMutt/20170912 (1.9.0) |
On Tue, Feb 27, 2018 at 09:18:04PM +0000, Thomas Dickey wrote:
> On Tue, Feb 27, 2018 at 10:37:27AM +0100, Dr. Werner Fink wrote:
> > On Tue, Feb 27, 2018 at 09:23:24AM +0000, Thomas Dickey wrote:
> > > On Tue, Feb 27, 2018 at 08:22:46AM +0100, Dr. Werner Fink wrote:
> > > >
> > > > 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
> > >
> > > I recall that there was (perhaps still) a problem with python loading
> > > different versions of ncurses for readline and the curses module.
> > > Ultimately the fix for that was within python.
> >
> > IMHO this is more complicated, please have a look at my previous followup
>
> well - looks like there's only a few possible ways to improve:
>
> a) supposing that if the symbol versions (not the symbols) for "ncurseswt"
> and "ncursest" version changed (by a configure option of course) to
> make them distinct from the symbol versions in "ncursesw"/"ncurses",
> then you could find out whether the linker is able to properly resolve
> two sets of symbol versions for the same symbols (I suspect that it is
> not).
I did not take this. Here both the libtinfo.so.6.1 is threadsafe/reentrant
and also the libtinfow.so.6.1 ... with versioned symbols I see
--- /tmp/w1 2018-02-28 12:07:04.999709245 +0100
+++ /tmp/w2 2018-02-28 12:07:11.103782433 +0100
@@ -16,10 +16,10 @@ NCURSES6_TINFO_5.7.20081102@@NCURSES6_TI
NCURSES6_TINFO_5.8.20110226@@NCURSES6_TINFO_5.8.20110226
NCURSES6_TINFO_5.9.20150530@@NCURSES6_TINFO_5.9.20150530
NCURSES6_TINFO_6.1.20171230@@NCURSES6_TINFO_6.1.20171230
-NCURSESTW6_5.7.20081102@@NCURSESTW6_5.7.20081102
-NCURSESTW6_5.8.20110226@@NCURSESTW6_5.8.20110226
-NCURSESTW6_5.9.20150530@@NCURSESTW6_5.9.20150530
-NCURSESTW6_6.1.20171230@@NCURSESTW6_6.1.20171230
+NCURSEST6_5.7.20081102@@NCURSEST6_5.7.20081102
+NCURSEST6_5.8.20110226@@NCURSEST6_5.8.20110226
+NCURSEST6_5.9.20150530@@NCURSEST6_5.9.20150530
+NCURSEST6_6.1.20171230@@NCURSEST6_6.1.20171230
PC@@NCURSES6_TINFO_5.0.19991023
SP@@NCURSES6_TINFO_5.0.19991023
UP@@NCURSES6_TINFO_5.0.19991023
@@ -48,7 +48,6 @@ _nc_boolcodes@@NCURSES6_TINFO_5.7.200811
_nc_boolfnames@@NCURSES6_TINFO_5.7.20081102
_nc_boolnames@@NCURSES6_TINFO_5.7.20081102
_nc_copy_termtype@@NCURSES6_TINFO_5.0.19991023
-_nc_copy_termtype2@@NCURSES6_TINFO_6.1.20171230
_nc_cur_term@@NCURSES6_TINFO_5.7.20081102
_nc_curr_col@@NCURSES6_TINFO_5.0.19991023
_nc_curr_line@@NCURSES6_TINFO_5.0.19991023
@@ -57,9 +56,7 @@ _nc_doalloc@@NCURSES6_TINFO_5.0.19991023
_nc_env_access@@NCURSES6_TINFO_5.2.20001021
_nc_err_abort@@NCURSES6_TINFO_5.0.19991023
_nc_eventlist_timeout@@NCURSES6_TINFO_5.6.20061217
-_nc_export_termtype2@@NCURSES6_TINFO_6.1.20171230
_nc_fallback@@NCURSES6_TINFO_5.0.19991023
-_nc_fallback2@@NCURSES6_TINFO_6.1.20171230
_nc_find_entry@@NCURSES6_TINFO_5.0.19991023
_nc_find_prescr@@NCURSES6_TINFO_6.1.20171230
_nc_find_type_entry@@NCURSES6_TINFO_5.0.19991023
@@ -70,7 +67,6 @@ _nc_flush_sp@@NCURSES6_TINFO_5.8.2011022
_nc_forget_prescr@@NCURSES6_TINFO_6.1.20171230
_nc_free_entries@@NCURSES6_TINFO_5.0.19991023
_nc_free_termtype@@NCURSES6_TINFO_5.0.19991023
-_nc_free_termtype2@@NCURSES6_TINFO_6.1.20171230
_nc_get_alias_table@@NCURSES6_TINFO_5.7.20081102
_nc_get_hash_table@@NCURSES6_TINFO_5.0.19991023
_nc_get_locale@@NCURSES6_TINFO_5.4.20040208
@@ -119,7 +115,6 @@ _nc_putp@@NCURSES6_TINFO_5.8.20110226
_nc_putp_flush_sp@@NCURSES6_TINFO_5.8.20110226
_nc_putp_sp@@NCURSES6_TINFO_5.8.20110226
_nc_read_entry@@NCURSES6_TINFO_5.0.19991023
-_nc_read_entry2@@NCURSES6_TIC_6.1.20171230
_nc_read_file_entry@@NCURSES6_TINFO_5.0.19991023
_nc_read_termtype@@NCURSES6_TINFO_5.6.20061217
_nc_rootname@@NCURSES6_TINFO_5.3.20021019
LD_DEBUG=all LD_BIND_NOT=1 ldd /usr/bin/python3 |& grep _TINFO
22098: checking for version `NCURSES6_TINFO_5.0.19991023' in file
/lib64/libtinfo.so.6 [0] required by file /lib64/libreadline.so.7 [0]
22098: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfo.so.6
[0]: normal symbol `ospeed' [NCURSES6_TINFO_5.0.19991023]
22098: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfo.so.6
[0]: normal symbol `_nc_tail' [NCURSES6_TINFO_5.0.19991023]
22098: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfo.so.6
[0]: normal symbol `SP' [NCURSES6_TINFO_5.0.19991023]
22098: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfo.so.6
[0]: normal symbol `_nc_head' [NCURSES6_TINFO_5.0.19991023]
22098: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfo.so.6
[0]: normal symbol `_nc_screen_chain' [NCURSES6_TINFO_5.0.19991023]
22098: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfo.so.6
[0]: normal symbol `_nc_suppress_warnings' [NCURSES6_TINFO_5.0.19991023]
22098: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfo.so.6
[0]: normal symbol `UP' [NCURSES6_TINFO_5.0.19991023]
22098: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfo.so.6
[0]: normal symbol `_nc_user_definable' [NCURSES6_TINFO_5.1.20000708]
22098: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfo.so.6
[0]: normal symbol `_nc_tracing' [NCURSES6_TINFO_5.0.19991023]
22098: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfo.so.6
[0]: normal symbol `_nc_tinfo_fkeys' [NCURSES6_TINFO_5.1.20000708]
22098: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfo.so.6
[0]: normal symbol `_nc_curr_line' [NCURSES6_TINFO_5.0.19991023]
22098: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfo.so.6
[0]: normal symbol `_nc_tparm_err' [NCURSES6_TINFO_5.3.20021019]
22098: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfo.so.6
[0]: normal symbol `PC' [NCURSES6_TINFO_5.0.19991023]
22098: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfo.so.6
[0]: normal symbol `_nc_curr_col' [NCURSES6_TINFO_5.0.19991023]
22098: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfo.so.6
[0]: normal symbol `_nc_prescreen' [NCURSES6_TINFO_5.7.20081102]
22098: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfo.so.6
[0]: normal symbol `_nc_globals' [NCURSES6_TINFO_5.7.20081102]
22098: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfo.so.6
[0]: normal symbol `BC' [NCURSES6_TINFO_5.0.19991023]
22098: binding file /lib64/libreadline.so.7 [0] to
/lib64/libtinfo.so.6 [0]: normal symbol `UP' [NCURSES6_TINFO_5.0.19991023]
22098: binding file /lib64/libreadline.so.7 [0] to
/lib64/libtinfo.so.6 [0]: normal symbol `PC' [NCURSES6_TINFO_5.0.19991023]
22098: binding file /lib64/libreadline.so.7 [0] to
/lib64/libtinfo.so.6 [0]: normal symbol `BC' [NCURSES6_TINFO_5.0.19991023]
LD_DEBUG=all LD_BIND_NOT=1 LD_PRELOAD=/lib64/libtinfow.so.6 ldd
/usr/bin/python3 |& grep _TINFO
22111: checking for version `NCURSES6_TINFO_5.0.19991023' in file
/lib64/libtinfo.so.6 [0] required by file /lib64/libreadline.so.7 [0]
22111: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `ospeed' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_tail' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `SP' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_head' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_screen_chain' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_suppress_warnings' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `UP' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_user_definable' [NCURSES6_TINFO_5.1.20000708]
22111: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_tracing' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_tinfo_fkeys' [NCURSES6_TINFO_5.1.20000708]
22111: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_curr_line' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_tparm_err' [NCURSES6_TINFO_5.3.20021019]
22111: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `PC' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_curr_col' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_prescreen' [NCURSES6_TINFO_5.7.20081102]
22111: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_globals' [NCURSES6_TINFO_5.7.20081102]
22111: binding file /lib64/libtinfo.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `BC' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libreadline.so.7 [0] to
/lib64/libtinfow.so.6 [0]: normal symbol `UP' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libreadline.so.7 [0] to
/lib64/libtinfow.so.6 [0]: normal symbol `PC' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libreadline.so.7 [0] to
/lib64/libtinfow.so.6 [0]: normal symbol `BC' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfow.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `ospeed' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfow.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_tail' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfow.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `SP' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfow.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_head' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfow.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_screen_chain' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfow.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_suppress_warnings' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfow.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `UP' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfow.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_user_definable' [NCURSES6_TINFO_5.1.20000708]
22111: binding file /lib64/libtinfow.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_tracing' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfow.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_tinfo_fkeys' [NCURSES6_TINFO_5.1.20000708]
22111: binding file /lib64/libtinfow.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_curr_line' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfow.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_tparm_err' [NCURSES6_TINFO_5.3.20021019]
22111: binding file /lib64/libtinfow.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `PC' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfow.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_curr_col' [NCURSES6_TINFO_5.0.19991023]
22111: binding file /lib64/libtinfow.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_prescreen' [NCURSES6_TINFO_5.7.20081102]
22111: binding file /lib64/libtinfow.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `_nc_globals' [NCURSES6_TINFO_5.7.20081102]
22111: binding file /lib64/libtinfow.so.6 [0] to /lib64/libtinfow.so.6
[0]: normal symbol `BC' [NCURSES6_TINFO_5.0.19991023]
> b) link everything against "ncurseswt"
That means enforce every package to use the libncursew/libtinfow ?
At least all python3 and its modules could be an option
Werner
--
"Having a smoking section in a restaurant is like having
a peeing section in a swimming pool." -- Edward Burr
signature.asc
Description: PGP signature
- Some symbols missed in llib-ltinfo and llib-ltinfot for 6.1?, Dr. Werner Fink, 2018/02/26
- Re: Some symbols missed in llib-ltinfo and llib-ltinfot for 6.1?, Thomas Dickey, 2018/02/26
- Re: Some symbols missed in llib-ltinfo and llib-ltinfot for 6.1?, Dr. Werner Fink, 2018/02/27
- Re: [bug-ncurses] Some symbols missed in llib-ltinfo and llib-ltinfot for 6.1?, Dr. Werner Fink, 2018/02/27
- Re: Some symbols missed in llib-ltinfo and llib-ltinfot for 6.1?, Thomas Dickey, 2018/02/27
- Re: Some symbols missed in llib-ltinfo and llib-ltinfot for 6.1?, Dr. Werner Fink, 2018/02/27
- Re: Some symbols missed in llib-ltinfo and llib-ltinfot for 6.1?, Thomas Dickey, 2018/02/27
- Re: Some symbols missed in llib-ltinfo and llib-ltinfot for 6.1?,
Dr. Werner Fink <=
- Re: [bug-ncurses] Some symbols missed in llib-ltinfo and llib-ltinfot for 6.1?, Dr. Werner Fink, 2018/02/28
- Re: Some symbols missed in llib-ltinfo and llib-ltinfot for 6.1?, Sven Joachim, 2018/02/28