binutils-gdb/ld/testsuite/ld-elf/sec-to-seg.exp
Alan Modra c2bf1eecf9 Remove m88k support
include/
	* coff/internal.h: Remove m88k support.
	* coff/m88k.h: Delete.
	* opcode/m88k.h: Delete.
bfd/
	* Makefile.am: Remove m88k support.
	* aoutx.h: Likewise.
	* archures.c: Likewise.
	* coffcode.h: Likewise.
	* coffswap.h: Likewise.
	* config.bfd: Likewise.
	* configure.ac: Likewise.
	* cpu-ns32k.c: Likewise.
	* elf32-nds32.c: Likewise.
	* mach-o.c: Likewise.
	* netbsd-core.c: Likewise.
	* reloc.c: Likewise.
	* targets.c: Likewise.
	* coff-m88k.c: Delete.
	* cpu-m88k.c: Delete.
	* elf32-m88k.c: Delete.
	* hosts/m88kmach3.h: Delete.
	* m88kmach3.c: Delete.
	* m88kopenbsd.c: Delete.
	* Makefile.in: Regenerate.
	* bfd-in2.h: Regenerate.
	* configure: Regenerate.
	* po/SRC-POTFILES.in: Regenerate.
opcodes/
	* Makefile.am: Remove m88k support.
	* configure.ac: Likewise.
	* disassemble.c: Likewise.
	* disassemble.h: Likewise.
	* m88k-dis.c: Delete.
	* Makefile.in: Regenerate.
	* configure: Regenerate.
	* po/POTFILES.in: Regenerate.
binutils/
	* MAINTAINERS (Mark Kettenis): Move to past maintainers.
	* testsuite/binutils-all/objdump.exp: Remove m88k support.
gas/
	* configure.ac: Remove m88k support.
	* config.in: Regenerate.
	* configure: Regenerate.
ld/
	* Makefile.am: Remove m88k support.
	* configure.host: Likewise.
	* configure.tgt: Likewise.
	* testsuite/ld-elf/sec-to-seg.exp: Likewise.
	* emulparams/m88kbcs.sh: Delete.
	* scripttempl/m88kbcs.sc: Delete.
	* Makefile.in: Regenerate.
	* po/BLD-POTFILES.in: Regenerate.
2018-04-16 15:23:38 +09:30

102 lines
3.3 KiB
Plaintext

# Test the assigment of sections to segments.
#
# Copyright (C) 2008-2018 Free Software Foundation, Inc.
# Contributed by Red Hat.
#
# This file is part of the GNU Binutils.
#
# 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; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
# MA 02110-1301, USA.
set testname "assignment of ELF sections to segments"
if {! [is_elf_format] } {
unsupported $testname
return
}
if { ! [ld_assemble $as $srcdir/$subdir/sec-to-seg1.s tmpdir/sec-to-seg1.o]
|| ! [ld_assemble $as $srcdir/$subdir/sec-to-seg2.s tmpdir/sec-to-seg2.o]} then {
unresolved $testname
return
}
proc sec_to_seg_test { testname scriptname same_seg } {
global srcdir
global subdir
global ld
global exec_output
global READELF
if {! [ld_link $ld tmpdir/sec-to-seg "-T $srcdir/$subdir/$scriptname tmpdir/sec-to-seg1.o tmpdir/sec-to-seg2.o"] } then {
fail $testname
return 0
}
send_log "$READELF --program-headers --section-headers tmpdir/sec-to-seg\n"
set exec_output [run_host_cmd "$READELF" "--program-headers --section-headers tmpdir/sec-to-seg"]
if { $same_seg == 1 } {
if {! [regexp ".*.sec1 .sec2" $exec_output] } {
fail $testname
return 0
}
} else {
if { [regexp ".*.sec1 .sec2" $exec_output] } {
fail $testname
return 0
}
}
pass $testname
return 1
}
# Assuming a pagesize of 0x1000 then:
#
# Test Sec1 End Sec 2 Start Expected Result
# ---- -------- ----------- ---------------
# A 00001042 00001043 Both sections on same page: assign to same segment.
# B 00001042 00002044 Sections on adjacent pages: assign to same segment.
# C 00001042 00003044 Sections on disjoint pages: assign to separate segments.
# These targets have a pagesize of 1, so they will always end up
# placing the two sections in separate segments in the B test.
if { [istarget avr-*-*]
|| [istarget cr16-*-*]
|| [istarget crx-*-*]
|| [istarget dlx-*-*]
|| [istarget ft32-*-*]
|| [istarget h8300-*-*]
|| [istarget ip2k-*-*]
|| [istarget m32r-*-*]
|| [istarget moxie-*-*]
|| [istarget msp430-*-*]
|| [istarget mt-*-*]
|| [istarget pru-*-*]
|| [istarget visium-*-*]
} {
set B_test_same_seg 0
} else {
set B_test_same_seg 1
}
sec_to_seg_test "assignment of ELF sections to segments (same page)" "sec-to-seg-script-same-page.t" 1
sec_to_seg_test "assignment of ELF sections to segments (adjacent pages)" "sec-to-seg-script-adjoining-pages.t" $B_test_same_seg
sec_to_seg_test "assignment of ELF sections to segments (disjoint pages)" "sec-to-seg-script-disjoint-pages.t" 0
# FIXME: Add more tests to check other rules of section to segment assignment.