Re: new c++ new/delete overloads need wrapping?

2025年7月29日 11:07:57 -0700

On 2025年7月29日, Corinna Vinschen via Cygwin wrote:
> On Jul 28 12:57, Jeremy Drake via Cygwin wrote:
> > On 2025年7月28日, Corinna Vinschen via Cygwin wrote:
> > > Unless there's some automatism referencing the __wrap_X functions even
> > > if the --wrap option isn't present, I don't see this incompatibility as
> > > much of a problem. We're trying to maintain backward compat, but that
> > > doesn't mean an executable created under and for a newer Cygwin DLL
> > > has to run under an older DLL.
> >
> > OK, then the patch adds support for wrapping these functions ends up in a
> > stable Cygwin release, then GCC is updated to add additional --wrap
> > parameters for them, and that GCC and binaries it produces will no longer
> > be compatible with older Cygwin DLLs.
>
> *iff* the --wrap option is used with functions not provided by older
> DLLs, right? Not for some reason generally incompatible, I hope...
Correct. However, I expect that to be very common for C++ binaries,
because it seems like the C++14 sized delete is now used by default for
ordinary (non-array) delete.
#include <stdio.h>
struct alignas(32) foo {};
int main (void)
{
 char *p = new char (0); // _Znwm
 printf ("%p\n", p);
 delete p; // _ZdlPvm
 foo *bar = new foo; // _ZnwmSt11align_val_t
 printf ("%p\n", bar);
 delete bar; // _ZdlPvmSt11align_val_t
 return 0;
}
-- 
Problem reports: https://cygwin.com/problems.html
FAQ: https://cygwin.com/faq/
Documentation: https://cygwin.com/docs.html
Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple

Reply via email to