mips-abi.exp

来自「linux下编程用 编译软件」· EXP 代码 · 共 105 行

EXP
105
字号
#   Copyright (C) 2002, 2004 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.# This test checks whether MIPS ELF configurations pass the right# ABI flags to the assembler.  An ABI flag should always be passed# unless MEABI is selected.load_lib gcc-dg.exp# Only run this test on MIPS ELF targetsif {![istarget mips*-*-*] || [gcc_target_object_format] != "elf"} {    return}# A list of all assembler ABI flags.set asm_abi_flags {-mabi=32 -mabi=n32 -mabi=64 -mabi=o64 -mabi=eabi}# Try to assemble mips-abi.s (an empty file), passing -v in order to# get the assembler command line.  Check whether an appropriate ABI# flag is passed.## NAME is a name for the pass/fail line.# ABIS is a list of acceptable assembler ABI flags, or "" if no#   ABI flag is expected.# FLAGS is a list of options for gcc.proc check_mips_abi {name abis flags} {    global srcdir subdir    lappend flags "-v"    set lines [gcc_target_compile "$srcdir/$subdir/mips-abi.s" \				  "mips-abi.o" object \				  [list "additional_flags=$flags"]]    set good 0    set bad 0    foreach line [split $lines "\n"] {	# Find the assembler command line.	if {[string first "$srcdir/$subdir/mips-abi.s" $line] >= 0} {	    foreach arg [split $line " "] {		# Count the number of matching and non-matching		# ABI options.		if {[lsearch -exact $abis $arg] >= 0} {		    incr good		} elseif {[string match "-mabi=*" $arg]} {		    incr bad		}	    }	}    }    if {$good == ($abis != "") && $bad == 0} {	pass "mips-abi $name"    } else {	fail "mips-abi $name"    }}# Collect the default target flags.set default_flags ""set target [target_info name]if {[info exists CFLAGS_FOR_TARGET]} {    append default_flags " $CFLAGS_FOR_TARGET"}if {[board_info $target exists cflags]} {    append default_flags " [board_info $target cflags]"}if {[board_info $target exists multilib_flags]} {    append default_flags " [board_info $target multilib_flags]"}# See whether the default command line specifies an ABI.set default_abi ""foreach flag $default_flags {    if {[string match "-mabi=*" $flag]} {	set default_abi $flag    }}# If the command line does specify an ABI, just check for the# appropriate assembler flag.if {$default_abi != ""} {    check_mips_abi "command line" $default_abi ""} else {    # An ABI should be passed to the assembler by default.    # It doesn't seem worthwhile to duplicate the    # configuration to ABI logic here, so just accept any ABI.    check_mips_abi "default" $asm_abi_flags ""    # See whether passing a -mabi flag does the right thing.    foreach abi $asm_abi_flags {	check_mips_abi $abi $abi $abi    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?