Re: Re: ./configure bricht mit "error: conflicting types for 'size_t'" ab
Guido Pinkernell <[email protected]>
| Newsgroups | gmane.linux.suse.programming |
|---|---|
| Message-ID | <[email protected]> |
Danke für die Rückmeldung. Um es vorweg zu nehmen: Auch
unistd.h liest die (widersprechende) stddef.h aus. Details
inline:
Am Montag, 22. Oktober 2007 21:08:26 schrieb Philipp Thomas:
> On Mon, 22 Oct 2007 15:48:19 +0200, Guido Pinkernell
wrote:
> >[1]. Ich vermute, es hängt mit sich
> >widersprechenden Definitionen von size_t zusammen, die
> > im log zuerst wohl aus iconv ausgelesen werden, und
> > dann am Schluss, als libz überprüft wird. (Im übrigen
> > zeigt die config.log noch an anderen Stellen die
> >Fehlermeldung "error: conflicting types for 'size_t'"
> > an. Nur bei libz führt sie zum Abbruch.)
>
> Deine Schlussfolgerungen sind falsch. ticonv.h lädt
> stddef.h, um die Definition von size_t zu bekommen. Nun
> scheint diese Definition nicht mit dem übereinzustimmen,
> was in unistd.h steht.
[...]
> Zeile 245 aus /usr/include/unistd.h von glibc-devel aus
> 10.3 (keine Updates) enthält bei mir:
>
> #if defined __USE_BSD || defined __USE_XOPEN
> # ifndef __socklen_t_defined
> typedef __socklen_t socklen_t;
> # define __socklen_t_defined
> # endif
> #endif
Bei mir steht dasselbe - siehe unten.
> Also poste doch bitte mal (mit ein wenig Kontext), was
> bei Dir and den Stellen in /usr/include/unistd.h und
> /usr/lib64/gcc/x86_64-suse-linux/4.2.1/include/stddef.h
> steht.
Ich zitiere noch einmal der Nachvollziehbarkeit halber die
entsprechenden Passagen aus der config.log und dann die
Passagen der dort angesprochen Dateien:
=== config.log ===
configure:36130: gcc -o
conftest -g -O2 -D__LINUX__ -I. -D_REENTRANT
conftest.c -L/usr/lib64 -lz >&5
In file included from /usr/include/zconf.h:289,
from /usr/include/zlib.h:34,
from conftest.c:119:
/usr/include/unistd.h:245: error: conflicting types
for 'size_t'
/usr/lib64/gcc/x86_64-suse-linux/4.2.1/include/stddef.h:214:
error: previous declaration of 'size_t' was here
=== unistd.h = Zeilen 195 - 248 ===
=== man beachte Zeile 198 ===
#define __need_size_t
#define __need_NULL
#include <stddef.h>
#if defined __USE_XOPEN || defined __USE_XOPEN2K
/* The Single Unix specification says that some more types
are
available here. */
# ifndef __gid_t_defined
typedef __gid_t gid_t;
# define __gid_t_defined
# endif
# ifndef __uid_t_defined
typedef __uid_t uid_t;
# define __uid_t_defined
# endif
# ifndef __off_t_defined
# ifndef __USE_FILE_OFFSET64
typedef __off_t off_t;
# else
typedef __off64_t off_t;
# endif
# define __off_t_defined
# endif
# if defined __USE_LARGEFILE64 && !defined __off64_t_defined
typedef __off64_t off64_t;
# define __off64_t_defined
# endif
# ifndef __useconds_t_defined
typedef __useconds_t useconds_t;
# define __useconds_t_defined
# endif
# ifndef __pid_t_defined
typedef __pid_t pid_t;
# define __pid_t_defined
# endif
#endif /* X/Open */
#if defined __USE_MISC || defined __USE_XOPEN_EXTENDED
# ifndef __intptr_t_defined
typedef __intptr_t intptr_t;
# define __intptr_t_defined
# endif
#endif
= schließlich die Zeilen 243 bis 248 =
#if defined __USE_BSD || defined __USE_XOPEN
# ifndef __socklen_t_defined
typedef __socklen_t socklen_t;
# define __socklen_t_defined
# endif
#endif
=== stddef.h = Zeilen 213 bis 218 ===
#if !(defined (__GNUG__) && defined (size_t))
typedef __SIZE_TYPE__ size_t;
#ifdef __BEOS__
typedef long ssize_t;
#endif /* __BEOS__ */
#endif /* !(defined (__GNUG__) && defined (size_t)) */
=== Ende ===
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]