Summary: | sys-libs/ncurses-6.1_p20190609 - pinfo open: segmentation fault in termattrs_sp (sp=sp@entry=0x555555573770) at /usr/src/debug/sys-libs/ncurses-6.1_p20190609/ncurses-6.1/ncurses/tty/lib_vidattr.c:381 | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Han Han <hanhanzhiyeqianke> |
Component: | Current packages | Assignee: | Gentoo's Team for Core System packages <base-system> |
Status: | UNCONFIRMED --- | ||
Severity: | normal | CC: | arcctgx, bugs, erik.dannenberg, esigra, hanhanzhiyeqianke, jer, leho, sam, vvrzic, zhuyifei1999 |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
URL: | https://lists.gnu.org/archive/html/bug-ncurses/2019-08/msg00025.html | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Bug Depends on: | |||
Bug Blocks: | 457530 |
Description
Han Han
2019-08-27 14:15:41 UTC
Seems to be related to your locale settings. Could you share those, please? (In reply to Jeroen Roovers from comment #1) > Seems to be related to your locale settings. Could you share those, please? LANG=en_US.utf8 LC_CTYPE=en_US.utf8 LC_NUMERIC="en_US.utf8" LC_TIME="en_US.utf8" LC_COLLATE="en_US.utf8" LC_MONETARY="en_US.utf8" LC_MESSAGES="en_US.utf8" LC_PAPER="en_US.utf8" LC_NAME="en_US.utf8" LC_ADDRESS="en_US.utf8" LC_TELEPHONE="en_US.utf8" LC_MEASUREMENT="en_US.utf8" LC_IDENTIFICATION="en_US.utf8" LC_ALL= Well, that's odd. I am seeing the exact same problem with a different program (ncmpcpp) and a different version of ncurses now. =sys-libs/ncurses-6.1_p20181020 Reading symbols from ncmpcpp... Reading symbols from /usr/lib/debug//usr/bin/ncmpcpp.debug... (gdb) run Starting program: /usr/bin/ncmpcpp [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/libthread_db.so.1". Reading configuration from /home/jeroen/.ncmpcpp/config... Program received signal SIGSEGV, Segmentation fault. 0xb7764dff in termattrs_sp (sp=0x6ddfb0) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/tty/lib_vidattr.c:381 381 /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/tty/lib_vidattr.c: No such file or directory. (gdb) where #0 0xb7764dff in termattrs_sp (sp=0x6ddfb0) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/tty/lib_vidattr.c:381 #1 termattrs_sp (sp=sp@entry=0x6ddfb0) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/tty/lib_vidattr.c:370 #2 0xb77618a6 in _nc_setupscreen_sp (spp=spp@entry=0xbfffdccc, slines=<optimized out>, scolumns=<optimized out>, output=0xb73a7d80 <_IO_2_1_stdout_>, filtered=0, slk_format=slk_format@entry=0) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_set_term.c:507 #3 0xb775cc78 in newterm_sp (sp=<optimized out>, name=name@entry=0xbffff6f5 "screen", ofp=ofp@entry=0xb73a7d80 <_IO_2_1_stdout_>, ifp=ifp@entry=0xb73a75c0 <_IO_2_1_stdin_>) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_newterm.c:222 #4 0xb775d116 in newterm (name=name@entry=0xbffff6f5 "screen", ofp=0xb73a7d80 <_IO_2_1_stdout_>, ifp=0xb73a75c0 <_IO_2_1_stdin_>) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_newterm.c:355 #5 0xb775831d in initscr () at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_initscr.c:89 #6 0x00459585 in NC::initScreen (enable_colors=true, enable_mouse=false) at curses/window.cpp:390 #7 0x00449aab in main (argc=1, argv=0xbfffea84) at ncmpcpp.cpp:116 I can also reproduce it with pinfo: Starting program: /usr/bin/pinfo Przemek's Info Viewer v0.6.13 [Detaching after vfork from child process 12257] [Detaching after vfork from child process 12259] [Detaching after vfork from child process 12261] Program received signal SIGSEGV, Segmentation fault. 0xb7f52dff in termattrs_sp (sp=0x421610) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/tty/lib_vidattr.c:381 381 /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/tty/lib_vidattr.c: No such file or directory. (gdb) where #0 0xb7f52dff in termattrs_sp (sp=0x421610) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/tty/lib_vidattr.c:381 #1 termattrs_sp (sp=sp@entry=0x421610) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/tty/lib_vidattr.c:370 #2 0xb7f4f8a6 in _nc_setupscreen_sp (spp=spp@entry=0xbfffe80c, slines=<optimized out>, scolumns=<optimized out>, output=0x41fae0, filtered=0, slk_format=slk_format@entry=0) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_set_term.c:507 #3 0xb7f4ac78 in newterm_sp (sp=<optimized out>, name=name@entry=0x0, ofp=ofp@entry=0x41fae0, ifp=ifp@entry=0x41fae0) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_newterm.c:222 #4 0xb7f4b116 in newterm (name=name@entry=0x0, ofp=0x41fae0, ifp=0x41fae0) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_newterm.c:355 #5 0x004117ab in init_curses () at utils.c:410 #6 0x004024dc in main (argc=<optimized out>, argv=0xbfffeb44) at pinfo.c:375 What has changed? Could it be a problem that these programs load two different tinfo libraries? # lddtree /usr/bin/pinfo pinfo => /usr/bin/pinfo (interpreter => /lib/ld-linux.so.2) libreadline.so.7 => /lib/libreadline.so.7 libtinfo.so.6 => /lib/libtinfo.so.6 libncursesw.so.6 => /lib/libncursesw.so.6 libdl.so.2 => /lib/libdl.so.2 ld-linux.so.2 => /lib/ld-linux.so.2 libtinfow.so.6 => /lib/libtinfow.so.6 libc.so.6 => /lib/libc.so.6 # lddtree /usr/bin/ncmpcpp ncmpcpp => /usr/bin/ncmpcpp (interpreter => /lib/ld-linux.so.2) libboost_filesystem.so.1.65.0 => /usr/lib/libboost_filesystem.so.1.65.0 librt.so.1 => /lib/librt.so.1 libboost_locale.so.1.65.0 => /usr/lib/libboost_locale.so.1.65.0 libboost_chrono.so.1.65.0 => /usr/lib/libboost_chrono.so.1.65.0 libicudata.so.64 => /usr/lib/libicudata.so.64 libboost_program_options.so.1.65.0 => /usr/lib/libboost_program_options.so.1.65.0 libboost_regex.so.1.65.0 => /usr/lib/libboost_regex.so.1.65.0 libboost_thread.so.1.65.0 => /usr/lib/libboost_thread.so.1.65.0 libboost_system.so.1.65.0 => /usr/lib/libboost_system.so.1.65.0 libicui18n.so.64 => /usr/lib/libicui18n.so.64 libm.so.6 => /lib/libm.so.6 ld-linux.so.2 => /lib/ld-linux.so.2 libicuuc.so.64 => /usr/lib/libicuuc.so.64 libdl.so.2 => /lib/libdl.so.2 libmpdclient.so.2 => /usr/lib/libmpdclient.so.2 libreadline.so.7 => /lib/libreadline.so.7 libtinfo.so.6 => /lib/libtinfo.so.6 libpthread.so.0 => /lib/libpthread.so.0 libncursesw.so.6 => /lib/libncursesw.so.6 libtinfow.so.6 => /lib/libtinfow.so.6 libcurl.so.4 => /usr/lib/libcurl.so.4 libidn2.so.0 => /usr/lib/libidn2.so.0 libunistring.so.2 => /usr/lib/libunistring.so.2 libssl.so.1.1 => /usr/lib/libssl.so.1.1 libcrypto.so.1.1 => /usr/lib/libcrypto.so.1.1 libz.so.1 => /lib/libz.so.1 libtag.so.1 => /usr/lib/libtag.so.1 libstdc++.so.6 => /usr/lib/gcc/i686-pc-linux-gnu/8.3.0/libstdc++.so.6 libgcc_s.so.1 => /usr/lib/gcc/i686-pc-linux-gnu/8.3.0/libgcc_s.so.1 libc.so.6 => /lib/libc.so.6 In both cases libtinfo is loaded through libreadline, and libtinfow is loaded through libncursesw. (In reply to Jeroen Roovers from comment #4) > Could it be a problem that these programs load two different tinfo libraries? [...] > In both cases libtinfo is loaded through libreadline, and libtinfow is > loaded through libncursesw. And also gdb itself: $ lddtree /usr/bin/gdb gdb => /usr/bin/gdb (interpreter => /lib/ld-linux.so.2) libreadline.so.7 => /lib/libreadline.so.7 libtinfo.so.6 => /lib/libtinfo.so.6 libz.so.1 => /lib/libz.so.1 libncursesw.so.6 => /lib/libncursesw.so.6 libtinfow.so.6 => /lib/libtinfow.so.6 libdl.so.2 => /lib/libdl.so.2 libpython3.6m.so.1.0 => /usr/lib/libpython3.6m.so.1.0 libutil.so.1 => /lib/libutil.so.1 libpthread.so.0 => /lib/libpthread.so.0 libm.so.6 => /lib/libm.so.6 libexpat.so.1 => /usr/lib/libexpat.so.1 liblzma.so.5 => /lib/liblzma.so.5 libmpfr.so.4 => /usr/lib/libmpfr.so.4 libgmp.so.10 => /usr/lib/libgmp.so.10 libc.so.6 => /lib/libc.so.6 ld-linux.so.2 => /lib/ld-linux.so.2 After rebuilding sys-libs/ncurses with -O0: $ gdb ncmpcpp GNU gdb (Gentoo 8.3 vanilla) 8.3 Copyright (C) 2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <https://bugs.gentoo.org/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from ncmpcpp... Reading symbols from /usr/lib/debug//usr/bin/ncmpcpp.debug... (gdb) run Starting program: /usr/bin/ncmpcpp [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/libthread_db.so.1". Reading configuration from /home/jeroen/.ncmpcpp/config... Terminal doesn't support window title, skipping 'enable_window_title'. Program received signal SIGSEGV, Segmentation fault. 0xb7761205 in termattrs_sp (sp=0x6ddf90) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/tty/lib_vidattr.c:381 381 /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/tty/lib_vidattr.c: No such file or directory. (gdb) where #0 0xb7761205 in termattrs_sp (sp=0x6ddf90) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/tty/lib_vidattr.c:381 #1 0xb775d2f9 in _nc_setupscreen_sp (spp=0xbfffdccc, slines=55, scolumns=159, output=0xb739fd80 <_IO_2_1_stdout_>, filtered=0, slk_format=0) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_set_term.c:507 #2 0xb7756db0 in newterm_sp (sp=0x6ddf90, name=0xbffff6df "linux", ofp=0xb739fd80 <_IO_2_1_stdout_>, ifp=0xb739f5c0 <_IO_2_1_stdin_>) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_newterm.c:222 #3 0xb77571d2 in newterm (name=0xbffff6df "linux", ofp=0xb739fd80 <_IO_2_1_stdout_>, ifp=0xb739f5c0 <_IO_2_1_stdin_>) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_newterm.c:355 #4 0xb7751498 in initscr () at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_initscr.c:89 #5 0x00459585 in NC::initScreen (enable_colors=true, enable_mouse=false) at curses/window.cpp:390 #6 0x00449aab in main (argc=1, argv=0xbfffea74) at ncmpcpp.cpp:116 (gdb) t a a bt full Thread 1 (Thread 0xb5121700 (LWP 12048)): #0 0xb7761205 in termattrs_sp (sp=0x6ddf90) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/tty/lib_vidattr.c:381 attrs = 0 #1 0xb775d2f9 in _nc_setupscreen_sp (spp=0xbfffdccc, slines=55, scolumns=159, output=0xb739fd80 <_IO_2_1_stdout_>, filtered=0, slk_format=0) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_set_term.c:507 null_TTY = {c_iflag = 0, c_oflag = 0, c_cflag = 0, c_lflag = 0, c_line = 0 '\000', c_cc = '\000' <repeats 31 times>, c_ispeed = 0, c_ospeed = 0} env = 0x0 bottom_stolen = 0 sp = 0x6ddf90 support_cookies = false #2 0xb7756db0 in newterm_sp (sp=0x6ddf90, name=0xbffff6df "linux", ofp=0xb739fd80 <_IO_2_1_stdout_>, ifp=0xb739f5c0 <_IO_2_1_stdin_>) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_newterm.c:222 slk_format = 0 filter_mode = 0 errret = 1 result = 0x0 current = 0x0 its_term = 0x0 _ofp = 0xb739fd80 <_IO_2_1_stdout_> _ifp = 0xb739f5c0 <_IO_2_1_stdin_> new_term = 0x0 #3 0xb77571d2 in newterm (name=0xbffff6df "linux", ofp=0xb739fd80 <_IO_2_1_stdout_>, ifp=0xb739f5c0 <_IO_2_1_stdin_>) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_newterm.c:355 rc = 0xb7757178 <newterm> #4 0xb7751498 in initscr () at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_initscr.c:89 name = 0xbffff6df "linux" result = 0xb775141b <initscr> #5 0x00459585 in NC::initScreen (enable_colors=true, enable_mouse=false) at curses/window.cpp:390 abort_prompt = <optimized out> #6 0x00449aab in main (argc=1, argv=0xbfffea74) at ncmpcpp.cpp:116 __PRETTY_FUNCTION__ = "int main(int, char**)" key_pressed = <optimized out> input = 0 connect_attempt = <optimized out> update_environment = {<Actions::BaseAction> = {_vptr.BaseAction = 0x10001, m_name = <error: Cannot access memory at address 0x10001>, m_type = 65537}, m_past = {<boost::date_time::base_time<boost::posix_time::ptime, boost::date_time::counted_time_system<boost::date_time::counted_time_rep<boost::posix_time::millisec_posix_time_system_config> > >> = {<boost::operators_impl::less_than_comparable<boost::posix_time::ptime, boost::operators_impl::equality_comparable<boost::posix_time::ptime, boost::posix_time::ptime, boost::operators_impl::operators_detail::empty_base<boost::posix_time::ptime>, boost::operators_impl::operators_detail::false_t>, boost::operators_impl::operators_detail::empty_base<boost::posix_time::ptime>, boost::operators_impl::operators_detail::true_t>> = {<boost::operators_impl::less_than_comparable1<boost::posix_time::ptime, boost::operators_impl::equality_comparable<boost::posix_time::ptime, boost::posix_time::ptime, boost::operators_impl::operators_detail::empty_base<boost::posix_time::ptime>, boost::operators_impl::operators_detail::false_t> >> = {<boost::operators_impl::equality_comparable<boost::posix_time::ptime, boost::posix_time::ptime, boost::operators_impl::operators_detail::empty_base<boost::posix_time::ptime>, boost::operators_impl::operators_detail::false_t>> = {<boost::operators_impl::equality_comparable1<boost::posix_time::ptime, boost::operators_impl::operators_detail::empty_base<boost::posix_time::ptime> >> = {<boost::operators_impl::operators_detail::empty_base<boost::posix_time::ptime>> = {<No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, <No data fields>}, time_ = {time_count_ = {value_ = -4611712644137671714}}}, <No data fields>}} $ gdb pinfo GNU gdb (Gentoo 8.3 vanilla) 8.3 Copyright (C) 2019 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-pc-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: <https://bugs.gentoo.org/>. Find the GDB manual and other documentation resources online at: <http://www.gnu.org/software/gdb/documentation/>. For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from pinfo... Reading symbols from /usr/lib/debug//usr/bin/pinfo.debug... (gdb) run open Starting program: /usr/bin/pinfo open Przemek's Info Viewer v0.6.13 [Detaching after vfork from child process 12185] [Detaching after vfork from child process 12187] [Detaching after vfork from child process 12189] Error: could not open info file, trying manual Program received signal SIGSEGV, Segmentation fault. 0xb7f4f205 in termattrs_sp (sp=0x41ed00) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/tty/lib_vidattr.c:381 381 /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/tty/lib_vidattr.c: No such file or directory. (gdb) where #0 0xb7f4f205 in termattrs_sp (sp=0x41ed00) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/tty/lib_vidattr.c:381 #1 0xb7f4b2f9 in _nc_setupscreen_sp (spp=0xbfffd57c, slines=55, scolumns=159, output=0x41dae0, filtered=0, slk_format=0) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_set_term.c:507 #2 0xb7f44db0 in newterm_sp (sp=0x41ed00, name=0x0, ofp=0x41dae0, ifp=0x41dae0) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_newterm.c:222 #3 0xb7f451d2 in newterm (name=name@entry=0x0, ofp=0x41dae0, ifp=0x41dae0) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_newterm.c:355 #4 0x004117ab in init_curses () at utils.c:410 #5 0x0040d04b in handlemanual (name=0xbfffe8ac "open") at manual.c:294 #6 0x00403385 in main (argc=<optimized out>, argv=0xbfffea74) at pinfo.c:312 (gdb) t a a bt full Thread 1 (process 12181): #0 0xb7f4f205 in termattrs_sp (sp=0x41ed00) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/tty/lib_vidattr.c:381 attrs = 0 #1 0xb7f4b2f9 in _nc_setupscreen_sp (spp=0xbfffd57c, slines=55, scolumns=159, output=0x41dae0, filtered=0, slk_format=0) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_set_term.c:507 null_TTY = {c_iflag = 0, c_oflag = 0, c_cflag = 0, c_lflag = 0, c_line = 0 '\000', c_cc = '\000' <repeats 31 times>, c_ispeed = 0, c_ospeed = 0} env = 0x0 bottom_stolen = 0 sp = 0x41ed00 support_cookies = false #2 0xb7f44db0 in newterm_sp (sp=0x41ed00, name=0x0, ofp=0x41dae0, ifp=0x41dae0) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_newterm.c:222 slk_format = 0 filter_mode = 0 errret = 1 result = 0x0 current = 0x0 its_term = 0x0 _ofp = 0x41dae0 _ifp = 0x41dae0 new_term = 0x0 #3 0xb7f451d2 in newterm (name=name@entry=0x0, ofp=0x41dae0, ifp=0x41dae0) at /var/tmp/portage/sys-libs/ncurses-6.1_p20181020/work/ncurses-6.1/ncurses/base/lib_newterm.c:355 rc = 0xb7f45178 <newterm> #4 0x004117ab in init_curses () at utils.c:410 f = <optimized out> screen = <optimized out> #5 0x0040d04b in handlemanual (name=0xbfffe8ac "open") at manual.c:294 return_value = 0 statbuf = {st_dev = 0, __pad1 = 0, st_ino = 0, st_mode = 0, st_nlink = 0, st_uid = 0, st_gid = 0, st_rdev = 0, __pad2 = 0, st_size = 0, st_blksize = 0, st_blocks = 0, st_atim = {tv_sec = 0, tv_nsec = 0}, st_mtim = {tv_sec = 0, tv_nsec = 0}, st_ctim = {tv_sec = 0, tv_nsec = 0}, __glibc_reserved4 = 0, __glibc_reserved5 = 0} id = <optimized out> manualname = '\000' <repeats 12 times>, "\256\256\356\267\360\257\341\267\000\000\000\000\254\332\377\277\020\331\377\277\004\000\000\000\200\352\377\277", '\000' <repeats 92 times>, "\200\327\377\277\000\000\000\000t\327\377\277\347u\327\267", '\000' <repeats 12 times>, "`v\362\267", '\000' <repeats 48 times>... cmd = "\tI䷬\332\377\277\000\000\000\000\000\000\000\000\354\330\377\277Y\251\332\377\277\020\331\377\277\200\352\377\277\000\000\000\000\360\257\352\377\277", '\000' <repeats 12 times>, " \331\377\277\060x\327\267", '\000' <repeats 28 times>, "\020R\344\267\000\000\000\000\000\000\000\000\254\332\377\277\020\331\377\277", '\000' <repeats 13 times>, "\224\256\016\000\000\000\000\000\000\000\000\tI䷬\332\377\277\000\000\000\000\000\000\000\000\354\330\377\277Y\251\332\377\277\020\331\377\277\200\352\377\277\000\000\000\000\360\257\352\377\277\000\000\000\000\000\224\256\016", '\000' <repeats 13 times>, "\224\256\016\354"... apropos_tempfilename = 0x0 #6 0x00403385 in main (argc=<optimized out>, argv=0xbfffea74) at pinfo.c:312 filenotfound = 0 filename = "open", '\000' <repeats 204 times>... work_return_value = {node = 0x0, file = 0x0} i = <optimized out> userdefinedrc = <optimized out> command_line_option = <optimized out> id = 0x0 lines = 538 message = 0x4be610 type = 0x41fd10 "File: dir,\tNode: Top\tThis is the top of the INFO tree\n" tag_table_pos = 1 file_name_force = 0x0 long_options = {{name = 0x4153f8 "help", has_arg = 0, flag = 0x0, val = 104}, {name = 0x4153fd "version", has_arg = 0, flag = 0x0, val = 118}, {name = 0x415405 "manual", has_arg = 0, flag = 0x0, val = 109}, {name = 0x415e30 "file", has_arg = 0, flag = 0x0, val = 102}, {name = 0x41540c "raw-filename", has_arg = 0, flag = 0x0, val = 114}, {name = 0x41541f "apropos", has_arg = 0, flag = 0x0, val = 97}, {name = 0x415419 "plain-apropos", has_arg = 0, flag = 0x0, val = 112}, {name = 0x415427 "cut-man-headers", has_arg = 0, flag = 0x0, val = 99}, {name = 0x415437 "squeeze-manlines", has_arg = 0, flag = 0x0, val = 115}, {name = 0x415448 "dont-handle-without-tag-table", has_arg = 0, flag = 0x0, val = 100}, {name = 0x415466 "force-manual-tag-table", has_arg = 0, flag = 0x0, val = 116}, {name = 0x41547d "node", has_arg = 1, flag = 0x0, val = 110}, {name = 0x415482 "long-manual-links", has_arg = 0, flag = 0x0, val = 108}, {name = 0x415494 "clear-at-exit", has_arg = 0, flag = 0x0, val = 120}, {name = 0x415372 "rcfile", has_arg = 1, flag = 0x0, val = 1}, {name = 0x0, has_arg = 0, flag = 0x0, val = 0}} Neither show segmentation faults when I set LD_PRELOAD='/lib/libncurses.so.6.1' while both are linked to libncursesw. Obviously that does corrupt text output. Ah, with --as-needed it seems libtinfo linkage is removed whereas it does provide functions that libncurses needs. Calling LD_PRELOAD='/lib/libtinfow.so.6.1' pinfo open and LD_PRELOAD='/lib/libtinfow.so.6.1' ncmpcpp both work fine. Han Han: Looks like your best bet would be to re-emerge everything that depends on sys-libs/ncurses. Doing that for app-text/pinfo does seem to work. base-system: Generally I don't see another way to resolve this problem: libncurses resolves the external symbols that are needed but (internal) functions that are now part of libtinfo appear to be noops and fail to set up the terminal properly, causing segmentation faults for terminal capabilities. *** Bug 697776 has been marked as a duplicate of this bug. *** Yeah, add `app-misc/abook` to this list. Definitely seems like something with ncurses rebuild. *** Bug 707760 has been marked as a duplicate of this bug. *** Also app-misc/gtypist, proposed patch in #707760 Also in app-cdr/cdw, however while upstream is correct, the ebuilds add the additional linkage to ncurses instead ncursesw (src_configure). Works after changing it to ncursesw. Same for ftptop from net-ftp/proftpd (1.3.7_rc3@07/13/20) and sys-libs/ncurses (6.2-r1(0/6)@07/13/20) «Fixed» with LD_PRELOAD='/lib/libtinfow.so.6.2' ftptop If(!) this is the same thing, it also affects musickube [1] which has an ebuild in Guru [2] and a related patch [3]. The upstream issues are [4] and [5]. [1] https://github.com/clangen/musikcube [2] https://github.com/gentoo/guru/tree/master/media-sound/musikcube [3] https://github.com/gentoo/guru/blob/master/media-sound/musikcube/files/musikcube-3.0.1-tinfow.patch [4] https://github.com/clangen/musikcube/issues/588 [5] https://github.com/clangen/musikcube/issues/610 |