aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8/boehm-gc/testsuite/lib/boehm-gc.exp
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.8/boehm-gc/testsuite/lib/boehm-gc.exp')
-rw-r--r--gcc-4.8/boehm-gc/testsuite/lib/boehm-gc.exp334
1 files changed, 0 insertions, 334 deletions
diff --git a/gcc-4.8/boehm-gc/testsuite/lib/boehm-gc.exp b/gcc-4.8/boehm-gc/testsuite/lib/boehm-gc.exp
deleted file mode 100644
index c5b3e95b0..000000000
--- a/gcc-4.8/boehm-gc/testsuite/lib/boehm-gc.exp
+++ /dev/null
@@ -1,334 +0,0 @@
-# Copyright (C) 2011 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 3 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; see the file COPYING3. If not see
-# <http://www.gnu.org/licenses/>.
-
-proc load_gcc_lib { filename } {
- global srcdir loaded_libs
- load_file $srcdir/../../gcc/testsuite/lib/$filename
- set loaded_libs($filename) ""
-}
-
-load_lib dg.exp
-load_gcc_lib target-libpath.exp
-load_gcc_lib wrapper.exp
-# Required by target-supports-dg.exp.
-load_gcc_lib target-supports.exp
-# For dg-skip-if.
-load_gcc_lib target-supports-dg.exp
-# For ${tool}_exit.
-load_gcc_lib gcc-defs.exp
-# For prune_gcc_output.
-load_gcc_lib prune.exp
-
-set dg-do-what-default run
-
-# Define boehm-gc callbacks for dg.exp.
-
-# FIXME: The next two are independent of boehm-gc; move to some library.
-proc ${tool}-dg-test-1 { target_compile prog do_what extra_tool_flags } {
-
- # Set up the compiler flags, based on what we're going to do.
-
- set options [list]
- switch $do_what {
- "compile" {
- set compile_type "assembly"
- set output_file "[file rootname [file tail $prog]].s"
- }
- "assemble" {
- set compile_type "object"
- set output_file "[file rootname [file tail $prog]].o"
- }
- "ltassemble" {
- # Needs to be different from assemble since we cannot determine
- # from $prog whether to produce a regular or a libtool object.
- set compile_type "object"
- set output_file "[file rootname [file tail $prog]].lo"
- }
- "link" {
- set compile_type "executable"
- # Don't add .exe extension, libtool may strip if from output file.
- set output_file "[file rootname [file tail $prog]]"
- # If we're linking a libtool object, produce a libtool library.
- if { [file extension $prog] == ".lo" } {
- set output_file "lib$output_file.la"
- }
- }
- "run" {
- set compile_type "executable"
- # FIXME: "./" is to cope with "." not being in $PATH.
- # Should this be handled elsewhere?
- # YES.
- set output_file "./[file rootname [file tail $prog]]"
- # This is the only place where we care if an executable was
- # created or not. If it was, dg.exp will try to run it.
- remote_file build delete $output_file
- }
- default {
- perror "$do_what: not a valid dg-do keyword"
- return ""
- }
- }
-
- if { $extra_tool_flags != "" } {
- lappend options "additional_flags=$extra_tool_flags"
- }
-
- set comp_output [$target_compile "$prog" "$output_file" "$compile_type" $options];
-
- return [list $comp_output $output_file]
-}
-
-proc ${tool}-dg-test { prog do_what extra_tool_flags } {
- global tool
-
- return [${tool}-dg-test-1 ${tool}_target_compile $prog $do_what $extra_tool_flags]
-}
-
-proc boehm-gc-init { args } {
- global gluefile wrap_flags
- global srcdir
- global blddirgc
- global TOOL_EXECUTABLE
- global GCC_UNDER_TEST
- global objdir
- global gc_include
- global gc_lib
- global gc_lib_conv
- global tool
- global tool_root_dir
- global ld_library_path
-
- set blddirgc [lookfor_file [get_multilibs] ${tool}]
- verbose "blddirgc: $blddirgc"
-
- if ![info exists GCC_UNDER_TEST] then {
- if [info exists TOOL_EXECUTABLE] {
- set GCC_UNDER_TEST $TOOL_EXECUTABLE
- } else {
- set GCC_UNDER_TEST "[find_gcc]"
- }
- }
-
- set gccdir [lookfor_file $tool_root_dir gcc/libgcc.a]
- if {$gccdir != ""} {
- set gccdir [file dirname $gccdir]
- }
- verbose "gccdir: $gccdir"
-
- set ld_library_path "."
- append ld_library_path ":${gccdir}"
-
- set compiler "${gccdir}/xgcc"
- if { [is_remote host] == 0 && [which $compiler] != 0 } {
- foreach i "[exec $compiler --print-multi-lib]" {
- set mldir ""
- regexp -- "\[a-z0-9=_/\.-\]*;" $i mldir
- set mldir [string trimright $mldir "\;@"]
- if { "$mldir" == "." } {
- continue
- }
- if { [llength [glob -nocomplain ${gccdir}/${mldir}/libgcc_s*.so.*]] >= 1 } {
- append ld_library_path ":${gccdir}/${mldir}"
- }
- }
- }
- # Add the library path for boehm-gc.
- append ld_library_path ":${blddirgc}/.libs"
-
- # Add the library path for boehm-gc.lib libtool libraries.
- append ld_library_path ":.libs"
-
- verbose "ld_library_path: $ld_library_path"
-
- # Point to the headers in boehm-gc.
- set gc_include "${blddirgc}/include"
- verbose "gc_include: $gc_include"
-
- set gc_lib "${blddirgc}/libgcjgc.la"
- verbose "gc_lib: $gc_lib"
-
- set gc_lib_conv "${blddirgc}/libgcjgc_convenience.la"
- verbose "gc_lib_conv: $gc_lib_conv"
-
- set_ld_library_path_env_vars
- boehm-gc_maybe_build_wrapper "${objdir}/testglue.o"
-}
-
-proc boehm-gc_target_compile { source dest type options } {
- global gluefile wrap_flags;
- global srcdir
- global TOOL_OPTIONS
- global GCC_UNDER_TEST
- global libtool
- global gc_include
- global gc_lib
- global gc_lib_conv
- global threadcflags
- global threadlibs
- global extra_test_libs
-
- if { [target_info needs_status_wrapper]!="" && [info exists gluefile] } {
- lappend options "libs=${gluefile}"
- lappend options "ldflags=$wrap_flags"
- }
-
- # TOOL_OPTIONS must come first, so that it doesn't override testcase
- # specific options.
- if [info exists TOOL_OPTIONS] {
- lappend options [concat "additional_flags=$TOOL_OPTIONS" $options];
- }
-
- # Map type to libtool mode.
- switch $type {
- "object" {
- set mode "compile"
- }
- "executable" {
- set mode "link"
- }
- default {
- perror "$type: unhandled type"
- return ""
- }
- }
-
- # Set this once for reuse in boehm-gc.lib/lib.exp.
- set libtool "../libtool"
- # We have to run silently to avoid DejaGnu lossage.
- lappend options "compiler=$libtool --silent --tag=CC --mode=$mode \
- $GCC_UNDER_TEST"
-
- lappend options "additional_flags=-I${gc_include} -I${srcdir}/../include"
- lappend options "additional_flags=${threadcflags}"
-
- lappend options "libs=-Wc,-shared-libgcc"
-
- if { [file extension $dest] == ".la" } {
- lappend options "libs=${gc_lib_conv}"
- } else {
- lappend options "libs=${gc_lib}"
- }
- lappend options "libs=${threadlibs} ${extra_test_libs}"
-
- verbose "options: $options"
- return [target_compile $source $dest $type $options]
-}
-
-# Prune harmless messages.
-proc boehm-gc-dg-prune { system text } {
- # Prune the same messages as the gcc testsuite does.
- set text [prune_gcc_output $text]
-
- # Ignore harmless Darwin ranlib warnings.
- regsub -all "(^|\n)(\[^\n\]*ranlib: file: \[^\n\]* has no symbols\n?)+" $text "\\1" text
-
- return $text
-}
-
-# Build shared library from LIB.
-proc boehm-gc-build-shlib { lib flags extra-flags } {
- global subdir
- global dg-do-what-default
- global libtool
- global gc_lib_conv
-
- # Determine basename.
- set basename "[file rootname [file tail $lib]]"
- verbose "basename: $basename"
-
- # DejaGnu 1.4.4 doesn't support nested calls to dg-test. Restore
- # original state before calling it again.
- if { [info procs dg-save-unknown] != [list] } {
- rename unknown ""
- rename dg-save-unknown unknown
- }
-
- set saved-dg-do-what ${dg-do-what-default}
-
- # Compile $lib into libtool object.
- set dg-do-what-default ltassemble
- dg-test -keep-output $lib $flags ${extra-flags}
-
- # FIXME: Explain options.
- set shopt "-version-info 1:2:0 -no-undefined -rpath /nowhere"
-
- # There's no way to get output_file out of dg-test, only
- # ${tool}-dg-test returns it, so hardcode that here.
- set dg-do-what-default link
- dg-test -keep-output $basename.lo $flags "${extra-flags} $shopt"
-
- set dg-do-what-default ${saved-dg-do-what}
-
- # Restore unknown, dg-save-unknown as DejaGnu 1.4.4 dg-test expects them.
- if { [info procs dg-save-unknown] == [list] } {
- rename unknown dg-save-unknown
- proc unknown {} {
- }
- }
-
- remote_exec host $libtool "--mode=clean rm -f $basename.lo"
-
- return lib$basename.la
-}
-
-# Handle dg-add-shlib.
-proc dg-add-shlib { args } {
- global tool
- global srcdir subdir
- global shlib
-
- if { [llength $args] > 2 } {
- error "[lindex $args 0]: too many arguments"
- return
- }
-
- set lib [lindex $args 1]
- set lib "$srcdir/$subdir/$lib"
- verbose -log "dg-add-shlib $lib"
-
- upvar tool_flags flags
- upvar default_extra_tool_flags extra-flags
- # Build support library.
- set shlib [boehm-gc-build-shlib $lib $flags ${extra-flags}]
-
- uplevel lappend tool_flags $shlib
-}
-
-# Run boehm-gc testcases.
-proc boehm-gc-dg-runtest { testcases flags extra-flags } {
- global runtests
- global libtool
- global shlib
-
- set shlib ""
-
- foreach testcase $testcases {
- # If we're only testing specific files and this isn't one of them,
- # skip it.
- if ![runtest_file_p $runtests $testcase] {
- return
- }
-
- # Run testcase.
- # Keep output, otherwise libtool below won't remove the corresponding
- # file in .libs.
- dg-test -keep-output $testcase $flags ${extra-flags}
-
- # Remove $execname and eventually $shlib.
- remote_exec host $libtool "--mode=clean rm -f \
- [file rootname [file tail $testcase]] $shlib"
- }
-}