Hi, ncurses ebuild has an option to disable share libraries in cross compiler environment. Somehow, it does not work for me. Here is the outpu: bash# i686-pc-mingw32-emerge -1 ncurses Calculating dependencies... done! >>> Verifying ebuild manifests >>> Emerging (1 of 1) sys-libs/ncurses-5.9-r3::gentoo for /usr/i686-pc-mingw32/ * ncurses-5.9.tar.gz SHA256 SHA512 WHIRLPOOL size ;-) ... [ ok ] >>> Unpacking source... >>> Unpacking ncurses-5.9.tar.gz to /usr/i686-pc-mingw32/tmp/portage/sys-libs/ncurses-5.9-r3/work >>> Source unpacked in /usr/i686-pc-mingw32/tmp/portage/sys-libs/ncurses-5.9-r3/work >>> Preparing source in /usr/i686-pc-mingw32/tmp/portage/sys-libs/ncurses-5.9-r3/work/ncurses-5.9 ... * Applying ncurses-5.8-gfbsd.patch ... [ ok ] * Applying ncurses-5.7-nongnu.patch ... [ ok ] * Applying ncurses-5.9-rxvt-unicode-9.15.patch ... [ ok ] * Applying ncurses-5.9-fix-clang-build.patch ... [ ok ] * Applying ncurses-5.9-pkg-config.patch ... [ ok ] >>> Source prepared. >>> Configuring source in /usr/i686-pc-mingw32/tmp/portage/sys-libs/ncurses-5.9-r3/work/ncurses-5.9 ... * .default: running multilib-minimal_abi_src_configure * econf: updating ncurses-5.9/config.guess with /usr/share/gnuconfig/config.guess * econf: updating ncurses-5.9/config.sub with /usr/share/gnuconfig/config.sub /usr/i686-pc-mingw32/tmp/portage/sys-libs/ncurses-5.9-r3/work/ncurses-5.9/configure --prefix=/usr --build=x86_64-pc-linux-gnu --host=i686-pc-mingw32 --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --libdir=/usr/lib --with-terminfo-dirs=/etc/terminfo:/usr/share/terminfo --enable-pc-files --with-pkg-config=i686-pc-mingw32-pkg-config PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig --with-shared --without-hashed-db --without-ada --with-cxx --with-cxx-binding --without-debug --without-profile --without-gpm --disable-termcap --enable-symlinks --with-rcs-ids --with-manpage-format=normal --enable-const --enable-colorfgbg --enable-echo --enable-warnings --without-assertions --disable-leaks --without-expanded --with-macros --without-trace --without-termlib --with-chtype=long --with-mmask-t=long --disable-ext-colors --disable-ext-mouse --without-pthread --without-reentrant configure: loading site script /usr/share/config.site checking for egrep... grep -E Configuring NCURSES 5.9 ABI 5 (Fri Feb 27 14:46:59 SGT 2015) checking build system type... x86_64-pc-linux-gnu checking host system type... i686-pc-mingw32 checking target system type... i686-pc-mingw32 Configuring for mingw32 checking for prefix... /usr checking for i686-pc-mingw32-gcc... i686-pc-mingw32-gcc checking for C compiler default output... a.exe checking whether the C compiler works... yes checking whether we are cross compiling... yes checking for executable suffix... .exe checking for object suffix... o checking whether we are using the GNU C compiler... yes checking whether i686-pc-mingw32-gcc accepts -g... yes checking version of i686-pc-mingw32-gcc... 686 checking how to run the C preprocessor... i686-pc-mingw32-gcc -E checking whether i686-pc-mingw32-gcc needs -traditional... no checking whether i686-pc-mingw32-gcc understands -c and -o together... yes checking for POSIXized ISC... no checking for i686-pc-mingw32-gcc option to accept ANSI C... -DCC_HAS_PROTOS checking if you want to ensure bool is consistent with C++... yes checking for i686-pc-mingw32-g++... i686-pc-mingw32-g++ checking whether we are using the GNU C++ compiler... yes checking whether i686-pc-mingw32-g++ accepts -g... yes checking version of g++... 686 checking if you want to build C++ binding and demo... yes checking if you want to build with Ada95... no checking if you want to install manpages... yes checking if you want to build programs such as tic... yes checking if you want to build test-programs... yes checking if you wish to install curses.h... yes checking for mawk... no checking for gawk... gawk checking for egrep... (cached) grep -E checking for a BSD compatible install... /usr/lib/portage/python2.7/ebuild-helpers/xattr/install -c checking for tdlint... no checking for lint... no checking for alint... no checking for splint... no checking for lclint... no checking whether ln -s works... yes checking if ln -s -f options work... yes checking for long file names... yes checking if you want to use pkg-config... i686-pc-mingw32-pkg-config checking if we should install .pc files for i686-pc-mingw32-pkg-config... yes checking if we should assume mixed-case filenames... auto checking if filesystem supports mixed-case filenames... yes checking whether make sets ${MAKE}... yes checking for exctags... no checking for ctags... no checking for exetags... no checking for etags... no checking for ctags... no checking for etags... no checking for makeflags variable... checking for i686-pc-mingw32-ranlib... i686-pc-mingw32-ranlib checking for i686-pc-mingw32-ld... i686-pc-mingw32-ld checking for i686-pc-mingw32-ar... i686-pc-mingw32-ar checking for i686-pc-mingw32-ar... (cached) i686-pc-mingw32-ar checking for options to update archives... -curv checking if you have specified an install-prefix... checking for gcc... x86_64-pc-linux-gnu-gcc checking for native build C compiler... x86_64-pc-linux-gnu-gcc checking for native build C preprocessor... ${BUILD_CC} -E checking for native build C flags... -march=native -O2 -pipe checking for native build C preprocessor-flags... -D_GNU_SOURCE checking for native build linker-flags... checking for native build linker-libraries... checking if libtool -version-number should be used... yes checking if you want to build libraries with libtool... no checking if you want to build shared libraries... yes checking if you want to build static libraries... yes checking if you want to build debug libraries... no checking if you want to build profiling libraries... no checking for specified models... shared normal checking for default model... shared checking if you want to build a separate terminfo library... no checking if you want to build a separate tic library... no checking if you want to link with the GPM mouse library... no checking for default loader flags... checking if rpath option should be used... no checking if shared libraries should be relinked during install... yes checking for an rpath option... checking if release/abi version should be used for shared libs... auto checking which i686-pc-mingw32-gcc option to use... -fPIC configure: error: Shared libraries are not supported in this version !!! Please attach the following file when seeking support: !!! /usr/i686-pc-mingw32/tmp/portage/sys-libs/ncurses-5.9-r3/work/ncurses-5.9-.default-narrowc/config.log * ERROR: sys-libs/ncurses-5.9-r3::gentoo failed (configure phase): * econf failed * * Call stack: * ebuild.sh, line 93: Called src_configure * environment, line 2723: Called multilib-minimal_src_configure * environment, line 1883: Called multilib_foreach_abi 'multilib-minimal_abi_src_configure' * environment, line 2090: Called multibuild_foreach_variant '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_configure' * environment, line 1814: Called _multibuild_run '_multilib_multibuild_wrapper' 'multilib-minimal_abi_src_configure' * environment, line 1812: Called _multilib_multibuild_wrapper 'multilib-minimal_abi_src_configure' * environment, line 330: Called multilib-minimal_abi_src_configure * environment, line 1877: Called multilib_src_configure * environment, line 2312: Called do_configure 'narrowc' * environment, line 536: Called econf '--with-terminfo-dirs=/etc/terminfo:/usr/share/terminfo' '--enable-pc-files' '--with-pkg-config=i686-pc-mingw32-pkg-config' 'PKG_CONFIG_LIBDIR=/usr/lib/pkgconfig' '--with-shared' '--without-hashed-db' '--without-ada' '--with-cxx' '--with-cxx-binding' '--without-debug' '--without-profile' '--without-gpm' '--disable-termcap' '--enable-symlinks' '--with-rcs-ids' '--with-manpage-format=normal' '--enable-const' '--enable-colorfgbg' '--enable-echo' '--enable-warnings' '--without-assertions' '--disable-leaks' '--without-expanded' '--with-macros' '--without-trace' '--without-termlib' '--with-chtype=long' '--with-mmask-t=long' '--disable-ext-colors' '--disable-ext-mouse' '--without-pthread' '--without-reentrant' * phase-helpers.sh, line 584: Called die * The specific snippet of code: * die "econf failed"
The condition to which you refer is only for building some temporary binaries in case ncurses is not up to date on the build system. That's a separate issue. Perhaps do_configure should not forcably enable shared libs for normal building.
Windows should be able to produce shared libs (dll) for ncurses ...