On Mon, Sep 12, 2016 at 12:10 PM, Jonathan Wakely <jwak...@redhat.com> wrote:
> On 12/09/16 16:13 +0200, Rainer Orth wrote:
>>
>> Jason Merrill <ja...@redhat.com> writes:
>>
>>> On Thu, Sep 8, 2016 at 7:06 AM, Jonathan Wakely <jwak...@redhat.com>
>>> 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:
commit 977ca0b5c0ffed38a5f2ec74c9769ec64c351cac
Author: Jason Merrill <ja...@redhat.com>
Date:   Mon Sep 12 12:32:50 2016 -0400

            * config/abi/pre/gnu.ver: Use [jmy] for size_t.

diff --git a/libstdc++-v3/config/abi/pre/gnu.ver 
b/libstdc++-v3/config/abi/pre/gnu.ver
index 9b5bb23..8b0f67b 100644
--- a/libstdc++-v3/config/abi/pre/gnu.ver
+++ b/libstdc++-v3/config/abi/pre/gnu.ver
@@ -2198,16 +2198,16 @@ CXXABI_1.3.11 {
     _ZNSt15__exception_ptr13exception_ptrC1EPv;
 
     # C++17 aligned new/delete
-    _ZnwmSt11align_val_t;
-    _ZnwmSt11align_val_tRKSt9nothrow_t;
-    _ZnamSt11align_val_t;
-    _ZnamSt11align_val_tRKSt9nothrow_t;
+    _Znw[jmy]St11align_val_t;
+    _Znw[jmy]St11align_val_tRKSt9nothrow_t;
+    _Zna[jmy]St11align_val_t;
+    _Zna[jmy]St11align_val_tRKSt9nothrow_t;
     _ZdlPvSt11align_val_t;
     _ZdlPvSt11align_val_tRKSt9nothrow_t;
-    _ZdlPvmSt11align_val_t;
+    _ZdlPv[jmy]St11align_val_t;
     _ZdaPvSt11align_val_t;
     _ZdaPvSt11align_val_tRKSt9nothrow_t;
-    _ZdaPvmSt11align_val_t;
+    _ZdaPv[jmy]St11align_val_t;
 
 } CXXABI_1.3.10;
 

Reply via email to