FS#56137 - [ncurses] libncurses does not contain references to necessary symbols
Attached to Project:
Arch Linux
Opened by Kirill Bobyrev (omtcyfz) - Friday, 27 October 2017, 10:42 GMT
Last edited by Doug Newgard (Scimmia) - Friday, 27 October 2017, 13:30 GMT
Opened by Kirill Bobyrev (omtcyfz) - Friday, 27 October 2017, 10:42 GMT
Last edited by Doug Newgard (Scimmia) - Friday, 27 October 2017, 13:30 GMT
|
Details
Description: while trying to link any program I use to
ncurses via `-lcurses` or `-lncurses` I keep getting weird
linker errors since the last update to the current Core
ncurses package.
Additional info: * Version : 6.0+20170902-2 Steps to reproduce: Basically, try linking any program to ncurses. I'm having issues building LLVM from scratch, building my projects relying on anything that uses ncurses (e.g. LLVM itself) and compiling any fairly simple pieces of code. An example is as follows: ``` [omtcyfz@omtcyfz-arch playground]$ cat program.cpp #include <ncurses.h> int main() { initscr(); /* Start curses mode */ printw("Hello World !!!"); /* Print Hello World */ refresh(); /* Print it on to the real screen */ getch(); /* Wait for user input */ endwin(); /* End curses mode */ return 0; } [omtcyfz@omtcyfz-arch playground]$ g++ -lncurses program.cpp /usr/bin/ld: /usr/lib/gcc/x86_64-pc-linux-gnu/7.2.0/../../../../lib/libncursesw.so: undefined reference to symbol 'stdscr' /usr/lib/libtinfo.so.6: error adding symbols: DSO missing from command line collect2: error: ld returned 1 exit status ``` Or more verbose output with Clang: ``` [omtcyfz@omtcyfz-arch playground]$ clang++ -v -lcurses program.cpp clang version 5.0.0 (tags/RELEASE_500/final) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /usr/bin Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-pc-linux-gnu/6.4.1 Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-pc-linux-gnu/7.2.0 Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/6.4.1 Found candidate GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.2.0 Found candidate GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/6.4.1 Found candidate GCC installation: /usr/lib/gcc/x86_64-pc-linux-gnu/7.2.0 Found candidate GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/6.4.1 Found candidate GCC installation: /usr/lib64/gcc/x86_64-pc-linux-gnu/7.2.0 Selected GCC installation: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.2.0 Candidate multilib: .;@m64 Selected multilib: .;@m64 "/usr/bin/clang-5.0" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name program.cpp -mrelocation-model pic -pic-level 2 -pic-is-pie -mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -v -dwarf-column-info -debugger-tuning=gdb -resource-dir /usr/lib/clang/5.0.0 -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.2.0/../../../../include/c++/7.2.0 -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.2.0/../../../../include/c++/7.2.0/x86_64-pc-linux-gnu -internal-isystem /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.2.0/../../../../include/c++/7.2.0/backward -internal-isystem /usr/local/include -internal-isystem /usr/lib/clang/5.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -fdeprecated-macro -fdebug-compilation-dir /home/omtcyfz/dev/playground -ferror-limit 19 -fmessage-length 167 -stack-protector 2 -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o /tmp/program-4777ff.o -x c++ program.cpp clang -cc1 version 5.0.0 based upon LLVM 5.0.0 default target x86_64-unknown-linux-gnu ignoring nonexistent directory "/include" #include "..." search starts here: #include <...> search starts here: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.2.0/../../../../include/c++/7.2.0 /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.2.0/../../../../include/c++/7.2.0/x86_64-pc-linux-gnu /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.2.0/../../../../include/c++/7.2.0/backward /usr/local/include /usr/lib/clang/5.0.0/include /usr/include End of search list. "/usr/bin/ld" -pie --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o a.out /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.2.0/../../../../lib64/Scrt1.o /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.2.0/../../../../lib64/crti.o /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.2.0/crtbeginS.o -L/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.2.0 -L/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.2.0/../../../../lib64 -L/usr/bin/../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.2.0/../../.. -L/usr/bin/../lib -L/lib -L/usr/lib -lcurses /tmp/program-4777ff.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.2.0/crtendS.o /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.2.0/../../../../lib64/crtn.o /usr/bin/ld: /usr/bin/../lib64/gcc/x86_64-pc-linux-gnu/7.2.0/../../../../lib64/libncursesw.so: undefined reference to symbol 'stdscr' /usr/lib/libtinfo.so.6: error adding symbols: DSO missing from command line clang-5.0: error: linker command failed with exit code 1 (use -v to see invocation) ``` |
This task depends upon
Closed by Doug Newgard (Scimmia)
Friday, 27 October 2017, 13:30 GMT
Reason for closing: Duplicate
Additional comments about closing: FS#56000
Friday, 27 October 2017, 13:30 GMT
Reason for closing: Duplicate
Additional comments about closing:
Sounds legit, thanks. Though, I am experiencing the same issue in any CMake-generated scripts. I assume FindCurses.cmake also tries to link with `-lcurses` only, which I see why looking through `ninja -v`. I should maybe file a bug to CMake, too, then. Thanks anyway!