Search code examples
gdbmingwtui

Build GDB in Mingw error, configure: error: no enhanced curses library found; disable TUI


I tried to build GDB 7.51 in mingw for cross platform debugging, and I found GDB has TUI as frontend. Anyway, I configure GDB with --enable-tui, and then make always stop with error message:

configure: error: no enhanced curses library found; disable TUI

I checked this problem by google, and then I downloaded ncurses source from GNU

ncurses 5.9

build and install it in my c:/mingw/msys/1.0/local/

run the configure of GDB with following script statements

export PATH=$PREFIX/gccbinutils/bin/:/usr/local/bin:/usr/bin:/bin:/mingw/bin
export C_INCLUDE_PATH=/usr/local/include:/usr/local/include/ncursest:/usr/include:/c/mingw/include
export CPLUS_INCLUDE_PATH=/usr/local/include:/usr/local/include/ncursest:/usr/include:/c/mingw/include
export LIBRARY_PATH=/usr/local/lib:/usr/lib:/c/mingw/lib
export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib:/c/mingw/lib
export LDFLAGS="-L/usr/local/lib -L/usr/lib -L/c/mingw/lib"
export LIBS="-lncursest"

$BUILD_MIPSGCCDIR/gdb/configure --prefix=$PREFIX/$pkg --target=$TARGET \
                --enable-tui \
                            --enable-curses \
                --enable-sim > $BUILDPATH/$TARGET$pkg.conf1.$argn.log  2>&1

but it did not work. Make stopped with following messages

checking for zlib.h... yes
checking for library containing dlgetmodinfo... no
checking for iconv... yes
checking for iconv declaration... install-shextern size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
checking for library containing waddstr... no
configure: error: no enhanced curses library found; disable TUI
make[1]: *** [configure-gdb] Error 1
make[1]: Leaving directory `/d/tools/buildmipsgcc/build_gdb'
make: *** [all] Error 2 

I have searched the waddstr , and sure it was exist in my c:/mingw/msys/1.0/local/lib/libncursest.a.


Solution

  • OK, lets try to fool Autotools by providing hand-written libncurses.la:

    # libncurses.la - a libtool library file
    # Generated by ltmain.sh (GNU libtool) 2.2.7a
    #
    # Please DO NOT delete this file!
    # It is necessary for linking the library.
    
    # The name that we can dlopen(3).
    dlname=''
    
    # Names of this library.
    library_names=''
    
    # The name of the static archive.
    old_library='libncursest.a'
    
    # Linker flags that can not go in dependency_libs.
    inherited_linker_flags=''
    
    # Libraries that this one depends upon.
    dependency_libs=''
    
    # Names of additional weak libraries provided by this library
    weak_library_names=''
    
    # Version information for libncurses.
    current=5
    age=0
    revision=9
    
    # Is this an already installed library?
    installed=yes
    
    # Should we warn about portability when linking against -modules?
    shouldnotlink=no
    
    # Files to dlopen/dlpreopen
    dlopen=''
    dlpreopen=''
    
    # Directory that this library needs to be installed in:
    libdir='c:/mingw/msys/1.0/local/lib'
    

    Check paths and names that I've supplied, if they are different - change them. Report if it still does not work, and I'll try to expand it further until we finally fix it.