Can't compile Samba4 026fcc6

Michael Wood esiotrot at gmail.com
Tue Jun 15 10:15:38 MDT 2010


I pulled the latest changes from git earlier (026fcc6) and tried
compiling.  I got errors to do with not being able to find talloc.h
and tevent.h.  I tried "waf clean" which was taking a while, so I
killed that and rather did:

$ rm -r *
$ rm .gitignore .lock*
$ git reset --hard HEAD

I still couldn't build with the same error, so I tried pulling again
to see if I had perhaps got a bad commit in the middle of some
changes.  There were a couple more checkins, but I still can't finish
the build with d913aac.

It trips up on lib/ldb/modules/sort.c as follows:

michael at lucid:~/src/samba/source4$ waf build
Waf: Entering directory `/home/michael/src/samba/source4/bin'
[ 541/1947] Compiling lib/ldb/modules/sort.c
In file included from ../lib/ldb/include/ldb_module.h:36,
                 from ../lib/ldb/modules/sort.c:34:
../lib/ldb/include/ldb.h:50:20: error: talloc.h: No such file or directory
../lib/ldb/include/ldb.h:51:20: error: tevent.h: No such file or directory
In file included from ../lib/ldb/include/ldb_module.h:36,
                 from ../lib/ldb/modules/sort.c:34:
../lib/ldb/include/ldb.h:80: error: expected specifier-qualifier-list
before ‘uint8_t’
../lib/ldb/include/ldb.h:200: error: expected declaration specifiers
or ‘...’ before ‘va_list’
../lib/ldb/include/ldb.h:210: error: expected declaration specifiers
or ‘...’ before ‘TALLOC_CTX’
../lib/ldb/include/ldb.h:210: error: expected declaration specifiers
or ‘...’ before ‘size_t’
../lib/ldb/include/ldb.h:298: error: expected ‘)’ before ‘*’ token
../lib/ldb/include/ldb.h:299: error: expected ‘)’ before ‘*’ token
../lib/ldb/include/ldb.h:315: error: expected ‘)’ before ‘*’ token
../lib/ldb/include/ldb.h:331: error: expected ‘)’ before ‘*’ token
../lib/ldb/include/ldb.h:336: error: expected declaration specifiers
or ‘...’ before ‘TALLOC_CTX’
../lib/ldb/include/ldb.h:337: error: expected declaration specifiers
or ‘...’ before ‘TALLOC_CTX’
[...]

It seems talloc.h and tevent.h are not where they are expected to be?

michael at lucid:~/src/samba/source4/bin$ find ../.. -type f -name
talloc.h -o -name tevent.h
../../lib/tevent/tevent.h
../../lib/talloc/talloc.h

Here are all the include dirs passed to gcc:
-Idefault/source4/lib/ldb -I../lib/ldb
-Idefault/source4/lib/ldb/include -I../lib/ldb/include
-Idefault/source4 -I.. -Idefault/lib -I../../lib -Idefault/source4/lib
-I../lib -Idefault/source4/include -I../include -Idefault -I../..
-Idefault/lib/socket_wrapper -I../../lib/socket_wrapper
-Idefault/lib/replace -I../../lib/replace

Indeed, ../../lib/tevent and ../../lib/talloc are not included in the list.

Is master currently broken or is the problem on my end? :)

-- 
Michael Wood <esiotrot at gmail.com>


More information about the samba-technical mailing list