SUMMARY: The source/includes/includes.h uses SMB_BIG_UINT before it is declared. OBSERVATION: This causes a compile of dynconfig.c to fail during the make on LynxOS/ppc 4.0.0 patchlevel 48 with this error: In file included from /usr/include/sys/vfs.h:25, from include/includes.h:293, from dynconfig.c:21: include/vfs.h:200: parse error before `SMB_BIG_UINT' include/vfs.h:200: warning: no semicolon at end of struct or union include/vfs.h:200: warning: no semicolon at end of struct or union include/vfs.h:202: parse error before `unid_t' include/vfs.h:202: warning: `enum SMB_QUOTA_TYPE' declared inside parameter list include/vfs.h:202: warning: its scope is only this definition or declaration, which is probably not what you want. include/vfs.h:203: parse error before `unid_t' include/vfs.h:203: warning: `enum SMB_QUOTA_TYPE' declared inside parameter list ANALYSIS: The relevant portion of the include file ordering is: dynconfig.c:21 #include "includes.h" include/includes.h:293 #include <sys/vfs.h> /usr/include/sys/vfs.h:25 #include <vfs.h> include/vfs.h:200 SMB_BIG_UINT (*disk_free)(... include/includes.h:710 #define SMB_BIG_UINT unsigned long long Within includes.h the sys/vfs.h include pulls in include/vfs.h which makes a reference to SMB_BIG_UINT. Later in the file at line 710 the SMB_BIG_UINT is defined... too late. Further examination of includes.h reveals other SMB_BIG_UINT references to SMB_BIG_UINT before it has been defined. POSSIBLE FIX: Move the SMB_BIG_UINT definitions up earlier in includes.h CONCLUSIONS: Thank you for all your great work on Samba.
Thanks. Got it. Will be fixed in 3.0.3pre1
I hate it when I mark something as fixed that isn't. The #include <vfs.h> from sys/vfs.h should be pulling the system's vfs.h and not ours. Silly header name conflict.
Jeremy, the only solution I see if to rename our vfs.h. Have you got a better idea?
later. trying to clean house to find the real bugs.