📄 target-supports.exp
字号:
# Copyright (C) 1999, 2001 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Please email any bugs, comments, and/or additions to this file to:# gcc-patches@gcc.gnu.org# This file defines procs for determining features supported by the target.################################ proc check_weak_available { }################################ weak symbols are only supported in some configs/object formats# this proc returns 1 if they're supported, 0 if they're not, or -1 if unsureproc check_weak_available { } { global target_triplet global target_cpu # All mips targets should support it if { [ string first "mips" $target_cpu ] >= 0 } { return 1 } # All solaris2 targets should support it if { [regexp ".*-solaris2.*" $target_triplet] } { return 1 } # DEC OSF/1/Digital UNIX/Tru64 UNIX supports it if { [regexp "alpha.*osf.*" $target_triplet] } { return 1 } # ELF and ECOFF support it. a.out does with gas/gld but may also with # other linkers, so we should try it set objformat [gcc_target_object_format] switch $objformat { elf { return 1 } ecoff { return 1 } a.out { return 1 } unknown { return -1 } default { return 0 } }}################################ proc check_alias_available { }################################ Determine if the target toolchain supports the alias attribute.# Parameter is the pathname of a file that can be used to test the alias support.# Returns yes if it does.# Returns no if it does not.# Returns dontknow if something went wrong# For an example of the use of this function, see gcc.dg/special/ecos.expproc check_alias_available { testfile } { global alias_available_saved if [info exists alias_available_saved] { verbose "check_alias_available returning saved $alias_available_saved" 2 } else { verbose "check_alias_available compiling testfile $testfile" 2 set lines [gcc_target_compile $testfile "tmp.o" object ""] if [string match "" $lines] then { # No error messages, everything is OK. set alias_available_saved yes } else { if [regexp "alias definitions not supported" $lines] { verbose "check_alias_available target does not support aliases" 2 set objformat [gcc_target_object_format] if { $objformat == "elf" } { verbose "check_alias_available but target uses ELF format, so it ought to" 2 set alias_available_saved dontknow } else { set alias_available_saved no } } else { if [regexp "only weak aliases are supported" $lines] { verbose "check_alias_available target supports only weak aliases" 2 set alias_available_saved no } else { set alias_available_saved dontknow } } } verbose "check_alias_available returning $alias_available_saved" 2 } return $alias_available_saved}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -