Control: tag -1 - moreinfo On 25.06.2019 07:03, Helmut Grohne wrote:
> On Thu, Mar 28, 2019 at 01:14:13PM +0300, Yuriy M. Kaminskiy wrote: >> When cross-building sqlite3, it fails to detect readline: while >> actual code wants only <readline/readline.h> (see src/shell.c.in), >> but configure.ac checks for <readline.h>; > > I am unable to reproduce this issue. The public autobuilder cannot > reproduce it either: http://crossqa.debian.net/src/sqlite3 This is using > sbuild for performing the build. How does your build environment differ > to make sqlite3 fail? Please remove the moreinfo tag when providing an > answer. I built for armhf on i386/stretch host with pbuilder. Relevant lines from http://crossqa.debian.net/build/sqlite3_3.27.2-3_armhf_20190622023957.log (with mysteriously successful readline.h detection) checking for library containing readline... no checking for library containing tgetent... -lncurses checking for readline in -lreadline... yes checking for readline.h... (cached) yes Relevant lines from my (with failing readline.h detection): checking for library containing readline... no checking for library containing tgetent... -ltermcap checking for readline in -lreadline... yes checking readline.h usability... no checking readline.h presence... no checking for readline.h... no I have no idea what triggers difference (why there are no "checking readline.h (usability|presence)... " [that is expected to be emitted by AC_CHECK_HEADER] in autobuilder log? where that "(cached) yes" comes from?) FWIW, here are relevant lines from stretch-backports buildd https://buildd.debian.org/status/fetch.php?pkg=sqlite3&arch=armhf&ver=3.27.2-3%7Ebpo9%2B1&stamp=1560524760&raw=0 (native build, *NOT* cross-compiled) checking for library containing readline... no checking for library containing tgetent... -ltermcap checking for readline in -lreadline... yes checking readline.h usability... no checking readline.h presence... no checking for readline.h... no checking for /usr/include/readline.h... no checking for /usr/include/readline/readline.h... yes (Note: there are /(usability|presence)/ lines here; also note that it also fails to find readline.h, and fallbacks to below code [which is disabled for cross-builds]) >> @@ -548,12 +548,12 @@ if test x"$with_readline" != xno; then >> [with_readline_inc=$withval], >> [with_readline_inc="auto"]) >> if test "x$with_readline_inc" = xauto; then >> - AC_CHECK_HEADER(readline.h, [found="yes"], [ >> + AC_CHECK_HEADER(readline/readline.h, [found="yes"], [ >> found="no" >> if test "$cross_compiling" != yes; then > > From here it becomes irrelevant to cross building. The changed lines > are not executed during a cross build. They are still wrong/inconsistent: shell.c wants readline/readline.h, while they looks for readline.h >> for dir in /usr /usr/local /usr/local/readline >> /usr/contrib /mingw; do >> - for subdir in include include/readline; >> do >> - >> AC_CHECK_FILE($dir/$subdir/readline.h, found=yes) >> + for subdir in include; do >> + >> AC_CHECK_FILE($dir/$subdir/readline/readline.h, found=yes) >> if test "$found" = "yes"; then >> >> TARGET_READLINE_INC="-I$dir/$subdir" >> break >> > > Helmut >

