-# Copyright 1999, 2000, 2001, 2003, 2004, 2007 Free Software Foundation, Inc.
+# Copyright 1999, 2000, 2001, 2003, 2004, 2007, 2009, 2012
+# 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
set target_machine ""
if [istarget "mips*-*-*"] then {
- if { [istarget "mips*-*-*linux*"] || [istarget "mips*-sde-elf*"] } then {
+ if { [istarget "mips*-*-*linux*"]
+ || [istarget "mips*-sde-elf*"]
+ || [istarget "mips*-*freebsd*"] } then {
set target_machine tmips
} else {
set target_machine mips
pass "readelf -wi"
}
+# This tests "readelf -wa", but on a file with a compressed
+# .debug_abbrev section.
+
+proc readelf_compressed_wa_test {} {
+ global READELF
+ global READELFFLAGS
+ global srcdir
+ global subdir
+
+ # Compile the compressed-debug-section test file.
+ if { [target_compile $srcdir/$subdir/dw2-compressed.S tmpdir/dw2-compressed.o object debug] != "" } {
+ verbose "Unable to compile test file."
+ untested "readelf -wa (compressed)"
+ return
+ }
+
+ # Download it.
+ set tempfile [remote_download host tmpdir/dw2-compressed.o]
+
+ # Run "readelf -wa" on it.
+ set got [remote_exec host "$READELF $READELFFLAGS -wa $tempfile" "" "/dev/null" "readelf.out"]
+
+ # Upload the results.
+ set output [remote_upload host readelf.out]
+
+ file_on_host delete $tempfile
+
+ if { [string compare [file_contents readelf.out] [file_contents $srcdir/$subdir/readelf.wa]] != 0 } then {
+ fail "readelf -wa (compressed)"
+ verbose "output is \n[file_contents readelf.out]" 2
+ verbose "expected is \n[file_contents $srcdir/$subdir/readelf.wa]" 2
+ return
+ }
+
+ pass "readelf -wa (compressed)"
+}
# Test readelf's dumping abilities.
readelf_test -r $tempfile readelf.r {}
readelf_wi_test
+readelf_compressed_wa_test
readelf_dump_test
+
+# PR 13482 - Check for off-by-one errors when dumping .note sections.
+if {![binutils_assemble $srcdir/$subdir/version.s tmpdir/version.o]} then {
+ perror "could not assemble version note test file"
+ unresolved "readelf - failed to assemble"
+ return
+}
+
+if ![is_remote host] {
+ set tempfile tmpdir/version.o
+} else {
+ set tempfile [remote_download host tmpdir/version.o]
+}
+
+readelf_test -n $tempfile readelf.n {}