On Nov  4 15:34, Corinna Vinschen wrote:
> On Nov  4 12:50, Christian Franke wrote:
> > Corinna Vinschen wrote:
> > > ...
> > > > - Invent a #define that allows to use the old function.
> > > We don't need this.  We only want backward compat to keep existing
> > > executables running.  So we need The old and wrong pthread_sigqueue only
> > > as exported symbol.  On recompiling the affected project, the bug
> > > hopefully shows up and can be easily fixed.
> > 
> > Providing such a feature (only) for a few upcoming Cygwin releases would
> > allow maintainers (e.g. me maintaining stress-ng) to easily provide packages
> > which are backward compatible with still available [prev] versions of the
> > DLL.
> 
> We never did that yet.  Going forward, we try to maintain backward
> compatibility for new versions of Cygwin to existing executables, but we
> never promised or maintained backward compatibility for newly built
> executables to old versions of Cygwin.  That's setting an uncomfortable
> new precedent.
> 
> *Iff* we do this, then it should be least intrusive for the header,
> i. e., add a new entry point and use that in the backward compat case,
> kind of like this:
> 
> -------------------------------------------------------------
> 
> int pthread_sigqueue (pthread_t, int, const union sigval)
> 
> #ifdef _CYGWIN_USE_BUGGY_PTHREAD_SIGQUEUE
> 
> // TODO: Add some comment explaining this hack :-)
> int __pthread_sigqueue_buggy (pthread_t *, int, const union sigval)
>   __attribute__((__warning__("Using old version of pthread_sigqueue()")))
>   ;
> #define pthread_sigqueue(a,b,c)       __pthread_sigqueue_buggy ((a),(b),(c))
> 
> #endif
> -------------------------------------------------------------

I guess if it's only part of the 3.5 backport, it's ok.


Corinna

Reply via email to