On Mon, Sep 12, 2016 at 12:10 PM, Jonathan Wakely wrote: > On 12/09/16 16:13 +0200, Rainer Orth wrote: >> >> Jason Merrill writes: >> >>> On Thu, Sep 8, 2016 at 7:06 AM, Jonathan Wakely >>> wrote: >>>> >>>> On 08/09/16 09:10 +0200, Marc Glisse wrote: >>>>> >>>>> >>>>> Do we want a generic fallback implementation (similar to >>>>> gcc/config/i386/gmm_malloc.h)? A windows version with _aligned_malloc / >>>>> _aligned_free would also be possible. >>>> >>>> >>>> Making it work for MinGW would be nice. >>> >>> >>> OK, this is what I'm checking in; could someone test it on MinGW? >> >> >> The new tests are failing in various ways on Solaris: >> >> * 32-bit: >> >> +FAIL: g++.dg/cpp1z/aligned-new1.C (test for excess errors) >> +WARNING: g++.dg/cpp1z/aligned-new1.C compilation failed to produce >> executable >> +FAIL: g++.dg/cpp1z/aligned-new2.C (test for excess errors) >> +WARNING: g++.dg/cpp1z/aligned-new2.C compilation failed to produce >> executable >> +FAIL: g++.dg/cpp1z/aligned-new3.C (test for excess errors) >> +WARNING: g++.dg/cpp1z/aligned-new3.C compilation failed to produce >> executable >> +FAIL: g++.dg/cpp1z/aligned-new5.C -std=gnu++11 (test for excess errors) >> +WARNING: g++.dg/cpp1z/aligned-new5.C -std=gnu++11 compilation failed to >> produc >> e executable >> +FAIL: g++.dg/cpp1z/aligned-new5.C -std=gnu++14 (test for excess errors) >> +WARNING: g++.dg/cpp1z/aligned-new5.C -std=gnu++14 compilation failed to >> produc >> e executable >> +FAIL: g++.dg/cpp1z/aligned-new5.C -std=gnu++98 (test for excess errors) >> +WARNING: g++.dg/cpp1z/aligned-new5.C -std=gnu++98 compilation failed to >> produc >> e executable >> >> All instances of >> >> Excess errors: >> Undefined first referenced >> symbol in file >> operator new(unsigned int, std::align_val_t) /var/tmp//cc_0Nrkd.o >> ld: fatal: symbol referencing errors >> >> libsupc++/new_opa.o contains >> >> _ZnwjSt11align_val_t (operator new(unsigned int, std::align_val_t)) >> >> while for 64-bit there is >> >> _ZnwmSt11align_val_t (operator new(unsigned long, std::align_val_t)) >> >> The former isn't matched by config/abi/pre/gnu.ver >> >> # C++17 aligned new/delete >> _ZnwmSt11align_val_t; >> _ZnwmSt11align_val_tRKSt9nothrow_t; >> _ZnamSt11align_val_t; >> _ZnamSt11align_val_tRKSt9nothrow_t; >> >> I strongly suspects this needs to be >> >> _Znw[jmy]* just as for regular new/delete. > > Yes, that's right. Patch approved if you want to change that (I won't > be able to until tomorrow). Applied: