📄 script.exp
字号:
# Test basic linker script functionality# By Ian Lance Taylor, Cygnus Support# Copyright 1999, 2000, 2001, 2002, 2004# Free Software Foundation, Inc.## This file 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.set testname "script"if ![ld_assemble $as $srcdir/$subdir/script.s tmpdir/script.o] { unresolved $testname return}proc check_script { } { global nm global testname global nm_output if ![ld_nm $nm "" tmpdir/script] { unresolved $testname return } if {![info exists nm_output(text_start)] \ || ![info exists nm_output(text_end)] \ || ![info exists nm_output(data_start)] \ || ![info exists nm_output(data_end)]} { send_log "bad output from nm\n" verbose "bad output from nm" fail $testname return } set passes 1 set text_end 0x104 set data_end 0x1004 if [istarget *c4x*-*-*] then { set text_end 0x101 set data_end 0x1001 } if [istarget *c54x*-*-*] then { set text_end 0x102 set data_end 0x1002 } if {$nm_output(text_start) != 0x100} { send_log "text_start == $nm_output(text_start)\n" verbose "text_start == $nm_output(text_start)" set passes 0 } if {$nm_output(text_end) < $text_end \ || $nm_output(text_end) > 0x110} { send_log "text_end == $nm_output(text_end)\n" verbose "text_end == $nm_output(text_end)" set passes 0 } if {$nm_output(data_start) != 0x1000} { send_log "data_start == $nm_output(data_start)\n" verbose "data_start == $nm_output(data_start)" set passes 0 } if {$nm_output(data_end) < $data_end \ || $nm_output(data_end) > 0x1010} { send_log "data_end == $nm_output(data_end)\n" verbose "data_end == $nm_output(data_end)" set passes 0 } if { $passes } { pass $testname } else { fail $testname }}# PE targets need to set the image base to 0 to avoid complications from nm.set flags ""if {[istarget "*-*-pe*"] \ || [istarget "*-*-cygwin*"] \ || [istarget "*-*-mingw32*"] \ || [istarget "*-*-winnt*"] \ || [istarget "*-*-nt"] \ || [istarget "*-*-interix*"] } then { set flags "--image-base 0"}if ![ld_simple_link $ld tmpdir/script "$flags -T $srcdir/$subdir/script.t tmpdir/script.o"] { fail $testname} else { check_script}set testname "MRI script"if ![ld_simple_link $ld tmpdir/script "$flags -c $srcdir/$subdir/scriptm.t"] { fail $testname} else { check_script}set testname "MEMORY"if ![ld_simple_link $ld tmpdir/script "$flags -T $srcdir/$subdir/memory.t tmpdir/script.o"] { fail $testname} else { check_script}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -