[PATCH] Fix PR68838

David Edelsohn dje.gcc@gmail.com
Tue Nov 29 17:48:00 GMT 2016


Separate from ulimit, 32 bit AIX processes have the concept of memory
segments.  By default, AIX devotes one 256MB segment to the data
section of an executable.  Some libstdc++ testcases allocate more than
that amount of memory.  Instead of individually fixing tests, this
patch always adds the AIX linker option to allocate two segments for
data, fixing a number of wchar testcases.

PR libstdc++/68838
* testsuite/lib/libstdc++.exp (DEFAULT_CXXFLAGS): Add -Wl,-bmaxdata on AIX.
* testsuite/23_containers/vector/profile/vector.cc: Remove
dg-additional-options.

Index: libstdc++.exp
===================================================================
--- libstdc++.exp       (revision 242964)
+++ libstdc++.exp       (working copy)
@@ -136,6 +136,9 @@
        if { [string match "powerpc-*-darwin*" $target_triplet] } {
            append DEFAULT_CXXFLAGS " -multiply_defined suppress"
        }
+       if { [string match "powerpc-ibm-aix*" $target_triplet] }
+           append DEFAULT_CXXFLAGS " -Wl,-bmaxdata:0x20000000"
+       }
     }

    v3track DEFAULT_CXXFLAGS 2

Index: 23_containers/vector/profile/vector.cc
===================================================================
--- 23_containers/vector/profile/vector.cc      (revision 242964)
+++ 23_containers/vector/profile/vector.cc      (working copy)
@@ -2,8 +2,6 @@
 // Advice: set tmp as 10000

 // { dg-options "-DITERATIONS=20" { target simulator } }
-// AIX requires higher memory limit
-// { dg-additional-options "-Wl,-bmaxdata:0x20000000" { target {
powerpc-ibm-aix* } } }

 #ifndef ITERATIONS
 #define ITERATIONS 2000



More information about the Libstdc++ mailing list