[PATCH] libstdc++-v3: Have aligned_alloc() on Newlib
Jonathan Wakely
jwakely@redhat.com
Wed Aug 8 11:18:00 GMT 2018
On 08/08/18 10:52 +0200, Sebastian Huber wrote:
>While building for Newlib, some configure checks must be hard coded.
>The aligned_alloc() is supported since 2015 in Newlib.
>
>libstdc++-v3
>
> PR target/85904
> * configure.ac): Define HAVE_ALIGNED_ALLOC if building for
There's a stray closing parenthesis here.
> Newlib.
> * configure: Regnerate.
Typo "Regnerate".
But the patch itself is fine - OK for trunk.
I'm ambivalent about this being backported to gcc-7 and gcc-8 branches
(gcc-6 is unaffected as it doesn't use aligned_alloc).
It's strictly speaking an ABI change, because HAVE_ALIGNED_ALLOC
affects the memory layout for allocations from operator new(size_t,
align_val_t) (in new_opa.cc) which needs to agree with the
corresponding operator delete (in del_opa.cc). Using static linking it
might be possible to create a binary that has operator new using
aligned_alloc, but operator delete expecting to do ((void**)ptr)[-1],
which would be bad.
Those operators are C++17, so "experimental", but maybe we shouldn't
make the change on release branches.
More information about the Libstdc++
mailing list