> On 4 Oct 2021, at 22:27, Jason Merrill via Gcc-patches
> <gcc-patches@gcc.gnu.org> wrote:
>
> On 10/4/21 14:37, Iain Sandoe wrote:
>> Hi Jason,
>>> On 4 Oct 2021, at 19:27, Jason Merrill via Gcc-patches
>>> <gcc-patches@gcc.gnu.org> wrote:
>>>
>>> When r12-4038 introduced the global auto_vec save_opt_decoded_options, it
>>> broke compilers configured with --enable-gather-detailed-mem-stats, due to
>>> the memory descriptors getting discarded before the auto_vec was destroyed.
>>> Attached below are two approaches to making this work, either by using the
>>> init_priority attribute, or turning vec_mem_desc into a singleton function.
>>> I prefer the first one, primarily because it doesn't require auto_vec
>>> variables to force immediate allocation. It relies on a G++ extension, but
>>> I figure that's OK for code that is only exercised with a debugging
>>> configure flag.
>> I suspect the problem is not necessarily that it’s a G++ extension, (init
>> priority has some support elsewhere) - but that some targets (with
>> non-binutils ld) cannot support it [between multiple TUs at least] even with
>> a native G++ (Darwin at least cannot). OTOH, there are worse broken things
>> from this than a gathering of stats…
>
> Hmm, that was previously handled for other linkers with the collect2 wrapper.
> I haven't followed what has happened with collect2 in recent years, does
> Darwin not use it?
It does use collect2, but init_priority is, nevertheless disabled for the
target; I will investigate some more.
thanks for the head’s up,
Iain