Please put this into a bug report.  This is the kind of information that when 
analyzed will help find a solution.

Having duplicate definitions in sys/stat.h sys/types.h and sys/dirent.h is 
*REALLY* bad, and unless they have some #define that can avoid the conflict, 
we may be in trouble.  Any user program should be able to pull in those three 
headers without a problem.  They might insist on a particular order or 
pulling them in from anothe header -- but if there is no way to pull them in, 
I don't know exactly what we will do.  You might try their "man" pages on 
stat, types, and dirent.  There could be something in there.

Also, you might try diffing those files against the same files on an older 
Darwin that built correctly with Bacula.  At least we could see what they 
changed. 

Kern

On Thursday 22 November 2007 20.35:44 Brian A. Seklecki (Mobile) wrote:
> Andrea:
>
> I'll give you a few pointers.
>
> The duplicate definitions are in: sys/stat.h and sys/types.h, and
> sys/dirent.h:
>
> /*
> #ifndef _INO_T
> typedef __darwin_ino_t          ino_t;          */ /* inode number */ /*
> #define _INO_T
> #endif
> */
>
> Commenting all three definitions out causes the "struct dirent {}" be
> have an incomplete member type "ino_t d_ino"
>
>  (Which then causes the GNU Autoconf probe to fail and HAVE_DIRENT)
>  to fail.)
>
> The ino_t type *IS* being defined somewhere (other than the three places
> above) -- perhaps in the machine-dependent includes.
>
> The autoconf test suite checks fails, but inside the Bacula findlib/*
> code, exclusive inclusion of <dirent.h> in w/ HAVE_DIRENT_H 1 causes the
> proper dependent inclusions.
>
> Otherwise you end up with:
>
> Compiling find_one.c
> find_one.c: In function 'int find_one_file(JCR*, FF_PKT*, int
> (*)(FF_PKT*, void*, bool), void*, char*, dev_t, bool)':
> find_one.c:465: error: 'DIR' was not declared in this scope
> find_one.c:465: error: 'directory' was not declared in this scope
> find_one.c:591: error: 'opendir' was not declared in this scope
> find_one.c:609: error: invalid application of 'sizeof' to incomplete
> type 'dirent'
> find_one.c:614: error: 'readdir_r' was not declared in this scope
> find_one.c:620: error: invalid application of 'sizeof' to incomplete
> type 'dirent'
> find_one.c:620: error: 'NAMELEN' was not declared in this scope
> find_one.c:621: error: invalid use of undefined type 'struct dirent'
> find_one.c:466: error: forward declaration of 'struct dirent'
> find_one.c:628: error: 'NAMELEN' was not declared in this scope
> find_one.c:633: error: 'NAMELEN' was not declared in this scope
> find_one.c:644: error: 'closedir' was not declared in this scope
> *** Error code 1
>
> > Are you running XCode 2.5 or 3.0 ?
>
> XCode 3.0 wont install on 10.4.x.  XCode 2.5 might install on 10.5.x
> (and prevent these problems).
>
> The HAVE_INTXX_T checks definitely fail on 10.3 w/ XCode 3.0:
>
> Here is the OS/X 10.5.1 (9.1.0) config.log excerpt for:
> AC_CACHE_CHECK([for intXX_t types], ac_cv_have_intxx_t, [])
>
> | #define HAVE_INTMAX_T 1
> | /* end confdefs.h.  */
> |  #include <stdint.h>
> | int
> | main ()
> | {
> |  u_intmax_t a; a = 1;
> |   ;
> |   return 0;
> | }
>
> configure:25826: result: no
> configure:25837: checking for intXX_t types
> configure:25859: gcc -c -pipe -O2 -I/usr/include -D_REENTRANT
> -no-cpp-precomp -I/usr/include -D_REENTRANT conftest.c >
> &5
> In file included from conftest.c:84:
> /usr/include/sys/types.h:100: error: two or more data types in
> declaration specifiers
> /usr/include/sys/types.h:135: error: two or more data types in
> declaration specifiers
> /usr/include/sys/types.h:135: error: two or more data types in
> declaration specifiers
> configure:25865: $? = 1
>
> configure: failed program was:
> | /* confdefs.h.  */
>
> ------------------------------------------------------------------------
>
> Here is the OS/X 10.4.11 (Darwin 8.11.1) config.log excerpt for:
>
> AC_CACHE_CHECK([for intXX_t types], ac_cv_have_intxx_t, [])
>
> ---
>
> | #define HAVE_INTMAX_T 1
> | /* end confdefs.h.  */
> |  #include <stdint.h>
> | int
> | main ()
> | {
> |  u_intmax_t a; a = 1;
> |   ;
> |   return 0;
> | }
>
> configure:25820: result: no
> configure:25831: checking for intXX_t types
> configure:25853: gcc -c -pipe -O2 -I/usr/include -D_REENTRANT
> -no-cpp-precomp -I/usr/include -D_REENTRANT conftest.c >
> &5
> configure:25859: $? = 0
> configure:25863: test -z
>
>                          || test ! -s conftest.err
>
> configure:25866: $? = 0
> configure:25869: test -s conftest.o
> configure:25872: $? = 0
> configure:25885: result: yes
> configure:25895: checking for int64_t type
> ------------------
>
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by: Microsoft
> Defy all challenges. Microsoft(R) Visual Studio 2005.
> http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
> _______________________________________________
> Bacula-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/bacula-devel



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
Bacula-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/bacula-devel

Reply via email to