Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 248900 - x11-libs/pango-1.22.3 (and several previous ebuilds) fail to compile with "'HOST' undeclared"
Summary: x11-libs/pango-1.22.3 (and several previous ebuilds) fail to compile with "'H...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: Gentoo Linux Gnome Desktop Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2008-11-26 14:16 UTC by Santiago Gala
Modified: 2009-06-29 21:47 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Santiago Gala 2008-11-26 14:16:43 UTC
modules.c: In function 'read_modules':
modules.c:511: error: 'HOST' undeclared (first use in this function)
modules.c:511: error: (Each undeclared identifier is reported only once
modules.c:511: error: for each function it appears in.)
make[4]: *** [modules.lo] Error 1
make[4]: Leaving directory `/var/tmp/portage/x11-libs/pango-1.22.3/work/pango-1.22.3/pango'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/var/tmp/portage/x11-libs/pango-1.22.3/work/pango-1.22.3/pango'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/var/tmp/portage/x11-libs/pango-1.22.3/work/pango-1.22.3/pango'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/x11-libs/pango-1.22.3/work/pango-1.22.3'
make: *** [all] Error 2


Reproducible: Always

Steps to Reproduce:
1. emerge pango
2. wait for compilation error
3. enjoy

Actual Results:  
compilation fails with the given error

Expected Results:  
compilation works

# emerge --info
Portage 2.1.4.5 (default-linux/amd64/2007.0/desktop, gcc-4.2.4, glibc-2.6.1-r0, 2.6.27-gentoo-r4 x86_64)
=================================================================
System uname: 2.6.27-gentoo-r4 x86_64 Intel(R) Core(TM)2 CPU T7200 @ 2.00GHz
Timestamp of tree: Wed, 26 Nov 2008 08:00:01 +0000
app-shells/bash:     3.2_p33
dev-java/java-config: 1.3.7-r1, 2.1.6-r1
dev-lang/python:     2.4.4-r15, 2.5.2-r8
dev-python/pycrypto: 2.0.1-r6
dev-util/cmake:      2.6.2
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.61-r2
sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils:  2.19
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   2.2.6a
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=nocona -O2 -pipe -ftree-vectorize -fstrict-overflow -g"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config /var/bind /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-march=nocona -O2 -pipe -ftree-vectorize -fstrict-overflow -g"
DISTDIR="/usr/portage/distfiles"
FEATURES="distlocks metadata-transfer parallel-fetch sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LANG="es_ES.UTF-8"
LINGUAS="es es_ES en"
MAKEOPTS=""
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/portage/local/layman/voip /usr/portage/local/layman/sunrise /usr/portage/local/layman/bazaar /usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X aac acl acpi aiglx alsa amd64 apache2 arts avahi avi bash-completion berkdb bitmap-fonts bluetooth bonjour cairo cdr cli cracklib crypt cups curl dbus dlloader dri dvd dvdr dvdread eds emboss encode esd evdev evo fam firefox fortran galago gdbm gif gnome gnomecd gpm gstreamer gtk gtk2 hal iconv icu iproute2 ipv6 isdnlog java jpeg kde kdehiddenvisibility kerberos lcms ldap libg++ libnotify logrotate lucene mad midi mikmod mmx mono mouse mp3 mpeg mudflap ncurses nls nptl nptlonly nsplugin obex ogg opengl openmp oss pam pcre pdf pdflib perl png ppds pppd python qt3 qt3support qt4 quicktime readline reflection sdl session spell spl sse sse2 ssl svg tcpd theora threads tiff truetype truetype-fonts type1-fonts udev unicode v4l v4l2 vorbis xinerama xml xorg xrandr xulrunner xv xvid zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" APACHE2_MPMS="worker" DVB_CARDS="usb-wt220u" ELIBC="glibc" INPUT_DEVICES="synaptics mouse evdev keyboard" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="es es_ES en" USERLAND="GNU" VIDEO_CARDS="vesa i810 intel"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Santiago Gala 2008-11-26 14:32:52 UTC
Note: removing the line with HOST seems to work around the problem and does not seem to cause any harm. g_build_filename will produce no path element for the HOST variable in this case, I'm not sure what is intended there...
Comment 2 Rafał Mużyło 2008-11-26 19:53:07 UTC
Could you post a bigger part of your build.log,
at the very least the full command that triggered the error ?

(check also, if 'missing --run' wasn't triggered).
Comment 3 Santiago Gala 2008-11-27 13:56:32 UTC
Sorry, I pasted badly. One fragment, just after configure:

configuration:
        backends: Cairo Xft FreeType X
 cd . && /bin/sh /var/tmp/portage/x11-libs/pango-1.22.3/work/pango-1.22.3/missin
g --run automake-1.10 --gnits 
aclocal.m4:16: warning: this file was generated for autoconf 2.63.
You have another version of autoconf.  It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.
 cd . && /bin/sh ./config.status Makefile 
config.status: creating Makefile
cd . && /bin/sh /var/tmp/portage/x11-libs/pango-1.22.3/work/pango-1.22.3/missing --run autoheader
rm -f stamp-h1
touch config.h.in
cd . && /bin/sh ./config.status config.h
config.status: creating config.h
config.status: config.h is unchanged
make  all-recursive

(...)

/bin/sh ../libtool --tag=CC   --mode=compile x86_64-pc-linux-gnu-gcc -DHAVE_CONF
IG_H -I. -I.. -DG_LOG_DOMAIN=\"Pango\" -DPANGO_ENABLE_BACKEND -DPANGO_ENABLE_ENG
INE -DSYSCONFDIR=\"/etc\" -DLIBDIR=\"/usr/lib64\" -I.. -DG_DISABLE_CAST_CHECKS -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include   -I/usr/include/freetype2   -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12   -I/usr/include/freetype2         -march=nocona -O2 -pipe -ftree-vectorize -fstrict-overflow -g -Wall -MT modules.lo -MD -MP -MF .deps/modules.Tpo -c -o modules.lo modules.c
 x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I.. -DG_LOG_DOMAIN=\"Pango\" -DPANGO_ENABLE_BACKEND -DPANGO_ENABLE_ENGINE -DSYSCONFDIR=\"/etc\" -DLIBDIR=\"/usr/lib64\" -I.. -DG_DISABLE_CAST_CHECKS -pthread -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/libpng12 -I/usr/include/freetype2 -march=nocona -O2 -pipe -ftree-vectorize -fstrict-overflow -g -Wall -MT modules.lo -MD -MP -MF .deps/modules.Tpo -c modules.c  -fPIC -DPIC -o .libs/modules.o
modules.c: En la función ‘pango_module_load’:
modules.c:181: aviso: la dereferencia de punteros de tipo castigado romperá las reglas de alias estricto
modules.c:183: aviso: la dereferencia de punteros de tipo castigado romperá las reglas de alias estricto
modules.c:185: aviso: la dereferencia de punteros de tipo castigado romperá las reglas de alias estricto
modules.c:187: aviso: la dereferencia de punteros de tipo castigado romperá las 
modules.c: En la función ‘read_modules’:
modules.c:511: error: ‘HOST’ no se declaró aquí (primer uso en esta función)
modules.c:511: error: (Cada identificador no declarado solamente se reporta una vez
modules.c:511: error: para cada funcion en la que aparece.)
make[4]: *** [modules.lo] Error 1
make[4]: se sale del directorio `/var/tmp/portage/x11-libs/pango-1.22.3/work/pango-1.22.3/pango'

