delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2025/07/25/01:42:05

DMARC-Filter: OpenDMARC Filter v1.4.2 delorie.com 56P5g5mt1871271
Authentication-Results: delorie.com; dmarc=pass (p=none dis=none) header.from=cygwin.com
Authentication-Results: delorie.com; spf=pass smtp.mailfrom=cygwin.com
DKIM-Filter: OpenDKIM Filter v2.11.0 delorie.com 56P5g5mt1871271
Authentication-Results: delorie.com;
dkim=pass (1024-bit key, unprotected) header.d=cygwin.com header.i=@cygwin.com header.a=rsa-sha256 header.s=default header.b=UX55DG4l
X-Recipient: archive-cygwin AT delorie DOT com
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7D602385EC20
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cygwin.com;
s=default; t=1753422122;
bh=wu9AuZ75MkvAgrf3ymbpyOj99gsyKVSFVX9uOJqHngs=;
h=Date:To:Subject:List-Id:List-Unsubscribe:List-Archive:List-Post:
List-Help:List-Subscribe:From:Reply-To:From;
b=UX55DG4lFirfp/ll0mgUbTHTPezau1pRBrHyuZcAXzcWF4DKuSXCZNQaPT58MD2Tb
K5Kvk2dYF6VJ0CCF9cz82ZWUpcvrwtYsK3W2tsGJvg31amA703Tf01pWz77cqz668Z
pAccYUVew6SpU3rELYAy5kWG7mfxqNQQ0x6ngphs=
X-Original-To: cygwin AT cygwin DOT com
Delivered-To: cygwin AT cygwin DOT com
DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 7E0BD385E011
ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 7E0BD385E011
ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1753422064; cv=none;
b=FJKK5Z4US1YjjAYCzLEVNpfthxAmt9KK2JMC9Ec3NoxZwvKSZuQrzhiueDcun7HBLC9UvjNjoqFiXA3chOo0fsE7kWrsvGiifKYVpGSGjLJO6ROa55JC1UWOZFK5D+GTOBU2fO69PXjQ+kFVw2i69JKxdp3CCojO1DRmqg85MfM=
ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key;
t=1753422064; c=relaxed/simple;
bh=PPOJQ6vOlHf7wLfNFxlI42/KM6LCyIQNgzaoXjpwKsM=;
h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version;
b=AYIXPvb3RtKRjPfyYxe27xfTX7Hpu44oz5sCY5P+TH5QMw1SyZUbzuExnzmQtuBaLXjV6cf3hE4V8bWu5zy2MWJZzg5XFfbueJGTZ/l7YAYztMC4ntm0MuqxffGX8+o6MgDJ2UKlesa3YrZ/kjcYCzxfiZuyutOJSLCfbhss1Xw=
ARC-Authentication-Results: i=1; server2.sourceware.org
DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7E0BD385E011
Date: Thu, 24 Jul 2025 22:41:04 -0700 (PDT)
X-X-Sender: jeremyd AT resin DOT csoft DOT net
To: cygwin AT cygwin DOT com
Subject: new c++ new/delete overloads need wrapping?
Message-ID: <81535510-8360-1c72-442a-0b630a6d937f@jdrake.com>
MIME-Version: 1.0
X-BeenThere: cygwin AT cygwin DOT com
X-Mailman-Version: 2.1.30
List-Id: General Cygwin discussions and problem reports <cygwin.cygwin.com>
List-Archive: <https://cygwin.com/pipermail/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-request AT cygwin DOT com?subject=help>
List-Subscribe: <https://cygwin.com/mailman/listinfo/cygwin>,
<mailto:cygwin-request AT cygwin DOT com?subject=subscribe>
From: Jeremy Drake via Cygwin <cygwin AT cygwin DOT com>
Reply-To: Jeremy Drake <cygwin AT jdrake DOT com>
Sender: "Cygwin" <cygwin-bounces~archive-cygwin=delorie DOT com AT cygwin DOT com>

I was looking into C++ new/delete --wrap linker options, and noticed that
in a quick test the wrapper for delete was not being called.  This was
because delete is being compiled to _ZdlPvm and that symbol is not present
in the --wrap arguments in the GCC spec, and is not part of the
per_process_cxx_malloc struct.  I'm not seeing anything in that cxx_malloc
struct like a size or version number, so I don't know a good way to
extend it given that it is part of the startup code linked into every
binary.

Here are the current symbols from libc++ and how they demangle:

_ZdaPv	operator delete[](void*)
_ZdaPvm	operator delete[](void*, unsigned long)
_ZdaPvmSt11align_val_t	operator delete[](void*, unsigned long, std::align_val_t)
_ZdaPvRKSt9nothrow_t	operator delete[](void*, std::nothrow_t const&)
_ZdaPvSt11align_val_t	operator delete[](void*, std::align_val_t)
_ZdaPvSt11align_val_tRKSt9nothrow_t	operator delete[](void*, std::align_val_t, std::nothrow_t const&)
_ZdlPv	operator delete(void*)
_ZdlPvm	operator delete(void*, unsigned long)
_ZdlPvmSt11align_val_t	operator delete(void*, unsigned long, std::align_val_t)
_ZdlPvRKSt9nothrow_t	operator delete(void*, std::nothrow_t const&)
_ZdlPvSt11align_val_t	operator delete(void*, std::align_val_t)
_ZdlPvSt11align_val_tRKSt9nothrow_t	operator delete(void*, std::align_val_t, std::nothrow_t const&)
_Znam	operator new[](unsigned long)
_ZnamRKSt9nothrow_t	operator new[](unsigned long, std::nothrow_t const&)
_ZnamSt11align_val_t	operator new[](unsigned long, std::align_val_t)
_ZnamSt11align_val_tRKSt9nothrow_t	operator new[](unsigned long, std::align_val_t, std::nothrow_t const&)
_Znwm	operator new(unsigned long)
_ZnwmRKSt9nothrow_t	operator new(unsigned long, std::nothrow_t const&)
_ZnwmSt11align_val_t	operator new(unsigned long, std::align_val_t)
_ZnwmSt11align_val_tRKSt9nothrow_t	operator new(unsigned long, std::align_val_t, std::nothrow_t const&)



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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019