libtool-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Don't export lt__error_strings (was: Libtool stresstest.at segfault on C


From: Peter Ekberg
Subject: Don't export lt__error_strings (was: Libtool stresstest.at segfault on Cygwin/MinGW)
Date: Fri, 23 Sep 2005 14:02:18 +0200

Hi!

* Ralf Wildenhues [mailto:address@hidden 
> Sent: Thursday, September 22, 2005 16:43
> To: Peter Ekberg
> Cc: address@hidden
> Subject: Re: Libtool stresstest.at segfault on Cygwin/MinGW
> 
> Hi Peter,
> 
> * Peter Ekberg wrote on Thu, Sep 22, 2005 at 04:05:54PM CEST:
> > * Ralf Wildenhues wrote on Monday, September 19, 2005 17:10 CEST:
> > > * Peter Ekberg wrote on Mon, Sep 19, 2005 at 04:17:56PM CEST:
> > *snip*
> > > > The patch makes exporting non-const data work though, which is
> > > > what I need...
> > > 
> > > Surely non-constant data are more important.  But you do 
> realize that
> > > exporting data objects should be avoided if possible?  ;-)
> > 
> > Are there other platforms with data export difficulties?
> 
> Not that I know of.  Don't the w32-related ones give you enough
> headaches already?  ;-)

Right :-) But for a change it would be nice if w32 were not the
only oddball system. Just curious.

> Data exports are trickier than one thinks.  For example, the 
> size of an
> exported array is part of the interface.  :-/
> 
> Erm, now that I mention it: if someone would change 
> lt__error_strings to
> be used through an accessor function, that would be *great*
> (it was not part of 1.5 interface).

I see that lt__last_error is also exported. Further, I don't
see any record of this being published interfaces, so the
only thing that matters is that the loaders get it right,
right?

So, here's a patch:

        * libltdl/libltdl/lt__private.h, libltdl/lt_error.c:
        Don't export the lt__last_error and lt__error_strings
        variables.
        * libltdl/libltdl/lt__private.h (LT__STRERROR, LT__GETERROR)
        (LT__SETERRORSTR): Adjust to not use the above variables,
        instead use the following functions...
        * libltdl/lt_error.c: (lt__error_string, lt__last_error_string)
        (lt__set_last_error_string): Reimplement the functionallity
        in these functions instead.
        * libltdl/m4/ltdl.m4: Bump serial number.

The serial number bump in libltdl/m4/ltdl.m4 is just a guess...

Cheers,
Peter

Attachment: head-do-not-export-lt__error_strings.patch
Description: head-do-not-export-lt__error_strings.patch


reply via email to

[Prev in Thread] Current Thread [Next in Thread]