Bug 1483

Summary: Can't build texinfo without extra host dependencies
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Joshua Lock - Disabled <josh>
Component: coreAssignee: Joshua Lock - Disabled <josh>
Status: VERIFIED FIXED QA Contact:
Severity: normal    
Priority: High CC: jiajun.xu, meta.mr.watcher, meta.watcher
Version: unspecified   
Target Milestone: 1.1   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: ---
Attachments:
Description Flags
log.do_compile
none
log.do_configure none

Description Joshua Lock - Disabled 2011-09-14 11:16:07 UTC
Trying to build world for qemumips texinfo fails.

ERROR: Function 'do_compile' failed (see /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/temp/log.do_compile.23839 for further information)
ERROR: Logfile of failure stored in: /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/temp/log.do_compile.23839
Log data follows:
| DEBUG: SITE files ['endian-big', 'bit-32', 'mips-common', 'common-linux', 'common-glibc', 'mips-linux', 'common']
| make: Entering directory `/srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/tools/gnulib/lib'
| make  all-am
| make[1]: Entering directory `/srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/tools/gnulib/lib'
| make[1]: Nothing to be done for `all-am'.
| make[1]: Leaving directory `/srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/tools/gnulib/lib'
| make: Leaving directory `/srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/tools/gnulib/lib'
| NOTE: make -j 12
| make  all-recursive
| make[1]: Entering directory `/srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13'
| Making all in tools
| make[2]: Entering directory `/srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/tools'
| make  all-recursive
| make[3]: Entering directory `/srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/tools'
| Making all in lib
| make[4]: Entering directory `/srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/tools/lib'
| make[4]: Nothing to be done for `all'.
| make[4]: Leaving directory `/srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/tools/lib'
| Making all in info
| make[4]: Entering directory `/srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/tools/info'
| make  all-am
| make[5]: Entering directory `/srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/tools/info'
| ccache gcc  -g -O2   -o ginfo dir.o display.o dribble.o echo-area.o filesys.o footnotes.o gc.o indices.o info-utils.o info.o infodoc.o infomap.o m-x.o man.o nodemenu.o nodes.o search.o session.o signals.o terminal.o tilde.o variables.o window.o doc.o ../lib/libtxi.a ../gnulib/lib/libgnu.a
| terminal.o: In function `terminal_goto_xy':
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:235: undefined reference to `tgoto'
| terminal.o: In function `terminal_delete_lines':
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:365: undefined reference to `tgoto'
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:365: undefined reference to `tputs'
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:369: undefined reference to `tputs'
| terminal.o: In function `terminal_insert_lines':
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:389: undefined reference to `tgoto'
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:389: undefined reference to `tputs'
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:393: undefined reference to `tputs'
| terminal.o: In function `terminal_get_screen_size':
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:481: undefined reference to `tgetnum'
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:493: undefined reference to `tgetnum'
| terminal.o: In function `terminal_initialize_terminal':
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:539: undefined reference to `tgetent'
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:553: undefined reference to `tgetstr'
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:579: undefined reference to `tgetstr'
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:580: undefined reference to `tgetstr'
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:581: undefined reference to `tgetstr'
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:582: undefined reference to `tgetstr'
| terminal.o:/srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:585: more undefined references to `tgetstr' follow
| terminal.o: In function `terminal_initialize_terminal':
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:617: undefined reference to `tgetflag'
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:620: undefined reference to `tgetstr'
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:628: undefined reference to `tgetstr'
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:629: undefined reference to `tgetstr'
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:630: undefined reference to `tgetstr'
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:631: undefined reference to `tgetstr'
| terminal.o:/srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:633: more undefined references to `tgetstr' follow
| terminal.o: In function `terminal_initialize_terminal':
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:617: undefined reference to `tgetflag'
| terminal.o: In function `terminal_begin_using_terminal':
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:135: undefined reference to `tputs'
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:144: undefined reference to `tputs'
| terminal.o: In function `terminal_end_using_terminal':
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:166: undefined reference to `tputs'
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:175: undefined reference to `tputs'
| terminal.o: In function `terminal_goto_xy':
| /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:235: undefined reference to `tputs'
| terminal.o:/srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/info/terminal.c:272: more undefined references to `tputs' follow
| collect2: ld returned 1 exit status
| make[5]: *** [ginfo] Error 1
| make[5]: Leaving directory `/srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/tools/info'
| make[4]: *** [all] Error 2
| make[4]: Leaving directory `/srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/tools/info'
| make[3]: *** [all-recursive] Error 1
| make[3]: Leaving directory `/srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/tools'
| make[2]: *** [all] Error 2
| make[2]: Leaving directory `/srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13/tools'
| make[1]: *** [all-recursive] Error 1
| make[1]: Leaving directory `/srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/texinfo-4.13'
| make: *** [all] Error 2
| ERROR: oe_runmake failed
| ERROR: Function 'do_compile' failed (see /srv/yocto/poky/build/tmp/work/mips-poky-linux/texinfo-4.13a-r1/temp/log.do_compile.23839 for further information)
NOTE: package texinfo-4.13a-r1: task do_compile: Failed
Comment 1 Joshua Lock - Disabled 2011-09-14 11:17:20 UTC
Created attachment 228 [details]
log.do_compile
Comment 2 Joshua Lock - Disabled 2011-09-14 14:40:12 UTC
Same failure for qemux86, further investigation required.
Comment 3 Saul Wold 2011-09-14 15:44:17 UTC
Can you also attach your do_configure log, I think there might be an ordering issue and we need to fix a DEPENDS issue.  I want to see the way it configured and set up HAVE_NCURSES_TERMCAP and HAVE_TERMCAP specificly
Comment 4 Joshua Lock - Disabled 2011-09-14 15:55:31 UTC
Created attachment 229 [details]
log.do_configure
Comment 5 Joshua Lock - Disabled 2011-09-14 15:56:43 UTC
Yeah, I'd just noticed we don't have ncurses in DEPENDS...
Comment 6 Saul Wold 2011-09-14 16:16:44 UTC
Yes, that's your probelm, the do configure:
checking for tgetent in -lncurses... no
checking for tgetent in -lcurses... no
checking for tgetent in -ltermlib... no
checking for tgetent in -ltermcap... no
checking for tgetent in -lterminfo... no
configure: WARNING: probably need a terminal library, one of: ncurses curses termlib termcap terminfo

So we need to add a ncurses to DEPENDS.
Comment 7 Joshua Lock - Disabled 2011-09-14 17:44:26 UTC
This appears to be some kind of hellish host intrusion.

Texinfo does not support full cross compiling, it requires certain texinfo utilities on the host system.

We ASSUME_PROVIDED texinfo-native and require it on the build system to run, yet in the recipe we attempt to build the tools/ subdirectory with the host system - this requires a terminal library on the host.
Comment 8 Joshua Lock - Disabled 2011-09-14 18:32:59 UTC
Unsurprisingly installing the development packages of texinfo's dependencies on my host (zlib-devel and ncurses-devel) works around this issue, but I'm fairly certain we don't want to require this of our users?

We patch out building the host version of the tools (native-tools in configure.ac)
Comment 10 Joshua Lock - Disabled 2011-09-19 10:15:48 UTC
I filed it so I guess I have to verify it...