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 ------------------------------------------------------------- Corinna