1# Copyright (C) 2004, 2007 Free Software Foundation, Inc. 2 3# This program is free software; you can redistribute it and/or modify 4# it under the terms of the GNU General Public License as published by 5# the Free Software Foundation; either version 3 of the License, or 6# (at your option) any later version. 7# 8# This program is distributed in the hope that it will be useful, 9# but WITHOUT ANY WARRANTY; without even the implied warranty of 10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11# GNU General Public License for more details. 12# 13# You should have received a copy of the GNU General Public License 14# along with GCC; see the file COPYING3. If not see 15# <http://www.gnu.org/licenses/>. 16 17# This file contains GCC-specifics for status wrappers for test programs. 18 19# ${tool}_maybe_build_wrapper -- Build wrapper object if the target 20# needs it. FILENAME is the path to the wrapper file. If there are 21# additional arguments, they are command-line options to provide to 22# the compiler when compiling FILENAME. 23 24proc ${tool}_maybe_build_wrapper { filename args } { 25 global gluefile wrap_flags 26 27 if { [target_info needs_status_wrapper] != "" \ 28 && [target_info needs_status_wrapper] != "0" \ 29 && ![info exists gluefile] } { 30 set saved_wrap_compile_flags [target_info wrap_compile_flags] 31 set flags [join $args " "] 32 # The wrapper code may contain code that gcc objects on. This 33 # became true for dejagnu-1.4.4. The set of warnings and code 34 # that gcc objects on may change, so just make sure -w is always 35 # passed to turn off all warnings. 36 set_currtarget_info wrap_compile_flags \ 37 "$saved_wrap_compile_flags -w $flags" 38 set result [build_wrapper $filename] 39 set_currtarget_info wrap_compile_flags "$saved_wrap_compile_flags" 40 if { $result != "" } { 41 set gluefile [lindex $result 0] 42 set wrap_flags [lindex $result 1] 43 } 44 } 45} 46