mirror of git://gcc.gnu.org/git/gcc.git
re PR libstdc++/52689 (static linking with libstdc++ fails)
2012-04-25 Benjamin Kosnik <bkoz@redhat.com> PR libstdc++/52689 * testsuite/17_intro/static.cc: Fix. * testsuite/lib/dg-options.exp (dg-require-static-libstdcxx): New. From-SVN: r186845
This commit is contained in:
parent
8ca72b98a6
commit
6d0f7cacc0
|
@ -1,3 +1,10 @@
|
||||||
|
2012-04-25 Benjamin Kosnik <bkoz@redhat.com>
|
||||||
|
|
||||||
|
PR libstdc++/52689
|
||||||
|
* testsuite/17_intro/static.cc: Fix.
|
||||||
|
* testsuite/lib/dg-options.exp (dg-require-static-libstdcxx): New.
|
||||||
|
* testsuite/lib/libstdc++.exp (check_v3_target_static_libstdcxx): New.
|
||||||
|
|
||||||
2012-04-25 Jonathan Wakely <jwakely.gcc@gmail.com>
|
2012-04-25 Jonathan Wakely <jwakely.gcc@gmail.com>
|
||||||
|
|
||||||
* include/std/scoped_allocator (scoped_allocator::__outermost): Do
|
* include/std/scoped_allocator (scoped_allocator::__outermost): Do
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
// { dg-do link }
|
// { dg-do link }
|
||||||
// { dg-require-effective-target static }
|
// { dg-require-static-libstdcxx }
|
||||||
// { dg-options "-static -std=gnu++11" }
|
// { dg-options "-static-libstdc++ -std=gnu++11" }
|
||||||
|
|
||||||
// Copyright (C) 2012 Free Software Foundation, Inc.
|
// Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
//
|
//
|
||||||
|
@ -25,7 +25,7 @@
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
std::locale c = std::locale::global();
|
std::locale c __attribute__((unused)) = std::locale::classic();
|
||||||
std::cout << "i am old-skool\n";
|
std::cout << "i am old-skool\n";
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -197,6 +197,15 @@ proc dg-require-nprocs { args } {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proc dg-require-static-libstdcxx { args } {
|
||||||
|
if { ![ check_v3_target_static_libstdcxx ] } {
|
||||||
|
upvar dg-do-what dg-do-what
|
||||||
|
set dg-do-what [list [lindex ${dg-do-what} 0] "N" "P"]
|
||||||
|
return
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
proc add_options_for_no_pch { flags } {
|
proc add_options_for_no_pch { flags } {
|
||||||
# This forces any generated and possibly included PCH to be invalid.
|
# This forces any generated and possibly included PCH to be invalid.
|
||||||
return "-D__GLIBCXX__=99999999"
|
return "-D__GLIBCXX__=99999999"
|
||||||
|
|
|
@ -1693,5 +1693,49 @@ proc check_v3_target_nprocs { } {
|
||||||
return $et_nprocs
|
return $et_nprocs
|
||||||
}
|
}
|
||||||
|
|
||||||
|
proc check_v3_target_static_libstdcxx { } {
|
||||||
|
global cxxflags
|
||||||
|
global DEFAULT_CXXFLAGS
|
||||||
|
global et_static_libstdcxx
|
||||||
|
|
||||||
|
global tool
|
||||||
|
|
||||||
|
if [info exists et_static_libstdcxx] {
|
||||||
|
verbose "check_v3_target_static_libstdcxx: using cached result" 2
|
||||||
|
} else {
|
||||||
|
set et_static_libstdcxx 0
|
||||||
|
|
||||||
|
# Set up and link a C++0x test program that depends
|
||||||
|
# on static linking
|
||||||
|
set src static-maybe[pid].cc
|
||||||
|
|
||||||
|
set f [open $src "w"]
|
||||||
|
puts $f "#include <iostream>"
|
||||||
|
puts $f "int main() {"
|
||||||
|
puts $f "int i(415);"
|
||||||
|
puts $f "std::cout<< i << std::endl;"
|
||||||
|
puts $f "return 0; }"
|
||||||
|
puts $f ""
|
||||||
|
close $f
|
||||||
|
|
||||||
|
set cxxflags_saved $cxxflags
|
||||||
|
set cxxflags "$cxxflags $DEFAULT_CXXFLAGS -static-libstdc++"
|
||||||
|
|
||||||
|
set lines [v3_target_compile $src /dev/null executable ""]
|
||||||
|
set cxxflags $cxxflags_saved
|
||||||
|
file delete $src
|
||||||
|
|
||||||
|
if [string match "" $lines] {
|
||||||
|
# No error message, link succeeded.
|
||||||
|
set et_static_libstdcxx 1
|
||||||
|
} else {
|
||||||
|
verbose "check_v3_target_static_libstdcxx: compilation failed" 2
|
||||||
|
}
|
||||||
|
}
|
||||||
|
verbose "check_v3_target_static_libstdcxx: $et_static_libstdcxx" 2
|
||||||
|
return $et_static_libstdcxx
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
set additional_prunes ""
|
set additional_prunes ""
|
||||||
|
|
Loading…
Reference in New Issue