From 83c69a08b4d9d39dba18a8cc9cbba0fdf6d40e82 Mon Sep 17 00:00:00 2001 From: Paolo Carlini Date: Sat, 16 Feb 2008 23:39:56 +0000 Subject: [PATCH] re PR libstdc++/35209 (__gnu_cxx::stdio_sync_filebuf constructor isn't exported by the DSO) 2008-02-17 Paolo Carlini PR libstdc++/35209 * config/abi/pre/gnu.ver: Export stdio_sync_filebuf symbols. * testsuite/ext/stdio_sync_filebuf/char/35209.cc: New. * testsuite/ext/stdio_sync_filebuf/wchar_t/35209.cc: Likewise. From-SVN: r132372 --- libstdc++-v3/ChangeLog | 7 ++++ libstdc++-v3/config/abi/pre/gnu.ver | 5 ++- .../ext/stdio_sync_filebuf/char/35209.cc | 40 +++++++++++++++++++ .../ext/stdio_sync_filebuf/wchar_t/35209.cc | 40 +++++++++++++++++++ 4 files changed, 91 insertions(+), 1 deletion(-) create mode 100644 libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/35209.cc create mode 100644 libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/35209.cc diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 2c1323ce69a..e1abc1d1c13 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,3 +1,10 @@ +2008-02-17 Paolo Carlini + + PR libstdc++/35209 + * config/abi/pre/gnu.ver: Export stdio_sync_filebuf symbols. + * testsuite/ext/stdio_sync_filebuf/char/35209.cc: New. + * testsuite/ext/stdio_sync_filebuf/wchar_t/35209.cc: Likewise. + 2008-02-16 Benjamin Kosnik * include/parallel/random_number.h: Use TR1's mersenne_twister. diff --git a/libstdc++-v3/config/abi/pre/gnu.ver b/libstdc++-v3/config/abi/pre/gnu.ver index 058fc94eace..0374d25aadf 100644 --- a/libstdc++-v3/config/abi/pre/gnu.ver +++ b/libstdc++-v3/config/abi/pre/gnu.ver @@ -1,6 +1,6 @@ ## Linker script for GNU versioning (GNU ld 2.13.91+ only.) ## -## Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 +## Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 ## Free Software Foundation, Inc. ## ## This file is part of the GNU ISO C++ Library. This library is free @@ -793,6 +793,9 @@ GLIBCXX_3.4.10 { _ZNSt8__detail12__prime_listE; _ZNSt3tr18__detail12__prime_listE; + _ZN9__gnu_cxx18stdio_sync_filebufI[cw]St11char_traitsI[cw]EE4syncEv; + _ZN9__gnu_cxx18stdio_sync_filebufI[cw]St11char_traitsI[cw]EE[5-9CD]*; + } GLIBCXX_3.4.9; # Symbols in the support library (libsupc++) have their own tag. diff --git a/libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/35209.cc b/libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/35209.cc new file mode 100644 index 00000000000..b7755aed274 --- /dev/null +++ b/libstdc++-v3/testsuite/ext/stdio_sync_filebuf/char/35209.cc @@ -0,0 +1,40 @@ +// Copyright (C) 2008 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// { dg-do link } + +#include + +struct my_ssf +: __gnu_cxx::stdio_sync_filebuf +{ + my_ssf(std::__c_file* __f) + : __gnu_cxx::stdio_sync_filebuf(__f) { } +}; + +// libstdc++/35209 +void test01() +{ + my_ssf ss1(0); +} + +int main() +{ + test01(); + return 0; +} diff --git a/libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/35209.cc b/libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/35209.cc new file mode 100644 index 00000000000..636fdb2735d --- /dev/null +++ b/libstdc++-v3/testsuite/ext/stdio_sync_filebuf/wchar_t/35209.cc @@ -0,0 +1,40 @@ +// Copyright (C) 2008 Free Software Foundation +// +// This file is part of the GNU ISO C++ Library. This library is free +// software; you can redistribute it and/or modify it under the +// terms of the GNU General Public License as published by the +// Free Software Foundation; either version 2, or (at your option) +// any later version. + +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License along +// with this library; see the file COPYING. If not, write to the Free +// Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, +// USA. + +// { dg-do link } + +#include + +struct my_ssf +: __gnu_cxx::stdio_sync_filebuf +{ + my_ssf(std::__c_file* __f) + : __gnu_cxx::stdio_sync_filebuf(__f) { } +}; + +// libstdc++/35209 +void test01() +{ + my_ssf ss1(0); +} + +int main() +{ + test01(); + return 0; +}