> -----Original Message-----
> From: Kevin Atkinson [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, November 28, 2000 9:01 AM
> To: [EMAIL PROTECTED]
> Subject: Re: Problem with ltdl.h
> 
> 
> On Tue, 28 Nov 2000, Kevin Atkinson wrote:
> 
> > 
> > I just updated to the latest CVS version of libtool and I 
> noticed two
> > problems.
> > 
> > 1) Even though I defined LT_NON_POSIX_NAMESPACE I still 
> can't get lt_ptr_t
> > to work.  After looking at the header file I discovered the 
> really is
> > LT_FUBAR_NAMESPACE.  Either the docs or the header files need to be
> > changed....
> > 
> > 2) I keep on getting...
> > /usr/local/include/ltdl.h:143: conflicting types for 
> `typedef struct 
> > lt_dlhandle *lt_dlhandle'
> > /usr/local/include/ltdl.h:143: previous declaration as `struct 
> > lt_dlhandle'
> > 
> > I tried the affending line on egcs 1.1 gcc 2.95 and the gcc 
> included in
> > RedHat 7.0 and all of them give the same error.
> 
> I should add that this works with C code but not in C++ code.
> 

Ooooh... Now I understand better: this diagnostic is due to the fact that in
C++
        struct lt_dlhandle
automatically define a TYPENAME i.e. makes an implicit
        typedef struct lt_dlhandle lt_dlhandle;

Then the explicit
        typedef struct lt_dlhandle* lt_dlhandle;

defining the TYPENAME lt_dlhandle to be a pointer-to struct lt_dlhandle
creates a conflict.

I must say that although this is perfect C code, it's nevertheless highly
questionable... It's kinda

#define ADD(a, b)       ((a) - (b))
                       ^
                       |
This is not an error and was intentional to show some perfectly legal code
that I would never accept if a programmer do that in my team ;-0

To be coherent, either the explicit typedef should read 
        typedef struct lt_dlhandle* lt_dlhandle_ptr;
or
        typedef struct lt_dlhandle* lt_dlhandle_handle;
or the struct name is not good and everything should read:
        typedef struct lt_dl* lt_dlhandle;
but clearly here we have a naming problem :-)

I don't know from where this problem comes; I'm using a quite recent
CVS-libtool (from beginning of october I think) and do not have this
problem.

HTH

        Bernard

--------------------------------------------
Bernard Dautrevaux
Microprocess Ingenierie
97 bis, rue de Colombes
92400 COURBEVOIE
FRANCE
Tel:    +33 (0) 1 47 68 80 80
Fax:    +33 (0) 1 47 88 97 85
e-mail: [EMAIL PROTECTED]
                [EMAIL PROTECTED]
-------------------------------------------- 

_______________________________________________
Libtool mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/libtool

Reply via email to