when compiling shadow there is an error in the cross linux from scratch documentation. instead of echo "#define ENABLE_SUBUIDS 1" >> config.h one has to run echo "#define ENABLE_SUBIDS 1" >> config.h as otherwise make fails with: usermod.c:1364:10: error: 'vflg' undeclared (first use in this function) if ( (vflg || Vflg) ^ usermod.c:1364:10: note: each undeclared identifier is reported only once for each function it appears in usermod.c:1364:18: error: 'Vflg' undeclared (first use in this function) if ( (vflg || Vflg) ^ usermod.c:1365:10: error: 'is_sub_uid' undeclared (first use in this function) && !is_sub_uid) { ^ usermod.c:1372:10: error: 'wflg' undeclared (first use in this function) if ( (wflg || Wflg) ^ usermod.c:1372:18: error: 'Wflg' undeclared (first use in this function) if ( (wflg || Wflg) ^ usermod.c:1373:10: error: 'is_sub_gid' undeclared (first use in this function) && !is_sub_gid) { ^ make[2]: *** [usermod.o] Error 1 make[2]: Leaving directory `/mnt/clfs/sources/shadow-4.2.1/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/mnt/clfs/sources/shadow-4.2.1' make: *** [all] Error 2