Ticket #1728 (closed defect: wontfix)
configure: error: S-Lang library version 2.0 or newer not found
Reported by: | al37919 | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | 4.7 |
Component: | mc-core | Version: | 4.7.0-pre3 |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Branch state: | Votes for changeset: |
Description
Trying to cross-compile 4.7.0-pre3 using optware/oleg toolchain. S-lang 2.1.4 is available and correctly staged (slang.h is found in "default place" even without providing --with-slang-{includes,libs})
configure fails with the following messages:
checking SLANG-headers in default place ... checking for slang.h... yes checking if S-Lang uses termcap... no checking for SLang_init_tty in -lslang... yes checking for S-Lang version 2.0 or newer... no checking SLANG-headers in /usr ... checking for slang.h... yes checking if S-Lang uses termcap... (cached) no checking for SLang_init_tty in -lslang... yes checking for S-Lang version 2.0 or newer... no checking SLANG-headers in /usr/local ... checking for slang.h... yes checking if S-Lang uses termcap... (cached) no checking for SLang_init_tty in -lslang... yes checking for S-Lang version 2.0 or newer... no configure: error: S-Lang library version 2.0 or newer not found make: *** [/home/al/broadcom/optware/oleg/builds/mc/.configured] Ошибка 1
The error happens due to the following lines of configure: 44024-44025
if test "$cross_compiling" = yes; then
mc_slang_is_valid_version=no
There are two problems here.
1) The displayed reason of configure's failure is misleading. It has failed not because of absence of slang2, but due to the fact of cross-compiling.
2) why cross compilation is prohibited at this point at all?
If I comment out this test, the further configure magics fails either. Here is the output with 'set -x' starting from the line 44023:
+ echo -n 'checking for S-Lang version 2.0 or newer... ' checking for S-Lang version 2.0 or newer... + cat + cat confdefs.h + cat + rm -f conftest + ac_try='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' + case "(($ac_try" in + ac_try_echo='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' + eval 'echo "$as_me:44057: $CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5"' ++ echo 'configure:44057: /home/al/broadcom/optware/oleg/toolchain/mipsel-linux-uclibc/gcc-4.1.1-uclibc-0.9.28/bin/mipsel-linux-uclibc-gcc -std=gnu99 -o conft + ac_status=0 + echo 'configure:44060: $? = 0' + exit 0 + ac_try='./conftest$ac_exeext' + case "(($ac_try" in + ac_try_echo='./conftest$ac_exeext' + eval 'echo "$as_me:44066: ./conftest$ac_exeext"' ++ echo 'configure:44066: ./conftest' + ac_status=126 + echo 'configure:44069: $? = 126' + exit 126
If I comment out lines 44024-44080 and explicitly provide:
mc_slang_is_valid_version=yes
then I'm able to cross compile mc till the end ( of course, with standard optware patches plus this one: http://www.midnight-commander.org/changeset/69b06c4de488992278a7e8b6339c7cfcb176f4bc ).
This "feature" was introduced in recent pre2. In pre1 configure goes smoothly till the end without any patches.
will be fixed in #1959