In man 7 inotify, it states: "As at glibc 2.4, the definitions for IN_DONT_FOLLOW, IN_MASK_ADD, and IN_ONLYDIR are missing from <sys/inotify.h>." These definitions are required to build the inotify extension. Some options to fix this are: 1) require >=glibc-2.6 2) edit _inotify.c and change the include line for inotify.h from: #include <sys/inotify.h> to: #include <linux/inotify.h> (taken from http://www.selenic.com/mercurial/wiki/index.cgi/UnixInstall#head-f9d80dcf82f8c7033b70e180bdb112dfac70bb61 ) 3) make the inotify extention optional, or disable it for glibc-2.4 systems Reproducible: Always Steps to Reproduce: 1. emerge mercurial with glibc-2.4 Actual Results: [...] building 'hgext.inotify.linux._inotify' extension creating build/temp.linux-i686-2.4/hgext creating build/temp.linux-i686-2.4/hgext/inotify creating build/temp.linux-i686-2.4/hgext/inotify/linux i686-pc-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -march=athlon-xp -pipe -fomit-frame-pointer -fPIC -I/usr/include/python2.4 -c hgext/inotify/linux/_inotify.c -o build/temp.linux-i686-2.4/hgext/inotify/linux/_inotify.o hgext/inotify/linux/_inotify.c:172: error: 'IN_ONLYDIR' undeclared here (not in a function) hgext/inotify/linux/_inotify.c:173: error: 'IN_DONT_FOLLOW' undeclared here (not in a function) hgext/inotify/linux/_inotify.c:174: error: 'IN_MASK_ADD' undeclared here (not in a function) hgext/inotify/linux/_inotify.c: In function 'define_consts': hgext/inotify/linux/_inotify.c:266: warning: passing argument 3 of 'define_const' makes integer from pointer without a cast hgext/inotify/linux/_inotify.c:267: warning: passing argument 3 of 'define_const' makes integer from pointer without a cast hgext/inotify/linux/_inotify.c:268: warning: passing argument 3 of 'define_const' makes integer from pointer without a cast error: command 'i686-pc-linux-gnu-gcc' failed with exit status 1 Expected Results: successful build emerge --info Portage 2.1.4.4 (default-linux/x86/2007.0/desktop, gcc-4.1.2, glibc-2.4-r3, 2.6.22-gentoo-r2-2 i686) ================================================================= System uname: 2.6.22-gentoo-r2-2 i686 AMD Athlon(TM) XP 2000+ Timestamp of tree: Sun, 07 Sep 2008 09:06:01 +0000 distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] ccache version 2.4 [disabled] app-shells/bash: 3.2_p33 dev-lang/python: 2.4.4-r4 dev-python/pycrypto: 2.0.1-r6 dev-util/ccache: 2.4-r7 dev-util/confcache: 0.4.2-r1 sys-apps/baselayout: 1.12.11.1 sys-apps/sandbox: 1.2.18.1-r2 sys-devel/autoconf: 2.13, 2.61-r1 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1 sys-devel/binutils: 2.16.1-r3 sys-devel/gcc-config: 1.4.0-r4 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.22-r2 ACCEPT_KEYWORDS="x86" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=athlon-xp -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/revdep-rebuild /etc/terminfo" CXXFLAGS="-O2 -march=athlon-xp -pipe -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="distlocks metadata-transfer noinfo parallel-fetch sandbox sfperms strict unmerge-orphans userfetch" GENTOO_MIRRORS="http://mirror.datapipe.net/gentoo http://adelie.polymtl.ca/ http://gentoo.mirrors.tds.net/gentoo http://open-systems.ufl.edu/mirrors/gentoo" MAKEOPTS="-j3" 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/local/portage" SYNC="rsync://portage/gentoo-portage" USE="3dnow apache2 bash-completion bitmap-fonts bzip2 cli glibc-omitfp mad mmx multislot multitarget ncurses nptl nptlonly pcre readline reflection samba session spl udev x86 zlib" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon 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 deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" USERLAND="GNU" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Thanks for the report, assigning to maintainer
mercurial works fine with glibc-2.5-r4; there's no need to require >=2.6.
I think this has been fixed in Mercurial 1.1.
(In reply to comment #3) > I think this has been fixed in Mercurial 1.1. Closing bug then.