If you are cross compiling Samba with something like: CONFIG_SITE=config.site ./configure --host=arm-none-linux-gnueabi --without-krb5 --without-ldap --without-ads --with-privatedir=/var/locks --with-lockdir=/var/locks --with-piddir=/var/locks --with-modulesdir=/lib/vfs --with-aio-support --disable-fam and you do not have something like samba_cv_USE_SETRESUID=yes in config.site, you end up with problems in source3/lib/util_sec.c:set_effective_[gu]id et all, because they all have things like this: void set_effective_gid(gid_t gid) { #if USE_SETRESUID setresgid(-1,gid,-1); #endif #if USE_SETREUID setregid(-1,gid); #endif #if USE_SETEUID setegid(gid); #endif #if USE_SETUIDX setgidx(ID_EFFECTIVE, gid); #endif assert_gid(-1, gid); } If none of those USE_xxx symbols are set, nothing is done and you assert at runtime. It would be useful for those doing cross compiles if there was something in there that caused a compile time error if none of those symbols is set/defined or perhaps a configure time error if none of them is defined in a cross compiling situation.
I guess it is too hard to do anything about this ...