and the libtool call that gives the error. The cflags are not representative, I have tested all sort of variants always with the same results, which is no wonder as no include file in the package source or stdlib defines HOST that I can "grep -r".
Comment 4 Rafał Mużyło 2008-11-27 14:16:41 UTC
This:
/var/tmp/portage/x11-libs/pango-1.22.3/work/pango-1.22.3/missing --run automake-1.10 --gnits

is probably source of the problem
- multilib patch patches just one of the Makefile.in,
if automake is run, the change that defines HOST is lost.
Comment 5 Mart Raudsepp gentoo-dev 2008-11-30 00:56:58 UTC
Ok, so the patch got the Makefile.am part commented out due to a past misunderstanding of how and why maintainer-mode kicks in, but even then there is no reason ./missing --run maintainer-mode rebuild should be ran here, that's the underlying problem - uncommenting the Makefile.am is just for future-proofing in case we do start eautoreconf'ing ourselves - a ./missing --run call is a bug we need to fix, but there's no reason it should be happening, and it doesn't for me on amd64
Comment 6 Santiago Gala 2008-11-30 01:35:36 UTC
> Ok, so the patch got the Makefile.am part commented out due to a past
> misunderstanding of how and why maintainer-mode kicks in, but even then there
> is no reason ./missing --run maintainer-mode rebuild should be ran here, that's
> the underlying problem - uncommenting the Makefile.am is just for
> future-proofing in case we do start eautoreconf'ing ourselves - a ./missing
> --run call is a bug we need to fix, but there's no reason it should be
> happening, and it doesn't for me on amd64

What causes ./missing --run to be called? I'm no expert in the toolchain, and I want to know what causes this bug.

