On 11/20/13, 1:46 PM, Jonathan Wakely wrote:
> On 20 November 2013 21:44, Jonathan Wakely wrote:
>> On 29 October 2013 15:37, Cesar Philippidis wrote:
>>> This patch addresses two issues with the libstdc++ testsuite:
>>>
>>>   * duplicate "-g -O2" CXXFLAGS
>>>   * missing "-g -O2" for remote targets
>>>
>>> The duplicate "-g -O2" flags is a result of testsuite_flags.in using
>>> build-time CXXFLAGS and proc libstdc++_init using the environmental
>>> CXXFLAGS, which defaults to its build-time value. This patch prevents
>>> testsuite_flags.in from using build-time CXXFLAGS.
>>
>>> Certain remote targets require a minimum optimization level -O1 in order
>>> to pass several atomics built-in function tests. This patch ensures
>>> cxxflags contains "-g -O2" at minimum when no other optimization flags
>>> are specified. The testsuite used to set those flags prior to Benjamin's
>>> patch to remove duplicate cxxflags here
>>> <http://gcc.gnu.org/ml/gcc-patches/2012-03/msg01572.html>.
>>>
>>> Is this OK for trunk? If so, please apply (I don't have commit rights).
>>
>> I think so ... although I'm not sure I've got my head round the
>> effects in all cases!
> 
> Sorry, I didn't realise gmail thought Ctrl-Enter meant send. I meant
> to ask a couple of questions about it ...
> 
> Is removing EXTRA_CXX_FLAGS necessary too?

I looked at it again, and it seems to be OK to leave it in there.

> For remote targets, if CXXFLAGS is set in the env can -g still end up missing?

No, but CXXFLAGS isn't necessarily set in the env. Specifically, if you
run the testsuite without using the makefile, the CXXFLAGS may not be set.

I revised the patch to preserve @EXTRA_CXX_FLAGS@. I also append the
'-g' flag with '-O2', since the '-g' isn't as important in the testsuite
as '-O2'.

Is this patch OK? Is so, please commit it because I do not have an svn
account.

Thanks,
Cesar
2013-11-20  Cesar Philippidis  <ce...@codesourcery.com>

        libstdc++-v3/
        * scripts/testsuite_flags.in (cxxflags): Remove @CXXFLAGS@ since 
        libstdc++.exp imports those flags via getenv.
        * testsuite/lib/libstdc++.exp (libstdc++_init): Ensure that 
        CXXFLAGS contains a '-O' flag. 


diff --git a/libstdc++-v3/scripts/testsuite_flags.in 
b/libstdc++-v3/scripts/testsuite_flags.in
index cf692f8..5e7ad32 100755
--- a/libstdc++-v3/scripts/testsuite_flags.in
+++ b/libstdc++-v3/scripts/testsuite_flags.in
@@ -57,7 +57,7 @@ case ${query} in
       ;;
     --cxxflags)
       CXXFLAGS_default="-D_GLIBCXX_ASSERT -fmessage-length=0"
-      CXXFLAGS_config="@SECTION_FLAGS@ @CXXFLAGS@ @EXTRA_CXX_FLAGS@"
+      CXXFLAGS_config="@SECTION_FLAGS@ @EXTRA_CXX_FLAGS@"
       echo ${CXXFLAGS_default} ${CXXFLAGS_config} 
       ;;
     --cxxvtvflags)
diff --git a/libstdc++-v3/testsuite/lib/libstdc++.exp 
b/libstdc++-v3/testsuite/lib/libstdc++.exp
index 0dff98c..58f2d51 100644
--- a/libstdc++-v3/testsuite/lib/libstdc++.exp
+++ b/libstdc++-v3/testsuite/lib/libstdc++.exp
@@ -280,6 +280,11 @@ proc libstdc++_init { testfile } {
     }
     append cxxflags " "
     append cxxflags [getenv CXXFLAGS]
+
+    if ![regexp "\-O" $cxxflags] {
+       append cxxflags " -g -O2"
+    }
+
     v3track cxxflags 2
 
     # Always use MO files built by this test harness.

Reply via email to