New submission from R. Jones: I am trying to compile Python-2.7.10. This is being done as a user, not root and I don't have access to /usr/local other than to avoid all the broken stuff in it.
My local is /appl/local I am installing Python in /appl/local/python-2.7.10 I have ncursest as part of my /appl/local, but python keeps wanting to link with /usr/ccs/lib/libcurses.so. UGH. "ncursest" was built instead of "ncurses" because I used "--with-pthread" and "--enable-reentrant" I rebuilt ncurses without those two flags but with --with-termlib which built libtinfo.so. When compiling the _curses module, I get this error: *** WARNING: renaming "_curses" since importing it failed: ld.so.1: python: fatal: relocation error: file build/lib.solaris-2.10-sun4u.32bit-2.7/_curses.so: symbol _unctrl: referenced symbol not found In this case I can see unctrl is in tinfo...but no matter what I do, I cannot get it to add -ltinfo to the link line. $ nm -s libtinfo.so | grep unctrl 0001d4f8 T unctrl 00039170 r unctrl_blob.5682 00039070 r unctrl_c1.5681 0001d30c T unctrl_sp 00039572 r unctrl_table.5680 So my next attempt was to make a private copy of ncurses for Python without --with-termlib, but had to add --enable-termcap and install it in /appl/local/python-2.7.10/lib $ ls -al /appl/local/python-2.7.10/lib total 15584 drwxr-xr-x 4 gfp-ip gfp-ip 1024 Jan 26 16:45 . drwxr-xr-x 6 gfp-ip gfp-ip 96 Jan 26 15:31 .. -rw-r--r-- 1 gfp-ip gfp-ip 120560 Jan 26 15:32 libform.a -rwxr-xr-x 1 gfp-ip gfp-ip 1055 Jan 26 15:32 libform.la lrwxrwxrwx 1 gfp-ip gfp-ip 16 Jan 26 15:32 libform.so -> libform.so.6.0.0 lrwxrwxrwx 1 gfp-ip gfp-ip 16 Jan 26 15:32 libform.so.6 -> libform.so.6.0.0 -rwxr-xr-x 1 gfp-ip gfp-ip 95604 Jan 26 15:32 libform.so.6.0.0 -rw-r--r-- 1 gfp-ip gfp-ip 61908 Jan 26 15:32 libmenu.a -rwxr-xr-x 1 gfp-ip gfp-ip 1055 Jan 26 15:32 libmenu.la lrwxrwxrwx 1 gfp-ip gfp-ip 16 Jan 26 15:32 libmenu.so -> libmenu.so.6.0.0 lrwxrwxrwx 1 gfp-ip gfp-ip 16 Jan 26 15:32 libmenu.so.6 -> libmenu.so.6.0.0 -rwxr-xr-x 1 gfp-ip gfp-ip 48060 Jan 26 15:32 libmenu.so.6.0.0 -rw-r--r-- 1 gfp-ip gfp-ip 174364 Jan 26 15:32 libncurses++.a -rwxr-xr-x 1 gfp-ip gfp-ip 1295 Jan 26 15:32 libncurses++.la lrwxrwxrwx 1 gfp-ip gfp-ip 21 Jan 26 15:32 libncurses++.so -> libncurses++.so.6.0.0 lrwxrwxrwx 1 gfp-ip gfp-ip 21 Jan 26 15:32 libncurses++.so.6 -> libncurses++.so.6.0.0 -rwxr-xr-x 1 gfp-ip gfp-ip 114812 Jan 26 15:32 libncurses++.so.6.0.0 -rw-r--r-- 1 gfp-ip gfp-ip 628332 Jan 26 15:31 libncurses.a -rwxr-xr-x 1 gfp-ip gfp-ip 1019 Jan 26 15:31 libncurses.la lrwxrwxrwx 1 gfp-ip gfp-ip 19 Jan 26 15:31 libncurses.so -> libncurses.so.6.0.0 lrwxrwxrwx 1 gfp-ip gfp-ip 19 Jan 26 15:31 libncurses.so.6 -> libncurses.so.6.0.0 -rwxr-xr-x 1 gfp-ip gfp-ip 478356 Jan 26 15:31 libncurses.so.6.0.0 -rw-r--r-- 1 gfp-ip gfp-ip 26324 Jan 26 15:31 libpanel.a -rwxr-xr-x 1 gfp-ip gfp-ip 1062 Jan 26 15:31 libpanel.la lrwxrwxrwx 1 gfp-ip gfp-ip 17 Jan 26 15:31 libpanel.so -> libpanel.so.6.0.0 lrwxrwxrwx 1 gfp-ip gfp-ip 17 Jan 26 15:31 libpanel.so.6 -> libpanel.so.6.0.0 -rwxr-xr-x 1 gfp-ip gfp-ip 23652 Jan 26 15:31 libpanel.so.6.0.0 $ nm /appl/local/python-2.7.10/lib/libncurses.so | grep unctrl 0004acac T unctrl 00067540 r unctrl_blob.5717 00067440 r unctrl_c1.5716 0004aac0 T unctrl_sp 00067942 r unctrl_table.5715 So ONCE again, compiling Python module _curses with the new lib: Script started on Tue Jan 26 19:36:55 2016 $ make running build running build_ext building dbm using ndbm building '_curses' extension gcc -fPIC -fno-strict-aliasing -I/appl/local/python-2.7.10/include -I/appl/local/include -DNCURSES_OPAQUE=0 -DNCURSES_REENTRANT=0 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -IInclude -I./Include -I/appl/local/python-2.7.10/include -I/appl/local/include -I/usr/local/include -I/appl/logs/local_build/src/python.org/Python-2.7.10/Include -I/appl/logs/local_build/src/python.org/Python-2.7.10 -c /appl/logs/local_build/src/python.org/Python-2.7.10/Modules/_cursesmodule.c -o build/temp.solaris-2.10-sun4u.32bit-2.7/appl/logs/local_build/src/python.org/Python-2.7.10/Modules/_cursesmodule.o /appl/logs/local_build/src/python.org/Python-2.7.10/Modules/_cursesmodule.c: In function 'PyCursesWindow_ChgAt': /appl/logs/local_build/src/python.org/Python-2.7.10/Modules/_cursesmodule.c:713:9: warning: implicit declaration of function 'mvwchgat' [-Wimplicit-function-declaration] /appl/logs/local_build/src/python.org/Python-2.7.10/Modules/_cursesmodule.c:717:9: warning: implicit declaration of function 'wchgat' [-Wimplicit-function-declaration] gcc -shared -L/appl/local/python-2.7.10/lib -Wl,-rpath,/appl/local/python-2.7.10/lib -lncurses -R/appl/local/python-2.7.10/lib -L/appl/local/lib -L/appl/local/python-2.7.10/lib -Wl,-rpath,/appl/local/python-2.7.10/lib -lncurses -R/appl/local/python-2.7.10/lib -L/appl/local/lib -fno-strict-aliasing -I/appl/local/python-2.7.10/include -I/appl/local/include -DNCURSES_OPAQUE=0 -DNCURSES_REENTRANT=0 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -IInclude -I./Include -I/appl/local/python-2.7.10/include -I/appl/local/include -DNCURSES_OPAQUE=0 -DNCURSES_REENTRANT=0 build/temp.solaris-2.10-sun4u.32bit-2.7/appl/logs/local_build/src/python.org/Python-2.7.10/Modules/_cursesmodule.o -L/appl/local/python-2.7.10/lib -L/appl/local/lib -L/usr/local/lib -L. -Wl,-R/appl/local/python-2.7.10/lib -lncurses -lpython2.7 -o build/lib.solaris-2.10-sun4u.32bit-2.7/_curses.so *** WARNING: renaming "_curses" since importing it failed: ld.so.1: python: fatal: relocation error: file build/lib.solaris-2.10-sun4u.32bit-2.7/_curses.so: symbol _unctrl: referenced symbol not found building '_curses_panel' extension gcc -fPIC -fno-strict-aliasing -I/appl/local/python-2.7.10/include -I/appl/local/include -DNCURSES_OPAQUE=0 -DNCURSES_REENTRANT=0 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -IInclude -I./Include -I/appl/local/python-2.7.10/include -I/appl/local/include -I/usr/local/include -I/appl/logs/local_build/src/python.org/Python-2.7.10/Include -I/appl/logs/local_build/src/python.org/Python-2.7.10 -c /appl/logs/local_build/src/python.org/Python-2.7.10/Modules/_curses_panel.c -o build/temp.solaris-2.10-sun4u.32bit-2.7/appl/logs/local_build/src/python.org/Python-2.7.10/Modules/_curses_panel.o gcc -shared -L/appl/local/python-2.7.10/lib -Wl,-rpath,/appl/local/python-2.7.10/lib -lncurses -R/appl/local/python-2.7.10/lib -L/appl/local/lib -L/appl/local/python-2.7.10/lib -Wl,-rpath,/appl/local/python-2.7.10/lib -lncurses -R/appl/local/python-2.7.10/lib -L/appl/local/lib -fno-strict-aliasing -I/appl/local/python-2.7.10/include -I/appl/local/include -DNCURSES_OPAQUE=0 -DNCURSES_REENTRANT=0 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I. -IInclude -I./Include -I/appl/local/python-2.7.10/include -I/appl/local/include -DNCURSES_OPAQUE=0 -DNCURSES_REENTRANT=0 build/temp.solaris-2.10-sun4u.32bit-2.7/appl/logs/local_build/src/python.org/Python-2.7.10/Modules/_curses_panel.o -L/appl/local/python-2.7.10/lib -L/appl/local/lib -L/usr/local/lib -L. -Wl,-R/appl/local/python-2.7.10/lib -lpanel -lncurses -lpython2.7 -o build/lib.solaris-2.10-sun4u.32bit-2.7/_curses_panel.so *** WARNING: renaming "_curses_panel" since importing it failed: No module named _curses Python build finished, but the necessary bits to build these modules were not found: _bsddb bsddb185 linuxaudiodev ossaudiodev To find the necessary bits, look in setup.py in detect_modules() for the module's name. Failed to build these modules: _curses _curses_panel Here is LDD output for the built python: $ ldd python libncurses.so.6 => /appl/local/python-2.7.10/lib/libncurses.so.6 libpython2.7.so.1.0 => /appl/local/python-2.7.10/lib/libpython2.7.so.1.0 libsocket.so.1 => /lib/libsocket.so.1 libnsl.so.1 => /lib/libnsl.so.1 librt.so.1 => /lib/librt.so.1 libdl.so.1 => /lib/libdl.so.1 libm.so.2 => /lib/libm.so.2 libc.so.1 => /lib/libc.so.1 libgcc_s.so.1 => /appl/local/lib/libgcc_s.so.1 libmp.so.2 => /lib/libmp.so.2 libmd.so.1 => /lib/libmd.so.1 libscf.so.1 => /lib/libscf.so.1 libaio.so.1 => /lib/libaio.so.1 libdoor.so.1 => /lib/libdoor.so.1 libuutil.so.1 => /lib/libuutil.so.1 libgen.so.1 => /lib/libgen.so.1 /platform/SUNW,Netra-T12/lib/libc_psr.so.1 /platform/SUNW,Netra-T12/lib/libmd_psr.so.1 $ nm /appl/local/python-2.7.10/lib/libncurses.so.6 | grep unctrl 0004acac T unctrl 00067540 r unctrl_blob.5717 00067440 r unctrl_c1.5716 0004aac0 T unctrl_sp 00067942 r unctrl_table.5715 Unfortunately I see this in /usr/ccs/lib/libcurses.so $ nm /usr/ccs/lib/libcurses.so | grep unctrl 0003d5e8 D _unctrl 0000cb00 T unctrl I don't see any reference to unctrl except this: ./Modules/_cursesmodule.c: knp = unctrl(rtn); ./Modules/_cursesmodule.c: return PyString_FromString(unctrl(ch)); ./Modules/_cursesmodule.c: {"unctrl", (PyCFunction)PyCurses_UnCtrl, METH_VARARGS}, none of which is referencing _unctrl so it seems that python can never work with ncurses6...even though it seems there is support for it in the code. Any help? ---------- components: Extension Modules messages: 258984 nosy: jonesrw priority: normal severity: normal status: open title: Python with ncurses6.0 will not load _curses module. type: compile error versions: Python 2.7 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue26212> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com