It can be the versions of packages, I'm mostly on stable for the toolchain, but not for gnome or other things... I'm seeing also a lot of problems with EAPI-2 masked packages lately. Sometimes a package (EAPI-1) has a dependency that only exists as EAPI-2 (I think monodevelop is there, not 100% sure)
Comment 7 Mart Raudsepp gentoo-dev 2008-11-30 01:46:39 UTC
(In reply to comment #6)
> > Ok, so the patch got the Makefile.am part commented out due to a past
> > misunderstanding of how and why maintainer-mode kicks in, but even then there
> > is no reason ./missing --run maintainer-mode rebuild should be ran here, that's
> > the underlying problem - uncommenting the Makefile.am is just for
> > future-proofing in case we do start eautoreconf'ing ourselves - a ./missing
> > --run call is a bug we need to fix, but there's no reason it should be
> > happening, and it doesn't for me on amd64
> 
> What causes ./missing --run to be called? I'm no expert in the toolchain, and I
> want to know what causes this bug.

It primarily happens when the timestamp of Makefile.in is older than that of Makefile.am at the time make gets to handling the directory where those are in in question. So all should be fine when Makefile.am is modified before Makefile.in - that is the case if it happens in a patch, or in case of other scenarios (like in-place editing with sed) where Makefile.am is ensured to be touched before Makefile.in. This often doesn't cause to issues for many, because for many their filesystem has only second-granularity timestamps (full seconds only, no nanoseconds or the like, so everything is rounded to x.0000 seconds), but always triggers it for those whose PORTAGE_TMPDIR is on a filesystem that has better granularity, such as XFS or tmpfs.

Problems also happen when only Makefile.am is touched, and not Makefile.in, of course, as then Makefile.am timestamp is newer than Makefile.in and the missing--run makefile dependency gets triggered and ./missing --run called. (Makefile dependencies are all about timestamps when deciding if a "target" needs to be re-done or not)
Comment 8 Santiago Gala 2008-11-30 08:44:44 UTC
ebuild /usr/portage/x11-libs/pango/pango-1.22.3.ebuild unpack && cd /var/tmp/portage/x11-libs/pango-1.22.3/work/pango-1.22.3 && stat Makefile*

 * pango-1.22.3.tar.bz2 RMD160 SHA1 SHA256 size ;-) ...                   [ ok ]
 * checking ebuild checksums ;-) ...                                      [ ok ]
 * checking auxfile checksums ;-) ...                                     [ ok ]
 * checking miscfile checksums ;-) ...                                    [ ok ]
 * checking pango-1.22.3.tar.bz2 ;-) ...                                  [ ok ]
>>> Unpacking source...
>>> Unpacking pango-1.22.3.tar.bz2 to /var/tmp/portage/x11-libs/pango-1.22.3/work
 * Fixing OMF Makefiles ...                                               [ ok ]
 * Running elibtoolize in: pango-1.22.3
 *   Applying portage-1.5.10.patch ...
 *   Applying sed-1.5.6.patch ...
 * Applying pango-1.2.5-lib64.patch ...                                   [ ok ]
>>> Source unpacked.
  File: «Makefile.am»
  Size: 1606      	Blocks: 8          IO Block: 4096   fichero regular
Device: 802h/2050d	Inode: 9472973     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2008-11-30 09:36:50.000000000 +0100
Modify: 2008-11-30 09:36:50.000000000 +0100
Change: 2008-11-30 09:36:50.000000000 +0100
  File: «Makefile.in»
  Size: 26749     	Blocks: 56         IO Block: 4096   fichero regular
Device: 802h/2050d	Inode: 9475183     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2008-11-30 09:36:50.000000000 +0100
Modify: 2008-11-30 09:36:50.000000000 +0100
Change: 2008-11-30 09:36:50.000000000 +0100

(later)

ebuild /usr/portage/x11-libs/pango/pango-1.22.3.ebuild compile
 * econf: updating pango-1.22.3/config.guess with /usr/share/gnuconfig/config.guess
 * econf: updating pango-1.22.3/config.sub with /usr/share/gnuconfig/config.sub
./configure --prefix=/usr --host=x86_64-pc-linux-gnu --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --sysconfdir=/etc --localstatedir=/var/lib --with-x --with-x --disable-gtk-doc --libdir=/usr/lib64 --build=x86_64-pc-linux-gnu

(...)

 cd . && /bin/sh /var/tmp/portage/x11-libs/pango-1.22.3/work/pango-1.22.3/missing --run automake-1.10 --gnits 
aclocal.m4:16: warning: this file was generated for autoconf 2.63.
You have another version of autoconf.  It may work, but is not guaranteed to.
If you have problems, you may need to regenerate the build system entirely.
To do so, use the procedure documented by the package, typically `autoreconf'.

(...)

 cd . && /bin/sh ./config.status Makefile 
config.status: creating Makefile
cd . && /bin/sh /var/tmp/portage/x11-libs/pango-1.22.3/work/pango-1.22.3/missing --run autoheader
rm -f stamp-h1
touch config.h.in
cd . && /bin/sh ./config.status config.h
config.status: creating config.h
config.status: config.h is unchanged
make  all-recursive

(...)

Not sure what is the meaning or what causes missing to run here, but I have autoconf-0.61-r2 installed in the 2.5 slot. I is  the last stable in amd64
Comment 9 Gilles Dartiguelongue (RETIRED) gentoo-dev 2009-06-29 21:47:28 UTC
looks like this was due to bug #226311. Please check it is fixed with 1.24.* ebuilds and reopen if it's not the case.