# Copyright (C) 2011-2023 Free Software Foundation, Inc. # # This program 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 of the License, or # (at your option) any later version. # # This program 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 program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. load_lib libitm-dg.exp load_gcc_lib gcc-dg.exp global shlib_ext set shlib_ext [get_shlib_extension] # The C++ tests should be linked with g++, which defaults to -shared-libgcc. # Doing that is currently too intrusive, so hardcode here. set lang_link_flags "-shared-libgcc -lstdc++" set lang_test_file_found 0 set lang_library_path "../libstdc++-v3/src/.libs" # Initialize dg. dg-init set blddir [lookfor_file [get_multilibs] libitm] if { $blddir != "" } { # Look for a static libstdc++ first. if [file exists "${blddir}/${lang_library_path}/libstdc++.a"] { set lang_test_file "${lang_library_path}/libstdc++.a" set lang_test_file_found 1 # We may have a shared only build, so look for a shared libstdc++. } elseif [file exists "${blddir}/${lang_library_path}/libstdc++.${shlib_ext}"] { set lang_test_file "${lang_library_path}/libstdc++.${shlib_ext}" set lang_test_file_found 1 } else { puts "No libstdc++ library found, will not execute c++ tests" } } elseif { [info exists GXX_UNDER_TEST] } { set lang_test_file_found 1 # Needs to exist for libitm.exp. set lang_test_file "" } else { puts "GXX_UNDER_TEST not defined, will not execute c++ tests" } if { $lang_test_file_found } { # Gather a list of all tests. set tests [lsort [glob -nocomplain $srcdir/$subdir/*.C]] if { $blddir != "" } { set ld_library_path "$always_ld_library_path:${blddir}/${lang_library_path}" } else { set ld_library_path "$always_ld_library_path" } append ld_library_path [gcc-set-multilib-library-path $GCC_UNDER_TEST] set_ld_library_path_env_vars set flags_file "${blddir}/../libstdc++-v3/scripts/testsuite_flags" if { [file exists $flags_file] } { set libstdcxx_includes [exec sh $flags_file --build-includes] } else { set libstdcxx_includes "" } # Main loop. dg-runtest $tests "" $libstdcxx_includes } # All done. dg-finish