diff options
Diffstat (limited to 'binutils-2.25/binutils/testsuite')
192 files changed, 10659 insertions, 0 deletions
diff --git a/binutils-2.25/binutils/testsuite/ChangeLog b/binutils-2.25/binutils/testsuite/ChangeLog new file mode 100644 index 00000000..6c98a137 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/ChangeLog @@ -0,0 +1,258 @@ +2013-09-27 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/x86-64/compressed-1a.d: Updated for 64-bit addresses. + +2013-09-12 Nick Clifton <nickc@redhat.com> + + * binutils-all/x86-64/compressed-1a.d: Update expected output to + allow for 64-bit addresses. + +2013-08-22 Nick Clifton <nickc@redhat.com> + + * binutils-all/nm.exp: --size-sort test: Add more ELF-like + targets. + * binutils-all/nm-1.s: Use .byte instead of .long. + Provide a terminating symbol. + +2013-08-21 Hans-Peter Nilsson <hp@bitrange.com> + + * binutils-all/nm.exp: Revert last change. Instead use nm-elf-1.s + for mmix-knuth-mmixware. + +2013-08-20 Hans-Peter Nilsson <hp@bitrange.com> + + * binutils-all/nm.exp: Xfail test for nm --size-sort for + mmix-knuth-mmixware. + +2013-08-19 Tristan Gingold <gingold@adacore.com> + + * binutils-all/nm.exp: Add a test for nm --size-sort + * binutils-all/nm-elf-1.s: New file. + * binutils-all/nm-1.s: New file. + +2013-05-31 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/i386/compressed-1b.d: Updated for text/data/bss + section alignment change. + * binutils-all/i386/compressed-1c.d: Likewise. + * binutils-all/x86-64/compressed-1b.d: Likewise. + * binutils-all/x86-64/compressed-1c.d: Likewise. + +2013-05-28 Cary Coutant <ccoutant@google.com> + + * binutils-all/dw2-1.W: Adjust expected output. + * binutils-all/objdump.W: Likewise. + * binutils-all/i386/compressed-1a.d: Likewise. + * binutils-all/x86-64/compressed-1a.d: Likewise. + +2013-05-02 Nick Clifton <nickc@redhat.com> + + * readelf.exp: Expect -wi test to fail for the MSP430. + +2013-05-01 Maciej W. Rozycki <macro@codesourcery.com> + + * lib/binutils-common.exp (is_elf_format): Also exclude + *-*-linux*ecoff*. + +2013-02-26 Nick Clifton <nickc@redhat.com> + + PR binutils/15191 + * binutils-all/readelf.n: Updare expected output from readelf. + +2013-02-14 Maciej W. Rozycki <macro@codesourcery.com> + + * binutils-all/mips/mixed-mips16.s: Add missing stack adjustment. + * binutils-all/mips/mixed-mips16.d: Update accordingly. + +2013-02-13 Maciej W. Rozycki <macro@codesourcery.com> + + * binutils-all/mips/mixed-micromips.d: New test. + * binutils-all/mips/mixed-mips16.d: New test. + * binutils-all/mips/mixed-micromips.s: New test source. + * binutils-all/mips/mixed-mips16.s: New test source. + * binutils-all/mips/mips.exp: New file. + +2012-12-17 Nick Clifton <nickc@redhat.com> + + * binutils-all/windres/README: Add copyright notice. + +2012-11-27 Roland McGrath <mcgrathr@google.com> + + * lib/binutils-common.exp (is_zlib_supported): New function. + * lib/utils-lib.exp (run_dump_test): If as options include + --compress-debug-sections and zlib is not available, report + the test as unsupported. + * binutils-all/compress.exp: Bail out if zlib is not available. + * binutils-all/objdump.exp (objdump compressed debug): + Mark unsupported if zlib is not available. + * binutils-all/readelf.exp (readelf_compressed_wa_test): Likewise. + +2012-11-06 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/14567 + * binutils-all/ar.exp (bfdtest1): Removed. + (long_filenames): Take bfdtests. + (thin_archive): Likewise. + (thin_archive_with_nested): Likewise. + (bfdtests): New. + Pass $bfdtests to long_filenames, thin_archive and + thin_archive_with_nested. + +2012-10-29 Alan Modra <amodra@gmail.com> + + * binutils-all/copy-3.d: Exclude all cygwin and mingw targets, + and rs6000. + +2012-10-24 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/ar.exp (bfdtest1): Remove findfile. + +2012-10-21 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/dw2-1.W: Updated. + +2012-10-20 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/compress.exp: Add an objdump test. + * binutils-all/dw2-1.W: New file. + +2012-08-17 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/ar.exp (long_filenames): Remove extra verbose + before binutils_run. + (thin_archive): Likewise. + (thin_archive_with_nested): Likewise. Also run bfdtest1 on + $archive2. + +2012-08-16 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/14481 + * ar.exp (bfdtest1): New. + (long_filenames): Run bfdtest1. + (thin_archive): Likewise. + (thin_archive_with_nested): Likewise. + +2012-08-13 Ian Bolton <ian.bolton@arm.com> + Laurent Desnogues <laurent.desnogues@arm.com> + Jim MacArthur <jim.macarthur@arm.com> + Marcus Shawcroft <marcus.shawcroft@arm.com> + Nigel Stephens <nigel.stephens@arm.com> + Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> + Richard Earnshaw <rearnsha@arm.com> + Sofiane Naci <sofiane.naci@arm.com> + Tejas Belagod <tejas.belagod@arm.com> + Yufeng Zhang <yufeng.zhang@arm.com> + + * objdump.exp: Add AArch64. + +2012-08-02 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/14420 + * binutils-all/i386/compressed-1a.d: Updated. + * binutils-all/objdump.W: Likewise. + * binutils-all/readelf.wa: Likewise. + * binutils-all/x86-64/compressed-1a.d: Likewise. + +2012-07-28 Kai Tietz <ktietz@redhat.com> + + * binutils-all/windres/version_small.rc: New test. + * binutils-all/windres/version_small.rsd: Likewise. + +2012-07-03 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/14319 + * binutils-all/compress.exp: Test compress empty debug sections. + + * binutils-all/dw2-empty.S: New file. + +2012-06-07 Thomas Schwinge <thomas@codesourcery.com> + + * binutils-all/i386/i386.exp: Don't skip for x86_64-*-linux*. + +2012-05-17 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/hppa/objdump.exp: Expect addend as signed. + +2012-05-17 Alan Modra <amodra@gmail.com> + + * binutils-all/objdump.W: Update. + * binutils-all/readelf.wa: Update. + * binutils-all/i386/compressed-1a.d: Update. + * binutils-all/x86-64/compressed-1a.d: Update. + +2012-05-16 Meador Inge <meadori@codesourcery.com> + + * binutils-all/arm/objdump.exp: + STMFD/LDMIA sp!, {reg} don't disassemble to PUSH/POP {reg} any longer. + +2012-04-12 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/13947 + * binutils-all/i386/compressed-1b.d: Remove empty REL section. + * binutils-all/i386/compressed-1c.d: Likewise. + + * binutils-all/x86-64/compressed-1b.d: Remove empty RELA + section. + * binutils-all/x86-64/compressed-1c.d: Likewise. + +2012-04-03 Roland McGrath <mcgrathr@google.com> + + * lib/binutils-common.exp (is_elf_format): Consider *-*-nacl* to + be ELF too. + + * binutils-all/elfedit-4.d: Add "#as: --64" option. + + * binutils-all/i386/i386.exp: Accept nacl targets too. + * binutils-all/x86-64/x86-64.exp: Likewise. + +2012-03-13 Hans-Peter Nilsson <hp@axis.com> + + PR binutils/3807 + * binutils-all/objcopy.exp (localize-hidden-1): Correct xfailed + mips-targets. + +2012-02-25 Walter Lee <walt@tilera.com> + + * binutils-all/objdump.exp (cpus_expected): Add tilegx. + +2012-02-14 Alan Modra <amodra@gmail.com> + + * binutils-all/dlltool.exp: Add setup_xfail. + + * binutils-all/dw2-decodedline.S: Always have whitespace before + directives. + * binutils-all/version.s: Likewise. + * binutils-all/objdump.exp (dw2-decodedline): Don't run for + hppa64*-*-hpux*, i370-*-*, i960-*-*. + +2012-02-11 Kai Tietz <ktietz@redhat.com> + + * binutils-all/version.def: New file. + * binutils-all/dlltool.exp: Add version-dll test. + +2012-02-02 Nick Clifton <nickc@redhat.com> + + * binutils-all/readelf.n: Add #pass to cope with targets that add + their own notes. + +2012-02-01 Nick Clifton <nickc@redhat.com> + + PR binutils/13482 + * binutils-all/version.s: New test source file. + * binutils-all/readelf.n: New file: expected readelf output. + * binutils-all/readelf.exp: Add test of .note section contents. + +For older changes see ChangeLog-0411 + +Copyright (C) 2012 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. + +Local Variables: +mode: change-log +left-margin: 8 +fill-column: 74 +version-control: never +End: diff --git a/binutils-2.25/binutils/testsuite/ChangeLog-0411 b/binutils-2.25/binutils/testsuite/ChangeLog-0411 new file mode 100644 index 00000000..5c9cc241 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/ChangeLog-0411 @@ -0,0 +1,997 @@ +2011-11-25 Nick Clifton <nickc@redhat.com> + + * binutils-all/objdump.exp (cpus): Add MicroBlaze. + (objdump -WL): Skip this test on MCore, Moxie and OpenRisc + targets. + + * binutils-all/objcopy.exp (localize-hidden-1): Expect this test + to fail on MIPS based targets. + +2011-10-25 Kai Tietz <ktietz@redhat.com> + + * binutils-all/windres/strtab4.rc: New test. + * binutils-all/windres/strtab4.rsd: Likewise. + +2011-10-11 Chris <player1@onet.eu> + + PR binutils/13051 + * binutils-all\windres\version.rsd: Regenerate. + * binutils-all\windres\version_cat.rsd: Regenerate. + * binutils-all\windres\version_mlang.rc: Add new test. + * binutils-all\windres\version_mlang.rsd: Likewise. + +2011-10-07 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/objdump.exp: Don't run dw2-decodedline.S on ia64. + +2011-10-04 Carlos O'Donell <carlos@codesourcery.com> + + * binutils-all/dw2-decodedline.S: New file. + * binutils-all/objdump.WL: New file. + * binutils-all/objdump.exp: Update copyright year. + New test case for -WL. + +2011-09-28 Matthew Gretton-Dann <matthew.gretton-dann@arm.com> + + * binutils-all/elfedit-4.d: Give test a unique name. + +2011-09-15 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/13180 + * binutils-all/group-6.d: New. + * binutils-all/group-6.s: Likewise. + + * binutils-all/objcopy.exp: Run group-6 for ELF targrts. + +2011-07-22 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/elfedit.exp: Run elfedit-4. + + * binutils-all/elfedit-4.d: New. + +2011-06-30 Bernd Schmidt <bernds@codesourcery.com> + + * binutils-all/objcopy.exp (strip_test, strip_executable): + On ELF targets, test that OS/ABI is preserved. + (copy_setup): Do test on tic6x-*-uclinux. + +2011-06-19 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/elfedit-1.d: Updated for x32. + +2011-05-18 Nick Clifton <nickc@redhat.com> + + PR binutils/12753 + * lib/utils-lib.exp (run_dump_test): Allow nm as a program. + * binutils-all/nm.exp: Test running "nm -g" on an object file + containing a unique symbol. + +2011-05-13 Alan Modra <amodra@gmail.com> + + * binutils-all/objcopy.exp objcopy_text): Remove xfails for sh-rtems + and tic4x. + +2011-05-02 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/12720 + * binutils-all/ar.exp (delete_an_element): New. + (move_an_element): Likewise. + Run delete_an_element and move_an_element. + +2011-04-30 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/x86-64/compressed-1a.d: Adjust for change in output + format. + +2011-04-29 Hans-Peter Nilsson <hp@axis.com> + + * binutils-all/i386/compressed-1a.d: Adjust for change in output + format. + +2011-04-28 Tom Tromey <tromey@redhat.com> + + * binutils-all/objdump.W: Correct output. + +011-04-11 Kai Tietz + + * binutils-all/windres/windres.exp: Add '// cpparg <option>' command + to rc file interpretation to specify addition pre-processor commands + as script option. + * binutils-all/windres/strtab3.rc: New. + * binutils-all/windres/strtab3.rsd: New. + * binutils-all/windres/README: Add note about cpparg script option. + argument + +2011-04-11 Nick Clifton <nickc@redhat.com> + + * binutils-all/arm/simple.s: Fix assembly problems for COFF based + ARM toolchaisn by removing .type and .size directives. + +2011-04-07 Paul Carroll<pcarroll@codesourcery.com> + + * binutils-all/arm/simple.s: Demo issue with objdump with + multiple input files + * binutils-all/arm/objdump.exp: added new ARM test case code + +2011-04-06 Joseph Myers <joseph@codesourcery.com> + + * binutils-all/objcopy.exp (*arm*-*-coff): Change to arm*-*-coff. + (xscale-*-coff, thumb*-*-coff, thumb*-*-pe): Don't handle. + +2011-03-31 Bernd Schmidt <bernds@codesourcery.com> + + * lib/binutils-common.exp (is_elf_format): Accept tic6x*-*-uclinux*. + +2011-01-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + * lib/binutils-common.exp (regexp_diff): Use "==" instead of "eq". + +2010-12-31 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + * binutils-all/copy-2.d: Change "hppa" to "hppa*" in not-target list. + * binutils-all/copy-3.d: Add hppa*-*-hpux* to not-target list. + * binutils-all/objcopy.exp (reverse-bytes): xfail on 32-bit hpux. + +2010-12-31 Richard Sandiford <rdsandiford@googlemail.com> + + * binutils-all/readelf.exp: Handle MIPS FreeBSD targets. + +2010-12-09 Maciej W. Rozycki <macro@codesourcery.com> + + * lib/binutils-common.exp (regexp_diff): Implement inverse + matching, requested by `!'. + +2010-11-20 Richard Sandiford <rdsandiford@googlemail.com> + + * lib/binutils-common.exp (regexp_diff): New procedure. + * lib/utils-lib.exp (regexp_diff): Delete. + +2010-11-20 Richard Sandiford <rdsandiford@googlemail.com> + + * lib/binutils-common.exp: New file. + * lib/utils-lib.exp (load_common_lib): New function. Load + binutils-common.exp. + (is_elf_format): Delete. + +2010-11-15 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/compress.exp: Replace binutils_assemble with + binutils_assemble_flags for --nocompress-debug-sections. + +2010-11-15 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/compress.exp: Pass --nocompress-debug-sections to + assembler for uncompressed debug sections. + + * binutils-all/testranges.d: Also expect .zdebug in section name. + +2010-11-08 Thomas Schwinge <thomas@schwinge.name> + + * lib/utils-lib.exp (is_elf_format): Consider for *-*-gnu*, too. + * binutils-all/elfedit-2.d (target): Likewise. + * binutils-all/elfedit-3.d (target): Likewise. + * binutils-all/i386/i386.exp: Likewise. + * binutils-all/objcopy.exp: Likewise. + * binutils-all/strip-3.d (target): Likewise. + +2010-11-08 Alan Modra <amodra@gmail.com> + + * binutils-all/objdump.W: Adjust expected result for debug section + rename. + +2010-11-02 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/libdw2.out: Also accept MIPS_DWARF. + +2010-10-29 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/compress.exp: New. + * binutils-all/dw2-1.S: Likewise. + * binutils-all/dw2-2.S: Likewise. + * binutils-all/libdw2-compressed.out: Likewise. + * binutils-all/libdw2.out: Likewise. + +2010-10-22 Mark Mitchell <mark@codesourcery.com> + + * binutils-all/group-5.d: Expect ".group" for the name of group + sections. + * binutils-all/strip-2.d: Likewise. + +2010-10-12 Andreas Schwab <schwab@linux-m68k.org> + + * binutils-all/m68k/objdump.exp: Add fnop test. + * binutils-all/m68k/fnop.s: New file. + +2010-09-29 Alan Modra <amodra@gmail.com> + + * lib/utils-lib.exp (is_elf_format): Merge with gas and ld versions. + +2010-09-23 Alan Modra <amodra@gmail.com> + + * binutils-all/ar.exp: Don't run unique_symbol on msp or hpux. + * binutils-all/copy-2.d: Update not-target list. + * binutils-all/note-1.d: Don't run on h8300. + * binutils-all/objcopy.exp: Don't run strip-10 on msp or hpux. + (objcopy_test): Remove h8300-rtems from xfails. + +2010-09-16 Alan Modra <amodra@gmail.com> + + * binutils-all/i386/i386.exp: Don't run on linuxaout. + +2010-09-10 Ben Gardiner <bengardiner@nanometrics.ca> + + * binutils-all/objcopy.exp: Add test of new --interleave-width + option. + +2010-09-03 Jan Kratochvil <jan.kratochvil@redhat.com> + + * binutils-all/objdump.W: Update DW_OP_reg5 expected output. + +2010-08-23 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/elfedit-3.d: New. + + * binutils-all/elfedit.exp: Run elfedit-3. + +2010-07-19 Andreas Schwab <schwab@redhat.com> + + * binutils-all/readelf.s: Ignore "Key to Flags" contents. + * binutils-all/readelf.s-64: Likewise. + * binutils-all/i386/compressed-1b.d: Likewise. + * binutils-all/i386/compressed-1c.d: Likewise. + * binutils-all/x86-64/compressed-1b.d: Likewise. + * binutils-all/x86-64/compressed-1c.d: Likewise. + +2010-07-14 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/i386/compressed-1a.d: Fix a typo. + * binutils-all/i386/compressed-1b.d: Likewise. + * binutils-all/i386/compressed-1c.d: Likewise. + * binutils-all/x86-64/compressed-1a.d: Likewise. + * binutils-all/x86-64/compressed-1b.d: Likewise. + * binutils-all/x86-64/compressed-1c.d: Likewise. + +2010-07-14 H.J. Lu <hongjiu.lu@intel.com> + + * config/default.exp (binutils_assemble): Use + default_binutils_assemble_flags. + (binutils_assemble_flags): New. + + * lib/utils-lib.exp (default_binutils_assemble): Renamed to ... + (default_binutils_assemble_flags): This. Add asflags and + pass it to target_assemble. + (run_dump_test): Support assembler flags. + + * binutils-all/i386/compressed-1.s: New. + * binutils-all/i386/compressed-1a.d: Likewise. + * binutils-all/i386/compressed-1b.d: Likewise. + * binutils-all/i386/compressed-1c.d: Likewise. + * binutils-all/i386/i386.exp: Likewise. + * binutils-all/x86-64/compressed-1.s: Likewise. + * binutils-all/x86-64/compressed-1a.d: Likewise. + * binutils-all/x86-64/compressed-1b.d: Likewise. + * binutils-all/x86-64/compressed-1c.d: Likewise. + * binutils-all/x86-64/x86-64.exp: Likewise. + +2010-07-05 H.J. Lu <hongjiu.lu@intel.com> + + PR gas/10531 + PR gas/11789 + * binutils-all/objdump.W: Remove bogus line debug info. + +2010-05-18 H.J. Lu <hongjiu.lu@intel.com> + + PR gas/11600 + * binutils-all/objcopy.exp: Run exclude-1a and exclude-1b for + ELF targets. + + * binutils-all/exclude-1.s: New. + * binutils-all/exclude-1a.d: Likewise. + * binutils-all/exclude-1b.d: Likewise. + +2010-04-30 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/dlltool.exp: Add a missing `"'. + +2010-04-27 Kai Tietz <kai.tietz@onevision.com> + + * binutils-all/dlltool.exp: Allow test for + arm-wince-pe target. + +2010-03-30 Kai TIetz <kai.tietz@onevision.com> + + * binutils-all/objcopy.exp: Mark simple copy executable + as failing for all *-*-mingw32* targets. + +2010-03-26 Matt Rice <ratmice@gmail.com> + + * binutils-all/ar.exp (unique_symbol): New test. + +2010-02-18 Alan Modra <amodra@gmail.com> + + * binutils-all/group-5.s, * binutils-all/group-5.d: New test. + * binutils-all/objcopy.exp: Run it. + +2010-02-01 Nathan Sidwell <nathan@codesourcery.com> + + * binutils-all/note-1.d: New. + * binutils-all/objcopy.exp: Add it. + +2010-01-30 Dave Korn <dave.korn.cygwin@gmail.com> + + * binutils-all/windres/html.rc: Don't xfail x86_64-*-mingw*. + * binutils-all/windres/lang.rc: Likewise. + * binutils-all/windres/messagetable.rc: Likewise. + * binutils-all/windres/strtab1.rc: Likewise. + * binutils-all/windres/strtab2.rc: Likewise. + * binutils-all/windres/version.rc: Likewise. + * binutils-all/windres/version_cat.rc: Likewise. + +2010-01-19 Ian Lance Taylor <iant@google.com> + + * lib/utils-lib.exp (run_dump_test): Permit option values to use + $srcdir to refer to the source directory. + * binutils-all/add-section.d: New test. + * binutils-all/add-empty-section.d: New test. + * binutils-all/empty-file: New test input file. + * binutils-all/objcopy.exp: Run new tests. + +2010-01-08 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/elfedit-2.d: New. + + * binutils-all/elfedit.exp: Run elfedit-2. + +2010-01-06 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/11131 + * binutils-all/elfedit-1.d: New. + * binutils-all/elfedit.exp: Likewise. + + * config/default.exp (ELFEDIT): New. Set if it doesn't exist. + (ELFEDITFLAGS): Likewise. + + * lib/utils-lib.exp (run_dump_test): Support elfedit. + +2009-10-28 Kai Tietz <kai.tietz@onevision.com> + + * binutils-all/dlltool.exp: Add tests for --no-leading-underscore + and --leading-underscore option for dlltool. + +2009-10-23 Kai Tietz <kai.tietz@onevision.com> + + * binutils-all/dlltool.exp: Add new test. + * binutils-all/alias-2.def: New file. + +2009-10-18 Vincent Rivière <vincent.riviere@freesbee.fr> + + * binutils-all/copy-2.d: Exclude more aout targets. + * binutils-all/copy-3.d: Likewise. + +2009-09-23 Alan Modra <amodra@bigpond.net.au> + + * binutils-all/readelf.s: Tolerate some whitespace differences. + * binutils-all/readelf.s-64: Likewise. + * binutils-all/readelf.ss: Likewise. + * binutils-all/readelf.ss-64: Likewise. + * binutils-all/readelf.ss-mips: Likewise. + * binutils-all/readelf.ss-tmips: Likewise. + * binutils-all/strip-10.d: Likewise. + +2009-09-08 Alan Modra <amodra@bigpond.net.au> + + * binutils-all/objdump.exp (cpus_expected): Add ms1. + +2009-09-07 Jan Kratochvil <jan.kratochvil@redhat.com> + + * binutils-all/testranges.s (.debug_info): Pad the only CU. + +2009-09-07 Jan Kratochvil <jan.kratochvil@redhat.com> + + * binutils-all/testranges.s: Replace all .long by .4byte. + +2009-09-04 DJ Delorie <dj@redhat.com> + + * binutils-all/objdump.exp: Add m16c and m32c to the list of + expected cpus. + +2009-09-02 Jie Zhang <jie.zhang@analog.com> + + * binutils-all/bfin/unknown-mode.s: New test. + * binutils-all/bfin/objdump.exp: New test. + +2009-08-17 Nick Clifton <nickc@redhat.com> + + * binutils-all/strip-10.d: Accept "<OS specific>: 10" for the type + of the UNIQUE symbol. + +2009-08-07 Daniel Jacobowitz <dan@codesourcery.com> + + * binutils-all/testranges.s: Use %progbits. Use ";#" for comments. + +2009-08-06 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/10492 + * binutils-all/objcopy.exp: Run strip-10. + + * binutils-all/strip-10.d: New. + * binutils-all/unique.s: Likewise. + +2009-07-31 Daniel Gutson <dgutson@codesourcery.com> + Daniel Jacobowitz <dan@codesourcery.com> + + * binutils-all/arm/thumb2-cond.s: Use instructions instead of + .short. + +2009-07-29 Alan Modra <amodra@bigpond.net.au> + + * binutils-all/testranges.s: Replace .value with .short. + +2009-07-16 Dave Korn <dave.korn.cygwin@gmail.com> + H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/objcopy.exp: Run testranges and testranges-ia64 + for ELF targets only. + +2009-07-16 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/objcopy.exp; Run testranges-ia64. + + * binutils-all/testranges.d: Don't run for ia64. + + * binutils-all/testranges-ia64.d: New. + * binutils-all/testranges-ia64.s: Likewise. + +2009-07-14 Jan Kratochvil <jan.kratochvil@redhat.com> + + * binutils-all/objcopy.exp (testranges): New test. + * binutils-all/testranges.d, binutils-all/testranges.s: New files. + +2009-06-25 Christopher Faylor <me+cygwin@cgf.cx> + + * binutils-all/objcopy.exp: Move XFAIL from objcopy_test to + copy_executable. + +2009-06-25 Christopher Faylor <me+cygwin@cgf.cx> + + * binutils-all/objcopy.exp: Always treat objcopy_test as XFAIL on + cygwin. + +2009-04-16 Alan Modra <amodra@bigpond.net.au> + + * binutils-all/localize-hidden-1.s: Use "==" instead of ".set". + * binutils-all/localize-hidden-2.s: Likewise. + +2009-04-02 Dave Korn <dave.korn.cygwin@gmail.com> + + * inutils-all/objcopy.exp (strip_executable): Delete remote dest + file before downloading. + (strip_executable_with_saving_a_symbol): Likewise. + (keep_debug_symbols_and_test_copy): Likewise. + +2009-03-11 Joseph Myers <joseph@codesourcery.com> + + * binutils-all/objdump.W, binutils-all/objdump.s: Don't match + literal "tmpdir/" in expected output. + +2009-03-11 Chris Demetriou <cgd@google.com> + + * binutils-all/ar.exp (deterministic_archive): New test. + +2009-03-09 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/9933 + * binutils-all/copy-4.d: New. + + * binutils-all/objcopy.exp: Run copy-4. + +2009-03-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + * config/hppa.sed: Fix spelling. + +2009-03-02 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> + + * binutils-all/localize-hidden-1.s: Change .equ to .set. + * binutils-all/localize-hidden-2.s: Likewise. + +2009-01-29 Nick Clifton <nickc@redhat.com> + + * binutils-all/objdump.W: Do not assume that high and low PC + addresses will have been computed. + +2008-10-06 Tom Tromey <tromey@redhat.com> + + * binutils-all/objdump.W: Update. + +2008-10-03 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/group.s: Updated. + * binutils-all/group-2.s: Likewise. + * binutils-all/group-3.s: Likewise. + * binutils-all/group-4.s: Likewise. + * binutils-all/strip-7.d: Likewise. + * binutils-all/strip-9.d: Likewise. + +2008-10-01 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/group-4.s: New. + * binutils-all/strip-8.d: Likewise. + * binutils-all/strip-9.d: Likewise. + + * binutils-all/objcopy.exp: Test objcopy on group-4.s. Run + strip-8 and strip-9. + +2008-10-01 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/group-3.s: New. + * binutils-all/strip-6.d: Likewise. + * binutils-all/strip-7.d: Likewise. + + * binutils-all/objcopy.exp: Test objcopy on group-3.s. Run + strip-6 and strip-7. + +2008-10-01 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/group-2.s: New. + * binutils-all/strip-4.d: Likewise. + * binutils-all/strip-5.d: Likewise. + + * binutils-all/objcopy.exp: Test objcopy on group-2.s. Run + strip-4 and strip-5. + +2008-07-26 Alan Modra <amodra@bigpond.net.au> + + * binutils-all/objdump.exp: Run compressed debug test only for ELF. + +2008-07-11 Hans-Peter Nilsson <hp@axis.com> + + * binutils-all/objdump.W: Generalize to adjust for targets with + non-byte-size instructions. + +2008-07-09 Craig Silverstein <csilvers@google.com> + + * binutils-all/objdump.exp: Add test for objdump -s on a file + with a compressed debug section. Add test for objdump -W on a + file that contains a compressed debug section. + * binutils-all/readelf.exp: Call readelf_compressed_wa_test. + (readelf_compressed_wa_test): New function. + * binutils-all/dw2-compressed.S: New file. + * binutils-all/objdump.W: New file. + * binutils-all/objdump.s: New file. + * binutils-all/readelf.wa: New file. + +2008-07-08 Kai Tietz <kai.tietz@onevision.com> + + * binutils-all/objcopy.exp (copy_setup): Check if host-triplet + is target-triplet for execution tests. + (copy_executable): Likewise. + (strip_executable): Likewise. + (strip_executable_with_saving_a_symbol): Likewise. + +2008-05-29 Jan Kratochvil <jan.kratochvil@redhat.com> + + * binutils-all/objcopy.exp: Call KEEP_DEBUG_SYMBOLS_AND_TEST_COPY. + (keep_debug_symbols_and_test_copy): New function. + (test5, test6): New variables. + +2008-03-27 Cary Coutant <ccoutant@google.com> + + * binutils-all/ar.exp: Add thin archive tests. + +2008-02-26 Joseph Myers <joseph@codesourcery.com> + + * config/default.exp (gcc_gas_flag, dlltool_gas_flag): Define to + empty for testing an installed toolchain. + +2008-02-04 Bob Wilson <bob.wilson@acm.org> + + * binutils-all/objdump.exp (cpus_expected): Add xtensa. + +2007-10-26 Alan Modra <amodra@bigpond.net.au> + + * binutils-all/windres/windres.exp: Don't xfail. + +2007-10-16 Nick Clifton <nickc@redhat.com> + + * binutils-all/readelf.ss: Accept COMMON in readelf's output. + * binutils-all/readelf.ss-64: Likewise. + * binutils-all/readelf.ss-mips: Likewise. + * binutils-all/readelf.ss-tmips: Likewise. + +2007-08-30 Nick Clifton <nickc@redhat.com> + + * binutils-all/dumptest.s: New test file. + * binutils-all/readelf.exp: Add test of readelf's -p switch. + +2007-08-28 Mark Shinwell <shinwell@codesourcery.com> + Joseph Myers <joseph@codesourcery.com> + + * binutils-all/ar.exp (long_filenames): Delete temporary files on + the host. + * binutils-all/arm/objdump.exp: Only check "which $OBJDUMP" if + host is local. + * binutils-all/objcopy.exp: Use ${srecfile} to get the name of the + srec file to be passed to binutils_run. + (objcopy_test_readelf): Use remote_exec. + * binutils-all/readelf.exp (readelf_find_size): Use remote_exec. + (readelf_test): Likewise. + (readelf_wi_test): Likewise. + * lib/utils-lib.exp (run_dump_test): Only check "which $binary" if + host is local. Use remote_exec. Use $tempfile not + tmpdir/bintest.o. + +2007-08-09 Alan Modra <amodra@bigpond.net.au> + + * binutils-all/copy-2.d (not-target): Match *-*-*aout. + * binutils-all/copy-3.d (not-target): Likewise. + * binutils-all/objcopy.exp (objcopy_test): Remove extraneous + setup_xfail. + * windres/windres.exp: Return unsupported rather than fail if + windows.h not found. + +2007-07-05 Nick Clifton <nickc@redhat.com> + + * lib/utils-lib.exp: Update copyright notice to refer to GPLv3. + * config/default.exp, binutils-all/ar.exp, + binutils-all/dlltool.exp, binutils-all/nm.exp, + binutils-all/objcopy.exp, binutils-all/arm/objdump.exp, + binutils-all/hppa/objdump.exp, binutils-all/m68k/objdump.exp, + binutils-all/vax/objdump.exp, binutils-all/windres/windres.exp, + binutils-all/windres/msupdate: Likewise. + +2007-06-23 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/strip-3.d: Also strip .xtensa.info section. + +2007-05-24 Kai Tietz <Kai.Tietz@onevision.com> + + * binutils-all/windres/version_cat.rc: New. + * binutils-all/windres/version_cat.rsd: New. + +2007-05-23 Kai Tietz <Kai.Tietz@onevision.com> + + * binutils-all/windres/html.rc: New. + * binutils-all/windres/html.rsd: New. + * binutils-all/windres/html1.hm: New. + * binutils-all/windres/html2.hm: New. + * binutils-all/windres/messagetable.rc: New. + * binutils-all/windres/messagetable.rsd: New. + * binutils-all/windres/MSG00001.bin: New. + * binutils-all/windres/strtab2.rc: New. + * binutils-all/windres/strtab2.rsd: New. + * binutils-all/windres/version.rc: New. + * binutils-all/windres/version.rsd: New. + * binutils-all/windres/dialog.rsd: Fix expected results. + +2007-05-17 Joseph Myers <joseph@codesourcery.com> + + * binutils-all/strip-3.d: Strip .pdr section. + +2007-05-15 Alan Modra <amodra@bigpond.net.au> + + * binutils-all/objcopy.exp: Only run needed-by-reloc test for ELF. + +2007-05-11 Alan Modra <amodra@bigpond.net.au> + + * binutils-all/needed-by-reloc.s: Use .long rather than .4byte. + +2007-05-08 Mark Shinwell <shinwell@codesourcery.com> + + * binutils-all/strip-3.d: Strip .ARM.attributes and .reginfo + sections. + +2007-05-02 Alan Modra <amodra@bigpond.net.au> + + * binutils-all/objcopy.exp (copy_setup): Don't perror, use send_log. + (copy_executable): Return early if test2 is blank. + Return unsupported rather than unresolved if we can't run + executables. Do test1 if we can compile. + +2007-04-24 Nathan Froyd <froydnj@codesourcery.com> + Phil Edwards <phil@codesourcery.com> + + * binutils-all/objcopy.exp: Add test for stripping a symbol + used in a relocation. + * binutils-all/needed-by-reloc.s: New file. + +2007-04-20 Nathan Froyd <froydnj@codesourcery.com> + Phil Edwards <phil@codesourcery.com> + Thomas de Lellis <tdel@windriver.com> + + * binutils-all/objcopy.exp: Add test for --reverse-bytes. + +2007-04-21 Richard Earnshaw <rearnsha@arm.com> + + * binutils-all/readelf.exp (regexp_diff): Delete. + +2007-04-20 Richard Earnshaw <rearnsha@arm.com> + + * binutils-all/arm/thumb2-cond.s: Allow for tab expansion by the pty. + Rename the second test. + +2007-04-12 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/4348 + * binutils-all/empty.s: New file. + * binutils-all/strip-3.d: Likewise. + + * binutils-all/objcopy.exp: Run strip-3 for ELF target. + +2007-02-27 Nathan Sidwell <nathan@codesourcery.com> + + * binutils-all/objcopy.exp: Skip for uclinux targets. + +2007-02-14 Nick Clifton <nickc@redhat.com> + + * binutils-all/readelf.exp (readelf_wi_test): Fix unexpected + output failure message. + +2007-01-08 Kai Tietz <kai.tietz@onevision.com> + + * copy-3.d: Renamed target x86_64-*-mingw64 to x86_64-*-mingw* + * dlltool.exp: Dito + * lang.rc: Dito + * strtab1.rc: Dito + * windres.exp: Dito + +2006-09-20 Kai Tietz <Kai.Tietz@onevision.com> + + * binutils-all/copy-3.d: Add support for target x86_64-pc-mingw64. + * binutils-all/dlltool.exp: Likewise. + * binutils-all/objcopy.exp: Likewise. + * binutils-all/windres/windres.exp: Likewise. + * binutils-all/windres/lang.rc: xfail it as long as there is no windows.h. + * binutils-all/windres/strtab1.rc: Likewise. + * lib/utils-lib.exp: Adjust executable prefix detection (as .exe). + +2006-09-14 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/3181 + * binutils-all/objcopy.exp: Run strip-1 and strip-2 for ELF + targets. + + * binutils-all/strip-1.d: New file. + * binutils-all/strip-2.d: Likewise. + + * lib/utils-lib.exp (run_dump_test): Support strip. + +2006-08-15 Thiemo Seufer <ths@mips.com> + Nigel Stephens <nigel@mips.com> + David Ung <davidu@mips.com> + + * binutils-all/readelf.exp (readelf_test): Handle mips*-sde-elf*. + +2006-06-24 Richard Sandiford <richard@codesourcery.com> + + * binutils-all/localize-hidden-1.d: Use objdump --syms instead + of readelf. + +2006-06-23 Richard Sandiford <richard@codesourcery.com> + + * binutils-all/localize-hidden-1.s, + * binutils-all/localize-hidden-1.d, + * binutils-all/localize-hidden-2.s, + * binutils-all/localize-hidden-2.d: New tests. + * binutils-all/objcopy.exp: Run them. + +2006-06-06 Paul Brook <paul@codesourcery.com> + + * binutils-all/arm/objdump.exp: New file. + * binutils-all/arm/thumb2-cond.s: New test. + +2006-05-03 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/copy-3.d: Fix a typo. + +2006-05-03 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/copy-3.d: New. + + * objcopy.exp: Run copy-3. + +2006-05-02 Dave Korn <dave.korn@artimi.com> + + * binutils-all/copy-1.d (name): Correct spelling of 'setting'. + * binutils-all/copy-1.d (name): Likewise. + +2006-05-02 Nick Clifton <nickc@redhat.com> + + * binutils-all/copy-2.d: Change the name of the section whose + flags are changed to "foo" so that the test will work with PE + based targets. Skip this test for AOUT based targeted. + * binutils-all/copytest.s: New file. + +2006-05-01 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/objcopy.exp: Run "copy-1" for ELF only. + +2006-05-01 Ben Elliston <bje@au.ibm.com> + + * binutils-all/objcopy.exp (objcopy_test_readelf): Remove stray ; + +2006-04-26 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/2593 + * binutils-all/copy-1.d: New file. + * binutils-all/copy-1.s: Likewise. + * binutils-all/copy-2.d: Likewise. + + * binutils-all/objcopy.exp: Add run_dump_test "copy-1" and + run_dump_test "copy-2". + + * lib/utils-lib.exp (run_dump_test): New. + (slurp_options): Likewise. + (regexp_diff): Likewise. + (file_contents): Likewise. + (verbose_eval): Likewise. + +2006-04-25 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/2467 + * binutils-all/objcopy.exp (strip_test): Also test "strip -g" + on archive. + +2006-04-10 H.J. Lu <hongjiu.lu@intel.com> + + * lib/utils-lib.exp (default_binutils_run): Check exit status. + +2005-12-24 Ben Elliston <bje@gnu.org> + + * config/default.exp: Do not load the unneeded util-defs.exp. + +2005-11-15 Jan Beulich <jbeulich@novell.com> + + * config/default.exp (link_or_copy): New. Use it for setting + up assembler and linker for the compiler to use. + +2005-10-20 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/251 + * binutils-all/group.s: New file. + + * binutils-all/objcopy.exp (objcopy_test_readelf): New + procedure. + Use it to test ELF group. + +2005-10-19 H.J. Lu <hongjiu.lu@intel.com> + + PR ld/1487 + * binutils-all/objcopy.exp (objcopy_test): New procedure. + Use it to test simple copy, ia64 link order and ELF unknown + section type. + + * binutils-all/unknown.s: New file. + +2005-10-19 H.J. Lu <hongjiu.lu@intel.com> + + PR binutils/1321 + * binutils-all/link-order.s: New. + + * binutils-all/objcopy.exp: Check ia64 link order. + +2005-10-11 Danny Smith <dannysmith@users.sourceforge.net> + + * binutils-all/windres/escapex-2.rc: New file. + * binutils-all/windres/escapex-2.rsd: Generate. + +2005-08-26 Christian Groessler <chris@groessler.org> + + * binutils-all/objcopy.exp: Don't setup_xfail "z8*-*". + +2005-08-18 Alan Modra <amodra@bigpond.net.au> + + * binutils-all/objcopy.exp: Remove a29k support. + * binutils-all/objdump.exp: Likewise, alliant and convex too. + +2005-05-07 Nick Clifton <nickc@redhat.com> + + * Update the address and phone number of the FSF organization in + the GPL notices in the following files: + binutils-all/ar.exp, binutils-all/dlltool.exp, + binutils-all/nm.exp, binutils-all/objcopy.exp, + binutils-all/objdump.exp, binutils-all/readelf.exp, + binutils-all/size.exp, binutils-all/hppa/objdump.exp, + binutils-all/m68k/objdump.exp, binutils-all/vax/objdump.exp, + binutils-all/windres/msupdate, binutils-all/windres/windres.exp, + config/default.exp, lib/utils-lib.exp + +2005-04-04 Jan-Benedict Glaw <jbglaw@lug-owl.> + + * binutils-all/vax/objdump.exp: Condense the two tests into one + and add a "-M entry:" for the second label. + +2005-03-29 Jan-Benedict Glaw <jbglaw@lug-owl.de> + + * binutils-all/vax: New directory. + * binutils-all/vax/objdump.exp: New script. Test the -Mentry: + switch added to the VAX disassembler. + * binutils-all/vax/entrymask.s: New assembler source file. + +2005-03-08 Ben Elliston <bje@au.ibm.com> + + * config/default.exp: Remove send_user call for stray output. + +2005-01-04 Martin Koegler <mkoegler@auto.tuwien.ac.at> + + * binutils-all/testprog.c: Add prototype for printf() and make + type of "string" array be "char" in order to avoid compile time + warnings. + +2004-12-31 Alan Modra <amodra@bigpond.net.au> + + * binutils-all/readelf.ss: Allow for both .rel and .rela sections. + +2004-11-04 Hans-Peter Nilsson <hp@axis.com> + + * binutils-all/objdump.exp (cpus_expected): Append cris. + +2004-10-28 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/dlltool.exp: Set XFAIL if $target_xfail is yes. + +2004-10-23 Aaron W. LaFramboise <aaron98wiridge9@aaronwl.com> + + * binutils-all/alias.def: New file. + * binutils-all/dlltool.exp: Two new -p tests. + * config/default.exp (dlltool_gas_flag): New variable. + Copy gas and lds executables into tmpdir/gas directory rather than + making symlinks which might not be supported by the host OS. + Attempt to handle the case where the host OS does not use the .exe + extension but the target OS does. + * lib/utils-lib.exp (exe_ext): New procedure. + +2004-07-12 Nick Clifton <nickc@redhat.com> + + * binutils-all/dlltool.exp: Check that the -p switch is not + rejected. + +2004-07-09 Andreas Schwab <schwab@suse.de> + + * binutils-all/m68k/movem.s: New file. + + * binutils-all/m68k/objdump.exp: New file. + +2004-05-15 Nick Clifton <nickc@redhat.com> + + * binutils-all/readelf.ss: Allow for ARM mapping symbols. + +2004-05-12 Ben Elliston <bje@au.ibm.com> + + * binutils-all/ar.exp: Remove stray semicolons. + * binutils-all/dlltool.exp: Likewise. + * binutils-all/objcopy.exp: Likewise. + * binutils-all/readelf.exp: Likewise. + * binutils-all/windres/windres.exp: Likewise. + * lib/utils-lib.exp: Likewise. + +2004-04-14 Richard Sandiford <rsandifo@redhat.com> + + * binutils-all/readelf.ss-mips: Allow named section symbols. + +2004-03-30 Jakub Jelinek <jakub@redhat.com> + + * binutils-all/objcopy.exp: Accept main as a data symbol as well. + +2004-02-27 Andreas Schwab <schwab@suse.de> + + * binutils-all/ar.exp (argument_parsing): New test. + +2004-02-20 Nathan Sidwell <nathan@codesourcery.com> + + * binutils-all/objcopy.exp: Reorder arguments for POSIXLY_CORRECT + systems. + +For older changes see ChangeLog-9303 + +Copyright (C) 2004-2011 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. + +Local Variables: +mode: change-log +left-margin: 8 +fill-column: 74 +version-control: never +End: diff --git a/binutils-2.25/binutils/testsuite/ChangeLog-9303 b/binutils-2.25/binutils/testsuite/ChangeLog-9303 new file mode 100644 index 00000000..54061d31 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/ChangeLog-9303 @@ -0,0 +1,1057 @@ +2003-12-03 Nick Clifton <nickc@redhat.com> + + * binutils-all/objdump.exp (cpus_expected): Add "msp". + +2003-10-06 Dave Brolley <brolley@redhat.com> + + * binutils-all/objdump.exp (cpu_expected): Add fr550. + +2003-09-29 H.J. Lu <hongjiu.lu@intel.com> + + * binutils-all/readelf.exp: Use is_elf_format. + + * binutils-all/readelf.h: Support IA64/ILP32. + * binutils-all/readelf.s: Likewise. + * binutils-all/readelf.ss: Likewise. + + * lib/utils-lib.exp (proc is_elf_format): Copy from ld + testsuite. Add ia64-*-hpux*. + +2003-06-29 Danny Smith <dannysmith@users.sourceforge.net> + + * binutils-all/objcopy.exp: Initialise $test_prog to + testprog.exe on mingw targeted systems too. + +2003-06-28 Danny Smith <dannysmith@users.sourceforge.net> + + * binutils-all/windres/checkbox.rc: New file. + * binutils-all/windres/checkbox.rsd: New file. + * binutils-all/windres/combobox.rc: New file. + * binutils-all/windres/combobox.rsd: New file. + * binutils-all/windres/edittext.rc: New file. + * binutils-all/windres/edittext.rsd: New file. + * binutils-all/windres/listbox.rc: New file. + * binutils-all/windres/listbox.rsd: New file. + * binutils-all/windres/scrollbar.rc: New file. + * binutils-all/windres/scrollbar.rsd: New file. + +2003-06-27 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + + * binutils-all/readelf.ss-tmips: Adjust symbol indices. + +2003-06-19 Nick Clifton <nickc@redhat.com> + + * binutils-all/objcopy.exp: Replace occurances of testprog with + $test_prog. Initialise this variable to testprog.exe on Cygwin + targeted systems. + +2003-04-26 Nick Clifton <nickc@redhat.com> + + * binutils-all/readelf.exp (prune_read_warnings): Rename to + prune_readelf_wi_warnings. + (readelf_wi_test): New proc: Test 'readelf -wi' by grepping + through its output. + Replace invocation of "readelf_test -wi" with "readelf_wi_test" + * binutils-all/readelf.wi: Delete. + +2003-04-23 Nick Clifton <nickc@redhat.com> + + * binutils-all/readelf.exp (proc prune_readelf_warnings): New + function. + (proc readelf_test): Prune warning messages. + (readelf_test -wi): Add more expected failures. + * binutils-all/readelf.wi: Severly reduce expected output. + * binutils-all/testprog.c (string): Explicitly use unsigned + chars. + (stdio.h, string.h): Remove inclusion. + +2003-04-23 J"orn Rennecke <joern.rennecke@superh.com> + + * binutils-all/readelf.wi: Update. + +2003-04-22 Dimitrie O. Paun <dpaun@rogers.com> + + * binutils-all/windres/windres.exp: Add test for the new -J + option. Remove use of -I as it now generates a warning message. + +2003-04-03 Nick Clifton <nickc@redhat.com> + + * binutils-all/windres/dialogid.rc: Replace "Static" with + "classname" so that compilation will match behaviour of the + Windows resource compiler. + +2003-03-31 Nick Clifton <nickc@redhat.com> + + * binutils-all/windres/dialogid.rc: New test source file. + * binutils-all/windres/dialogid.rsd: New test expected results. + +2002-11-07 Casper S. Hornstrup <chorns@users.sourceforge.net> + + * binutils-all/dlltool.exp: New file for testing dlltool. + * binutils-all/fastcall.def: New file for testing fastcall + exports. + * config/default.exp: Set DLLTOOL variable. + +2002-08-27 Alan Modra <amodra@bigpond.net.au> + + * binutils-all/objcopy.exp: Revert last change. + +2002-08-26 Alan Modra <amodra@bigpond.net.au> + + * binutils-all/objcopy.exp (strip_test): Adjust for "no symbols" on + stdout. + (strip_executable): Likewise. + +2002-08-13 Alan Modra <amodra@bigpond.net.au> + + * binutils-all/objdump.exp (cpus_expected): Add fr500, ip2022, + tic80, tms320c30. + * binutils-all/objcopy.exp (simple copy): Revise xfails. + +2002-05-29 Alan Modra <amodra@bigpond.net.au> + + * binutils-all/objcopy.exp (strip_test_with_saving_a_symbol): + Revert 2001-11-15. Instead allow `D main'. + +2002-04-16 Eric Kohl <ekohl@rz-online.de> + + * binutils-all/windres/dialog0.rc: New test case: Check default + attributes for dialogs + * binutils-all/windres/dialog0.rsd: New file: Expected output. + * binutils-all/windres/dialog1.rc: New test case: Check + DISCARDABLE flag is propogated. + * binutils-all/windres/dialog1.rsd: New file: Expected output. + +2002-04-15 Eric Kohl <ekohl@rz-online.de> + + * binutils-all/windres/dlgfont.rc: New test case: Checks FONT + statement in DIALOG and DIALOGEX resources. + * binutils-all/windres/dlgfont.rsd: Expected output. + +2002-04-11 Nick Clifton <nickc@cambridge.redhat.com> + + * binutils-all/ar.exp (long_filenames): Use 'file delete' instead + of 'exec rm -f'. + +2002-04-10 Nick Clifton <nickc@cambridge.redhat.com> + + * binutils-all/ar.exp (long_filenames): Delete the abc... files + upon successfully completion of the test. + + * binutils-all/windres/capstyle.rsd: Regenerate using MSVC. + * binutils-all/windres/deflang.rsd: Regenerate using MSVC. + * binutils-all/windres/dialogsignature.rsd: Regenerate using MSVC. + * binutils-all/windres/escapea.rsd: Regenerate using MSVC. + * binutils-all/windres/escapex.rsd: Regenerate using MSVC. + * binutils-all/windres/nocaption.rsd: Regenerate using MSVC. + * binutils-all/windres/printstyle.rsd: Regenerate using MSVC. + * binutils-all/windres/sublang.rsd: Regenerate using MSVC. + +2002-04-09 Nick Clifton <nickc@cambridge.redhat.com> + + * binutils-all/windres/capstyle.rc: New test case: Set default + style for captions. + * binutils-all/windres/capstyle.rsd: Expected output. + + * binutils-all/windres/deflang.rc: New test case: Check default + language. + * binutils-all/windres/deflang.rsd: Expected output. + + * binutils-all/windres/dialogsignature.rc: New test case for + decoding the dialog signature. + * binutils-all/windres/dialogsignature.rsd: Expected output. + + * binutils-all/windres/escapea.rc: New test case for encoding \a + escape sequence. + * binutils-all/windres/escapea.rsd: Expected output. + + * binutils-all/windres/escapex.rc: New test case for hex constants + in strings. + * binutils-all/windres/escapex.rsd: Expected output + + * binutils-all/windres/nocaption.rc: New test case dialogs without + captions. + * binutils-all/windres/nocaption.rsd: Expected output + + * binutils-all/windres/quoteclass.rc: New test case for quoted + CLASS definitions in DIALOG resources. + + * binutils-all/windres/sublang.rc: New test case: Check assignment + of sub-language. + * binutils-all/windres/sublang.rsd: Expected output. + +2002-02-18 Timothy Daly <remote_bob@yahoo.com> + + * binutils-all/readelf.r: Change expected output to match new, + narrowed-to-80-chars format. + * binutils-all/readelf.r-64: Change expected output to match new, + narrowed-to-80-chars format. + +2002-02-18 Hans-Peter Nilsson <hp@bitrange.com> + + * binutils-all/objcopy.exp + (strip_executable_with_saving_a_symbol): Prune symbol Main in nm + output for mmix-knuth-mmixware. + +2002-02-13 Nick Clifton <nickc@cambridge.redhat.com> + + * binutils-all/readelf.ss-mips: Do not expect an explicit + ordering of the sections. + +2002-02-10 Nick Clifton <nickc@cambridge.redhat.com> + + * binutils-all/objdump.exp: Add 'xscale' to the list of expected + CPUs. + +2002-01-14 Nick Clifton <nickc@cambridge.redhat.com> + + * binutils-all/objcopy.exp: Expect xscale-coff to fail simple + objcopy test for the same reason as arm-coff. + +2001-11-29 H.J. Lu <hjl@gnu.org> + + * binutils-all/objcopy.exp (strip_test): Add strip on archive. + +2001-11-15 Alan Modra <amodra@bigpond.net.au> + + * binutils-all/objcopy.exp: (strip_test_with_saving_a_symbol): + Allow '? main', to suit powerpc64. + +2001-11-14 Geoffrey Keating <geoffk@redhat.com> + + * binutils-all/readelf.exp: powerpc-*-eabi* is an ELF target. + +2001-10-03 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + + * binutils-all/readelf.exp: Exclude mips*-*-elf* from 'readelf -wi' + test. + +Tue Sep 4 20:25:41 2001 Jeffrey A Law (law@cygnus.com) + + * binutils/all/readelf.exp: Expect readelf -wi to + fail for the H8 series. + +2001-08-27 Alan Modra <amodra@bigpond.net.au> + + * binutils-all/readelf.s-64: Adjust offsets for powerpc64. Don't + use constructs like [45][08] when all combinations are not valid. + Instead use (48|50) to explicitly state which values are correct. + +2001-08-21 H.J. Lu <hjl@gnu.org> + + * binutils-all/readelf.r: Updated for the readelf change. + + * binutils-all/readelf.r-64: New for the readelf change. + +2001-07-27 H.J. Lu <hjl@gnu.org> + + * binutils-all/windres/windres.exp: Don't set xfail for + bmpalign (compare) on none-ix86/pe targets. + +2001-07-24 H.J. Lu <hjl@gnu.org> + + * binutils-all/windres/windres.exp: Set xfail on none-ix86/pe + targets. + +2001-07-18 DJ Delorie <dj@redhat.com> + + * config/default.exp (WINDRES): Add. + * binutils-all/windres/windres.exp: New. + * binutils-all/windres/README: New. + * binutils-all/windres/bmp1.bmp: New. + * binutils-all/windres/bmpalign.rc: New. + * binutils-all/windres/bmpalign.rsd: New. + * binutils-all/windres/lang.rc: New. + * binutils-all/windres/lang.rsd: New. + * binutils-all/windres/msupdate: New. + * binutils-all/windres/strtab1.rc: New. + * binutils-all/windres/strtab1.rsd: New. + +2001-07-05 Ben Elliston <bje@redhat.com> + + * lib/utils-lib.exp (target_assemble): Remove duplicate copy. + (default_target_assemble): Likewise. + +2001-06-18 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> + + * binutils-all/readelf.exp: Typo. + +2001-06-19 Andreas Jaeger <aj@suse.de> + + * binutils-all/readelf.r: Don't check for specific info value to + pass testsuite on ia64 and alpha. + +2001-06-07 H.J. Lu <hjl@gnu.org> + + * binutils-all/readelf.ss-mips: Support stabs. + * binutils-all/readelf.ss-tmips: Likewise. + +2001-05-25 H.J. Lu <hjl@gnu.org> + + * binutils-all/readelf.exp (readelf_test): Set target_machine + to tmips for traditional mips. + + * binutils-all/readelf.s: Support traditional mips. + + * binutils-all/readelf.ss-tmips: New for traditional mips. + +2001-05-25 Alan Modra <amodra@one.net.au> + + * binutils-all/readelf.exp: Replace linuxoldld with linux*oldld + and linuxaout with linux*aout. + * binutils-all/objcopy.exp: Remove xfail for linuxaout. + +2001-05-24 H.J. Lu <hjl@gnu.org> + + * binutils-all/objdump.exp (cpus_expected): Add s390. + +2001-03-30 H.J. Lu <hjl@gnu.org> + + * binutils-all/readelf.exp: Run on more ELF targets. + +2001-02-11 H.J. Lu <hjl@gnu.org> + + * config/default.exp: Set up gcc_gas_flag. + + * binutils-all/objcopy.exp (copy_setup): Process gcc_gas_flag + for Linux only. + + * binutils-all/testprog.c: Include <string.h> and don't use + exit (). + +2001-01-16 Matthew Green <mrg@redhat.com> + + * binutils-all/readelf.s-64: Match readelf -S output. + +2000-12-09 Nick Clifton <nickc@redhat.com> + + * binutils-all/objdump.exp (cpus_expected): Add tic54x and + tms320c54x. + +2000-11-28 Hans-Peter Nilsson <hp@axis.com> + + * binutils-all/readelf.s: Adjust to readelf.c formatting changes. + +2000-11-02 Chris Demetriou <cgd@sibyte.com> + + * binutils-all/readelf.exp (regexp_diff): Add code + from gas testsuite to treat "#..." at beginning of line + as an indicator to skip extra non-matching lines at that + location. + (readelf_test): Add support for using a machine-specific + regexp comparison file. + (readelf -S test, readelf -s test): Remove v850*-*-* and + mips*-*-* from list of expected failures. + * binutils-all/readelf.s: Accomodate changes due to + additional sections (and therefore section numbering + differences) on v850*-*-* and mips*-*-* targets. + * binutils-all/readelf.ss: Likewise. + * binutils-all/readelf.ss-mips: New file, which matches + expected output of readelf -s test for mips*-*-*. + +2000-10-25 Hans-Peter Nilsson <hp@axis.com> + + * binutils-all/readelf.exp (-wi test): Add cris-*-* to xfails. + +2000-10-19 Chris Demetriou <cgd@sibyte.com> + + * binutils-all/readelf.exp (readelf_test): Work properly + when multiple targets expect failtures. + (readelf -S test, readelf -s test): Expect mips*-*-* + to fail. + +2000-07-10 Alan Modra <alan@linuxcare.com.au> + + * lib/utils-lib.exp (default_binutils_assemble): Don't do the hppa + sed fudges for hppa-linux. + +2000-07-01 Frank Ch. Eigler <fche@redhat.com> + + * binutils-all/objdump.exp (cpus_expected, cpus_regex): Reorganize + syntax to display more tcl nature. + +2000-06-18 Stephane Carrez <stcarrez@worldnet.fr> + + * binutils-all/objdump.exp (cpus_expected): Recognize m68hc11 and + m68hc12. + +2000-06-18 Nick Clifton <nickc@redhat.com> + + * binutils-all/readelf.wi: Do not assume the compilation tag to be + unit 1. + + * binutils-all/objcopy.exp: Expect all arm variants to fail the + copying executable test. + +2000-06-14 Hans-Peter Nilsson <hp@bitrange.com> + + * binutils-all/readelf.exp (regexp_diff): Do not break when a + mismatching line is found. + (readelf_find_size): New. + (readelf_size): New global variable. + (readelf_test): Add newline to send_log of command. + If $srcdir/$subdir/$regexp_file-$readelf_size exists, use it + instead of $srcdir/$subdir/$regexp_file. + (*-*elf test): Fix typo in message. + * binutils-all/readelf.s-64: New. + * binutils-all/readelf.ss-64: New. + +2000-05-02 Alan Modra <alan@linuxcare.com.au> + + * binutils-all/objcopy.exp (simple copy): Clear xfail for hppa-linux. + + * binutils-all/hppa/objdump.exp: Disable test for elf. + +2000-03-13 Nick Clifton <nickc@cygnus.com> + + * binutils-all/readelf.s: Adjust to match new format of readelf + output. + * binutils-all/readelf.ss: Adjust to match new format of readelf + output. + +1999-11-01 Nick Clifton <nickc@cygnus.com> + + * binutils-all/objcopy.exp: Expect simple objcopy test to fail + for COFF based ARM and Thumb ports. + +Tue Sep 14 00:28:17 1999 Jeffrey A Law (law@cygnus.com) + + * binutils-all/hppa/objdump.exp: Do not run for PA64. + +1999-09-04 Steve Chamberlain <sac@pobox.com> + + * binutils-all/objdump.exp: Add pj to cpus_expected. + +Sat Aug 28 00:24:27 1999 Jerry Quinn <jquinn@nortelnetworks.com> + + * binutils-all/hppa/freg.s: New file. + * binutils-all/hppa/objdump.exp: Add freg.s test. + +1999-08-09 Ian Lance Taylor <ian@zembu.com> + + * binutils-all/objcopy.exp: Add setup_xfail for simple copy test + for i*86-*-msdos*. + +1999-07-21 H.J. Lu <hjl@gnu.org> + + * binutils-all/testprog.c: Include <stdio.h>. + +1999-06-29 Nick Clifton <nickc@cygnus.com> + + * binutils-all/objdump.exp: Add fr30 and MCore to expected cpus + list. + + * binutils-all/readelf.r: Do not assume a fixed number of spaces + in the output. + +1999-06-10 Nick Clifton <nickc@cygnus.com> + + * binutils-all/readelf.wi: Update to match latest output. + * binutils-all/readelf.h: Update to match latest output. + +Wed Jun 9 11:59:22 1999 Andreas Schwab <schwab@issan.cs.uni-dortmund.de> + + * binutils-all/objdump.exp: Tighten regexp to match `objdump -i' + output to avoid massive exponential behaviour. + +1999-05-28 Ian Lance Taylor <ian@zembu.com> + + * binutils-all/readelf.h: Update for changes of 1999-04-08. + +1999-03-12 Nick Clifton <nickc@cygnus.com> + + * binutils-all/readelf.wi: Remove FR30 specific components. + * binutils-all/readelf.s: Remove RELA specific components. + +1999-02-16 Nick Clifton <nickc@cygnus.com> + + * binutils-all/readelf.s: Do not assume section alignment is 4. + * binutils-all/readelf.r: Do not assume rela's are being used. + * binutils-all/readelf.exp: disable tests for non ELF based + targets. + +1999-02-02 Nick Clifton <nickc@cygnus.com> + + * binutils-all/readelf.wi: Amend to match new readelf output. + * binutils-all/readelf.r: Do not assume that RELAs will be used. + +1999-01-29 Nick Clifton <nickc@cygnus.com> + + * config/default.exp: Add definitions of READELF and READELFFLAGS. + + * binutils-all/readelf.exp: New file: Readelf tests + * binutils-all/readelf.h: New file: Expected results for 'readelf -h' + * binutils-all/readelf.s: New file: Expected results for 'readelf -S' + * binutils-all/readelf.ss: New file: Expected results for 'readelf -s' + * binutils-all/readelf.r: New file: Expected results for 'readelf -r' + * binutils-all/readelf.wi: New file: Expected results for 'readelf -wi' + +Wed Dec 9 19:11:39 1998 Jeffrey A Law (law@cygnus.com) + + * binutils-all/objcopy.exp (copy_executable): Expect comparison + failure for mips*-*-elf. + +Fri Oct 16 22:57:12 1998 Felix Lee <flee@cygnus.com> + + * binutils-all/objcopy.exp: fix "no symbols" message. + +Tue Jul 28 15:14:04 1998 Jeffrey A Law (law@cygnus.com) + + * binutils-all/objcopy.exp: Keep "main" and "_main" for strip with + saving symbol tests. Look for either "main" or "_main" in the output + file. Fix test for "no symbols" in the output file. + +1998-07-22 Vladimir N. Makarov <vmakarov@cygnus.com> + + * binutils-all/objcopy.exp: Polish output about fail for objcopy + (simple copy), strip with/without saving a symbol for object file + and executable. + +Wed Jul 1 16:27:40 1998 Nick Clifton <nickc@cygnus.com> + + * binutils-all/objcopy.exp: ARM simple objcopy now passes. + +Wed Jun 24 09:20:21 1998 Nick Clifton <nickc@cygnus.com> + + * binutils-all/objdump.exp: Look for '.data' rather than 'data' + when parsing output of objdump -h. + * binutils-all/size.exp: Look for '.data' rather than 'data' when + parsing output of size -A. + +1998-07-20 Vladimir N. Makarov <vmakarov@cygnus.com> + + * binutils-all/objcopy.exp: Two new tests - strip object file with + saving a symbol and strip executable file with saving a symbol. + +Fri May 29 14:50:24 1998 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/objcopy.exp: Don't xfail the simple objcopy test + when cross compiling. + +Thu Nov 6 14:32:37 1997 Bob Manson <manson@charmed.cygnus.com> + + * lib/utils-lib.exp: Temporary definition of target_assemble and + default_target_assemble so that testing can work with older + dejagnu versions. + +Wed Sep 24 12:09:15 1997 Bob Manson <manson@charmed.cygnus.com> + + * binutils-all/objcopy.exp(strip_executable): Make a new copy of + the executable being tested. + +Mon Sep 15 21:25:20 1997 Bob Manson <manson@charmed.cygnus.com> + + * binutils-all/objcopy.exp: Compile the executables to be tested + on the target with a status wrapper (as necessary). + + * binutils-all/ar.exp: If testing on a remote host, don't bother + looking on the local host for the program being tested. Use the + correct filenames on the remote host. + + * binutils-all/nm.exp: Ditto. + + * binutils-all/size.exp: Ditto. + + * binutils-all/objdump.exp: Ditto. + (cpus_expected): Add the target CPU to the regexp of CPUs to be + expected, if it's not already there. + +Thu Aug 28 09:57:27 1997 Doug Evans <dje@canuck.cygnus.com> + + * binutils-all/objdump.exp (cpus_expected): Add arc. + +Tue Aug 5 00:03:20 1997 Ian Lance Taylor <ian@cygnus.com> + + * config/default.exp: Look for nm-new and strip-new. + +Tue Jun 3 17:12:54 1997 Bob Manson <manson@charmed.cygnus.com> + + * config/default.exp: Remove expect_before statement. + + * binutils-all/objcopy.exp: Don't use global exec_output variable; + the output is returned from remote_load instead. + +Mon May 12 22:14:20 1997 Bob Manson <manson@charmed.cygnus.com> + + * binutils-all/objcopy.exp(strip_test): Tests that + fail to compile are untested, not unresolved. + (copy_setup): Ditto. + + * lib/utils-lib.exp(default_binutils_assemble): Call + target_assemble instead of target_compile. + +Wed Apr 30 20:37:51 1997 Bob Manson <manson@charmed.cygnus.com> + + Changes to support multilib and remote hosted testing, along with + general cleanups and simplifications. + + * lib/utils-lib.exp(binutil_version): Use remote_exec. + (default_binutils_run): Ditto. + (default_binutils_assemble): Remove first argument; call + target_compile to actually do the assembly. + (default_binutils_compile,default_binutils_remove,prune_warnings): + Delete. + + * config/default.exp: Remove AS and ASFLAGS. + (binutils_compile,binutils_remove): Delete. + (binutils_assemble): Remove first argument. + + * binutils-all/ar.exp: See if we're running the tests on + a remote host, and download/upload files as appropriate. + Replace calls to binutils_remove with remote_file. Replace + calls to binutils_compile with target_compile. Remove initial + argument to binutils_assemble. Use remote_load to execute + programs on the target. + * binutils-all/nm.exp: Ditto. + * binutils-all/objcopy.exp: Ditto. + * binutils-all/objdump.exp: Ditto. + * binutils-all/size.exp: Ditto. + +Mon Apr 14 12:36:41 1997 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/ar.exp (long_filenames): Check for a file system + with a 14 character file name length limit. + +Tue Apr 1 09:52:15 1997 Jeffrey A Law (law@cygnus.com) + + * binutils-all/objdump.exp: Handle d10v. + +Fri Feb 7 16:45:34 1997 Bob Manson <manson@charmed.cygnus.com> + + * binutils-all/ar.exp: Use prune_warnings instead of + prune_system_crud. + * binutils-all/objcopy.exp: Ditto. + +Wed Jan 29 00:16:43 1997 Bob Manson <manson@charmed.cygnus.com> + + * binutils-all/nm.exp: Use / between $srcdir and $subdir. + * binutils-all/objcopy.exp: Ditto. + * binutils-all/objdump.exp: Ditto. + * binutils-all/size.exp: Ditto. + * binutils-all/hppa/objdump.exp: Ditto. + + +Wed Oct 16 22:57:59 1996 Jeffrey A Law (law@cygnus.com) + + * binutils-all/objdump.exp: Add mn10200 and mn10300 to expected + cpus list. + +Tue Oct 1 15:06:55 1996 Ian Lance Taylor <ian@cygnus.com> + + * lib/utils-lib.exp (binutil_version): Fix for current version + printing. + +Sun Aug 4 22:25:40 1996 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/objcopy.exp: Fix end of line matching in srec tests + to work with TCL 7.5. + +Sat Jun 29 12:51:30 1996 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/objcopy.exp: Simple copy test works for i960 b.out + targets. + +Mon Jun 24 14:33:04 1996 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/objcopy.exp: On OSF/1, the simple copy test will + succeed with gas, and fail with /bin/as, so mark it as an expected + failure only if it fails. + +Tue Mar 26 16:55:08 1996 Jeffrey A Law (law@cygnus.com) + + * binutils-all/objcopy.exp: No longer expect adjust-section-vma + test to fail for hppa*-*-proelf*. + +Mon Mar 11 08:25:14 1996 Jeffrey A Law (law@cygnus.com) + + * binutils-all/objdump.exp: Look for "$CODE$", not just "CODE". + +Wed Jan 31 11:55:13 1996 Jeffrey A Law (law@cygnus.com) + + * binutils-all/objcopy.exp: Expect adjust-section-vma tests to + fail for hppa*-*-proelf* targets. + +Thu Jan 25 13:53:04 1996 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/objdump.exp: Update for objdump -h format change. + * binutils-all/objcopy.exp: Likewise. + +Mon Jan 15 18:14:14 1996 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/objcopy.exp: Use the lma, not the vma, when testing + address adjustments. + +Fri Dec 15 16:31:55 1995 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/objdump.exp: Update objdump -i test for current + objdump output. + +Mon Nov 27 15:15:09 1995 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/objcopy.exp: Correct fail calls to always use the + same string as the pass call. + +Wed Nov 22 13:18:58 1995 Ian Lance Taylor <ian@cygnus.com> + + * lib/utils-lib.exp (prune_system_crud): Discard -g -O warnings + from native compilers on OSF/1 and SunOS. + +Fri Nov 17 10:36:09 1995 Ian Lance Taylor <ian@cygnus.com> + + * lib/utils-lib.exp (default_binutils_compiler: Change error + message to say compilation rather than assembly. + +Wed Nov 15 18:34:42 1995 Ken Raeburn <raeburn@cygnus.com> + + * binutils-all/objcopy.exp: Simple copy test does appear to work + on i*86-svr4. + +Wed Nov 15 12:19:28 1995 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/objcopy.exp: If assembly fails, call unresolved. + Test running objcopy and strip on a final executable. + * binutils-all/testprog.c: New file. + * config/default.exp (STRIP, STRIPFLAGS): Define. + (binutils_compile): New procedure. + * lib/utils-lib.exp (default_binutils_compile): New procedure. + +Fri Nov 3 13:22:33 1995 Ian Lance Taylor <ian@cygnus.com> + + * lib/utils-lib.exp (default_binutils_run): Don't use verbose + -log, reverting part of Oct 2 change. + +Wed Nov 1 15:09:57 1995 Manfred Hollstein KS/EF4A 60/1F/110 #40283 <manfred@lts.sel.alcatel.de> + + * binutils-all/objcopy.exp: Add setup_xfails for + m68*-motorola-sysv* and m88*-motorola-sysv*. + +Wed Oct 4 14:38:31 1995 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/nm.exp: Add setup_xfails for XCOFF. + +Mon Oct 2 12:41:48 1995 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/ar.exp: New file. + * binutils-all/bintest.s: Make text_symbol and data_symbol global. + Add new static symbols static_text_symbol and static_data_symbol. + * binutils-all/nm.exp: Adjust accordingly. + * config/default.exp (AR): Set if not set. + (binutils_remove): New procedure. + * lib/utils-lib.exp (default_binutils_run): Call + prune_system_crud on program output. Use verbose -log instead of + both verbose and send_log. + (default_binutils_remove): New procedure. + + * lib/utils-lib.exp (default_binutils_assemble): Call + prune_system_crud on assembler output. + +Tue Sep 26 14:07:05 1995 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/objcopy.exp: Add setup_xfails for simple copy test + for i386 COFF targets. + +Wed Sep 13 13:20:21 1995 Ian Lance Taylor <ian@cygnus.com> + + * lib/utils-lib.exp (prune_system_crud): Define if not defined. + * binutils-all/objcopy.exp: Call prune_system_crud on cmp output. + +Sat Aug 19 17:38:06 1995 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/objcopy.exp: Add xfail for i*86-*-aout* for simple + copy test. + +Wed Aug 16 16:52:53 1995 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/nm.exp: Add setup_xfail for mips*-sony-bsd* for + tests which fail on ECOFF targets. + + * binutils-all/objcopy.exp: Change i*86-*-linux xfail for simple + copy test to check for i*86-*-linuxaout* instead. + +Tue Aug 8 17:48:37 1995 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/objcopy.exp: Add setup_xfail for a29k-*-vxworks* + for simple copy test. + +Tue Jul 25 11:57:12 1995 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/objcopy.exp: Change setup_xfail for simple copy + test from i960-*-vxworks5.1 to i960-*-vxworks*. + +Mon Jul 10 12:25:46 1995 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/objcopy.exp: Add setup_xfail for z8*-*-coff for + simple copy test. + * binutils-all/objdump.exp (cpus_expected): Add z8001 and z8002. + +Sun May 21 20:32:53 1995 Jeff Law (law@snake.cs.utah.edu) + + * binutils-all/hppa/objdump.exp (addendbug): Handle PA ELF targets + too. + * binutils-all/objcopy.exp (simple copy): Don't expect PA ELF + targets to fail. + +Tue Apr 4 14:52:08 1995 Jeff Law (law@snake.cs.utah.edu) + + * binutils-all/hppa: Renamed from binutils-hppa. + +Wed Mar 29 12:02:43 1995 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/objcopy.exp: Add setup_xfail for simple copy test + for h8500-*-hms and h8500-*-coff. + +Tue Mar 28 11:18:28 1995 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/objcopy.exp: Add setup_xfail for simple copy test + for m68*-ericsson-ose and m88*-*-coff. + +Mon Mar 27 11:27:31 1995 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/objcopy.exp: Add setup_xfail for simple copy test + for m68*-*-vxworks*. + +Fri Mar 24 11:44:25 1995 Ian Lance Taylor <ian@cygnus.com> + + * binutils-hppa/objdump.exp: Correct hppa*-*-* check. + +Tue Mar 21 10:48:45 1995 Jeff Law (law@snake.cs.utah.edu) + + * binutils-hppa/addendbug.s: New testcase. + * binutils-hppa/objdump.exp: Run it. + +Mon Mar 20 11:31:05 1995 Ian Lance Taylor <ian@cygnus.com> + + * lib/utils-lib.exp (default_binutils_run): Quote any dollar signs + in progargs before passing it to exec. + +Fri Mar 17 16:39:31 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/hppa.sed: Sed script to transform bintest.s into proper + PA assembly code. + * binutils-all/nm.exp: Enable these tests on the PA. + * binutils-all/objcopy.exp: Enable these tests on the PA. Expect + simple copy to fail. + * binutils-all/objdump.exp: Enable these tests on the PA. Handle + "CODE" as a section name. + * binutils-all/size.exp: Enable these tests on the PA. + * lib/utils-lib.exp (default_binutils_assemble): For "hppa*-*-*", + run the assembly through a sed script before passing it to the + assembler. + +Wed Mar 15 16:47:13 1995 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/objdump.exp: Force section sizes to be interpreted + in hex. Change objdump -h failure mode to always use the same + string. + +Thu Jan 5 13:01:43 1995 Ian Lance Taylor <ian@cygnus.com> + + * binutils-all/nm.exp: Just check for irix4*, rather than + irix\[0-4\]*, to avoid DejaGnu bug. + +Thu Dec 15 19:35:31 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * binutils-all/objcopy.exp: Expect simple-objcopy test to fail + for various other targets for which gas doesn't use bfd: sh-hms, + m68k-hpux, m68k-sunos, m68k-coff, i386-linux, a29k-udi, a29k-coff, + i960-vxworks5.1, i960-coff, h8300-hms, h8300-coff. + +Wed Dec 14 15:54:46 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * binutils-all/size.exp: Skip tests requiring bintest.o on hppa, + since it (correctly) generates syntax errors on that platform. + * binutils-all/objdump.exp: Ditto. + * binutils-all/nm.exp: Ditto. + * binutils-all/objcopy.exp: Ditto. Also, move setup_xfail for + sh-coff to branch where objcopy execution produced no error + messages. Expect failure for hp300 also. + +Thu Dec 8 14:36:15 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * binutils-all/objdump.exp (cpus_expected): New variable, taken + from objdump -i test, added ns32k and powerpc, sorted. + (objdump -i, -f tests): Use $cpus_expected. + + * binutils-all/objcopy.exp: For simple-copy test, expect failure + for sh-coff. + +Tue Oct 25 16:00:14 1994 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * binutils-all/objcopy.exp: Adjust --adjust-section-vma tests for + new S-record section handling. + +Tue Oct 18 11:18:21 1994 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * binutils-all/nm.exp: nm with no arguments and nm -P do not work + as expected on ECOFF targets; add calls to setup_xfail. + + * binutils-all/objcopy.exp: New file. + * config/default.exp: Initialize OBJCOPY and OBJCOPYFLAGS. + +Fri Oct 14 14:46:22 1994 Ian Lance Taylor <ian@sanguine.cygnus.com> + + Rewrite testsuite. + * configure.in, Makefile.in: Remove. + * binutils-all/configure.in, binutils-all/Makefile.in: Remove. + * binutils-all/bintest.c: Remove. + * binutils-all/bintest.s: New file. + * binutils-all/nm.exp, binutils-all/objdump.exp: Rewrite. + * binutils-all/size.exp: Rewrite. + * config/default.exp: Load utils-lib.exp. Set AS and ASFLAGS. + Don't go up one directory from $base_dir. Create tmpdir. + (binutils_run, binutils-assemble): New procedures. + * config/unix.exp: Remove. + * config/mt-a29k-udi, config/mt-i386-aout: Remove. + * config/mt-i960-nindy, config/mt-lynx, config/mt-m68k: Remove. + * config/mt-mips-ecoff, config/mt-slite: Remove. + * config/mt-sparc-aout, config/mt-vxworks: Remove. + * lib/utils-lib.exp (binutil_version): Don't redirect standard + input when getting version. Don't unset errorInfo. + (default_binutils_run): New procedure. + (default_binutils_assemble): New procedure. + +Thu Sep 29 12:45:39 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * VMS does not permit `.' in directory names: renamed binutils.all + to binutils-all. + * configure.in (configdirs): Change binutils.all to binutils-all. + +Fri Sep 23 16:01:14 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * configure.in: Use mt-m68k for m68k*-*-aout* and m68k*-*-coff*, + not for m68k-*-*. + +Fri Sep 23 13:54:50 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * binutils.all/objdump.exp: Added ARM to list of CPU types. + +Thu Sep 22 11:04:50 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * binutils.all/objdump.exp: Update for new usage message. + * binutils.all/size.exp: Use a double backslash in the string to + get a single backslash to the regexp matcher. Accept $TEXT$, + $DATA$ and $BSS$ as well as .text, .data and .bss, for HP/UX. + +Fri Sep 2 12:53:10 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/unix.exp: If nm.new does not exist, use [transform nm]. + * config/default.exp: Likewise. + +Wed Aug 24 12:41:37 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * configure.in, binutils.all/configure.in: Change i386 to + i[345]86. + +Tue Jul 19 15:23:53 1994 Bill Cox (bill@rtl.cygnus.com) + + * config/mt-mips-ecoff: Add -Tidp.ld option. + +Thu Jun 30 12:41:55 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * config/default.exp: Use nm.new, not nm, from newly built tree. + +Tue May 17 14:04:05 1994 Bill Cox (bill@rtl.cygnus.com) + + * config/default.exp, config/unix.exp: Replace error + proc calls with perror. + +Tue May 10 11:20:54 1994 Stan Shebs (shebs@andros.cygnus.com) + + * configure.in (sparclite): Match on sparclite*-*-*. + +Wed Apr 13 18:25:19 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/unix.exp: Use nm.new, not nm, from newly built tree. + + * binutils.all/objdump.exp: Add more wildcards to list of + single-letter options in pattern for usage message. + + * binutils.all/nm.exp: Deleted debug-symbols test, since it only + works for a.out/stabs systems. Fixed regexps to make underscores + optional, since some C compilers don't prepend them. Deleted + check for foo.o symbol, since again some systems don't generate + it. + +Mon Apr 11 10:31:00 1994 Bill Cox (bill@rtl.cygnus.com) + + * Makefile.in (check): Set TCL_LIBRARY for runtest. + +Mon Feb 14 19:34:03 1994 Rob Savoye (rob@darkstar.cygnus.com) + + * Makefile.in: Use new config features of DejaGnu in site.exp + file. "Make check" should now work for all crosses. + +Fri Jan 28 18:00:29 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * binutils.all/objdump.exp: In usage message, accept + "section-name" as well as "section_name". + +Mon Jan 17 16:57:02 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * binutils.all/objdump.exp: Trim list of format names expected, + and accept any known CPU type. + +Thu Dec 2 20:50:24 1993 Rob Savoye (rob@darkstar.cygnus.com) + + * Makefile.in: Remove some stuff from the site.exp file. + * config/unix.exp: Add global before seeing if the variables for + nm, objdump, and size exist. + +Wed Nov 3 11:12:32 1993 Rob Savoye (rob@darkstar.cygnus.com) + + * config/udi.exp,unix.exp: Transform tool name. + * binutils.all/*.exp: Clear errorInfo after exec. + +Fri Jul 2 12:41:20 1993 Ian Lance Taylor (ian@cygnus.com) + + * binutils.all/*.exp: Use -- for long arguments rather than +. + +Fri Jun 4 10:52:29 1993 david d `zoo' zuhn (zoo@cirdan.cygnus.com) + + * configure.in: change srctrigger to Makefile.in + +Wed May 26 17:27:46 1993 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in (FLAGS_TO_PASS): Pass down CC and CFLAGS. + +Fri May 7 13:58:44 1993 Ian Lance Taylor (ian@cygnus.com) + + * binutils.all/objdump.exp: Update for new usage message. + +Mon Apr 19 14:08:52 1993 Rob Savoye (rob@darkstar.cygnus.com) + + * binutils.all/*.exp: Use the new util_test proc. + * Makefile.in: Create a local site.exp file with config info. + +Thu Mar 25 05:38:47 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com) + + * nm.all/configure.in (srcname): Delete extra quote. + +Mon Feb 22 07:54:03 1993 Mike Werner (mtw@poseidon.cygnus.com) + + * binutils/testsuite: made modifications to testcases, etc., to allow + them to work properly given the reorganization of deja-gnu and the + relocation of the testcases from deja-gnu to a "tool" subdirectory. + +Sun Feb 21 10:55:55 1993 Mike Werner (mtw@poseidon.cygnus.com) + + * binutils/testsuite: Initial creation of binutils/testsuite. + Migrated dejagnu testcases and support files for testing nm to + binutils/testsuite from deja-gnu. These files were moved "as is" + with no modifications. This migration is part of a major overhaul + of dejagnu. The modifications to these testcases, etc., which + will allow them to work with the new version of dejagnu will be + made in a future update. + +Copyright (C) 1993-2003 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. + +Local Variables: +mode: change-log +left-margin: 8 +fill-column: 74 +version-control: never +End: diff --git a/binutils-2.25/binutils/testsuite/binutils-all/add-empty-section.d b/binutils-2.25/binutils/testsuite/binutils-all/add-empty-section.d new file mode 100644 index 00000000..c9162a50 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/add-empty-section.d @@ -0,0 +1,9 @@ +#PROG: objcopy +#name: objcopy add-empty-section +#source: empty.s +#objcopy: --add-section NEW=$srcdir/empty-file +#readelf: -S --wide + +#... + \[[ 0-9]+\] NEW[ \t]+PROGBITS[ \t]+[0-9a-f]+[ \t]+[0-9a-f]+[ \t]+0+[ \t]+[ \t0-9a-f]+ +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/add-section.d b/binutils-2.25/binutils/testsuite/binutils-all/add-section.d new file mode 100644 index 00000000..37a24cf5 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/add-section.d @@ -0,0 +1,11 @@ +#PROG: objcopy +#name: objcopy add-section +#source: empty.s +#objcopy: --add-section NEW=$srcdir/empty.s +#objdump: -s -j NEW + +.*: +file format .* + +Contents of section NEW: + 0000 2320416e 20656d70 74792066 696c652e # An empty file. + 0010 0a . diff --git a/binutils-2.25/binutils/testsuite/binutils-all/alias-2.def b/binutils-2.25/binutils/testsuite/binutils-all/alias-2.def new file mode 100644 index 00000000..ef41eec6 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/alias-2.def @@ -0,0 +1,2 @@ +EXPORTS +symbol=nothing ==something diff --git a/binutils-2.25/binutils/testsuite/binutils-all/alias.def b/binutils-2.25/binutils/testsuite/binutils-all/alias.def new file mode 100644 index 00000000..d59d4a01 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/alias.def @@ -0,0 +1,2 @@ +EXPORTS +symbol=nothing diff --git a/binutils-2.25/binutils/testsuite/binutils-all/ar.exp b/binutils-2.25/binutils/testsuite/binutils-all/ar.exp new file mode 100644 index 00000000..6efc1598 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/ar.exp @@ -0,0 +1,575 @@ +# Copyright 1995, 1997, 2002, 2004, 2007, 2008, 2009, 2010, 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 +# 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. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-dejagnu@prep.ai.mit.edu + +# Written by Ian Lance Taylor <ian@cygnus.com> + +if ![is_remote host] { + if {[which $AR] == 0} then { + perror "$AR does not exist" + return + } +} + +# send_user "Version [binutil_version $AR]" + +# Test long file name support + +proc long_filenames { bfdtests } { + global AR + global host_triplet + global base_dir + + set testname "ar long file names" + + set n1 "abcdefghijklmnopqrstuvwxyz1" + set n2 "abcdefghijklmnopqrstuvwxyz2" + set file1 tmpdir/$n1 + set file2 tmpdir/$n2 + + remote_file build delete $file1 + remote_file host delete $n1 + + # Some file systems truncate file names at 14 characters, which + # makes it impossible to run this test. Check for that now. + set status [catch "set f [open tmpdir/$n1 w]" errs] + if { $status != 0 } { + verbose -log "open tmpdir/$n1 returned $errs" + unsupported $testname + return + } + puts $f "first" + close $f + + remote_file build delete $file2 + remote_file host delete $n2 + + set status [catch "set f [open tmpdir/$n2 w]" errs] + if { $status != 0 } { + verbose -log "open tmpdir/$n2 returned $errs" + unsupported $testname + return + } + puts $f "second" + close $f + + if [is_remote host] { + set file1 [remote_download host $file1] + set file2 [remote_download host $file2] + set dest artest.a + } else { + set dest tmpdir/artest.a + } + + remote_file host delete $dest + + set got [binutils_run $AR "rc $dest $file1 $file2"] + if [is_remote host] { + remote_upload host $file1 tmpdir/$n1 + } + + set f [open tmpdir/$n1 r] + gets $f string + close $f + if ![string match "first" $string] { + verbose -log "reading tmpdir/$n1 returned $string" + unsupported $testname + return + } + + remote_file host delete $dest + set got [binutils_run $AR "rc $dest $file1 $file2"] + + if ![string match "" $got] { + fail $testname + return + } + + remote_file build delete tmpdir/$n1 + remote_file build delete tmpdir/$n2 + + set got [binutils_run $AR "t $dest"] + regsub "\[\r\n \t\]*$" "$got" "" got + if ![string match "$n1*$n2" $got] { + fail $testname + return + } + + if [is_remote host] { + remote_file host delete $file1 + remote_file host delete $file2 + } + + set exec_output [binutils_run $AR "x $dest"] + set exec_output [prune_warnings $exec_output] + if ![string match "" $exec_output] { + verbose -log $exec_output + fail $testname + return + } + + foreach bfdtest $bfdtests { + set exec_output [binutils_run "$base_dir/$bfdtest" "$dest"] + if ![string match "" $exec_output] { + verbose -log $exec_output + fail "$testname ($bfdtest)" + return + } + } + + if [is_remote host] { + remote_upload host $n1 tmpdir/$n1 + remote_upload host $n2 tmpdir/$n2 + set file1 tmpdir/$n1 + set file2 tmpdir/$n2 + } else { + set file1 $n1 + set file2 $n2 + } + + if ![file exists $file1] { + verbose -log "$file1 does not exist" + fail $testname + return + } + if ![file exists $file2] { + verbose -log "$file2 does not exist" + fail $testname + return + } + + set f [open $file1 r] + if { [gets $f line] == -1 || $line != "first" } { + verbose -log "$file1 contents:" + verbose -log "$line" + close $f + fail $testname + return + } + close $f + + set f [open $file2 r] + if { [gets $f line] == -1 || $line != "second" } { + verbose -log "$file2 contents:" + verbose -log "$line" + close $f + fail $testname + return + } + close $f + + file delete $file1 $file2 + pass $testname +} + +# Test building the symbol table. + +proc symbol_table { } { + global AR + global AS + global NM + global srcdir + global subdir + + set testname "ar symbol table" + + if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] { + unresolved $testname + return + } + + if [is_remote host] { + set archive artest.a + set objfile [remote_download host tmpdir/bintest.o] + remote_file host delete $archive + } else { + set archive tmpdir/artest.a + set objfile tmpdir/bintest.o + } + + remote_file build delete tmpdir/artest.a + + set got [binutils_run $AR "rc $archive ${objfile}"] + if ![string match "" $got] { + fail $testname + return + } + + set got [binutils_run $NM "--print-armap $archive"] + if { ![string match "*text_symbol in bintest.o*" $got] \ + || ![string match "*data_symbol in bintest.o*" $got] \ + || ![string match "*common_symbol in bintest.o*" $got] \ + || [string match "*static_text_symbol in bintest.o*" $got] \ + || [string match "*static_data_symbol in bintest.o*" $got] \ + || [string match "*external_symbol in bintest.o*" $got] } { + fail $testname + return + } + + pass $testname +} + +# Test building a thin archive. + +proc thin_archive { bfdtests } { + global AR + global AS + global NM + global srcdir + global subdir + global base_dir + + set testname "ar thin archive" + + if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] { + unresolved $testname + return + } + + if [is_remote host] { + set archive artest.a + set objfile [remote_download host tmpdir/bintest.o] + remote_file host delete $archive + } else { + set archive tmpdir/artest.a + set objfile tmpdir/bintest.o + } + + remote_file build delete tmpdir/artest.a + + set got [binutils_run $AR "rcT $archive ${objfile}"] + if ![string match "" $got] { + fail $testname + return + } + + foreach bfdtest $bfdtests { + set exec_output [binutils_run "$base_dir/$bfdtest" "$archive"] + if ![string match "" $exec_output] { + verbose -log $exec_output + fail "$testname ($bfdtest)" + return + } + } + + set got [binutils_run $NM "--print-armap $archive"] + if { ![string match "*text_symbol in *bintest.o*" $got] \ + || ![string match "*data_symbol in *bintest.o*" $got] \ + || ![string match "*common_symbol in *bintest.o*" $got] \ + || [string match "*static_text_symbol in *bintest.o*" $got] \ + || [string match "*static_data_symbol in *bintest.o*" $got] \ + || [string match "*external_symbol in *bintest.o*" $got] } { + fail $testname + return + } + + pass $testname +} + +# Test building a thin archive with a nested archive. + +proc thin_archive_with_nested { bfdtests } { + global AR + global AS + global NM + global srcdir + global subdir + global base_dir + + set testname "ar thin archive with nested archive" + + if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] { + unresolved $testname + return + } + + if [is_remote host] { + set archive artest.a + set archive2 artest2.a + set objfile [remote_download host tmpdir/bintest.o] + remote_file host delete $archive + } else { + set archive tmpdir/artest.a + set archive2 tmpdir/artest2.a + set objfile tmpdir/bintest.o + } + + remote_file build delete tmpdir/artest.a + + set got [binutils_run $AR "rc $archive ${objfile}"] + if ![string match "" $got] { + fail $testname + return + } + + remote_file build delete tmpdir/artest2.a + + set got [binutils_run $AR "rcT $archive2 ${archive}"] + if ![string match "" $got] { + fail $testname + return + } + + foreach bfdtest $bfdtests { + set exec_output [binutils_run "$base_dir/$bfdtest" "$archive"] + if ![string match "" $exec_output] { + verbose -log $exec_output + fail "$testname ($bfdtest)" + return + } + + set exec_output [binutils_run "$base_dir/$bfdtest" "$archive2"] + if ![string match "" $exec_output] { + verbose -log $exec_output + fail "$testname ($bfdtest)" + return + } + } + + set got [binutils_run $NM "--print-armap $archive"] + if { ![string match "*text_symbol in *bintest.o*" $got] \ + || ![string match "*data_symbol in *bintest.o*" $got] \ + || ![string match "*common_symbol in *bintest.o*" $got] \ + || [string match "*static_text_symbol in *bintest.o*" $got] \ + || [string match "*static_data_symbol in *bintest.o*" $got] \ + || [string match "*external_symbol in *bintest.o*" $got] } { + fail $testname + return + } + + pass $testname +} + +# Test POSIX-compatible argument parsing. + +proc argument_parsing { } { + global AR + global AS + global srcdir + global subdir + + set testname "ar argument parsing" + + if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] { + unresolved $testname + return + } + + if [is_remote host] { + set archive artest.a + set objfile [remote_download host tmpdir/bintest.o] + remote_file host delete $archive + } else { + set archive tmpdir/artest.a + set objfile tmpdir/bintest.o + } + + remote_file build delete tmpdir/artest.a + + set got [binutils_run $AR "-r -c $archive ${objfile}"] + if ![string match "" $got] { + fail $testname + return + } + + pass $testname +} + +# Test building a deterministic archive. + +proc deterministic_archive { } { + global AR + global AS + global NM + global srcdir + global subdir + + set testname "ar deterministic archive" + + if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] { + unresolved $testname + return + } + + if [is_remote host] { + set archive artest.a + set objfile [remote_download host tmpdir/bintest.o] + remote_file host delete $archive + } else { + set archive tmpdir/artest.a + set objfile tmpdir/bintest.o + } + + remote_file build delete tmpdir/artest.a + + set got [binutils_run $AR "rcD $archive ${objfile}"] + if ![string match "" $got] { + fail $testname + return + } + + set got [binutils_run $AR "tv $archive"] + # This only checks the file mode and uid/gid. We can't easily match + # date because it's printed with the user's timezone. + if ![string match "rw-r--r-- 0/0 *bintest.o*" $got] { + fail $testname + return + } + + pass $testname +} + +proc unique_symbol { } { + global AR + global AS + global NM + global srcdir + global subdir + + set testname "ar unique symbol in archive" + + if ![binutils_assemble $srcdir/$subdir/unique.s tmpdir/unique.o] { + unresolved $testname + } + + if [is_remote host] { + set archive artest.a + set objfile [remote_download host tmpdir/unique.o] + remote_file host delete $archive + } else { + set archive tmpdir/artest.a + set objfile tmpdir/unique.o + } + + remote_file build delete tmpdir/artest.a + + set got [binutils_run $AR "-s -r -c $archive ${objfile}"] + if ![string match "" $got] { + fail $testname + return + } + + set got [binutils_run $NM "--print-armap $archive"] + if ![string match "*foo in *unique.o*" $got] { + fail $testname + return + } + + pass $testname +} + +# Test deleting an element. + +proc delete_an_element { } { + global AR + global AS + global srcdir + global subdir + + set testname "ar deleting an element" + + if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] { + unresolved $testname + return + } + + if [is_remote host] { + set archive artest.a + set objfile [remote_download host tmpdir/bintest.o] + remote_file host delete $archive + } else { + set archive tmpdir/artest.a + set objfile tmpdir/bintest.o + } + + remote_file build delete tmpdir/artest.a + + set got [binutils_run $AR "-r -c $archive ${objfile}"] + if ![string match "" $got] { + fail $testname + return + } + + set got [binutils_run $AR "-d $archive ${objfile}"] + if ![string match "" $got] { + fail $testname + return + } + + pass $testname +} + +# Test moving an element. + +proc move_an_element { } { + global AR + global AS + global srcdir + global subdir + + set testname "ar moving an element" + + if ![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o] { + unresolved $testname + return + } + + if [is_remote host] { + set archive artest.a + set objfile [remote_download host tmpdir/bintest.o] + remote_file host delete $archive + } else { + set archive tmpdir/artest.a + set objfile tmpdir/bintest.o + } + + remote_file build delete tmpdir/artest.a + + set got [binutils_run $AR "-r -c $archive ${objfile}"] + if ![string match "" $got] { + fail $testname + return + } + + set got [binutils_run $AR "-m $archive ${objfile}"] + if ![string match "" $got] { + fail $testname + return + } + + pass $testname +} + +# Run the tests. + +set bfdtests [list bfdtest1 bfdtest2] + +long_filenames $bfdtests +symbol_table +thin_archive $bfdtests +thin_archive_with_nested $bfdtests +argument_parsing +deterministic_archive +delete_an_element +move_an_element +if { [is_elf_format] + && ![istarget "*-*-hpux*"] + && ![istarget "msp*-*-*"] } { + unique_symbol +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/arm/objdump.exp b/binutils-2.25/binutils/testsuite/binutils-all/arm/objdump.exp new file mode 100644 index 00000000..321e2a93 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/arm/objdump.exp @@ -0,0 +1,89 @@ +# Copyright 2004, 2007, 2009 +# 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 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. + +if {![istarget "arm*-*-*"]} then { + return +} + +if {![is_remote host] && [which $OBJDUMP] == 0} then { + perror "$OBJDUMP does not exist" + return +} + +send_user "Version [binutil_version $OBJDUMP]" + +########################### +# Set up the test of movem.s +########################### + +if {![binutils_assemble $srcdir/$subdir/thumb2-cond.s tmpdir/thumb2-cond.o]} then { + return +} + +if [is_remote host] { + set objfile [remote_download host tmpdir/thumb2-cond.o] +} else { + set objfile tmpdir/thumb2-cond.o +} + +# Make sure that conditional instructions are correctly decoded. + +set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS --disassemble --start-address=6 $objfile"] + +set want "bcc.w\[ \t\]*e12.*bx\[ \t\]*lr" + +if [regexp $want $got] then { + pass "thumb2-cond test1" +} else { + fail "thumb2-cond test1" +} + +set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS --disassemble --start-address=10 $objfile"] + +set want "bx\[ \t\]*lr" + +if [regexp $want $got] then { + pass "thumb2-cond test2" +} else { + fail "thumb2-cond test2" +} + +########################### +# Set up the test of multiple disassemblies +########################### + +if {![binutils_assemble $srcdir/$subdir/simple.s tmpdir/simple.o]} then { + return +} + +if [is_remote host] { + set objfile [remote_download host tmpdir/simple.o] +} else { + set objfile tmpdir/simple.o +} + +# Make sure multiple disassemblies come out the same + +set got [binutils_run $OBJDUMP "-dr $objfile $objfile"] + +set want "$objfile:\[ \]*file format.*$objfile:\[ \]*file format.*push.*add.*sub.*str.*add.*ldmfd" + +if [regexp $want $got] then { + pass "multiple input files" +} else { + fail "multiple input files" +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/arm/simple.s b/binutils-2.25/binutils/testsuite/binutils-all/arm/simple.s new file mode 100644 index 00000000..df8dd2ab --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/arm/simple.s @@ -0,0 +1,35 @@ + .cpu arm7tdmi-s + .fpu softvfp + .file "y.c" + .bss + .align 2 +l: + .space 4 + .text + .align 2 + .global f1 + +f1: + str fp, [sp, #-4]! + add fp, sp, #0 + sub sp, sp, #12 + str r0, [fp, #-8] + add sp, fp, #0 + ldmfd sp!, {fp} + bx lr + .align 2 + .word l + + .align 2 + .global main + +main: + stmfd sp!, {fp, lr} + add fp, sp, #4 + bx lr + .align 2 + .word 1717986919 + .word -1840700269 + .word l + + .ident "GCC: (Sourcery G++ 2011.03) 4.5.1" diff --git a/binutils-2.25/binutils/testsuite/binutils-all/arm/thumb2-cond.s b/binutils-2.25/binutils/testsuite/binutils-all/arm/thumb2-cond.s new file mode 100644 index 00000000..b9de4428 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/arm/thumb2-cond.s @@ -0,0 +1,8 @@ + .arch armv7 + .syntax unified + .thumb +foo: + bl 1f +1: it cc + bcc.w .+0xe0c + bx lr diff --git a/binutils-2.25/binutils/testsuite/binutils-all/bfin/objdump.exp b/binutils-2.25/binutils/testsuite/binutils-all/bfin/objdump.exp new file mode 100644 index 00000000..df7d4da8 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/bfin/objdump.exp @@ -0,0 +1,53 @@ +# Copyright 2009 +# 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 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. + +if {![istarget "bfin-*-*"]} then { + return +} + +if {[which $OBJDUMP] == 0} then { + perror "$OBJDUMP does not exist" + return +} + +send_user "Version [binutil_version $OBJDUMP]" + +################################### +# Set up the test of unknown-mode.s +################################### + +if {![binutils_assemble $srcdir/$subdir/unknown-mode.s tmpdir/unknown-mode.o]} then { + return +} + +if [is_remote host] { + set objfile [remote_download host tmpdir/unknown-mode.o] +} else { + set objfile tmpdir/unknown-mode.o +} + +# Make sure that the unknown mode does not cause abort. + +set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -D $objfile"] + +set want "e1 c1\[ \t\]*ILLEGAL.*34 98 .*\[\r\n\]" + +if [regexp $want $got] then { + pass "unknown mode test" +} else { + fail "unknown mode test" +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/bfin/unknown-mode.s b/binutils-2.25/binutils/testsuite/binutils-all/bfin/unknown-mode.s new file mode 100644 index 00000000..3c477f27 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/bfin/unknown-mode.s @@ -0,0 +1,8 @@ + .text + + // Below 4 bytes are "A1 += R6.H * R4.L (IS);" + // with a invalid mode "0xf". + .byte 0xe1 + .byte 0xc1 + .byte 0x34 + .byte 0x98 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/bintest.s b/binutils-2.25/binutils/testsuite/binutils-all/bintest.s new file mode 100644 index 00000000..9e006502 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/bintest.s @@ -0,0 +1,12 @@ + .globl text_symbol + .text +text_symbol: +static_text_symbol: + .long 1 + .long external_symbol + .globl data_symbol + .data +data_symbol: +static_data_symbol: + .long 2 + .comm common_symbol,4 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/compress.exp b/binutils-2.25/binutils/testsuite/binutils-all/compress.exp new file mode 100644 index 00000000..8cf61385 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/compress.exp @@ -0,0 +1,176 @@ +# Copyright 2010, 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 +# 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. + +# Test compressed .debug section. + +if { [is_remote host] || ![is_elf_format] || ![is_zlib_supported] } then { + return +} + +set testfile tmpdir/dw2-1.o +set compressedfile tmpdir/dw2-1-compressed.o +set copyfile tmpdir/dw2-copy +set compressedfile2 tmpdir/dw2-2-compressed.o +set libfile tmpdir/libdw2.a +set compressedcopyfile tmpdir/dw2-copy-compressed + +if { ![binutils_assemble_flags $srcdir/$subdir/dw2-1.S $testfile --nocompress-debug-sections] } then { + unsupported "compressed debug sections" + return +} + +if { ![binutils_assemble_flags $srcdir/$subdir/dw2-1.S $compressedfile --compress-debug-sections] } then { + unsupported "compressed debug sections" + return +} + +if { ![binutils_assemble_flags $srcdir/$subdir/dw2-2.S $compressedfile2 --compress-debug-sections] } then { + unsupported "compressed debug sections" + return +} + +remote_file host delete $libfile +set got [binutils_run $AR "rc $libfile $compressedfile $compressedfile2"] +if ![string match "" $got] then { + fail "compressed debug sections" + return +} + +set testname "objcopy compress debug sections" +set got [binutils_run $OBJCOPY "--compress-debug-sections $testfile ${copyfile}.o"] +if ![string match "" $got] then { + fail "objcopy ($testname)" +} else { + send_log "cmp $compressedfile ${copyfile}.o\n" + verbose "cmp $compressedfile ${copyfile}.o" + set src1 ${compressedfile} + set src2 ${copyfile}.o + set status [remote_exec build cmp "${src1} ${src2}"] + set exec_output [lindex $status 1] + set exec_output [prune_warnings $exec_output] + + if [string match "" $exec_output] then { + pass "objcopy ($testname)" + } else { + send_log "$exec_output\n" + verbose "$exec_output" 1 + fail "objcopy ($testname)" + } +} + +set testname "objcopy decompress compressed debug sections" +set got [binutils_run $OBJCOPY "--decompress-debug-sections $compressedfile ${copyfile}.o"] +if ![string match "" $got] then { + fail "objcopy ($testname)" +} else { + send_log "cmp $testfile ${copyfile}.o\n" + verbose "cmp $testfile ${copyfile}.o" + set src1 ${testfile} + set src2 ${copyfile}.o + set status [remote_exec build cmp "${src1} ${src2}"] + set exec_output [lindex $status 1] + set exec_output [prune_warnings $exec_output] + + if [string match "" $exec_output] then { + pass "objcopy ($testname)" + } else { + send_log "$exec_output\n" + verbose "$exec_output" 1 + fail "objcopy ($testname)" + } +} + +set testname "objcopy decompress debug sections in archive" +set got [binutils_run $OBJCOPY "--decompress-debug-sections $libfile ${copyfile}.a"] +if ![string match "" $got] then { + fail "objcopy ($testname)" +} else { + set got [remote_exec host "$READELF -S --wide ${copyfile}.a" "" "/dev/null" "tmpdir/libdw2.out"] + + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + fail "$testname (reason: unexpected output)" + send_log $got + send_log "\n" + } + + if { [regexp_diff tmpdir/libdw2.out $srcdir/$subdir/libdw2.out] } then { + fail "$testname" + } else { + pass "$testname" + } +} + +set testname "objcopy compress debug sections in archive" +set got [binutils_run $OBJCOPY "--compress-debug-sections ${copyfile}.a ${compressedcopyfile}.a"] +if ![string match "" $got] then { + fail "objcopy ($testname)" +} else { + set got [remote_exec host "$OBJDUMP -s -j .zdebug_line ${compressedcopyfile}.a" "" "/dev/null" "tmpdir/libdw2-compressed.out"] + + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + fail "$testname (reason: unexpected output)" + send_log $got + send_log "\n" + } + + if { [regexp_diff tmpdir/libdw2-compressed.out $srcdir/$subdir/libdw2-compressed.out] } then { + fail "$testname" + } else { + pass "$testname" + } +} + +set testname "objdump compress debug sections" +set got [remote_exec host "$OBJDUMP -W $compressedfile" "" "/dev/null" "objdump.out"] +if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + fail "$testname" + send_log "$got\n" +} +if { [regexp_diff objdump.out $srcdir/$subdir/dw2-1.W] } then { + fail "$testname" +} else { + pass "$testname" +} + +set testfile tmpdir/dw2-emty.o + +if { ![binutils_assemble_flags $srcdir/$subdir/dw2-empty.S $testfile --nocompress-debug-sections] } then { + unsupported "compressed debug sections" + return +} + +set testname "objcopy compress empty debug sections" +set got [binutils_run $OBJCOPY "--compress-debug-sections $testfile ${copyfile}.o"] +if ![string match "" $got] then { + fail "objcopy ($testname)" +} else { + send_log "cmp $testfile ${copyfile}.o\n" + verbose "cmp $testfile ${copyfile}.o" + set src1 ${testfile} + set src2 ${copyfile}.o + set status [remote_exec build cmp "${src1} ${src2}"] + set exec_output [lindex $status 1] + set exec_output [prune_warnings $exec_output] + + if [string match "" $exec_output] then { + pass "objcopy ($testname)" + } else { + send_log "$exec_output\n" + verbose "$exec_output" 1 + fail "objcopy ($testname)" + } +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/copy-1.d b/binutils-2.25/binutils/testsuite/binutils-all/copy-1.d new file mode 100644 index 00000000..f2b0d9e9 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/copy-1.d @@ -0,0 +1,13 @@ +#PROG: objcopy +#objdump: -h +#objcopy: --set-section-flags .post_text_reserve=contents,alloc,load,readonly,code +#name: copy with setting section flags 1 + +.*: +file format .* + +Sections: +Idx.* +#... + [0-9]* .post_text_reserve.* + CONTENTS, ALLOC, LOAD, READONLY, CODE +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/copy-1.s b/binutils-2.25/binutils/testsuite/binutils-all/copy-1.s new file mode 100644 index 00000000..32864de7 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/copy-1.s @@ -0,0 +1,6 @@ + .globl text_symbol + .text +text_symbol: + .long 1 + .section .post_text_reserve,"w", %nobits + .space 160 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/copy-2.d b/binutils-2.25/binutils/testsuite/binutils-all/copy-2.d new file mode 100644 index 00000000..5636ff62 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/copy-2.d @@ -0,0 +1,18 @@ +#PROG: objcopy +#objdump: -h +#objcopy: --set-section-flags foo=contents,alloc,load,code +#name: copy with setting section flags 2 +#source: copytest.s +#not-target: *-*-*aout *-*-aix* h8300-*-* hppa*-*-hpux* m68k-*-netbsd m68k-*-openbsd* mips-sony-bsd* mips-*-ultrix* mips-*-osf* mips-*-ecoff* mips-*-irix mips-*-irix[2-4] mips-*-riscos* ns32k-*-netbsd +# Note - we use copytest.s and a section named "foo" rather +# than .text because for some file formats (eg PE) the .text +# section has a fixed set of flags and these cannot be changed. + +.*: +file format .* + +Sections: +Idx.* +#... + [0-9]* foo.* + CONTENTS, ALLOC, LOAD, CODE +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/copy-3.d b/binutils-2.25/binutils/testsuite/binutils-all/copy-3.d new file mode 100644 index 00000000..655986af --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/copy-3.d @@ -0,0 +1,17 @@ +#PROG: objcopy +#objdump: -h +#objcopy: --set-section-flags .text=alloc,data +#name: copy with setting section flags 3 +#source: bintest.s +#not-target: *-*-*aout *-*-*pe *-*-*coff hppa*-*-hpux* *-*-cygwin* *-*-mingw* m68k-*-netbsd m68k-*-openbsd* ns32k-*-netbsd rs6000-*-* +# The .text # section in PE/COFF has a fixed set of flags and these +# cannot be changed. We skip it for them. + +.*: +file format .* + +Sections: +Idx.* +#... + [0-9]* .text.* + CONTENTS, ALLOC, LOAD, RELOC, DATA +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/copy-4.d b/binutils-2.25/binutils/testsuite/binutils-all/copy-4.d new file mode 100644 index 00000000..41fccf00 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/copy-4.d @@ -0,0 +1,9 @@ +#PROG: strip +#source: bintest.s +#strip: --strip-unneeded +#nm: -n +#name: strip --strip-unneeded on common symbol + +#... +0+04 C common_symbol +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/copytest.s b/binutils-2.25/binutils/testsuite/binutils-all/copytest.s new file mode 100644 index 00000000..33c13b88 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/copytest.s @@ -0,0 +1,7 @@ + .globl foo_symbol + .section foo +foo_symbol: + .long 1 + .section bar +bar_symbol: + .long 2 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/dlltool.exp b/binutils-2.25/binutils/testsuite/binutils-all/dlltool.exp new file mode 100644 index 00000000..1409d3cf --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/dlltool.exp @@ -0,0 +1,282 @@ +# Copyright 2002, 2004, 2006, 2007, 2009 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 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. + +if {![istarget "i*86-*-*"] + && ![istarget "x86_64-*-mingw*"] + && ![istarget "arm-*-pe*"]} { + return +} + +if {![istarget "i*86-*-*pe*"] \ + && ![istarget "i*86-*-cygwin*"] \ + && ![istarget "i*86-*-mingw32*"] \ + && ![istarget "arm-*-pe*"] \ + && ![istarget "x86_64-*-mingw*"] } { + set target_xfail "yes" +} else { + set target_xfail "no" +} + +if {![info exists DLLTOOL]} then { + return +} + +if {[which $DLLTOOL] == 0} then { + return +} + +verbose "$DLLTOOL --leading-underscore -d $srcdir/$subdir/fastcall.def" 1 +catch "exec $DLLTOOL --leading-underscore -d $srcdir/$subdir/fastcall.def" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool (fastcall export)" +} else { + pass "dlltool (fastcall export)" +} + +if { "$target_xfail" == "yes" } { + setup_xfail *-* +} + +verbose "$DLLTOOL -l libversion.a --def $srcdir/$subdir/version.def" 1 +catch "exec $DLLTOOL -l libersion.a --def $srcdir/$subdir/version.def" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool (version.dll)" +} else { + pass "dlltool (version.dll)" +} + +if { "$target_xfail" == "yes" } { + setup_xfail *-* +} + +verbose "$DLLTOOL -p prefix --leading-underscore -l tmpdir/libalias.a -d $srcdir/$subdir/alias.def $dlltool_gas_flag" 1 +catch "exec $DLLTOOL -p prefix --leading-underscore -l tmpdir/libalias.a -d $srcdir/$subdir/alias.def $dlltool_gas_flag" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool -p (execution)" + continue +} + +pass "dlltool -p (execution)" + +set got [binutils_run $NM "tmpdir/libalias.a"] +set want "00000000 I __imp__prefix_symbol.*00000000 T _prefix_symbol.*00000000 I __imp__symbol.*00000000 T _symbol" + +if [regexp $want $got] then { + pass "dlltool -p (symbol names)" +} else { + fail "dlltool -p (symbol names)" +} + +set got [binutils_run $OBJDUMP "-s -j .idata\$6 tmpdir/libalias.a"] +set want "(Contents of section .idata\\\$6:.*\\.\\.symbol\\.\\..*){2,2}" + +if [regexp $want $got] then { + pass "dlltool -p (import name)" +} else { + fail "dlltool -p (import name)" +} + +verbose "$DLLTOOL -p prefix --leading-underscore -l tmpdir/libalias2.a -d $srcdir/$subdir/alias-2.def $dlltool_gas_flag" 1 +catch "exec $DLLTOOL -p prefix --leading-underscore -l tmpdir/libalias2.a -d $srcdir/$subdir/alias-2.def $dlltool_gas_flag" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool -p (execution) alias-2.def" + continue +} + +pass "dlltool -p (execution) alias-2.def" + +set got [binutils_run $NM "tmpdir/libalias2.a"] +set want "00000000 I __imp__prefix_symbol.*00000000 T _prefix_symbol.*00000000 I __imp__symbol.*00000000 T _symbol" + +if [regexp $want $got] then { + pass "dlltool -p (symbol names) alias-2.def" +} else { + fail "dlltool -p (symbol names) alias-2.def" +} + +set got [binutils_run $OBJDUMP "-s -j .idata\$6 tmpdir/libalias2.a"] +set want "(Contents of section .idata\\\$6:.*\\.\\.something\\..*){2,2}" + +if [regexp $want $got] then { + pass "dlltool -p (import name) alias-2.def" +} else { + fail "dlltool -p (import name) alias-2.def" +} + +# Here we test explicit without leading underscore + +verbose "$DLLTOOL --no-leading-underscore -d $srcdir/$subdir/fastcall.def" 1 +catch "exec $DLLTOOL --no-leading-underscore -d $srcdir/$subdir/fastcall.def" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool (fastcall export no leading underscore)" +} else { + pass "dlltool (fastcall export no leading underscore)" +} + +if { "$target_xfail" == "yes" } { + setup_xfail *-* +} + +verbose "$DLLTOOL --no-leading-underscore -p prefix -l tmpdir/libalias_nu.a -d $srcdir/$subdir/alias.def $dlltool_gas_flag" 1 +catch "exec $DLLTOOL --no-leading-underscore -p prefix -l tmpdir/libalias_nu.a -d $srcdir/$subdir/alias.def $dlltool_gas_flag" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool -p (execution no leading underscore)" + continue +} + +pass "dlltool -p (execution no leading underscore)" + +set got [binutils_run $NM "tmpdir/libalias_nu.a"] +set want "00000000 I __imp_prefixsymbol.*00000000 T prefixsymbol.*00000000 I __imp_symbol.*00000000 T symbol" + +if [regexp $want $got] then { + pass "dlltool -p (symbol names no leading underscore)" +} else { + fail "dlltool -p (symbol names no leading underscore)" +} + +set got [binutils_run $OBJDUMP "-s -j .idata\$6 tmpdir/libalias_nu.a"] +set want "(Contents of section .idata\\\$6:.*\\.\\.symbol\\.\\..*){2,2}" + +if [regexp $want $got] then { + pass "dlltool -p (import name no leading underscore)" +} else { + fail "dlltool -p (import name no leading underscore)" +} + +verbose "$DLLTOOL --no-leading-underscore -p prefix -l tmpdir/libalias_nu2.a -d $srcdir/$subdir/alias-2.def $dlltool_gas_flag" 1 +catch "exec $DLLTOOL --no-leading-underscore -p prefix -l tmpdir/libalias_nu2.a -d $srcdir/$subdir/alias-2.def $dlltool_gas_flag" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool -p (execution no leading underscore) alias-2.def" + continue +} + +pass "dlltool -p (execution no leading underscore) alias-2.def" + +set got [binutils_run $NM "tmpdir/libalias_nu2.a"] +set want "00000000 I __imp_prefixsymbol.*00000000 T prefixsymbol.*00000000 I __imp_symbol.*00000000 T symbol" + +if [regexp $want $got] then { + pass "dlltool -p (symbol names no leading underscore) alias-2.def" +} else { + fail "dlltool -p (symbol names no leading underscore) alias-2.def" +} + +set got [binutils_run $OBJDUMP "-s -j .idata\$6 tmpdir/libalias_nu2.a"] +set want "(Contents of section .idata\\\$6:.*\\.\\.something\\..*){2,2}" + +if [regexp $want $got] then { + pass "dlltool -p (import name no leading underscore) alias-2.def" +} else { + fail "dlltool -p (import name no leading underscore) alias-2.def" +} + +# Now we test with leading underscore +verbose "$DLLTOOL --leading-underscore -d $srcdir/$subdir/fastcall.def" 1 +catch "exec $DLLTOOL --leading-underscore -d $srcdir/$subdir/fastcall.def" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool (fastcall export leading underscore)" +} else { + pass "dlltool (fastcall export leading underscore)" +} + +if { "$target_xfail" == "yes" } { + setup_xfail *-* +} + +verbose "$DLLTOOL --leading-underscore -p prefix -l tmpdir/libalias_u.a -d $srcdir/$subdir/alias.def $dlltool_gas_flag" 1 +catch "exec $DLLTOOL --leading-underscore -p prefix -l tmpdir/libalias_u.a -d $srcdir/$subdir/alias.def $dlltool_gas_flag" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool -p (execution leading underscore)" + continue +} + +pass "dlltool -p (execution leading-underscore)" + +set got [binutils_run $NM "tmpdir/libalias_u.a"] +set want "00000000 I __imp__prefix_symbol.*00000000 T _prefix_symbol.*00000000 I __imp__symbol.*00000000 T _symbol" + +if [regexp $want $got] then { + pass "dlltool -p (symbol names leading underscore)" +} else { + fail "dlltool -p (symbol names leading underscore)" +} + +set got [binutils_run $OBJDUMP "-s -j .idata\$6 tmpdir/libalias_u.a"] +set want "(Contents of section .idata\\\$6:.*\\.\\.symbol\\..*){2,2}" + +if [regexp $want $got] then { + pass "dlltool -p (import name leading underscore)" +} else { + fail "dlltool -p (import name leading underscore)" +} + +verbose "$DLLTOOL --leading-underscore -p prefix -l tmpdir/libalias_u2.a -d $srcdir/$subdir/alias-2.def $dlltool_gas_flag" 1 +catch "exec $DLLTOOL --leading-underscore -p prefix -l tmpdir/libalias_u2.a -d $srcdir/$subdir/alias-2.def $dlltool_gas_flag" err + +if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "dlltool -p (execution) alias-2.def" + continue +} + +pass "dlltool -p (execution leading underscore) alias-2.def" + +set got [binutils_run $NM "tmpdir/libalias_u2.a"] +set want "00000000 I __imp__prefix_symbol.*00000000 T _prefix_symbol.*00000000 I __imp__symbol.*00000000 T _symbol" + +if [regexp $want $got] then { + pass "dlltool -p (symbol names leading underscore) alias-2.def" +} else { + fail "dlltool -p (symbol names leading underscore) alias-2.def" +} + +set got [binutils_run $OBJDUMP "-s -j .idata\$6 tmpdir/libalias_u2.a"] +set want "(Contents of section .idata\\\$6:.*\\.\\.something\\..*){2,2}" + +if [regexp $want $got] then { + pass "dlltool -p (import name leading underscore) alias-2.def" +} else { + fail "dlltool -p (import name leading underscore) alias-2.def" +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/dumptest.s b/binutils-2.25/binutils/testsuite/binutils-all/dumptest.s new file mode 100644 index 00000000..6335d22b --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/dumptest.s @@ -0,0 +1,2 @@ + .data + .ascii "test_string" diff --git a/binutils-2.25/binutils/testsuite/binutils-all/dw2-1.S b/binutils-2.25/binutils/testsuite/binutils-all/dw2-1.S new file mode 100644 index 00000000..ab12be60 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/dw2-1.S @@ -0,0 +1,198 @@ +/* This testcase is derived from a similar test in GDB. + + Copyright 2008, 2009, 2010 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 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, see <http://www.gnu.org/licenses/>. */ + +/* Dummy function to provide debug information for. */ + + .text + .globl _start +_start: + .int 0 +.Lbegin_text1: + .globl func_cu1 + .type func_cu1, %function +func_cu1: +.Lbegin_func_cu1: + .int 0 +.Lend_func_cu1: + .size func_cu1, .-func_cu1 +.Lend_text1: + +/* Debug information */ + + .section .debug_info +.Lcu1_begin: + /* CU header */ + .4byte .Lcu1_end - .Lcu1_start /* Length of Compilation Unit */ +.Lcu1_start: + .2byte 2 /* DWARF Version */ + .4byte .Labbrev1_begin /* Offset into abbrev section */ + .byte 4 /* Pointer size */ + + /* CU die */ + .uleb128 1 /* Abbrev: DW_TAG_compile_unit */ + .4byte .Lline1_begin /* DW_AT_stmt_list */ + .4byte .Lend_text1 /* DW_AT_high_pc */ + .4byte .Lbegin_text1 /* DW_AT_low_pc */ + .ascii "file1.txt\0" /* DW_AT_name */ + .ascii "GNU C 3.3.3\0" /* DW_AT_producer */ + .byte 1 /* DW_AT_language (C) */ + + /* func_cu1 */ + .uleb128 2 /* Abbrev: DW_TAG_subprogram */ + .byte 1 /* DW_AT_external */ + .byte 1 /* DW_AT_decl_file */ + .byte 2 /* DW_AT_decl_line */ + .ascii "func_cu1\0" /* DW_AT_name */ + .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ + .4byte .Lbegin_func_cu1 /* DW_AT_low_pc */ + .4byte .Lend_func_cu1 /* DW_AT_high_pc */ + .byte 1 /* DW_AT_frame_base: length */ + .byte 0x55 /* DW_AT_frame_base: DW_OP_reg5 */ + +.Ltype_int: + .uleb128 3 /* Abbrev: DW_TAG_base_type */ + .ascii "int\0" /* DW_AT_name */ + .byte 4 /* DW_AT_byte_size */ + .byte 5 /* DW_AT_encoding */ + + .byte 0 /* End of children of CU */ + +.Lcu1_end: + +/* Line table */ + .section .debug_line +.Lline1_begin: + .4byte .Lline1_end - .Lline1_start /* Initial length */ +.Lline1_start: + .2byte 2 /* Version */ + .4byte .Lline1_lines - .Lline1_hdr /* header_length */ +.Lline1_hdr: + .byte 1 /* Minimum insn length */ + .byte 1 /* default_is_stmt */ + .byte 1 /* line_base */ + .byte 1 /* line_range */ + .byte 0x10 /* opcode_base */ + + /* Standard lengths */ + .byte 0 + .byte 1 + .byte 1 + .byte 1 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + + /* Include directories */ + .byte 0 + + /* File names */ + .ascii "file1.txt\0" + .uleb128 0 + .uleb128 0 + .uleb128 0 + + .byte 0 + +.Lline1_lines: + .byte 0 /* DW_LNE_set_address */ + .uleb128 5 + .byte 2 + .4byte .Lbegin_func_cu1 + + .byte 3 /* DW_LNS_advance_line */ + .sleb128 3 /* ... to 4 */ + + .byte 1 /* DW_LNS_copy */ + + .byte 1 /* DW_LNS_copy (second time as an end-of-prologue marker) */ + + .byte 0 /* DW_LNE_set_address */ + .uleb128 5 + .byte 2 + .4byte .Lend_func_cu1 + + .byte 0 /* DW_LNE_end_of_sequence */ + .uleb128 1 + .byte 1 + +.Lline1_end: + +/* Abbrev table */ + .section .debug_abbrev +.Labbrev1_begin: + .uleb128 1 /* Abbrev code */ + .uleb128 0x11 /* DW_TAG_compile_unit */ + .byte 1 /* has_children */ + .uleb128 0x10 /* DW_AT_stmt_list */ + .uleb128 0x6 /* DW_FORM_data4 */ + .uleb128 0x12 /* DW_AT_high_pc */ + .uleb128 0x1 /* DW_FORM_addr */ + .uleb128 0x11 /* DW_AT_low_pc */ + .uleb128 0x1 /* DW_FORM_addr */ + .uleb128 0x3 /* DW_AT_name */ + .uleb128 0x8 /* DW_FORM_string */ + .uleb128 0x25 /* DW_AT_producer */ + .uleb128 0x8 /* DW_FORM_string */ + .uleb128 0x13 /* DW_AT_language */ + .uleb128 0xb /* DW_FORM_data1 */ + .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */ + + .uleb128 2 /* Abbrev code */ + .uleb128 0x2e /* DW_TAG_subprogram */ + .byte 0 /* has_children */ + .uleb128 0x3f /* DW_AT_external */ + .uleb128 0xc /* DW_FORM_flag */ + .uleb128 0x3a /* DW_AT_decl_file */ + .uleb128 0xb /* DW_FORM_data1 */ + .uleb128 0x3b /* DW_AT_decl_line */ + .uleb128 0xb /* DW_FORM_data1 */ + .uleb128 0x3 /* DW_AT_name */ + .uleb128 0x8 /* DW_FORM_string */ + .uleb128 0x49 /* DW_AT_type */ + .uleb128 0x13 /* DW_FORM_ref4 */ + .uleb128 0x11 /* DW_AT_low_pc */ + .uleb128 0x1 /* DW_FORM_addr */ + .uleb128 0x12 /* DW_AT_high_pc */ + .uleb128 0x1 /* DW_FORM_addr */ + .uleb128 0x40 /* DW_AT_frame_base */ + .uleb128 0xa /* DW_FORM_block1 */ + .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */ + + .uleb128 3 /* Abbrev code */ + .uleb128 0x24 /* DW_TAG_base_type */ + .byte 0 /* has_children */ + .uleb128 0x3 /* DW_AT_name */ + .uleb128 0x8 /* DW_FORM_string */ + .uleb128 0xb /* DW_AT_byte_size */ + .uleb128 0xb /* DW_FORM_data1 */ + .uleb128 0x3e /* DW_AT_encoding */ + .uleb128 0xb /* DW_FORM_data1 */ + .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */ + + .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */ diff --git a/binutils-2.25/binutils/testsuite/binutils-all/dw2-1.W b/binutils-2.25/binutils/testsuite/binutils-all/dw2-1.W new file mode 100644 index 00000000..85ce9dd0 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/dw2-1.W @@ -0,0 +1,103 @@ + +.*dw2-1-compressed.o: file format .* + +Contents of the .debug_info section: + + Compilation Unit @ offset 0x0: + Length: 0x4e \(32-bit\) + Version: 2 + Abbrev Offset: 0x0 + Pointer Size: 4 + <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\) + <c> DW_AT_stmt_list : 0x0 + <10> DW_AT_high_pc : 0x. + <14> DW_AT_low_pc : 0x. + <18> DW_AT_name : file1.txt + <22> DW_AT_producer : GNU C 3.3.3 + <2e> DW_AT_language : 1 \(ANSI C\) + <1><2f>: Abbrev Number: 2 \(DW_TAG_subprogram\) + <30> DW_AT_external : 1 + <31> DW_AT_decl_file : 1 + <32> DW_AT_decl_line : 2 + <33> DW_AT_name : func_cu1 + <3c> DW_AT_type : <0x4a> + <40> DW_AT_low_pc : 0x. + <44> DW_AT_high_pc : 0x. + <48> DW_AT_frame_base : 1 byte block: 55 \(DW_OP_reg5 \([^()]*\)\) + <1><4a>: Abbrev Number: 3 \(DW_TAG_base_type\) + <4b> DW_AT_name : int + <4f> DW_AT_byte_size : 4 + <50> DW_AT_encoding : 5 \(signed\) + <1><51>: Abbrev Number: 0 + +Raw dump of debug contents of section .debug_line: + + Offset: 0x0 + Length: 62 + DWARF Version: 2 + Prologue Length: 35 + Minimum Instruction Length: 1 + Initial value of 'is_stmt': 1 + Line Base: 1 + Line Range: 1 + Opcode Base: 16 + + Opcodes: + Opcode 1 has 0 args + Opcode 2 has 1 args + Opcode 3 has 1 args + Opcode 4 has 1 args + Opcode 5 has 1 args + Opcode 6 has 0 args + Opcode 7 has 0 args + Opcode 8 has 0 args + Opcode 9 has 1 args + Opcode 10 has 0 args + Opcode 11 has 0 args + Opcode 12 has 1 args + Opcode 13 has 0 args + Opcode 14 has 0 args + Opcode 15 has 0 args + + The Directory Table is empty. + + The File Name Table \(offset 0x.*\): + Entry Dir Time Size Name + 1 0 0 0 file1.txt + + Line Number Statements: + \[0x.*\] Extended opcode 2: set Address to 0x4 + \[0x.*\] Advance Line by 3 to 4 + \[0x.*\] Copy + \[0x.*\] Copy + \[0x.*\] Extended opcode 2: set Address to 0x8 + \[0x.*\] Extended opcode 1: End of Sequence + + +Contents of the .debug_abbrev section: + + Number TAG \(0x0\) + 1 DW_TAG_compile_unit \[has children\] + DW_AT_stmt_list DW_FORM_data4 + DW_AT_high_pc DW_FORM_addr + DW_AT_low_pc DW_FORM_addr + DW_AT_name DW_FORM_string + DW_AT_producer DW_FORM_string + DW_AT_language DW_FORM_data1 + DW_AT value: 0 DW_FORM value: 0 + 2 DW_TAG_subprogram \[no children\] + DW_AT_external DW_FORM_flag + DW_AT_decl_file DW_FORM_data1 + DW_AT_decl_line DW_FORM_data1 + DW_AT_name DW_FORM_string + DW_AT_type DW_FORM_ref4 + DW_AT_low_pc DW_FORM_addr + DW_AT_high_pc DW_FORM_addr + DW_AT_frame_base DW_FORM_block1 + DW_AT value: 0 DW_FORM value: 0 + 3 DW_TAG_base_type \[no children\] + DW_AT_name DW_FORM_string + DW_AT_byte_size DW_FORM_data1 + DW_AT_encoding DW_FORM_data1 + DW_AT value: 0 DW_FORM value: 0 + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/dw2-2.S b/binutils-2.25/binutils/testsuite/binutils-all/dw2-2.S new file mode 100644 index 00000000..43b53557 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/dw2-2.S @@ -0,0 +1,195 @@ +/* This testcase is derived from a similar test in GDB. + + Copyright 2008, 2009, 2010 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 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, see <http://www.gnu.org/licenses/>. */ + +/* Dummy function to provide debug information for. */ + + .text +.Lbegin_text1: + .globl func_cu2 + .type func_cu2, %function +func_cu2: +.Lbegin_func_cu2: + .int 0 +.Lend_func_cu2: + .size func_cu2, .-func_cu2 +.Lend_text1: + +/* Debug information */ + + .section .debug_info +.Lcu1_begin: + /* CU header */ + .4byte .Lcu1_end - .Lcu1_start /* Length of Compilation Unit */ +.Lcu1_start: + .2byte 2 /* DWARF Version */ + .4byte .Labbrev1_begin /* Offset into abbrev section */ + .byte 4 /* Pointer size */ + + /* CU die */ + .uleb128 1 /* Abbrev: DW_TAG_compile_unit */ + .4byte .Lline1_begin /* DW_AT_stmt_list */ + .4byte .Lend_text1 /* DW_AT_high_pc */ + .4byte .Lbegin_text1 /* DW_AT_low_pc */ + .ascii "file1.txt\0" /* DW_AT_name */ + .ascii "GNU C 3.3.3\0" /* DW_AT_producer */ + .byte 1 /* DW_AT_language (C) */ + + /* func_cu2 */ + .uleb128 2 /* Abbrev: DW_TAG_subprogram */ + .byte 1 /* DW_AT_external */ + .byte 1 /* DW_AT_decl_file */ + .byte 2 /* DW_AT_decl_line */ + .ascii "func_cu2\0" /* DW_AT_name */ + .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ + .4byte .Lbegin_func_cu2 /* DW_AT_low_pc */ + .4byte .Lend_func_cu2 /* DW_AT_high_pc */ + .byte 1 /* DW_AT_frame_base: length */ + .byte 0x55 /* DW_AT_frame_base: DW_OP_reg5 */ + +.Ltype_int: + .uleb128 3 /* Abbrev: DW_TAG_base_type */ + .ascii "int\0" /* DW_AT_name */ + .byte 4 /* DW_AT_byte_size */ + .byte 5 /* DW_AT_encoding */ + + .byte 0 /* End of children of CU */ + +.Lcu1_end: + +/* Line table */ + .section .debug_line +.Lline1_begin: + .4byte .Lline1_end - .Lline1_start /* Initial length */ +.Lline1_start: + .2byte 2 /* Version */ + .4byte .Lline1_lines - .Lline1_hdr /* header_length */ +.Lline1_hdr: + .byte 1 /* Minimum insn length */ + .byte 1 /* default_is_stmt */ + .byte 1 /* line_base */ + .byte 1 /* line_range */ + .byte 0x10 /* opcode_base */ + + /* Standard lengths */ + .byte 0 + .byte 1 + .byte 1 + .byte 1 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + + /* Include directories */ + .byte 0 + + /* File names */ + .ascii "file1.txt\0" + .uleb128 0 + .uleb128 0 + .uleb128 0 + + .byte 0 + +.Lline1_lines: + .byte 0 /* DW_LNE_set_address */ + .uleb128 5 + .byte 2 + .4byte .Lbegin_func_cu2 + + .byte 3 /* DW_LNS_advance_line */ + .sleb128 3 /* ... to 4 */ + + .byte 1 /* DW_LNS_copy */ + + .byte 1 /* DW_LNS_copy (second time as an end-of-prologue marker) */ + + .byte 0 /* DW_LNE_set_address */ + .uleb128 5 + .byte 2 + .4byte .Lend_func_cu2 + + .byte 0 /* DW_LNE_end_of_sequence */ + .uleb128 1 + .byte 1 + +.Lline1_end: + +/* Abbrev table */ + .section .debug_abbrev +.Labbrev1_begin: + .uleb128 1 /* Abbrev code */ + .uleb128 0x11 /* DW_TAG_compile_unit */ + .byte 1 /* has_children */ + .uleb128 0x10 /* DW_AT_stmt_list */ + .uleb128 0x6 /* DW_FORM_data4 */ + .uleb128 0x12 /* DW_AT_high_pc */ + .uleb128 0x1 /* DW_FORM_addr */ + .uleb128 0x11 /* DW_AT_low_pc */ + .uleb128 0x1 /* DW_FORM_addr */ + .uleb128 0x3 /* DW_AT_name */ + .uleb128 0x8 /* DW_FORM_string */ + .uleb128 0x25 /* DW_AT_producer */ + .uleb128 0x8 /* DW_FORM_string */ + .uleb128 0x13 /* DW_AT_language */ + .uleb128 0xb /* DW_FORM_data1 */ + .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */ + + .uleb128 2 /* Abbrev code */ + .uleb128 0x2e /* DW_TAG_subprogram */ + .byte 0 /* has_children */ + .uleb128 0x3f /* DW_AT_external */ + .uleb128 0xc /* DW_FORM_flag */ + .uleb128 0x3a /* DW_AT_decl_file */ + .uleb128 0xb /* DW_FORM_data1 */ + .uleb128 0x3b /* DW_AT_decl_line */ + .uleb128 0xb /* DW_FORM_data1 */ + .uleb128 0x3 /* DW_AT_name */ + .uleb128 0x8 /* DW_FORM_string */ + .uleb128 0x49 /* DW_AT_type */ + .uleb128 0x13 /* DW_FORM_ref4 */ + .uleb128 0x11 /* DW_AT_low_pc */ + .uleb128 0x1 /* DW_FORM_addr */ + .uleb128 0x12 /* DW_AT_high_pc */ + .uleb128 0x1 /* DW_FORM_addr */ + .uleb128 0x40 /* DW_AT_frame_base */ + .uleb128 0xa /* DW_FORM_block1 */ + .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */ + + .uleb128 3 /* Abbrev code */ + .uleb128 0x24 /* DW_TAG_base_type */ + .byte 0 /* has_children */ + .uleb128 0x3 /* DW_AT_name */ + .uleb128 0x8 /* DW_FORM_string */ + .uleb128 0xb /* DW_AT_byte_size */ + .uleb128 0xb /* DW_FORM_data1 */ + .uleb128 0x3e /* DW_AT_encoding */ + .uleb128 0xb /* DW_FORM_data1 */ + .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */ + + .byte 0x0 /* Terminator */ + .byte 0x0 /* Terminator */ diff --git a/binutils-2.25/binutils/testsuite/binutils-all/dw2-compressed.S b/binutils-2.25/binutils/testsuite/binutils-all/dw2-compressed.S new file mode 100644 index 00000000..37ba9168 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/dw2-compressed.S @@ -0,0 +1,218 @@ +/* This testcase is derived from a similar test in GDB. + + Copyright 2008, 2009 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 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, see <http://www.gnu.org/licenses/>. */ + +/* This tests that gdb can read compressed sections. The contents + are a basic assembly file, but the .debug_abbrev section has been + comrpessed using zlib. */ + +/* Dummy function to provide debug information for. */ + + .text + .globl _start +_start: + .int 0 +.Lbegin_text1: + .globl func_cu1 + .type func_cu1, %function +func_cu1: +.Lbegin_func_cu1: + .int 0 +.Lend_func_cu1: + .size func_cu1, .-func_cu1 +.Lend_text1: + +/* Debug information */ + + .section .debug_info +.Lcu1_begin: + /* CU header */ + .4byte .Lcu1_end - .Lcu1_start /* Length of Compilation Unit */ +.Lcu1_start: + .2byte 2 /* DWARF Version */ + .4byte .Labbrev1_begin /* Offset into abbrev section */ + .byte 4 /* Pointer size */ + + /* CU die */ + .uleb128 1 /* Abbrev: DW_TAG_compile_unit */ + .4byte .Lline1_begin /* DW_AT_stmt_list */ + .4byte .Lend_text1 /* DW_AT_high_pc */ + .4byte .Lbegin_text1 /* DW_AT_low_pc */ + .ascii "file1.txt\0" /* DW_AT_name */ + .ascii "GNU C 3.3.3\0" /* DW_AT_producer */ + .byte 1 /* DW_AT_language (C) */ + + /* func_cu1 */ + .uleb128 2 /* Abbrev: DW_TAG_subprogram */ + .byte 1 /* DW_AT_external */ + .byte 1 /* DW_AT_decl_file */ + .byte 2 /* DW_AT_decl_line */ + .ascii "func_cu1\0" /* DW_AT_name */ + .4byte .Ltype_int-.Lcu1_begin /* DW_AT_type */ + .4byte .Lbegin_func_cu1 /* DW_AT_low_pc */ + .4byte .Lend_func_cu1 /* DW_AT_high_pc */ + .byte 1 /* DW_AT_frame_base: length */ + .byte 0x55 /* DW_AT_frame_base: DW_OP_reg5 */ + +.Ltype_int: + .uleb128 3 /* Abbrev: DW_TAG_base_type */ + .ascii "int\0" /* DW_AT_name */ + .byte 4 /* DW_AT_byte_size */ + .byte 5 /* DW_AT_encoding */ + + .byte 0 /* End of children of CU */ + +.Lcu1_end: + +/* Line table */ + .section .debug_line +.Lline1_begin: + .4byte .Lline1_end - .Lline1_start /* Initial length */ +.Lline1_start: + .2byte 2 /* Version */ + .4byte .Lline1_lines - .Lline1_hdr /* header_length */ +.Lline1_hdr: + .byte 1 /* Minimum insn length */ + .byte 1 /* default_is_stmt */ + .byte 1 /* line_base */ + .byte 1 /* line_range */ + .byte 0x10 /* opcode_base */ + + /* Standard lengths */ + .byte 0 + .byte 1 + .byte 1 + .byte 1 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 1 + .byte 0 + .byte 0 + .byte 0 + + /* Include directories */ + .byte 0 + + /* File names */ + .ascii "file1.txt\0" + .uleb128 0 + .uleb128 0 + .uleb128 0 + + .byte 0 + +.Lline1_lines: + .byte 0 /* DW_LNE_set_address */ + .uleb128 5 + .byte 2 + .4byte .Lbegin_func_cu1 + + .byte 3 /* DW_LNS_advance_line */ + .sleb128 3 /* ... to 4 */ + + .byte 1 /* DW_LNS_copy */ + + .byte 1 /* DW_LNS_copy (second time as an end-of-prologue marker) */ + + .byte 0 /* DW_LNE_set_address */ + .uleb128 5 + .byte 2 + .4byte .Lend_func_cu1 + + .byte 0 /* DW_LNE_end_of_sequence */ + .uleb128 1 + .byte 1 + +.Lline1_end: + +/* Abbrev table -- compressed */ + .section .zdebug_abbrev +.Labbrev1_begin: + .ascii "ZLIB" + .4byte 0 + .2byte 0 + .byte 0 + .byte 51 + .byte 0x78 + .byte 0x5e + .byte 0x63 + .byte 0x14 + .byte 0x64 + .byte 0x14 + .byte 0x60 + .byte 0x13 + .byte 0x62 + .byte 0x14 + .byte 0x64 + .byte 0x64 + .byte 0xe6 + .byte 0x50 + .byte 0xe5 + .byte 0x10 + .byte 0xe6 + .byte 0x66 + .byte 0x60 + .byte 0x60 + .byte 0xd2 + .byte 0x63 + .byte 0xb0 + .byte 0xe7 + .byte 0xb1 + .byte 0xe2 + .byte 0xb6 + .byte 0xe6 + .byte 0x66 + .byte 0xe6 + .byte 0xf0 + .byte 0x14 + .byte 0x16 + .byte 0x64 + .byte 0x14 + .byte 0x62 + .byte 0x74 + .byte 0xe0 + .byte 0x02 + .byte 0x00 + .byte 0x25 + .byte 0x78 + .byte 0x02 + .byte 0x81 + .byte 0x78 + .byte 0x9c + .byte 0x63 + .byte 0x60 + .byte 0x60 + .byte 0x56 + .byte 0x61 + .byte 0x60 + .byte 0xe6 + .byte 0xe0 + .byte 0xe6 + .byte 0xb6 + .byte 0xe3 + .byte 0x66 + .byte 0x00 + .byte 0x02 + .byte 0x00 + .byte 0x04 + .byte 0x9c + .byte 0x00 + .byte 0x92 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/dw2-decodedline.S b/binutils-2.25/binutils/testsuite/binutils-all/dw2-decodedline.S new file mode 100644 index 00000000..a54bdcfb --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/dw2-decodedline.S @@ -0,0 +1,16 @@ + .file "dw2-decodedline.c" + .file 1 "dw2-decodedline.c" + .file 2 "directory/file1.c" + .text + .globl f1 + .type f1, %function +f1: + .loc 2 1 0 + nop + .size f1, .-f1 + .globl main + .type main, %function +main: + .loc 1 2 0 + nop + .size main, .-main diff --git a/binutils-2.25/binutils/testsuite/binutils-all/dw2-empty.S b/binutils-2.25/binutils/testsuite/binutils-all/dw2-empty.S new file mode 100644 index 00000000..63a2b900 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/dw2-empty.S @@ -0,0 +1 @@ + .section .debug_line diff --git a/binutils-2.25/binutils/testsuite/binutils-all/elfedit-1.d b/binutils-2.25/binutils/testsuite/binutils-all/elfedit-1.d new file mode 100644 index 00000000..700d5428 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/elfedit-1.d @@ -0,0 +1,16 @@ +#PROG: elfedit +#elfedit: --output-mach l1om +#source: empty.s +#readelf: -h +#name: Update ELF header 1 +#target: x86_64-*-* + +#... +ELF Header: + Magic: 7f 45 4c 46 0(1|2) 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF(32|64) + Data: 2's complement, little endian + Version: 1 \(current\) +#... + Machine: Intel L1OM +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/elfedit-2.d b/binutils-2.25/binutils/testsuite/binutils-all/elfedit-2.d new file mode 100644 index 00000000..56468b51 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/elfedit-2.d @@ -0,0 +1,15 @@ +#PROG: elfedit +#elfedit: --output-type exec +#source: empty.s +#readelf: -h +#name: Update ELF header 2 +#target: *-*-linux* *-*-gnu* + +#... +ELF Header: + Magic: 7f 45 4c 46 .* +#... + Version:[ \t]+1 \(current\) +#... + Type:[ \t]+EXEC \(Executable file\) +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/elfedit-3.d b/binutils-2.25/binutils/testsuite/binutils-all/elfedit-3.d new file mode 100644 index 00000000..219cac59 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/elfedit-3.d @@ -0,0 +1,15 @@ +#PROG: elfedit +#elfedit: --output-osabi FenixOS +#source: empty.s +#readelf: -h +#name: Update ELF header 3 +#target: *-*-linux* *-*-gnu* + +#... +ELF Header: + Magic: 7f 45 4c 46 .* +#... + Version:[ \t]+1 \(current\) +#... + OS/ABI:[ \t]+FenixOS +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/elfedit-4.d b/binutils-2.25/binutils/testsuite/binutils-all/elfedit-4.d new file mode 100644 index 00000000..4336dd8c --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/elfedit-4.d @@ -0,0 +1,17 @@ +#PROG: elfedit +#elfedit: --output-mach k1om +#source: empty.s +#as: --64 +#readelf: -h +#name: Update ELF header 4 +#target: x86_64-*-* + +#... +ELF Header: + Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00 + Class: ELF64 + Data: 2's complement, little endian + Version: 1 \(current\) +#... + Machine: Intel K1OM +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/elfedit.exp b/binutils-2.25/binutils/testsuite/binutils-all/elfedit.exp new file mode 100644 index 00000000..500906d3 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/elfedit.exp @@ -0,0 +1,35 @@ +# Copyright 2010, 2011 +# 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 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. + +# Exclude non-ELF targets. +if ![is_elf_format] { + verbose "$ELFEDIT is only intended for ELF targets" 2 + return +} + +if ![is_remote host] { + set tempfile tmpdir/bintest.o + set copyfile tmpdir/bintest +} else { + set tempfile [remote_download host tmpdir/bintest.o] + set copyfile bintest +} + +run_dump_test "elfedit-1" +run_dump_test "elfedit-2" +run_dump_test "elfedit-3" +run_dump_test "elfedit-4" diff --git a/binutils-2.25/binutils/testsuite/binutils-all/empty-file b/binutils-2.25/binutils/testsuite/binutils-all/empty-file new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/empty-file diff --git a/binutils-2.25/binutils/testsuite/binutils-all/empty.s b/binutils-2.25/binutils/testsuite/binutils-all/empty.s new file mode 100644 index 00000000..8690c06a --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/empty.s @@ -0,0 +1 @@ +# An empty file. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/exclude-1.s b/binutils-2.25/binutils/testsuite/binutils-all/exclude-1.s new file mode 100644 index 00000000..475088fd --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/exclude-1.s @@ -0,0 +1,16 @@ + .text + .type start,"function" + .global start +start: + .type _start,"function" + .global _start +_start: + .type __start,"function" + .global __start +__start: + .type main,"function" + .global main +main: + .long 0 + .section .foo1,"e", %progbits + .byte 0,0,0,0 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/exclude-1a.d b/binutils-2.25/binutils/testsuite/binutils-all/exclude-1a.d new file mode 100644 index 00000000..3a311b53 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/exclude-1a.d @@ -0,0 +1,9 @@ +#PROG: objcopy +#source: exclude-1.s +#objcopy: +#readelf: -S --wide +#name: objcopy on sections with SHF_EXCLUDE + +#... +[ ]*\[.*\][ ]+\.foo1[ ]+PROGBITS.*[ ]+E[ ]+.* +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/exclude-1b.d b/binutils-2.25/binutils/testsuite/binutils-all/exclude-1b.d new file mode 100644 index 00000000..ac387fb2 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/exclude-1b.d @@ -0,0 +1,9 @@ +#PROG: strip +#source: exclude-1.s +#strip: --strip-unneeded +#readelf: -S --wide +#name: strip --strip-unneeded on sections with SHF_EXCLUDE + +#... +[ ]*\[.*\][ ]+\.foo1[ ]+PROGBITS.*[ ]+E[ ]+.* +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/fastcall.def b/binutils-2.25/binutils/testsuite/binutils-all/fastcall.def new file mode 100644 index 00000000..bef49682 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/fastcall.def @@ -0,0 +1,2 @@ +EXPORTS +@fastcall@4 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/group-2.s b/binutils-2.25/binutils/testsuite/binutils-all/group-2.s new file mode 100644 index 00000000..187eeda2 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/group-2.s @@ -0,0 +1,8 @@ + .section .text.foo,"axG",%progbits,.text.foo,comdat + .global foo2 +foo2: + .word 0 + .section .data.bar,"awG",%progbits,.text.foo,comdat + .global bar2 +bar2: + .word 0 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/group-3.s b/binutils-2.25/binutils/testsuite/binutils-all/group-3.s new file mode 100644 index 00000000..eb235e86 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/group-3.s @@ -0,0 +1,8 @@ + .section .text.foo3,"axG",%progbits,foo3,comdat + .global foo3 +foo3: + .word 0 + .section .data.bar3,"awG",%progbits,foo3,comdat + .global bar3 +bar3: + .word 0 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/group-4.s b/binutils-2.25/binutils/testsuite/binutils-all/group-4.s new file mode 100644 index 00000000..b1c8736f --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/group-4.s @@ -0,0 +1,6 @@ + .section .text.foo4,"axG",%progbits,foo4,comdat +foo4: + .word 0 + .section .data.foo4,"awG",%progbits,foo4,comdat +bar4: + .word 0 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/group-5.d b/binutils-2.25/binutils/testsuite/binutils-all/group-5.d new file mode 100644 index 00000000..3c88ba90 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/group-5.d @@ -0,0 +1,19 @@ +#PROG: objcopy +#readelf: -Sg --wide +#objcopy: --remove-section .dropme +#name: copy removing group member + +#readelf: -Sg --wide + +#... + \[[ 0-9]+\] \.group[ \t]+GROUP[ \t]+.* +#... + \[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AXG.* +#... + \[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WAG.* +#... +COMDAT group section \[[ 0-9]+\] `\.group' \[foo_group\] contains 2 sections: + \[Index\] Name + \[[ 0-9]+\] .text.* + \[[ 0-9]+\] .data.* +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/group-5.s b/binutils-2.25/binutils/testsuite/binutils-all/group-5.s new file mode 100644 index 00000000..b2e100aa --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/group-5.s @@ -0,0 +1,12 @@ + .section .text.foo,"axG",%progbits,foo_group,comdat + .global foo +foo: + .word 0 + + .section .data.foo,"awG",%progbits,foo_group,comdat + .global bar +bar: + .word 1 + + .section .dropme,"G",%progbits,foo_group,comdat + .word 2 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/group-6.d b/binutils-2.25/binutils/testsuite/binutils-all/group-6.d new file mode 100644 index 00000000..33197456 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/group-6.d @@ -0,0 +1,9 @@ +#PROG: objcopy +#objcopy: --remove-section .text.foo +#name: copy removing all group member +#objdump: -fw + +#... +.*: +file format .* +architecture: .* +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/group-6.s b/binutils-2.25/binutils/testsuite/binutils-all/group-6.s new file mode 100644 index 00000000..e4c2bdac --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/group-6.s @@ -0,0 +1,4 @@ + .text + .byte 0 + .section .text.foo,"axG",%progbits,foo,comdat + .byte 0 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/group.s b/binutils-2.25/binutils/testsuite/binutils-all/group.s new file mode 100644 index 00000000..cc1ffb6d --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/group.s @@ -0,0 +1,8 @@ + .section .text.foo,"axG",%progbits,foo_group,comdat + .global foo +foo: + .word 0 + .section .data.foo,"awG",%progbits,foo_group,comdat + .global bar +bar: + .word 0 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/hppa/addendbug.s b/binutils-2.25/binutils/testsuite/binutils-all/hppa/addendbug.s new file mode 100644 index 00000000..659306f0 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/hppa/addendbug.s @@ -0,0 +1,23 @@ + .SPACE $PRIVATE$ + .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31 + .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82 + .SPACE $TEXT$ + .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44 + .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY + .IMPORT $global$,DATA + .IMPORT $$dyncall,MILLICODE +; gcc_compiled.: + .SPACE $TEXT$ + .SUBSPA $CODE$ + + .align 4 + .EXPORT initialize_char_syntax,CODE + .EXPORT initialize_char_syntax,ENTRY,PRIV_LEV=3,RTNVAL=GR +initialize_char_syntax + .PROC + .CALLINFO FRAME=64,NO_CALLS,SAVE_SP,ENTRY_GR=3 + .ENTRY + addil L'is_idchar-$global$-32,%r27 + .EXIT + .PROCEND +is_idchar .comm 256 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/hppa/freg.s b/binutils-2.25/binutils/testsuite/binutils-all/hppa/freg.s new file mode 100644 index 00000000..501e10f9 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/hppa/freg.s @@ -0,0 +1,23 @@ + .LEVEL 2.0 + .SPACE $PRIVATE$ + .SUBSPA $DATA$,QUAD=1,ALIGN=8,ACCESS=31 + .SUBSPA $BSS$,QUAD=1,ALIGN=8,ACCESS=31,ZERO,SORT=82 + .SPACE $TEXT$ + .SUBSPA $LIT$,QUAD=0,ALIGN=8,ACCESS=44 + .SUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY + .IMPORT $global$,DATA + .IMPORT $$dyncall,MILLICODE +; gcc_compiled.: + .SPACE $TEXT$ + .SUBSPA $CODE$ + + .align 4 + .NSUBSPA $CODE$,QUAD=0,ALIGN=8,ACCESS=44,CODE_ONLY + .EXPORT main,ENTRY,PRIV_LEV=3,RTNVAL=GR +main + .PROC + .CALLINFO FRAME=64,CALLS,SAVE_RP + .ENTRY + fmpyfadd,sgl %fr4L,%fr4R,%fr5R,%fr5L + .EXIT + .PROCEND diff --git a/binutils-2.25/binutils/testsuite/binutils-all/hppa/objdump.exp b/binutils-2.25/binutils/testsuite/binutils-all/hppa/objdump.exp new file mode 100644 index 00000000..c6d16404 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/hppa/objdump.exp @@ -0,0 +1,96 @@ +# Copyright 1993, 1994, 1995, 1997, 1999, 2000, 2002, 2007, 2009 +# 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 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. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-dejagnu@prep.ai.mit.edu + +# This file was written by Rob Savoye <rob@cygnus.com> +# and rewritten by Ian Lance Taylor <ian@cygnus.com> + +if ![istarget hppa*-*-*] then { + return +} + +# These tests are not suitable for wide mode. +if [istarget hppa*w-*-*] then { + return +} + +# elf hppa assembler doesn't support .subspa +if {[istarget *64*-*-*] || [istarget *-*-*elf*] || [istarget *-*-linux*]} then { + return +} + +if {[which $OBJDUMP] == 0} then { + perror "$OBJDUMP does not exist" + return +} + +send_user "Version [binutil_version $OBJDUMP]" + +if {![binutils_assemble $srcdir/$subdir/addendbug.s tmpdir/addendbug.o]} then { + return +} + +if [is_remote host] { + set objfile [remote_download host tmpdir/addendbug.o] +} else { + set objfile tmpdir/addendbug.o +} + +# Make sure the SOM BFD code sign extends constants in R_DATA_OVERRIDE fixups. + +set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -r $objfile"] + +if [istarget hppa*-*-*elf*] then { + set want "00000000 R_PARISC_DPREL21L\[ \]+is_idchar-0x00000020.*" +} else { + set want "00000000 R_DP_RELATIVE\[ \]+is_idchar-0x00000020.*" +} + + +if [regexp $want $got] then { + pass "addendbug test" +} else { + fail "addendbug test" +} + +########################### +# Set up the test of freg.s +########################### + +if {![binutils_assemble $srcdir/$subdir/freg.s tmpdir/freg.o]} then { + return +} + +if [is_remote host] { + set objfile [remote_download host tmpdir/freg.o] +} else { + set objfile tmpdir/freg.o +} + +# Make sure that we get R float regs like we're supposed to + +set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS --disassemble $objfile"] + +set want "fmpyfadd,sgl fr4,fr4R,fr5R,fr5" + +if [regexp $want $got] then { + pass "freg test" +} else { + fail "freg test" +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1.s b/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1.s new file mode 100644 index 00000000..54c6d993 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1.s @@ -0,0 +1,147 @@ + .file "compressed-1.c" + .section .debug_abbrev,"",@progbits +.Ldebug_abbrev0: + .section .debug_info,"",@progbits +.Ldebug_info0: + .section .debug_line,"",@progbits +.Ldebug_line0: + .text +.Ltext0: + .cfi_sections .debug_frame + .p2align 4,,15 +.globl foo2 + .type foo2, @function +foo2: +.LFB1: + .file 1 "compressed-1.c" + .loc 1 11 0 + .cfi_startproc + .loc 1 12 0 + rep + ret + .cfi_endproc +.LFE1: + .size foo2, .-foo2 + .p2align 4,,15 +.globl foo1 + .type foo1, @function +foo1: +.LFB0: + .loc 1 5 0 + .cfi_startproc + subl $12, %esp + .cfi_def_cfa_offset 16 + .loc 1 7 0 + addl $12, %esp + .cfi_def_cfa_offset 4 + .loc 1 6 0 + jmp bar + .cfi_endproc +.LFE0: + .size foo1, .-foo1 +.Letext0: + .section .debug_info + .long 0x46 + .value 0x3 + .long .Ldebug_abbrev0 + .byte 0x4 + .uleb128 0x1 + .long .LASF2 + .byte 0x1 + .long .LASF3 + .long .LASF4 + .long .Ltext0 + .long .Letext0 + .long .Ldebug_line0 + .uleb128 0x2 + .byte 0x1 + .long .LASF0 + .byte 0x1 + .byte 0xa + .long .LFB1 + .long .LFE1 + .byte 0x1 + .byte 0x9c + .uleb128 0x2 + .byte 0x1 + .long .LASF1 + .byte 0x1 + .byte 0x4 + .long .LFB0 + .long .LFE0 + .byte 0x1 + .byte 0x9c + .byte 0x0 + .section .debug_abbrev + .uleb128 0x1 + .uleb128 0x11 + .byte 0x1 + .uleb128 0x25 + .uleb128 0xe + .uleb128 0x13 + .uleb128 0xb + .uleb128 0x3 + .uleb128 0xe + .uleb128 0x1b + .uleb128 0xe + .uleb128 0x11 + .uleb128 0x1 + .uleb128 0x12 + .uleb128 0x1 + .uleb128 0x10 + .uleb128 0x6 + .byte 0x0 + .byte 0x0 + .uleb128 0x2 + .uleb128 0x2e + .byte 0x0 + .uleb128 0x3f + .uleb128 0xc + .uleb128 0x3 + .uleb128 0xe + .uleb128 0x3a + .uleb128 0xb + .uleb128 0x3b + .uleb128 0xb + .uleb128 0x11 + .uleb128 0x1 + .uleb128 0x12 + .uleb128 0x1 + .uleb128 0x40 + .uleb128 0xa + .byte 0x0 + .byte 0x0 + .byte 0x0 + .section .debug_pubnames,"",@progbits + .long 0x20 + .value 0x2 + .long .Ldebug_info0 + .long 0x4a + .long 0x25 + .string "foo2" + .long 0x37 + .string "foo1" + .long 0x0 + .section .debug_aranges,"",@progbits + .long 0x1c + .value 0x2 + .long .Ldebug_info0 + .byte 0x4 + .byte 0x0 + .value 0x0 + .value 0x0 + .long .Ltext0 + .long .Letext0-.Ltext0 + .long 0x0 + .long 0x0 + .section .debug_str,"MS",@progbits,1 +.LASF2: + .string "GNU C 4.4.4" +.LASF0: + .string "foo2" +.LASF1: + .string "foo1" +.LASF4: + .string "." +.LASF3: + .string "compressed-1.c" diff --git a/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1a.d b/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1a.d new file mode 100644 index 00000000..f1883aa2 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1a.d @@ -0,0 +1,160 @@ +#PROG: objcopy +#source: compressed-1.s +#as: --32 --compress-debug-sections +#objcopy: +#readelf: -w +#name: objcopy on compressed debug sections + +Contents of the .[z]?debug_abbrev section: + + Number TAG \(0x0\) + 1 DW_TAG_compile_unit \[has children\] + DW_AT_producer DW_FORM_strp + DW_AT_language DW_FORM_data1 + DW_AT_name DW_FORM_strp + DW_AT_comp_dir DW_FORM_strp + DW_AT_low_pc DW_FORM_addr + DW_AT_high_pc DW_FORM_addr + DW_AT_stmt_list DW_FORM_data4 + DW_AT value: 0 DW_FORM value: 0 + 2 DW_TAG_subprogram \[no children\] + DW_AT_external DW_FORM_flag + DW_AT_name DW_FORM_strp + DW_AT_decl_file DW_FORM_data1 + DW_AT_decl_line DW_FORM_data1 + DW_AT_low_pc DW_FORM_addr + DW_AT_high_pc DW_FORM_addr + DW_AT_frame_base DW_FORM_block1 + DW_AT value: 0 DW_FORM value: 0 + +Contents of the .[z]?debug_info section: + + Compilation Unit @ offset 0x0: + Length: 0x46 \(32-bit\) + Version: 3 + Abbrev Offset: 0x0 + Pointer Size: 4 + <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\) + <c> DW_AT_producer : \(indirect string, offset: 0x0\): GNU C 4.4.4 + <10> DW_AT_language : 1 \(ANSI C\) + <11> DW_AT_name : \(indirect string, offset: 0x18\): compressed-1.c + <15> DW_AT_comp_dir : \(indirect string, offset: 0x16\): . + <19> DW_AT_low_pc : 0x0 + <1d> DW_AT_high_pc : 0x1b + <21> DW_AT_stmt_list : 0x0 + <1><25>: Abbrev Number: 2 \(DW_TAG_subprogram\) + <26> DW_AT_external : 1 + <27> DW_AT_name : \(indirect string, offset: 0xc\): foo2 + <2b> DW_AT_decl_file : 1 + <2c> DW_AT_decl_line : 10 + <2d> DW_AT_low_pc : 0x0 + <31> DW_AT_high_pc : 0x2 + <35> DW_AT_frame_base : 1 byte block: 9c \(DW_OP_call_frame_cfa\) + <1><37>: Abbrev Number: 2 \(DW_TAG_subprogram\) + <38> DW_AT_external : 1 + <39> DW_AT_name : \(indirect string, offset: 0x11\): foo1 + <3d> DW_AT_decl_file : 1 + <3e> DW_AT_decl_line : 4 + <3f> DW_AT_low_pc : 0x10 + <43> DW_AT_high_pc : 0x1b + <47> DW_AT_frame_base : 1 byte block: 9c \(DW_OP_call_frame_cfa\) + <1><49>: Abbrev Number: 0 + +Raw dump of debug contents of section .[z]?debug_line: + + Offset: 0x0 + Length: 64 + DWARF Version: 2 + Prologue Length: 37 + Minimum Instruction Length: 1 + Initial value of 'is_stmt': 1 + Line Base: -5 + Line Range: 14 + Opcode Base: 13 + + Opcodes: + Opcode 1 has 0 args + Opcode 2 has 1 args + Opcode 3 has 1 args + Opcode 4 has 1 args + Opcode 5 has 1 args + Opcode 6 has 0 args + Opcode 7 has 0 args + Opcode 8 has 0 args + Opcode 9 has 1 args + Opcode 10 has 0 args + Opcode 11 has 0 args + Opcode 12 has 1 args + + The Directory Table is empty. + + The File Name Table \(offset 0x.*\): + Entry Dir Time Size Name + 1 0 0 0 compressed-1.c + + Line Number Statements: + \[0x.*\] Extended opcode 2: set Address to 0x0 + \[0x.*\] Advance Line by 10 to 11 + \[0x.*\] Copy + \[0x.*\] Special opcode 6: advance Address by 0 to 0x0 and Line by 1 to 12 + \[0x.*\] Advance Line by -7 to 5 + \[0x.*\] Special opcode 229: advance Address by 16 to 0x10 and Line by 0 to 5 + \[0x.*\] Special opcode 49: advance Address by 3 to 0x13 and Line by 2 to 7 + \[0x.*\] Special opcode 46: advance Address by 3 to 0x16 and Line by -1 to 6 + \[0x.*\] Advance PC by 5 to 0x1b + \[0x.*\] Extended opcode 1: End of Sequence + + +Contents of the .[z]?debug_pubnames section: + + Length: 32 + Version: 2 + Offset into .[z]?debug_info section: 0x0 + Size of area in .[z]?debug_info section: 74 + + Offset Name + 25 foo2 + 37 foo1 + +Contents of the .[z]?debug_aranges section: + + Length: 28 + Version: 2 + Offset into .[z]?debug_info: 0x0 + Pointer Size: 4 + Segment Size: 0 + + Address Length + 00000000 0000001b + 00000000 00000000 + +Contents of the .[z]?debug_str section: + + 0x00000000 474e5520 4320342e 342e3400 666f6f32 GNU C 4.4.4.foo2 + 0x00000010 00666f6f 31002e00 636f6d70 72657373 .foo1...compress + 0x00000020 65642d31 2e6300 ed-1.c. + +Contents of the .[z]?debug_frame section: + +00000000 00000010 ffffffff CIE + Version: 1 + Augmentation: "" + Code alignment factor: 1 + Data alignment factor: -4 + Return address column: 8 + + DW_CFA_def_cfa: r4 \(esp\) ofs 4 + DW_CFA_offset: r8 \(eip\) at cfa-4 + DW_CFA_nop + DW_CFA_nop + +00000014 0000000c 00000000 FDE cie=00000000 pc=00000000..00000002 + +00000024 00000014 00000000 FDE cie=00000000 pc=00000010..0000001b + DW_CFA_advance_loc: 3 to 00000013 + DW_CFA_def_cfa_offset: 16 + DW_CFA_advance_loc: 3 to 00000016 + DW_CFA_def_cfa_offset: 4 + DW_CFA_nop + DW_CFA_nop + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1b.d b/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1b.d new file mode 100644 index 00000000..8cc9653e --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1b.d @@ -0,0 +1,18 @@ +#PROG: strip +#source: compressed-1.s +#as: --32 +#strip: +#readelf: -S --wide +#name: strip on uncompressed debug sections + +There are 5 section headers, starting at offset 0x78: + +Section Headers: + \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al + \[ 0\] NULL 00000000 000000 000000 00 0 0 0 + \[ 1\] .text PROGBITS 00000000 000040 00001b 00 AX 0 0 16 + \[ 2\] .data PROGBITS 00000000 00005b 000000 00 WA 0 0 1 + \[ 3\] .bss NOBITS 00000000 00005b 000000 00 WA 0 0 1 + \[ 4\] .shstrtab STRTAB 00000000 00005b 00001c 00 0 0 1 +Key to Flags: +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1c.d b/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1c.d new file mode 100644 index 00000000..f05380fc --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/i386/compressed-1c.d @@ -0,0 +1,18 @@ +#PROG: strip +#source: compressed-1.s +#as: --32 --compress-debug-sections +#strip: +#readelf: -S --wide +#name: strip on compressed debug sections + +There are 5 section headers, starting at offset 0x78: + +Section Headers: + \[Nr\] Name Type Addr Off Size ES Flg Lk Inf Al + \[ 0\] NULL 00000000 000000 000000 00 0 0 0 + \[ 1\] .text PROGBITS 00000000 000040 00001b 00 AX 0 0 16 + \[ 2\] .data PROGBITS 00000000 00005b 000000 00 WA 0 0 1 + \[ 3\] .bss NOBITS 00000000 00005b 000000 00 WA 0 0 1 + \[ 4\] .shstrtab STRTAB 00000000 00005b 00001c 00 0 0 1 +Key to Flags: +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/i386/i386.exp b/binutils-2.25/binutils/testsuite/binutils-all/i386/i386.exp new file mode 100644 index 00000000..4b9fffdc --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/i386/i386.exp @@ -0,0 +1,38 @@ +# Copyright 2010, 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 +# 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. + +if {!([istarget "i*86-*-linux*"] + || [istarget "i*86-*-gnu*"] + || [istarget "i*86-*-nacl*"] + || [istarget "x86_64-*-linux*"] + || [istarget "x86_64-*-nacl*"]) + || ![is_elf_format] + || [is_remote host]} then { + return +} + +global tempfile +global copyfile +set tempfile tmpdir/i386temp.o +set copyfile tmpdir/i386copy + +set test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]] +foreach t $test_list { + # We need to strip the ".d", but can leave the dirname. + verbose [file rootname $t] + run_dump_test [file rootname $t] +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/libdw2-compressed.out b/binutils-2.25/binutils/testsuite/binutils-all/libdw2-compressed.out new file mode 100644 index 00000000..6c1f7f5e --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/libdw2-compressed.out @@ -0,0 +1,5 @@ +#... + .* ZLIB.* +#... + .* ZLIB.* +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/libdw2.out b/binutils-2.25/binutils/testsuite/binutils-all/libdw2.out new file mode 100644 index 00000000..457774c0 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/libdw2.out @@ -0,0 +1,13 @@ +#... + \[[ 0-9]+\] \.debug_info[ ]+(PROGBITS|MIPS_DWARF)[ 0-9a-z]+ [^Z]* +#... + \[[ 0-9]+\] \.debug_line[ ]+(PROGBITS|MIPS_DWARF)[ 0-9a-z]+ [^Z]* +#... + \[[ 0-9]+\] \.debug_abbrev[ ]+(PROGBITS|MIPS_DWARF)[ 0-9a-z]+ [^Z]* +#... + \[[ 0-9]+\] \.debug_info[ ]+(PROGBITS|MIPS_DWARF)[ 0-9a-z]+ [^Z]* +#... + \[[ 0-9]+\] \.debug_line[ ]+(PROGBITS|MIPS_DWARF)[ 0-9a-z]+ [^Z]* +#... + \[[ 0-9]+\] \.debug_abbrev[ ]+(PROGBITS|MIPS_DWARF)[ 0-9a-z]+ [^Z]* +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/link-order.s b/binutils-2.25/binutils/testsuite/binutils-all/link-order.s new file mode 100644 index 00000000..5994cb81 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/link-order.s @@ -0,0 +1,13 @@ + .text + .align 16 + .global foo# + .proc foo# +foo: + .prologue 2, 2 + .vframe r2 + mov r2 = r12 + .body + .restore sp + mov r12 = r2 + br.ret.sptk.many b0 + .endp foo# diff --git a/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-1.d b/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-1.d new file mode 100644 index 00000000..a5286ed1 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-1.d @@ -0,0 +1,19 @@ +#PROG: objcopy +#objdump: --syms +#objcopy: --localize-hidden +#name: --localize-hidden test 1 +#... +0+1200 l .*\*ABS\* 0+ \.hidden Lhidden +0+1300 l .*\*ABS\* 0+ \.internal Linternal +0+1400 l .*\*ABS\* 0+ \.protected Lprotected +0+1100 l .*\*ABS\* 0+ Ldefault +#... +0+2200 l .*\*ABS\* 0+ \.hidden Ghidden +0+2300 l .*\*ABS\* 0+ \.internal Ginternal +0+3200 l .*\*ABS\* 0+ \.hidden Whidden +0+3300 l .*\*ABS\* 0+ \.internal Winternal +0+2100 g .*\*ABS\* 0+ Gdefault +0+2400 g .*\*ABS\* 0+ \.protected Gprotected +0+3100 w.*\*ABS\* 0+ Wdefault +0+3400 w.*\*ABS\* 0+ \.protected Wprotected +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-1.s b/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-1.s new file mode 100644 index 00000000..cb9f367e --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-1.s @@ -0,0 +1,36 @@ + .globl Gdefault + .globl Ghidden + .globl Ginternal + .globl Gprotected + + .weak Wdefault + .weak Whidden + .weak Winternal + .weak Wprotected + + .hidden Lhidden + .hidden Ghidden + .hidden Whidden + + .internal Linternal + .internal Ginternal + .internal Winternal + + .protected Lprotected + .protected Gprotected + .protected Wprotected + + Ldefault == 0x1100 + Lhidden == 0x1200 + Linternal == 0x1300 + Lprotected == 0x1400 + + Gdefault == 0x2100 + Ghidden == 0x2200 + Ginternal == 0x2300 + Gprotected == 0x2400 + + Wdefault == 0x3100 + Whidden == 0x3200 + Winternal == 0x3300 + Wprotected == 0x3400 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-2.d b/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-2.d new file mode 100644 index 00000000..ed3807ae --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-2.d @@ -0,0 +1,7 @@ +#PROG: objcopy +#nm: -n +#objcopy: --localize-hidden +#name: --localize-hidden test 2 +#... +0+100 A G +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-2.s b/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-2.s new file mode 100644 index 00000000..443bad08 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/localize-hidden-2.s @@ -0,0 +1,2 @@ + .globl G + G == 0x100 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/m68k/fnop.s b/binutils-2.25/binutils/testsuite/binutils-all/m68k/fnop.s new file mode 100644 index 00000000..628e1989 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/m68k/fnop.s @@ -0,0 +1 @@ + fnop diff --git a/binutils-2.25/binutils/testsuite/binutils-all/m68k/movem.s b/binutils-2.25/binutils/testsuite/binutils-all/m68k/movem.s new file mode 100644 index 00000000..b3718d50 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/m68k/movem.s @@ -0,0 +1,2 @@ + movem.l %d0-%d3,-(%sp) + movem.l %d0-%d3,(%sp) diff --git a/binutils-2.25/binutils/testsuite/binutils-all/m68k/objdump.exp b/binutils-2.25/binutils/testsuite/binutils-all/m68k/objdump.exp new file mode 100644 index 00000000..5043ef7e --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/m68k/objdump.exp @@ -0,0 +1,79 @@ +# Copyright 2004, 2007, 2009, 2010 +# 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 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. + +if {![istarget "m68*-*-*"] || [istarget "m68h*-*-*"] || [istarget "m681*-*-*"]} then { + return +} + +if {[which $OBJDUMP] == 0} then { + perror "$OBJDUMP does not exist" + return +} + +send_user "Version [binutil_version $OBJDUMP]" + +########################### +# Set up the test of movem.s +########################### + +if {![binutils_assemble $srcdir/$subdir/movem.s tmpdir/movem.o]} then { + return +} + +if [is_remote host] { + set objfile [remote_download host tmpdir/movem.o] +} else { + set objfile tmpdir/movem.o +} + +# Make sure that the movem is correctly decoded. + +set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS --disassemble $objfile"] + +set want "moveml %d0-%d3,%sp@-.*moveml %d0-%d3,%sp@\[\r\n\]" + +if [regexp $want $got] then { + pass "movem test" +} else { + fail "movem test" +} + +########################### +# Set up the test of fnop.s +########################### + +if {![binutils_assemble $srcdir/$subdir/fnop.s tmpdir/fnop.o]} then { + return +} + +if [is_remote host] { + set objfile [remote_download host tmpdir/fnop.o] +} else { + set objfile tmpdir/fnop.o +} + +# Make sure that fnop is decoded as fnop, not fbf. + +set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS --disassemble $objfile"] + +set want "fnop *\[\r\n\]" + +if [regexp $want $got] then { + pass "fnop test" +} else { + fail "fnop test" +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/mips/mips.exp b/binutils-2.25/binutils/testsuite/binutils-all/mips/mips.exp new file mode 100644 index 00000000..eba88680 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/mips/mips.exp @@ -0,0 +1,26 @@ +# Copyright 2013 +# 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 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. + +if ![istarget mips*-*-*] { + return +} + +if [is_elf_format] { + run_dump_test "mixed-mips16" + run_dump_test "mixed-micromips" +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-micromips.d b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-micromips.d new file mode 100644 index 00000000..0bc9e412 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-micromips.d @@ -0,0 +1,30 @@ +#PROG: objcopy +#objdump: -dr --prefix-addresses --show-raw-insn +#name: Mixed MIPS and microMIPS disassembly +#as: -32 -mips2 + +# Test mixed-mode disassembly in overlapping sections. + +.*: +file format .*mips.* + +Disassembly of section \.text\.foo: +[0-9a-f]+ <[^>]*> 27bdffe0 addiu sp,sp,-32 +[0-9a-f]+ <[^>]*> afbf001c sw ra,28\(sp\) +[0-9a-f]+ <[^>]*> 0c000000 jal 00000000 <.*> +[ ]*[0-9a-f]+: R_MIPS_26 baz +[0-9a-f]+ <[^>]*> 00000000 nop +[0-9a-f]+ <[^>]*> 8fbf001c lw ra,28\(sp\) +[0-9a-f]+ <[^>]*> 03e00008 jr ra +[0-9a-f]+ <[^>]*> 27bd0020 addiu sp,sp,32 + \.\.\. + +Disassembly of section \.text\.bar: +[0-9a-f]+ <[^>]*> 4ff1 addiu sp,sp,-32 +[0-9a-f]+ <[^>]*> cbe7 sw ra,28\(sp\) +[0-9a-f]+ <[^>]*> 7400 0000 jals 00000000 <.*> +[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 baz +[0-9a-f]+ <[^>]*> 0c00 nop +[0-9a-f]+ <[^>]*> 4be7 lw ra,28\(sp\) +[0-9a-f]+ <[^>]*> 4708 jraddiusp 32 +[0-9a-f]+ <[^>]*> 0c00 nop + \.\.\. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-micromips.s b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-micromips.s new file mode 100644 index 00000000..0528c904 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-micromips.s @@ -0,0 +1,33 @@ + .section .text.foo, "ax", @progbits + .set nomicromips + .globl foo + .ent foo +foo: + addiu $sp, $sp, -32 + sw $ra, 28($sp) + jal baz + lw $ra, 28($sp) + addiu $sp, $sp, 32 + jr $ra + .end foo + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 2 + .space 8 + + + .section .text.bar, "ax", @progbits + .set micromips + .globl bar + .ent bar +bar: + addiu $sp, $sp, -32 + sw $ra, 28($sp) + jals baz + lw $ra, 28($sp) + jraddiusp 32 + .end bar + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 2 + .space 8 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-mips16.d b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-mips16.d new file mode 100644 index 00000000..09e1821a --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-mips16.d @@ -0,0 +1,30 @@ +#PROG: objcopy +#objdump: -dr --prefix-addresses --show-raw-insn +#name: Mixed MIPS and MIPS16 disassembly +#as: -32 -mips2 + +# Test mixed-mode disassembly in overlapping sections. + +.*: +file format .*mips.* + +Disassembly of section \.text\.foo: +[0-9a-f]+ <[^>]*> 27bdffe0 addiu sp,sp,-32 +[0-9a-f]+ <[^>]*> afbf001c sw ra,28\(sp\) +[0-9a-f]+ <[^>]*> 0c000000 jal 00000000 <.*> +[ ]*[0-9a-f]+: R_MIPS_26 baz +[0-9a-f]+ <[^>]*> 00000000 nop +[0-9a-f]+ <[^>]*> 8fbf001c lw ra,28\(sp\) +[0-9a-f]+ <[^>]*> 03e00008 jr ra +[0-9a-f]+ <[^>]*> 27bd0020 addiu sp,sp,32 + \.\.\. + +Disassembly of section \.text\.bar: +[0-9a-f]+ <[^>]*> 63fc addiu sp,-32 +[0-9a-f]+ <[^>]*> 6207 sw ra,28\(sp\) +[0-9a-f]+ <[^>]*> 1800 0000 jal 00000000 <.*> +[ ]*[0-9a-f]+: R_MIPS16_26 baz +[0-9a-f]+ <[^>]*> 6500 nop +[0-9a-f]+ <[^>]*> 9707 lw a3,28\(sp\) +[0-9a-f]+ <[^>]*> ef00 jr a3 +[0-9a-f]+ <[^>]*> 6304 addiu sp,32 + \.\.\. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-mips16.s b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-mips16.s new file mode 100644 index 00000000..338022c1 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-mips16.s @@ -0,0 +1,34 @@ + .section .text.foo, "ax", @progbits + .set nomips16 + .globl foo + .ent foo +foo: + addiu $sp, $sp, -32 + sw $ra, 28($sp) + jal baz + lw $ra, 28($sp) + addiu $sp, $sp, 32 + jr $ra + .end foo + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 2 + .space 8 + + + .section .text.bar, "ax", @progbits + .set mips16 + .globl bar + .ent bar +bar: + addiu $sp, -32 + sw $ra, 28($sp) + jal baz + lw $a3, 28($sp) + addiu $sp, 32 + jr $a3 + .end bar + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 2 + .space 8 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/needed-by-reloc.s b/binutils-2.25/binutils/testsuite/binutils-all/needed-by-reloc.s new file mode 100644 index 00000000..40ebdedf --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/needed-by-reloc.s @@ -0,0 +1,7 @@ + .globl foo + + .data + .long foo + .text +foo: + .long 1 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/nm-1.s b/binutils-2.25/binutils/testsuite/binutils-all/nm-1.s new file mode 100644 index 00000000..7f1633c3 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/nm-1.s @@ -0,0 +1,15 @@ + .globl text_symbol1 + .globl text_symbol2 + .globl text_symbol3 + .globl end_symbol + .text +text_symbol1: + .byte 0,0,0,0 + .byte 0,0,0,0 + .byte 0,0,0,0 +text_symbol2: + .byte 0,0,0,0 + .byte 0,0,0,0 +text_symbol3: + .byte 0,0,0,0 +end_symbol: diff --git a/binutils-2.25/binutils/testsuite/binutils-all/nm-elf-1.s b/binutils-2.25/binutils/testsuite/binutils-all/nm-elf-1.s new file mode 100644 index 00000000..8e2f1f48 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/nm-elf-1.s @@ -0,0 +1,16 @@ + .globl text_symbol1 + .globl text_symbol2 + .globl text_symbol3 + .text +text_symbol1: + .long 0 + .long 0 + .long 0 + .size text_symbol1, . - text_symbol1 +text_symbol2: + .long 0 + .long 0 + .size text_symbol2, . - text_symbol2 +text_symbol3: + .long 0 + .size text_symbol3, . - text_symbol3 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/nm.exp b/binutils-2.25/binutils/testsuite/binutils-all/nm.exp new file mode 100644 index 00000000..e9e7f5fb --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/nm.exp @@ -0,0 +1,209 @@ +# Copyright 1993, 1994, 1995, 1997, 2007, 2009 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 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. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-dejagnu@prep.ai.mit.edu + +# This file was written by Rob Savoye <rob@cygnus.com> +# and rewritten by Ian Lance Taylor <ian@cygnus.com> + +if ![is_remote host] { + if {[which $NM] == 0} then { + perror "$NM does not exist" + return + } +} + +send_user "Version [binutil_version $NM]" + + +if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o]} then { + return +} + +if [is_remote host] { + set tempfile [remote_download host tmpdir/bintest.o] +} else { + set tempfile tmpdir/bintest.o +} + +# Test nm with no arguments. + +# This test does not work correctly on ECOFF targets, because ECOFF +# stores most symbols twice, which messes up the nm output. +setup_xfail "alpha*-*-osf*" "alpha*-*-netware*" +setup_xfail "mips*-*-ultrix*" "mips*-*-ecoff*" "mips*-*-irix4*" +setup_xfail "mips*-*-riscos*" "mips*-*-sysv3*" "mips*-sony-bsd*" + +# This test does not work correctly on XCOFF targets, because XCOFF +# does not enter static symbols in the symbol table. +setup_xfail "*-*-aix*" + +set got [binutils_run $NM "$NMFLAGS $tempfile"] + +if [info exists vars] then { unset vars } +while {[regexp "(\[a-zA-Z\]) (\[a-z_\]*_symbol)(.*)" $got all type symbol rest]} { + set vars($symbol) $type + set got $rest +} + +if {![info exists vars(text_symbol)] \ + || $vars(text_symbol) != "T" \ + || ![info exists vars(data_symbol)] \ + || $vars(data_symbol) != "D" \ + || ![info exists vars(common_symbol)] \ + || $vars(common_symbol) != "C" \ + || ![info exists vars(external_symbol)] \ + || $vars(external_symbol) != "U" \ + || ![info exists vars(static_text_symbol)] \ + || $vars(static_text_symbol) != "t" \ + || ![info exists vars(static_data_symbol)] \ + || $vars(static_data_symbol) != "d"} { + fail "nm (no arguments)" +} else { + pass "nm (no arguments)" +} + +# Test nm -g + +set got [binutils_run $NM "$NMFLAGS -g $tempfile"] + +if [info exists vars] then { unset vars } +while {[regexp "(\[a-z_\]*_symbol)(.*)" $got all symbol rest]} { + set vars($symbol) 1 + set got $rest +} + +if {![info exists vars(text_symbol)] \ + || ![info exists vars(data_symbol)] \ + || ![info exists vars(common_symbol)] \ + || ![info exists vars(external_symbol)] \ + || [info exists vars(static_text_symbol)] \ + || [info exists vars(static_data_symbol)]} { + fail "nm -g" +} else { + pass "nm -g" +} + +if [is_elf_format] { + # PR binutils/12753 + # Test nm -g on a unique global symbol. + + # Only some targets support unique symbols. + if {([istarget "i?86-*-*"] + || [istarget "x86_64-*-*"] + || [istarget "arm-*-*"] + || [istarget "powerpc*-*-*"] + || [istarget "sparc*-*-*"])} then { + + if {![binutils_assemble $srcdir/$subdir/unique.s tmpdir/unique.o]} then { + fail "nm -g on unique symbols (assembling)" + } else { + if [is_remote host] { + set tmpfile [remote_download host tmpdir/unique.o] + } else { + set tmpfile tmpdir/unique.o + } + + set got [binutils_run $NM "$NMFLAGS -g $tmpfile"] + + if [regexp "u foo" $got] then { + pass "nm -g on unique symbols" + } else { + fail "nm -g on unique symbols" + } + + if { $verbose < 1 } { + remote_file host delete "tmpdir/unique.o" + } + } + } +} + +# Test nm -P + +# This test does not work correctly on ECOFF targets, because ECOFF +# stores most symbols twice, which messes up the nm output. +setup_xfail "alpha*-*-osf*" "alpha*-*-netware*" +setup_xfail "mips*-*-ultrix*" "mips*-*-ecoff*" "mips*-*-irix4*" +setup_xfail "mips*-*-riscos*" "mips*-*-sysv3*" "mips*-sony-bsd*" + +# This test does not work correctly on XCOFF targets, because XCOFF +# does not enter static symbols in the symbol table. +setup_xfail "*-*-aix*" + +set got [binutils_run $NM "$NMFLAGS -P $tempfile"] + +set want "common_symbol C \[0\]*4.*data_symbol D \[0-9a-fA-F\]*.*external_symbol U.*static_data_symbol d \[0-9a-fA-F\]*.*static_text_symbol t \[0-9a-fA-F\]*.*text_symbol T \[0-9a-fA-F\]*" + +if [regexp $want $got] then { + pass "nm -P" +} else { + fail "nm -P" +} + +# Test nm --size-sort + +# The target exceptions here are intended for targets that have ELF as +# an intermediate format or otherwise require the ELF-variant syntax +# for proper size annotation. It would be nice if is_elf_format found +# all the ELF variants, but adding the patterns here to that proc then +# introduces a whole slew of new regressions in the GAS and LD testsuites. +if { [is_elf_format] + || [istarget *-*-dragonfly*] + || [istarget *-*-*elf] + || [istarget *-*-freebsd*] + || [istarget *-*-lynxos*] + || [istarget "mmix-knuth-mmixware"] + || [istarget *-*-netware*] + || [istarget *-*-nto*] + || [istarget *-*-rdos*] + || [istarget *-*-tpf*] + || [istarget *-*-uclinux*] + || [istarget ia64-*-*vms*] + || [istarget *-*-vxworks*] } { + set nm_1_src "nm-elf-1.s" +} else { + set nm_1_src "nm-1.s" +} + +if {![binutils_assemble $srcdir/$subdir/$nm_1_src tmpdir/nm-1.o]} then { + return +} + +if [is_remote host] { + set tempfile [remote_download host tmpdir/nm-1.o] +} else { + set tempfile tmpdir/nm-1.o +} + +# This test does not work correctly on ECOFF targets, because ECOFF +# stores most symbols twice, which messes up the nm output. +setup_xfail "alpha*-*-osf*" "alpha*-*-netware*" +setup_xfail "mips*-*-ultrix*" "mips*-*-ecoff*" "mips*-*-irix4*" +setup_xfail "mips*-*-riscos*" "mips*-*-sysv3*" "mips*-sony-bsd*" + +set got [binutils_run $NM "$NMFLAGS --size-sort $tempfile"] + +set want "0*4 T text_symbol3.*0*8 T text_symbol2.*0*c T text_symbol1" + +if [regexp $want $got] then { + pass "nm --size-sort" +} else { + fail "nm --size-sort" +} + +# There are certainly other tests that could be run. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/note-1.d b/binutils-2.25/binutils/testsuite/binutils-all/note-1.d new file mode 100644 index 00000000..17a7d59a --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/note-1.d @@ -0,0 +1,13 @@ +#PROG: objcopy +#readelf: -S --wide +#objcopy: --add-section .note=$srcdir/note-1.d +#name: add notes section +#source: copytest.s +#not-target: h8300-*-* + +There are .* + +Section Headers: +#... + \[[ 0-9]*\] .note NOTE 0*0000000 0*...... 0*000... .* +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/objcopy.exp b/binutils-2.25/binutils/testsuite/binutils-all/objcopy.exp new file mode 100644 index 00000000..4dfb73c7 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/objcopy.exp @@ -0,0 +1,1006 @@ +# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, +# 2004, 2006, 2007, 2009, 2010, 2011 +# 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 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. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-dejagnu@prep.ai.mit.edu + +# Written by Ian Lance Taylor <ian@cygnus.com> + +if ![is_remote host] { + if {[which $OBJCOPY] == 0} then { + perror "$OBJCOPY does not exist" + return + } +} + +send_user "Version [binutil_version $OBJCOPY]" + +if ![is_remote host] { + set tempfile tmpdir/bintest.o + set copyfile tmpdir/copy +} else { + set tempfile [remote_download host tmpdir/bintest.o] + set copyfile copy +} + +# Test that objcopy does not modify a file when copying it. + +proc objcopy_test {testname srcfile} { + global OBJCOPY + global OBJCOPYFLAGS + global srcdir + global subdir + global tempfile + global copyfile + + if {![binutils_assemble $srcdir/$subdir/${srcfile} tmpdir/bintest.o]} then { + perror "unresolved $testname" + unresolved "objcopy ($testname)" + return + } + + set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS $tempfile ${copyfile}.o"] + + if ![string match "" $got] then { + fail "objcopy ($testname)" + } else { + send_log "cmp $tempfile ${copyfile}.o\n" + verbose "cmp $tempfile ${copyfile}.o" + if [is_remote host] { + set src1 tmpdir/bintest.o + set src2 tmpdir/copy.o + remote_upload host $tempfile $src1 + remote_upload host ${copyfile}.o $src2 + } else { + set src1 ${tempfile} + set src2 ${copyfile}.o + } + set status [remote_exec build cmp "${src1} ${src2}"] + set exec_output [lindex $status 1] + set exec_output [prune_warnings $exec_output] + + # On some systems the result of objcopy will not be identical. + # Usually this is just because gas isn't using bfd to write the + # files in the first place, and may order things a little + # differently. Those systems should use setup_xfail here. + + setup_xfail "h8300-*-coff" + setup_xfail "h8500-*-rtems*" "h8500-*-coff" + setup_xfail "hppa*-*-*" + setup_xfail "i960-*" + setup_xfail "m68*-*-*coff" "m68*-*-hpux*" "m68*-*-lynxos*" + setup_xfail "m68*-*-sysv*" "m68*-apple-aux*" + setup_xfail "m8*-*" + setup_xfail "or32-*-rtems*" "or32-*-coff" + setup_xfail "sh-*-coff*" + setup_xfail "tic80-*-*" "w65-*" + + clear_xfail "hppa*64*-*-hpux*" "hppa*-*-linux*" "hppa*-*-lites*" + clear_xfail "hppa*-*-*n*bsd*" "hppa*-*-rtems*" "*-*-*elf*" + clear_xfail "m68*-*-sysv4*" + + if [string match "" $exec_output] then { + pass "objcopy ($testname)" + } else { + send_log "$exec_output\n" + verbose "$exec_output" 1 + + # On OSF/1, this succeeds with gas and fails with /bin/as. + setup_xfail "alpha*-*-osf*" + + fail "objcopy ($testname)" + } + } +} + +objcopy_test "simple copy" bintest.s + +# Test reversing bytes in a section. + +set reversed ${tempfile}-reversed +set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -j .data --reverse-bytes=4 $tempfile $reversed"] + +if ![string match "" $got] then { + fail "objcopy --reverse-bytes" +} else { + if [is_remote host] { + remote_upload host ${reversed} tmpdir/copy-reversed.o + set reversed tmpdir/copy-reversed.o + } + + set origdata [binutils_run $OBJDUMP "$OBJDUMPFLAGS -s -j .data $tempfile"] + set revdata [binutils_run $OBJDUMP "$OBJDUMPFLAGS -s -j .data $reversed"] + + set want "^ \[0-9\]+ (\[0-9\]+)" + set found_orig [regexp -lineanchor $want $origdata -> origdata] + set found_rev [regexp -lineanchor $want $revdata -> revdata] + + if {$found_orig == 0 || $found_rev == 0} then { + # som doesn't have a .data section + setup_xfail "hppa*-*-hpux*" + clear_xfail "hppa*64*-*-hpux*" + + fail "objcopy --reverse-bytes" + } else { + scan $origdata "%2x%2x%2x%2x" b1 b2 b3 b4 + scan $revdata "%2x%2x%2x%2x" c4 c3 c2 c1 + + if {$b1 == $c1 && $b2 == $c2 && $b3 == $c3 && $b4 == $c4} then { + pass "objcopy --reverse-bytes" + } else { + fail "objcopy --reverse-bytes" + } + } +} + +# Test interleaved copy of multiple byte width + +set sequence_file sequence_file +set file [open ${sequence_file} w] +puts ${file} "12345678" +close ${file} + +if [is_remote host] { + remote_upload host ${sequence_file} tmpdir/sequence_file + set sequence_file tmpdir/sequence_file +} + +set got [binutils_run $OBJCOPY "-I binary -i 4 -b 0 --interleave-width 2 ${sequence_file} ${copyfile}"] + +if ![string match "" $got] then { + fail "objcopy -i --interleave-width" +} else { + if [is_remote host] { + remote_upload host ${copyfile} tmpdir/interleave_output + set interleave_output tmpdir/interleave_output + } else { + set interleave_output ${copyfile} + } + + set file [open ${interleave_output} r] + gets $file line + send_log "$line\n" + verbose $line + + if ![string match "1256" $line] then { + fail "objcopy -i --interleave-width" + } + pass "objcopy -i --interleave-width" + + close $file +} + +# Test generating S records. + +# We make the srec filename 8.3 compatible. Note that the header string +# matched against depends on the name of the file. Ugh. + +if [is_remote host] { + set srecfile copy.sre + set header_string S00B0000636F70792E737265C1 +} else { + set srecfile ${copyfile}.srec + set header_string S0130000746D706469722F636F70792E7372656397 +} + +set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec $tempfile ${srecfile}"] + +if ![string match "" $got] then { + fail "objcopy -O srec" +} else { + if [is_remote host] { + remote_upload host ${srecfile} tmpdir/copy.srec + set srecfile tmpdir/copy.srec + } + set file [open ${srecfile} r] + + # The first S record is fixed by the file name we are using. + gets $file line + send_log "$line\n" + verbose $line + if ![regexp "$header_string.*" $line] { + send_log "bad header\n" + fail "objcopy -O srec" + } else { + while {[gets $file line] != -1 \ + && [regexp "^S\[123\]\[0-9a-fA-F\]+\[\r\n\]*$" $line]} { + send_log "$line\n" + verbose $line + set line "**EOF**" + } + send_log "$line\n" + verbose $line + if ![regexp "^S\[789\]\[0-9a-fA-F\]+\[\r\n\]*$" $line] then { + send_log "bad trailer\n" + fail "objcopy -O srec" + } else { + if {[gets $file line] != -1} then { + send_log "garbage at end\n" + send_log "$line\n" + verbose $line + fail "objcopy -O srec" + } else { + set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -f ${srecfile}"] + if ![regexp "file format srec" $got] then { + send_log "objdump failed\n" + fail "objcopy -O srec" + } else { + pass "objcopy -O srec" + } + } + } + } + + close $file +} + +# Test setting and adjusting the start address. We only test this +# while generating S records, because we may not be able to set the +# start address for other object file formats, and the S record case +# is the only useful one anyhow. + +set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -f $tempfile"] +if ![regexp "start address (\[0-9a-fA-FxX\]+)" $got all origstart] then { + perror "objdump can not recognize bintest.o" + set origstart "" +} else { + set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec --set-start 0x7654 $tempfile ${copyfile}.srec"] + if ![string match "" $got] then { + fail "objcopy --set-start" + } else { + set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -f ${copyfile}.srec"] + if ![regexp "file format srec.*start address (\[0-9a-fA-FxX\]+)" $got all srecstart] then { + fail "objcopy --set-start" + } else { + if {$srecstart != 0x7654} then { + send_log "$srecstart != 0x7654\n" + fail "objcopy --set-start" + } else { + pass "objcopy --set-start" + } + } + } + + set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec --adjust-start 0x123 $tempfile ${copyfile}.srec"] + if ![string match "" $got] then { + fail "objcopy --adjust-start" + } else { + set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -f ${copyfile}.srec"] + if ![regexp "file format srec.*start address (\[0-9a-fA-FxX\]+)" $got all srecstart] then { + fail "objcopy --adjust-start" + } else { + if {$srecstart != $origstart + 0x123} then { + send_log "$srecstart != $origstart + 0x123\n" + fail "objcopy --adjust-start" + } else { + pass "objcopy --adjust-start" + } + } + } +} + +# Test adjusting the overall VMA, and adjusting the VMA of a +# particular section. We again only test this when generating S +# records. + +set low "" +set lowname "" + +set headers [binutils_run $OBJDUMP "$OBJDUMPFLAGS -h $tempfile"] + +set headers_regexp "\[ 0-9\]+(\[^ \]+)\[ \]*(\[0-9a-fA-F\]+)\[ \]+\[0-9a-fA-F\]+\[ \]+(\[0-9a-fA-F\]+)\[ \]+\[0-9a-fA-F\]+\[ \]+2\[*\]\[*\]\[0-9\]+(.*)" + +set got $headers +while {[regexp $headers_regexp $got all name size vma rest]} { + set vma 0x$vma + set size 0x$size + if {$size != 0} { + if {$low == "" || $vma < $low} { + set low $vma + set lowname $name + } + } + set got $rest +} + +if {$low == "" || $origstart == ""} then { + perror "objdump can not recognize bintest.o" +} else { + set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec --adjust-vma 0x123 $tempfile ${copyfile}.srec"] + if ![string match "" $got] then { + fail "objcopy --adjust-vma" + } else { + set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -fh ${copyfile}.srec"] + set want "file format srec.*start address\[ \]*(\[0-9a-fA-FxX\]+).*sec1\[ \]+\[0-9a-fA-F\]+\[ \]+(\[0-9a-fA-F\]+)" + if ![regexp $want $got all start vma] then { + fail "objcopy --adjust-vma" + } else { + set vma 0x$vma + if {$vma != $low + 0x123} then { + send_log "$vma != $low + 0x123\n" + fail "objcopy --adjust-vma" + } else { + if {$start != $origstart + 0x123} then { + send_log "$start != $origstart + 0x123\n" + fail "objcopy --adjust-vma" + } else { + pass "objcopy --adjust-vma" + } + } + } + } + + set arg "" + set got $headers + while {[regexp $headers_regexp $got all name size vma rest]} { + set vma 0x$vma + if {$vma == $low} then { + set arg "$arg --adjust-section-vma $name+4" + } + set got $rest + } + + set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec $arg $tempfile ${copyfile}.srec"] + if ![string match "" $got] then { + fail "objcopy --adjust-section-vma +" + } else { + set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -h ${copyfile}.srec"] + set want "file format srec.*sec1\[ \]+\[0-9a-fA-F\]+\[ \]+(\[0-9a-fA-F\]+)" + if ![regexp $want $got all vma] then { + fail "objcopy --adjust-section-vma +" + } else { + set vma 0x$vma + if {$vma != $low + 4} then { + send_log "$vma != $low + 4\n" + fail "objcopy --adjust-section-vma +" + } else { + pass "objcopy --adjust-section-vma +" + } + } + } + + regsub -all "\\+4" $arg "=[expr $low + 4]" argeq + set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS -O srec $argeq $tempfile ${copyfile}.srec"] + if ![string match "" $got] then { + fail "objcopy --adjust-section-vma =" + } else { + set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -h ${copyfile}.srec"] + set want "file format srec.*sec1\[ \]+\[0-9a-fA-F\]+\[ \]+(\[0-9a-fA-F\]+)" + if ![regexp $want $got all vma] then { + fail "objcopy --adjust-section-vma =" + } else { + set vma 0x$vma + if {$vma != $low + 4} then { + send_log "$vma != $low + 4\n" + fail "objcopy --adjust-section-vma =" + } else { + pass "objcopy --adjust-section-vma =" + } + } + } +} + +# Test stripping an object. + +proc strip_test { } { + global AR + global CC + global STRIP + global STRIPFLAGS + global NM + global NMFLAGS + global srcdir + global subdir + global READELF + + set test "strip" + + if { [target_compile $srcdir/$subdir/testprog.c tmpdir/testprog.o object debug] != "" } { + untested $test + return + } + + set osabi_fail "false" + if [is_elf_format] { + verbose -log "$READELF -a tmpdir/testprog.o > tmpdir/osabi.in" + set exec_output [remote_exec host "$READELF -h tmpdir/testprog.o" "" "/dev/null" "tmpdir/osabi.in"] + if { [lindex $exec_output 0] != 0 } then { + unresolved "$test preserving OS/ABI" + set osabi_fail "true" + } else { + verbose -log "grep OS/ABI tmpdir/osabi.in" + catch "exec grep OS/ABI tmpdir/osabi.in" osabi_in + } + } + + if [is_remote host] { + set archive libstrip.a + set objfile [remote_download host tmpdir/testprog.o] + remote_file host delete $archive + } else { + set archive tmpdir/libstrip.a + set objfile tmpdir/testprog.o + } + + remote_file build delete tmpdir/libstrip.a + + set exec_output [binutils_run $AR "rc $archive ${objfile}"] + if ![string match "" $exec_output] { + fail $test + unresolved "$test preserving OS/ABI" + return + } + + set exec_output [binutils_run $STRIP "-g $archive"] + if ![string match "" $exec_output] { + fail $test + unresolved "$test preserving OS/ABI" + return + } + + set exec_output [binutils_run $STRIP "$STRIPFLAGS $archive"] + if ![string match "" $exec_output] { + fail $test + unresolved "$test preserving OS/ABI" + return + } + + if { $osabi_fail != "true" && [is_elf_format] } { + verbose -log "$READELF -a tmpdir/testprog.o > tmpdir/osabi.out" + set exec_output [remote_exec host "$READELF -h tmpdir/testprog.o" "" "/dev/null" "tmpdir/osabi.out"] + if { [lindex $exec_output 0] != 0 } then { + unresolved "$test preserving OS/ABI" + } else { + verbose -log "grep OS/ABI tmpdir/osabi.out" + catch "exec grep OS/ABI tmpdir/osabi.out" osabi_out + if { "$osabi_in" == "$osabi_out" } { + pass "$test preserving OS/ABI" + } else { + fail "$test preserving OS/ABI" + } + } + } + + if { [target_compile $srcdir/$subdir/testprog.c tmpdir/testprog.o object debug] != "" } { + untested $test + return + } + + if [is_remote host] { + set objfile [remote_download host tmpdir/testprog.o] + } else { + set objfile tmpdir/testprog.o + } + + set exec_output [binutils_run $STRIP "$STRIPFLAGS $objfile"] + if ![string match "" $exec_output] { + fail $test + return + } + + set exec_output [binutils_run $NM "-a $NMFLAGS $objfile"] + if ![string match "*: no symbols*" $exec_output] { + fail $test + return + } + + pass $test +} + +strip_test + +# Test stripping an object file with saving a symbol + +proc strip_test_with_saving_a_symbol { } { + global CC + global STRIP + global STRIPFLAGS + global NM + global NMFLAGS + global srcdir + global subdir + + set test "strip with saving a symbol" + + if { [target_compile $srcdir/$subdir/testprog.c tmpdir/testprog.o object debug] != "" } { + untested $test + return + } + + if [is_remote host] { + set objfile [remote_download host tmpdir/testprog.o] + } else { + set objfile tmpdir/testprog.o + } + + set exec_output [binutils_run $STRIP "$STRIPFLAGS -K main -K _main $objfile"] + if ![string match "" $exec_output] { + fail $test + return + } + + set exec_output [binutils_run $NM "$NMFLAGS $objfile"] + if {![regexp {^([0-9a-fA-F]+)?[ ]+[TD] main} $exec_output] \ + && ![regexp {^([0-9a-fA-F]+)?[ ]+T _main} $exec_output]} { + fail $test + return + } + + pass $test +} + +strip_test_with_saving_a_symbol + +# Build a final executable. + +if { [istarget *-*-cygwin] || [istarget *-*-mingw*] } { + set test_prog "testprog.exe" +} else { + set test_prog "testprog" +} + +proc copy_setup { } { + global srcdir + global subdir + global gcc_gas_flag + global test_prog + global host_triplet + + set res [build_wrapper testglue.o] + set flags { debug } + + if { [istarget *-*-uclinux*] && ![istarget tic6x-*-*] } { + return 1 + } + + if { $res != "" } { + lappend flags "additional_flags=[lindex $res 1]" + set add_libs "testglue.o" + } else { + set add_libs "" + } + + if { [istarget *-*-linux*] + || [istarget *-*-gnu*] } { + foreach i $gcc_gas_flag { + set flags "additional_flags=$i $flags" + } + } + if { [target_compile "$srcdir/$subdir/testprog.c $add_libs" tmpdir/$test_prog executable $flags] != "" } { + return 2 + } + + set result [remote_load target tmpdir/$test_prog] + set status [lindex $result 0] + + if { $status != "pass" } { + send_log "cannot run executable, status = ${status} on ${host_triplet}\n" + if { [istarget $host_triplet] } { + return 3 + } + set status "pass" + } + + return 0 +} + +# Test copying an executable. + +proc copy_executable { prog flags test1 test2 } { + global test_prog + global host_triplet + + if [is_remote host] { + set testfile [remote_download host tmpdir/$test_prog] + set testcopy copyprog + } else { + set testfile tmpdir/$test_prog + set testcopy tmpdir/copyprog + } + remote_file host delete $testcopy + + set exec_output [binutils_run $prog "$flags $testfile $testcopy"] + + if ![string match "" $exec_output] { + fail $test1 + if [string match "" $test2] { + return + } + fail $test2 + return + } + + if [is_remote host] { + remote_upload host $testcopy tmpdir/copyprog + } + + set status [remote_exec build "cmp" "tmpdir/$test_prog tmpdir/copyprog"] + set exec_output [lindex $status 1] + + if [string match "" $exec_output] then { + pass $test1 + } else { + send_log "$exec_output\n" + verbose "$exec_output" + + # This will fail for many reasons. For example, it will most + # likely fail if a non-GNU linker is used. Therefore, we do + # not insist that it pass. If you are using an assembler and + # linker based on the same BFD as objcopy, it is worth + # investigating to see why this failure occurs. If we are + # cross compiling, we assume that a GNU linker is being used, + # and expect it to succeed. + if {[isnative]} then { + setup_xfail "*-*-*" + } + + # This also fails for mips*-*-elf targets. See elf32-mips.c + # mips_elf_sym_is_global. + setup_xfail "mips*-*-elf" + + setup_xfail "arm*-*-coff" + setup_xfail "arm*-*-pe" + setup_xfail "*-*-mingw*" + setup_xfail "*-*-cygwin*" + + fail $test1 + } + + if [string match "" $test2] { + return + } + + set output [remote_load target tmpdir/copyprog] + set status [lindex $output 0] + if { ![istarget $host_triplet] } { + set status "pass" + } + if { $status != "pass" } { + fail $test2 + } else { + pass $test2 + } +} + +# Test stripping an executable + +proc strip_executable { prog flags test } { + global NM + global NMFLAGS + global READELF + global host_triplet + + remote_file build delete tmpdir/striprog + remote_download build tmpdir/copyprog tmpdir/striprog + if [is_remote host] { + set copyfile [remote_download host tmpdir/striprog] + } else { + set copyfile tmpdir/striprog + } + + set osabi_fail "false" + if [is_elf_format] { + verbose -log "$READELF -a ${copyfile} > tmpdir/osabi.in" + set exec_output [remote_exec host "$READELF -h ${copyfile}" "" "/dev/null" "tmpdir/osabi.in"] + if { [lindex $exec_output 0] != 0 } then { + unresolved "$test preserving OS/ABI" + set osabi_fail "true" + } else { + verbose -log "grep OS/ABI tmpdir/osabi.in" + catch "exec grep OS/ABI tmpdir/osabi.in" osabi_in + } + } + + set exec_output [binutils_run $prog "$flags ${copyfile}"] + if ![string match "" $exec_output] { + fail $test + return + } + + if [is_remote host] { + remote_upload host ${copyfile} tmpdir/striprog + } + + set result [remote_load target tmpdir/striprog] + set status [lindex $result 0] + if { ![istarget $host_triplet] } { + set status "pass" + } + if { $status != "pass" } { + fail $test + return + } + + if { $osabi_fail != "true" && [is_elf_format] } { + verbose -log "$READELF -a ${copyfile} > tmpdir/osabi.out" + set exec_output [remote_exec host "$READELF -h ${copyfile}" "" "/dev/null" "tmpdir/osabi.out"] + if { [lindex $exec_output 0] != 0 } then { + unresolved "$test preserving OS/ABI" + } else { + verbose -log "grep OS/ABI tmpdir/osabi.out" + catch "exec grep OS/ABI tmpdir/osabi.out" osabi_out + if { "$osabi_in" == "$osabi_out" } { + pass "$test preserving OS/ABI" + } else { + fail "$test preserving OS/ABI" + } + } + } + + set exec_output [binutils_run $NM "$NMFLAGS ${copyfile}"] + if ![string match "*: no symbols*" $exec_output] { + fail $test + return + } + pass $test +} + +# Test stripping an executable with saving a symbol + +proc strip_executable_with_saving_a_symbol { prog flags test } { + global NM + global NMFLAGS + global host_triplet + + remote_file build delete tmpdir/striprog + remote_download build tmpdir/copyprog tmpdir/striprog + if [is_remote host] { + set copyfile [remote_download host tmpdir/striprog] + } else { + set copyfile tmpdir/striprog + } + + set exec_output [binutils_run $prog "$flags ${copyfile}"] + if ![string match "" $exec_output] { + fail $test + return + } + + if [is_remote host] { + remote_upload host ${copyfile} tmpdir/striprog + } + + set result [remote_load target tmpdir/striprog] + set status [lindex $result 0] + if { ![istarget $host_triplet] } { + set status "pass" + } + if { $status != "pass" } { + fail $test + return + } + + set exec_output [binutils_run $NM "$NMFLAGS ${copyfile}"] + if { [istarget mmix-knuth-mmixware] } { + # Whenever there's a symbol in the mmo format, there's the symbol + # Main, so remove it manually from the expected output for sake of + # this test. + + # Using "" not {} to get the \n and \r translated. + regsub "^\[0-9a-fA-F\]+\[ \]+T Main\[\n\r\]+" $exec_output "" exec_output + } + + if {![regexp {^([0-9a-fA-F]+)?[ ]+[TD] main} $exec_output] \ + && ![regexp {^([0-9a-fA-F]+)?[ ]+[TD] _main} $exec_output]} { + fail $test + return + } + pass $test +} + +# Test keeping only debug symbols of an executable + +proc keep_debug_symbols_and_test_copy { prog1 flags1 test1 prog2 flags2 test2 } { + global NM + global NMFLAGS + + remote_file build delete tmpdir/striprog + remote_download build tmpdir/copyprog tmpdir/striprog + if [is_remote host] { + set copyfile [remote_download host tmpdir/striprog] + } else { + set copyfile tmpdir/striprog + } + + set exec_output [binutils_run $prog1 "$flags1 ${copyfile}"] + if ![string match "" $exec_output] { + fail $test1 + return + } + pass $test1 + + set exec_output [binutils_run $prog2 "$flags2 ${copyfile}"] + if ![string match "" $exec_output] { + fail $test2 + return + } + pass $test2 +} + +set test1 "simple objcopy of executable" +set test2 "run objcopy of executable" +set test3 "run stripped executable" +set test4 "run stripped executable with saving a symbol" +set test5 "keep only debug data" +set test6 "simple objcopy of debug data" + +switch [copy_setup] { + "1" { + # do nothing + } + "2" { + untested $test1 + untested $test2 + untested $test3 + untested $test4 + untested $test5 + untested $test6 + } + "3" { + copy_executable "$OBJCOPY" "$OBJCOPYFLAGS" "$test1" "" + unsupported $test2 + unsupported $test3 + unsupported $test4 + unsupported $test5 + unsupported $test6 + } + "0" { + copy_executable "$OBJCOPY" "$OBJCOPYFLAGS" "$test1" "$test2" + strip_executable "$STRIP" "$STRIPFLAGS" "$test3" + strip_executable_with_saving_a_symbol "$STRIP" "-K main -K _main $STRIPFLAGS" "$test4" + keep_debug_symbols_and_test_copy "$STRIP" "--only-keep-debug $STRIPFLAGS" "$test5" \ + "$OBJCOPY" "$OBJCOPYFLAGS" "$test6" + } +} + +proc objcopy_test_readelf {testname srcfile} { + global OBJCOPY + global OBJCOPYFLAGS + global READELF + global srcdir + global subdir + + if {![binutils_assemble $srcdir/$subdir/${srcfile} tmpdir/bintest.o]} then { + unresolved "objcopy ($testname)" + return + } + + verbose -log "$OBJCOPY $OBJCOPYFLAGS tmpdir/bintest.o tmpdir/copy.o" + set exec_output [remote_exec host "$OBJCOPY $OBJCOPYFLAGS tmpdir/bintest.o tmpdir/copy.o"] + if { [lindex $exec_output 0] != 0 + || ![string match "" [lindex $exec_output 1]] } then { + fail "objcopy ($testname)" + return + } + + verbose -log "$READELF -a tmpdir/bintest.o > tmpdir/bintest.o.out" + set exec_output [remote_exec host "$READELF -a tmpdir/bintest.o" "" "/dev/null" "tmpdir/bintest.o.out"] + if { [lindex $exec_output 0] != 0 } then { + unresolved "objcopy ($testname)" + return + } + set exec_output [prune_warnings [lindex $exec_output 1]] + if ![string match "" $exec_output] then { + unresolved "objcopy ($testname)" + return + } + + verbose -log "$READELF -a tmpdir/copy.o > tmpdir/copy.o.out" + set exec_output [remote_exec host "$READELF -a tmpdir/copy.o" "" "/dev/null" "tmpdir/copy.o.out"] + if { [lindex $exec_output 0] != 0 } then { + unresolved "objcopy ($testname)" + return + } + set exec_output [prune_warnings [lindex $exec_output 1]] + if ![string match "" $exec_output] then { + unresolved "objcopy ($testname)" + return + } + + verbose -log "diff tmpdir/bintest.o.out tmpdir/copy.o.out" + catch "exec diff tmpdir/bintest.o.out tmpdir/copy.o.out" exec_output + set exec_output [prune_warnings $exec_output] + + if [string match "" $exec_output] then { + pass "objcopy ($testname)" + } else { + fail "objcopy ($testname)" + } +} + +# ia64 specific tests +if { ([istarget "ia64-*-elf*"] + || [istarget "ia64-*-linux*"]) } { + objcopy_test "ia64 link order" link-order.s +} + +# ELF specific tests +if [is_elf_format] { + objcopy_test "ELF unknown section type" unknown.s + objcopy_test_readelf "ELF group" group.s + objcopy_test_readelf "ELF group" group-2.s + objcopy_test_readelf "ELF group" group-3.s + objcopy_test_readelf "ELF group" group-4.s + run_dump_test "group-5" + run_dump_test "group-6" + run_dump_test "copy-1" + run_dump_test "note-1" +} + +run_dump_test "copy-2" +run_dump_test "copy-3" +run_dump_test "copy-4" + +if [is_elf_format] { + run_dump_test "strip-1" + run_dump_test "strip-2" + run_dump_test "strip-3" + run_dump_test "strip-4" + run_dump_test "strip-5" + run_dump_test "strip-6" + run_dump_test "strip-7" + run_dump_test "strip-8" + run_dump_test "strip-9" + if { ![istarget "*-*-hpux*"] + && ![istarget "msp*-*-*"] } { + run_dump_test "strip-10" + } + + if { [istarget "i*86-*"] || [istarget "x86_64-*-*"] } { + # Check to make sure we don't strip a symbol named in relocations. + set test "objcopy keeps symbols needed by relocs" + + set srcfile $srcdir/$subdir/needed-by-reloc.s + + if {![binutils_assemble $srcfile tmpdir/bintest.o]} then { + unresolved $test + } else { + set got [binutils_run $OBJCOPY "$OBJCOPYFLAGS --strip-symbol=foo tmpdir/bintest.o ${copyfile}.o"] + + if [regexp "not stripping symbol `foo' because it is named in a relocation" $got] { + pass $test + } else { + fail $test + } + } + } + + # The symbol table for some MIPS targets is sorted differently than + # the ELF canonical order, so the regexps in localize-hidden-1.d fail + # to match. These tests must be matched to targets for which + # targ_defvec=bfd_elf32_bigmips_vec, + # targ_defvec=bfd_elf32_littlemips_vec, + # targ_defvec=bfd_elf32_nbigmips_vec or + # targ_defvec=bfd_elf32_nlittlemips_vec in config.bfd. When syncing, + # don't forget that earlier case-matches trump later ones. + if { ![istarget "mips*-sde-elf*"] && ![istarget "mips64*-*-openbsd*"] } { + setup_xfail "mips*-*-irix5*" "mips*-*-irix6*" "mips*-*-elf*" \ + "mips*-*-rtems*" "mips*-*-windiss" "mips*-*-none" \ + "mips*-*-openbsd*" "mips*-*-chorus*" + } + run_dump_test "localize-hidden-1" + run_dump_test "testranges" + run_dump_test "testranges-ia64" + + run_dump_test "add-section" + run_dump_test "add-empty-section" + + run_dump_test "exclude-1a" + run_dump_test "exclude-1b" +} +run_dump_test "localize-hidden-2" diff --git a/binutils-2.25/binutils/testsuite/binutils-all/objdump.W b/binutils-2.25/binutils/testsuite/binutils-all/objdump.W new file mode 100644 index 00000000..f544d829 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/objdump.W @@ -0,0 +1,103 @@ + +.*dw2-compressed.o: file format .* + +Contents of the .debug_info section: + + Compilation Unit @ offset 0x0: + Length: 0x4e \(32-bit\) + Version: 2 + Abbrev Offset: 0x0 + Pointer Size: 4 + <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\) + <c> DW_AT_stmt_list : 0x0 + <10> DW_AT_high_pc : 0x. + <14> DW_AT_low_pc : 0x. + <18> DW_AT_name : file1.txt + <22> DW_AT_producer : GNU C 3.3.3 + <2e> DW_AT_language : 1 \(ANSI C\) + <1><2f>: Abbrev Number: 2 \(DW_TAG_subprogram\) + <30> DW_AT_external : 1 + <31> DW_AT_decl_file : 1 + <32> DW_AT_decl_line : 2 + <33> DW_AT_name : func_cu1 + <3c> DW_AT_type : <0x4a> + <40> DW_AT_low_pc : 0x. + <44> DW_AT_high_pc : 0x. + <48> DW_AT_frame_base : 1 byte block: 55 \(DW_OP_reg5 \([^()]*\)\) + <1><4a>: Abbrev Number: 3 \(DW_TAG_base_type\) + <4b> DW_AT_name : int + <4f> DW_AT_byte_size : 4 + <50> DW_AT_encoding : 5 \(signed\) + <1><51>: Abbrev Number: 0 + +Raw dump of debug contents of section .debug_line: + + Offset: 0x0 + Length: 62 + DWARF Version: 2 + Prologue Length: 35 + Minimum Instruction Length: 1 + Initial value of 'is_stmt': 1 + Line Base: 1 + Line Range: 1 + Opcode Base: 16 + + Opcodes: + Opcode 1 has 0 args + Opcode 2 has 1 args + Opcode 3 has 1 args + Opcode 4 has 1 args + Opcode 5 has 1 args + Opcode 6 has 0 args + Opcode 7 has 0 args + Opcode 8 has 0 args + Opcode 9 has 1 args + Opcode 10 has 0 args + Opcode 11 has 0 args + Opcode 12 has 1 args + Opcode 13 has 0 args + Opcode 14 has 0 args + Opcode 15 has 0 args + + The Directory Table is empty. + + The File Name Table \(offset 0x.*\): + Entry Dir Time Size Name + 1 0 0 0 file1.txt + + Line Number Statements: + \[0x.*\] Extended opcode 2: set Address to .* + \[0x.*\] Advance Line by 3 to 4 + \[0x.*\] Copy + \[0x.*\] Copy + \[0x.*\] Extended opcode 2: set Address to .* + \[0x.*\] Extended opcode 1: End of Sequence + + +Contents of the .debug_abbrev section: + + Number TAG \(0x0\) + 1 DW_TAG_compile_unit \[has children\] + DW_AT_stmt_list DW_FORM_data4 + DW_AT_high_pc DW_FORM_addr + DW_AT_low_pc DW_FORM_addr + DW_AT_name DW_FORM_string + DW_AT_producer DW_FORM_string + DW_AT_language DW_FORM_data1 + DW_AT value: 0 DW_FORM value: 0 + 2 DW_TAG_subprogram \[no children\] + DW_AT_external DW_FORM_flag + DW_AT_decl_file DW_FORM_data1 + DW_AT_decl_line DW_FORM_data1 + DW_AT_name DW_FORM_string + DW_AT_type DW_FORM_ref4 + DW_AT_low_pc DW_FORM_addr + DW_AT_high_pc DW_FORM_addr + DW_AT_frame_base DW_FORM_block1 + DW_AT value: 0 DW_FORM value: 0 + 3 DW_TAG_base_type \[no children\] + DW_AT_name DW_FORM_string + DW_AT_byte_size DW_FORM_data1 + DW_AT_encoding DW_FORM_data1 + DW_AT value: 0 DW_FORM value: 0 + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/objdump.WL b/binutils-2.25/binutils/testsuite/binutils-all/objdump.WL new file mode 100644 index 00000000..3846f4fc --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/objdump.WL @@ -0,0 +1,15 @@ + +.*dw2-decodedline.o: file format .* + +Decoded dump of debug contents of section \.debug_line: + +CU: \./dw2-decodedline\.c: +File name Line number Starting address + +directory/file1\.c: +file1\.c 1 .* + + +\./dw2-decodedline\.c:\[\+\+\] +dw2-decodedline\.c 2 .* + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/objdump.exp b/binutils-2.25/binutils/testsuite/binutils-all/objdump.exp new file mode 100644 index 00000000..b330a321 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/objdump.exp @@ -0,0 +1,249 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2007, 2008, 2009, 2011, 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 +# 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. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-dejagnu@prep.ai.mit.edu + +# This file was written by Rob Savoye <rob@cygnus.com> +# and rewritten by Ian Lance Taylor <ian@cygnus.com> + +if ![is_remote host] { + if {[which $OBJDUMP] == 0} then { + perror "$OBJDUMP does not exist" + return + } +} + +send_user "Version [binutil_version $OBJDUMP]" + +# Simple test of objdump -i + +set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -i"] + +set cpus_expected [list] +lappend cpus_expected aarch64 alpha arc arm cris +lappend cpus_expected d10v d30v fr30 fr500 fr550 h8 hppa i386 i860 i960 ip2022 +lappend cpus_expected m16c m32c m32r m68hc11 m68hc12 m68k m88k MCore MicroBlaze +lappend cpus_expected mips mn10200 mn10300 ms1 msp ns32k pj powerpc pyramid +lappend cpus_expected romp rs6000 s390 sh sparc +lappend cpus_expected tahoe tic54x tic80 tilegx tms320c30 tms320c4x tms320c54x +lappend cpus_expected v850 vax we32k x86-64 xscale xtensa z8k z8001 z8002 + +# Make sure the target CPU shows up in the list. +lappend cpus_expected ${target_cpu} + +# Create regexp +set cpus_regex "([join $cpus_expected | ])" + +verbose -log "CPU regex: $cpus_regex" + +set want "BFD header file version.*srec\[^\n\]*\n\[^\n\]*header \[^\n\]*endian\[^\n\]*, data \[^\n\]*endian.*$cpus_regex" + +if [regexp $want $got] then { + pass "objdump -i" +} else { + fail "objdump -i" +} + +# The remaining tests require a test file. + + +if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o]} then { + return +} +if [is_remote host] { + set testfile [remote_download host tmpdir/bintest.o] +} else { + set testfile tmpdir/bintest.o +} + +# Test objdump -f + +set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -f $testfile"] + +set want "$testfile:\[ \]*file format.*architecture:\[ \]*${cpus_regex}.*HAS_RELOC.*HAS_SYMS" + +if ![regexp $want $got] then { + fail "objdump -f" +} else { + pass "objdump -f" +} + +# Test objdump -h + +set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -h $testfile"] + +set want "$testfile:\[ \]*file format.*Sections.*\[0-9\]+\[ \]+\[^ \]*(text|TEXT|\\\$CODE\\\$)\[^ \]*\[ \]*(\[0-9a-fA-F\]+).*\[0-9\]+\[ \]+\[^ \]*(\\.data|DATA)\[^ \]*\[ \]*(\[0-9a-fA-F\]+)" + +if ![regexp $want $got all text_name text_size data_name data_size] then { + fail "objdump -h" +} else { + verbose "text name is $text_name size is $text_size" + verbose "data name is $data_name size is $data_size" + set ets 8 + set eds 4 + # The [ti]c4x target has the property sizeof(char)=sizeof(long)=1 + if [istarget *c4x*-*-*] then { + set ets 2 + set eds 1 + } + # c54x section sizes are in bytes, not octets; adjust accordingly + if [istarget *c54x*-*-*] then { + set ets 4 + set eds 2 + } + if {[expr "0x$text_size"] < $ets || [expr "0x$data_size"] < $eds} then { + send_log "sizes too small\n" + fail "objdump -h" + } else { + pass "objdump -h" + } +} + +# Test objdump -t + +set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -t $testfile"] + +if [info exists vars] then { unset vars } +while {[regexp "(\[a-z\]*_symbol)(.*)" $got all symbol rest]} { + set vars($symbol) 1 + set got $rest +} + +if {![info exists vars(text_symbol)] \ + || ![info exists vars(data_symbol)] \ + || ![info exists vars(common_symbol)] \ + || ![info exists vars(external_symbol)]} then { + fail "objdump -t" +} else { + pass "objdump -t" +} + +# Test objdump -r + +set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -r $testfile"] + +set want "$testfile:\[ \]*file format.*RELOCATION RECORDS FOR \\\[\[^\]\]*(text|TEXT|\\\$CODE\\\$)\[^\]\]*\\\].*external_symbol" + +if [regexp $want $got] then { + pass "objdump -r" +} else { + fail "objdump -r" +} + +# Test objdump -s + +set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -s $testfile"] + +set want "$testfile:\[ \]*file format.*Contents.*(text|TEXT|\\\$CODE\\\$)\[^0-9\]*\[ \]*\[0-9a-fA-F\]*\[ \]*(00000001|01000000|00000100).*Contents.*(data|DATA)\[^0-9\]*\[ \]*\[0-9a-fA-F\]*\[ \]*(00000002|02000000|00000200)" + +if [regexp $want $got] then { + pass "objdump -s" +} else { + fail "objdump -s" +} + +# Test objdump -s on a file that contains a compressed .debug section + +if { ![is_elf_format] || ![is_zlib_supported] } then { + unsupported "objdump compressed debug" +} elseif { ![binutils_assemble $srcdir/$subdir/dw2-compressed.S tmpdir/dw2-compressed.o] } then { + fail "objdump compressed debug" +} else { + if [is_remote host] { + set compressed_testfile [remote_download host tmpdir/dw2-compressed.o] + } else { + set compressed_testfile tmpdir/dw2-compressed.o + } + + set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -s -j .zdebug_abbrev $compressed_testfile" "" "/dev/null" "objdump.out"] + + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + fail "objdump -s -j .zdebug_abbrev (reason: unexpected output)" + send_log $got + send_log "\n" + } + + if { [regexp_diff objdump.out $srcdir/$subdir/objdump.s] } then { + fail "objdump -s -j .zdebug_abbrev" + } else { + pass "objdump -s -j .zdebug_abbrev" + } + + # Test objdump -W on a file that contains some compressed .debug sections + + set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -W $compressed_testfile" "" "/dev/null" "objdump.out"] + + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + fail "objdump -W (reason: unexpected output)" + send_log $got + send_log "\n" + } + + if { [regexp_diff objdump.out $srcdir/$subdir/objdump.W] } then { + fail "objdump -W" + } else { + pass "objdump -W" + } +} + +# Test objdump -WL on a file that contains line information for multiple files and search directories. +# Not supported on mcore, moxie and openrisc targets because they do not (yet) support the generation +# of DWARF2 line debug information. + +if { ![is_elf_format] + || [istarget "hppa64*-*-hpux*"] + || [istarget "i370-*-*"] + || [istarget "i960-*-*"] + || [istarget "ia64*-*-*"] + || [istarget "mcore-*-*"] + || [istarget "moxie-*-*"] + || [istarget "openrisc-*-*"] + || [istarget "or32-*-*"] +} then { + unsupported "objump decode line" +} else { + if { ![binutils_assemble $srcdir/$subdir/dw2-decodedline.S tmpdir/dw2-decodedline.o] } then { + fail "objdump decoded line" + } + + if [is_remote host] { + set decodedline_testfile [remote_download host tmpdir/dw2-decodedline.o] + } else { + set decodedline_testfile tmpdir/dw2-decodedline.o + } + + set got [remote_exec host "$OBJDUMP $OBJDUMPFLAGS -WL $decodedline_testfile" "" "/dev/null" "objdump.out"] + + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + fail "objdump -WL (reason: unexpected output)" + send_log $got + send_log "\n" + } + + if { [regexp_diff objdump.out $srcdir/$subdir/objdump.WL] } then { + fail "objdump -WL" + } else { + pass "objdump -WL" + } +} + +# Options which are not tested: -a -d -D -R -T -x -l --stabs +# I don't see any generic way to test any of these other than -a. +# Tests could be written for specific targets, and that should be done +# if specific problems are found. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/objdump.s b/binutils-2.25/binutils/testsuite/binutils-all/objdump.s new file mode 100644 index 00000000..aea35dfa --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/objdump.s @@ -0,0 +1,9 @@ + +.*dw2-compressed.o: file format .* + +Contents of section .zdebug_abbrev: + 0000 5a4c4942 00000000 00000033 785e6314 ZLIB.......3x\^c. + 0010 64146013 62146464 e650e510 e6666060 d.`.b.dd.P...f`` + 0020 d263b0e7 b1e2b6e6 66e6f014 16641462 .c......f....d.b + 0030 74e00200 25780281 789c6360 60566160 t...%x..x.c``Va` + 0040 e6e0e6b6 e3660002 00049c00 92 .....f....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.exp b/binutils-2.25/binutils/testsuite/binutils-all/readelf.exp new file mode 100644 index 00000000..db56a868 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/readelf.exp @@ -0,0 +1,361 @@ +# Copyright 1999-2013 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 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. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-dejagnu@prep.ai.mit.edu + +# Written by Nick Clifton <nickc@cygnus.com> +# Based on scripts written by Ian Lance Taylor <ian@cygnus.com> +# and Ken Raeburn <raeburn@cygnus.com>. + +# Exclude non-ELF targets. +if ![is_elf_format] { + verbose "$READELF is only intended for ELF targets" 2 + return +} + +# First some helpful procedures, then the tests themselves + +# Return the contents of the filename given +proc file_contents { filename } { + set file [open $filename r] + set contents [read $file] + close $file + return $contents +} + +# Find out the size by reading the output of the EI_CLASS field. +# Similar to the test for readelf -h, but we're just looking for the +# EI_CLASS line here. +proc readelf_find_size { binary_file } { + global READELF + global READELFFLAGS + global readelf_size + + set readelf_size "" + set testname "finding out ELF size with readelf -h" + set got [remote_exec host "$READELF $READELFFLAGS -h $binary_file" "" "/dev/null" "readelf.out"] + if [is_remote host] then { + remote_upload host "readelf.out" + } + + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]]} then { + send_log $got + fail $testname + return + } + + if { ! [regexp "\n\[ \]*Class:\[ \]*ELF(\[0-9\]+)\n" \ + [file_contents readelf.out] nil readelf_size] } { + verbose -log "EI_CLASS field not found in output" + verbose -log "output is \n[file_contents readelf.out]" + fail $testname + return + } else { + verbose -log "ELF size is $readelf_size" + } + + pass $testname +} + +# Run an individual readelf test. +# Basically readelf is run on the binary_file with the given options. +# Readelf's output is captured and then compared against the contents +# of the regexp_file-readelf_size if it exists, else regexp_file. + +proc readelf_test { options binary_file regexp_file xfails } { + + global READELF + global READELFFLAGS + global readelf_size + global srcdir + global subdir + + send_log "exec $READELF $READELFFLAGS $options $binary_file > readelf.out\n" + set got [remote_exec host "$READELF $READELFFLAGS $options $binary_file" "" "/dev/null" "readelf.out"] + + foreach xfail $xfails { + setup_xfail $xfail + } + + if { [lindex $got 0] != 0 || ![string match "" [lindex $got 1]] } then { + fail "readelf $options (reason: unexpected output)" + send_log $got + send_log "\n" + return + } + + set target_machine "" + if [istarget "mips*-*-*"] then { + if { [istarget "mips*-*-*linux*"] + || [istarget "mips*-sde-elf*"] + || [istarget "mips*-*freebsd*"] } then { + set target_machine tmips + } else { + set target_machine mips + } + } + + if { $target_machine != "" && [file exists $srcdir/$subdir/$regexp_file-$readelf_size-$target_machine] } then { + set regexp_file $regexp_file-$readelf_size-$target_machine + } elseif { $target_machine != "" && [file exists $srcdir/$subdir/$regexp_file-$target_machine] } then { + set regexp_file $regexp_file-$target_machine + } elseif { [file exists $srcdir/$subdir/$regexp_file-$readelf_size] } then { + set regexp_file $regexp_file-$readelf_size + } + + if { [regexp_diff readelf.out $srcdir/$subdir/$regexp_file] } then { + fail "readelf $options" + verbose "output is \n[file_contents readelf.out]" 2 + return + } + + pass "readelf $options" +} + +# Simple proc to skip certain expected warning messages. + +proc prune_readelf_wi_warnings { text } { + regsub -all "(^|\n)(.*Skipping unexpected symbol type.*)" $text "\\1" text + return $text +} + +# Testing the "readelf -wi" option is difficult because there +# is no guaranteed order to the output, and because some ports +# will use indirect string references, whilst others will use +# direct references. So instead of having an expected output +# file, like the other readelf tests, we grep for strings that +# really ought to be there. + +proc readelf_wi_test {} { + global READELF + global READELFFLAGS + global srcdir + global subdir + + # Compile the second test file. + if { [target_compile $srcdir/$subdir/testprog.c tmpdir/testprog.o object debug] != "" } { + verbose "Unable to compile test file." + untested "readelf -wi" + return + } + + # Download it. + set tempfile [remote_download host tmpdir/testprog.o] + + # Run "readelf -wi" on it. + set got [remote_exec host "$READELF $READELFFLAGS -wi $tempfile" "" "/dev/null" "readelf.out"] + + # Upload the results. + set output [remote_upload host readelf.out] + + file_on_host delete $tempfile + + # Strip any superflous warnings. + set got [prune_readelf_wi_warnings [lindex $got 1]] + + if ![string match "" $got] then { + fail "readelf $READELFFLAGS -wi (reason: unexpected output)" + send_log $got + send_log "\n" + return + } + + if ![file size $output] then { + # If the output file is empty, then this target does not + # generate dwarf2 output. This is not a failure. + verbose "No output from 'readelf -wi'" + untested "readelf -wi" + return + } + + # Search for strings that should be in the output. + set sought { + ".*DW_TAG_compile_unit.*" + ".*DW_TAG_subprogram.*" + ".*DW_TAG_base_type.*" + ".*DW_AT_producer.*(GNU C|indirect string).*" + ".*DW_AT_language.*ANSI C.*" + ".*DW_AT_name.*(testprog.c|indirect string).*" + ".*DW_AT_name.*fn.*" + ".*DW_AT_name.*(main|indirect string).*" + ".*\(DW_OP_addr: 0\).*" + } + + # The MSP430 in LARGE mode does not generate a DW_OP_addr. + setup_xfail msp430*-*-* + + foreach looked_for $sought { + set lines [grep $output $looked_for] + if ![llength $lines] then { + fail "readelf -wi: missing: $looked_for" + send_log readelf.out + return + } + } + + file_on_host delete $output + + # All done. + 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 + + if { ![is_zlib_supported] } { + unsupported "readelf -wa (compressed)" + return + } + + # 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. + +proc readelf_dump_test {} { + global READELF + global READELFFLAGS + global srcdir + global subdir + + # Assemble the dump test file. + if {![binutils_assemble $srcdir/$subdir/dumptest.s tmpdir/dumptest.o]} then { + unresolved "readelf -p: failed to assemble dump test file" + return + } + # Download it. + set tempfile [remote_download host tmpdir/dumptest.o] + + # Run "readelf -p.data" on it. + set got [remote_exec host "$READELF $READELFFLAGS -p.data $tempfile" "" "/dev/null" "readelf.out"] + set got [lindex $got 1] + + # Upload the results. + set output [remote_upload host readelf.out] + + # Check for something going wrong. + if ![string match "" $got] then { + fail "readelf -p: unexpected output" + send_log $got + send_log "\n" + return + } + + # Search for strings that should be in the output. + set sought { + ".*test_string.*" + } + + foreach looked_for $sought { + set lines [grep $output $looked_for] + if ![llength $lines] then { + fail "readelf -p: missing: $looked_for" + send_log readelf.out + return + } + } + + file_on_host delete $tempfile + file_on_host delete $output + + # All done. + pass "readelf -p" + + # XXX FIXME: Add test of readelf -x here +} + +if ![is_remote host] { + if {[which $READELF] == 0} then { + perror "$READELF does not exist" + return + } +} + +send_user "Version [binutil_version $READELF]" + +# Assemble the test file. +if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o]} then { + perror "could not assemble test file" + unresolved "readelf - failed to assemble" + return +} + +if ![is_remote host] { + set tempfile tmpdir/bintest.o +} else { + set tempfile [remote_download host tmpdir/bintest.o] +} + +# First, determine the size, so specific output matchers can be used. +readelf_find_size $tempfile + +# Run the tests. +readelf_test -h $tempfile readelf.h {} +readelf_test -S $tempfile readelf.s {} +readelf_test -s $tempfile readelf.ss {} +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 {} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.h b/binutils-2.25/binutils/testsuite/binutils-all/readelf.h new file mode 100644 index 00000000..01103fba --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/readelf.h @@ -0,0 +1,20 @@ +ELF Header: + Magic: 7f 45 4c 46 0[12] 0[12] 01 .. .. 00 00 00 00 00 00 00 + Class: ELF[36][24] + Data: 2's complement,.* endian + Version: 1 \(current\) + OS/ABI: .* + ABI Version: .* + Type: REL \(Relocatable file\) + Machine: .* + Version: 0x1 + Entry point address: 0x0 + Start of program headers: 0 \(bytes into file\) + Start of section headers: .* \(bytes into file\) + Flags: .* + Size of this header: .* \(bytes\) + Size of program headers: 0 \(bytes\) + Number of program headers: 0 + Size of section headers: .* \(bytes\) + Number of section headers: .* + Section header string table index: .* diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.n b/binutils-2.25/binutils/testsuite/binutils-all/readelf.n new file mode 100644 index 00000000..7a44731f --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/readelf.n @@ -0,0 +1,5 @@ + +Displaying notes found at file offset 0x0*0.. with length 0x0*018: + Owner[ ]*Data size[ ]*Description + Version 1.0[ ]*0x0*0[ ]*NT_VERSION \(version\) +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.r b/binutils-2.25/binutils/testsuite/binutils-all/readelf.r new file mode 100644 index 00000000..689049f1 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/readelf.r @@ -0,0 +1,4 @@ + +Relocation section '.rel.*text' at offset 0x.* contains 1 entries: + Offset Info Type Sym.Value Sym. Name.* +00000004 [0-9A-Fa-f]+ *R_.*00000000 external_symbol.* diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.r-64 b/binutils-2.25/binutils/testsuite/binutils-all/readelf.r-64 new file mode 100644 index 00000000..3e3b0a4a --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/readelf.r-64 @@ -0,0 +1,4 @@ + +Relocation section '.rel.*text' at offset 0x.* contains 1 entries: + Offset Info Type Sym. Value Sym. Name.* +0+04 [0-9A-Fa-f]+ *R_.*0+00 external_symbol.* diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.s b/binutils-2.25/binutils/testsuite/binutils-all/readelf.s new file mode 100644 index 00000000..8361a7eb --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/readelf.s @@ -0,0 +1,21 @@ +There are .* section headers, starting at offset .*: + +Section Headers: + +\[Nr\] Name +Type +Addr +Off +Size +ES Flg Lk Inf Al + +\[ 0\] +NULL +00000000 000000 000000 00 +0 +0 +0 +# On the normal MIPS systems, sections must be aligned to 16 byte +# boundaries. On IA64, text sections are aligned to 16 byte boundaries. + +\[ 1\] .text +PROGBITS +00000000 0000(34|40) 0000(08|10) 00 +AX +0 +0 +(.|..) + +\[ 2\] .rel.+text +REL. +0+ 0+.* 00000. 0. +. +1 +4 +# MIPS targets put .rela.text here. +#... + +\[ .\] .data +PROGBITS +00000000 0000(3c|48|50) 0000(04|10) 00 +WA +0 +0 +(.|..) + +\[ .\] .bss +NOBITS +00000000 0000(40|4c|60) 000000 00 +WA +0 +0 +(.|..) +# MIPS targets put .reginfo and .mdebug here. +# v850 targets put .call_table_data and .call_table_text here. +#... + +\[ .\] .shstrtab +STRTAB +00000000 0+.* 0+.* 00 +0 +0 +. + +\[ .\] .symtab +SYMTAB +00000000 0+.* 0+.* 10 +.. +. +4 + +\[..\] .strtab +STRTAB +00000000 0+.* 0+.* 00 +0 +0 +1 +Key to Flags: +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.s-64 b/binutils-2.25/binutils/testsuite/binutils-all/readelf.s-64 new file mode 100644 index 00000000..ec31f3f2 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/readelf.s-64 @@ -0,0 +1,23 @@ +There are .* section headers, starting at offset .*: + +Section Headers: + +\[Nr\] Name +Type +Address +Offset + +Size +EntSize +Flags +Link +Info +Align + +\[ 0\] +NULL +0000000000000000 +00000000 + +0000000000000000 +0000000000000000 +0 +0 +0 + +\[ 1\] .text +PROGBITS +0000000000000000 +00000040 + +00000000000000.. +0000000000000000 +AX +0 +0 +.* + +\[ 2\] .rel.+text +REL. +0+ +0+.* + +000000000000001. +000000000000001. +. +1 +8 + +\[ 3\] .data +PROGBITS +0000000000000000 +000000(48|50) + +000000000000000[48] +0000000000000000 +WA +0 +0 +.* + +\[ 4\] .bss +NOBITS +0000000000000000 +000000(4c|50|54|58) + +0000000000000000 +0000000000000000 +WA +0 +0 +.* + +\[ 5\] .shstrtab +STRTAB +0000000000000000 +000000(4c|50|54|58) + +00000000000000.. +0000000000000000 +0 +0 +.* + +\[ 6\] .symtab +SYMTAB +0000000000000000 +0+.* + +0+.* +0000000000000018 +7 +6 +8 + +\[ 7\] .strtab +STRTAB +0000000000000000 +0+.* + +0+.* +0000000000000000 +0 +0 +1 +Key to Flags: +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss b/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss new file mode 100644 index 00000000..9bb0f2ed --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss @@ -0,0 +1,18 @@ + +Symbol table '.symtab' contains .* entries: + +Num: +Value +Size +Type +Bind +Vis +Ndx +Name + +0: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +UND + +1: 00000000 +0 +SECTION +LOCAL +DEFAULT +1 + +2: 00000000 +0 +SECTION +LOCAL +DEFAULT +[34] + +3: 00000000 +0 +SECTION +LOCAL +DEFAULT +[45] + +4: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +1 static_text_symbol +# arm-elf targets add the $d mapping symbol here... +#... + +.: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +[34] static_data_symbol +# v850 targets include extra SECTION symbols here for the .call_table_data +# and .call_table_text sections. +#... + +.: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +1 text_symbol + +..: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +UND external_symbol + +..: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +[34] data_symbol + +..: 00000004 +4 +(COMMON|OBJECT) +GLOBAL +DEFAULT +(COM|ANSI_COM) common_symbol diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss-64 b/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss-64 new file mode 100644 index 00000000..c100c14e --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss-64 @@ -0,0 +1,13 @@ + +Symbol table '.symtab' contains .* entries: + +Num: +Value +Size +Type +Bind +Vis +Ndx +Name + +0: 0000000000000000 +0 +NOTYPE +LOCAL +DEFAULT +UND + +1: 0000000000000000 +0 +SECTION +LOCAL +DEFAULT +1 + +2: 0000000000000000 +0 +SECTION +LOCAL +DEFAULT +3 + +3: 0000000000000000 +0 +SECTION +LOCAL +DEFAULT +4 + +4: 0000000000000000 +0 +NOTYPE +LOCAL +DEFAULT +1 static_text_symbol + +5: 0000000000000000 +0 +NOTYPE +LOCAL +DEFAULT +3 static_data_symbol +.* +.: 0000000000000000 +0 +NOTYPE +GLOBAL +DEFAULT +1 text_symbol + +.: 0000000000000000 +0 +NOTYPE +GLOBAL +DEFAULT +UND external_symbol + +.: 0000000000000000 +0 +NOTYPE +GLOBAL +DEFAULT +3 data_symbol + +.: 0000000000000004 +4 +(COMMON|OBJECT) +GLOBAL +DEFAULT +COM common_symbol diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss-mips b/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss-mips new file mode 100644 index 00000000..fd975520 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss-mips @@ -0,0 +1,15 @@ + +Symbol table '.symtab' contains 12 entries: + +Num: +Value +Size +Type +Bind +Vis +Ndx +Name + +0: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +UND + +1: 00000000 +0 +SECTION +LOCAL +DEFAULT +. (|\.text) + +2: 00000000 +0 +SECTION +LOCAL +DEFAULT +. (|\.data) + +3: 00000000 +0 +SECTION +LOCAL +DEFAULT +. (|\.bss) + +4: 00000000 +0 +SECTION +LOCAL +DEFAULT +. (|\.reginfo) + +5: 00000000 +0 +SECTION +LOCAL +DEFAULT +. (|\.pdr) + +6: 00000000 +0 +OBJECT +GLOBAL +DEFAULT +. text_symbol + +7: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +. static_text_symbol + +8: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +UND external_symbol + +9: 00000000 +0 +OBJECT +GLOBAL +DEFAULT +. data_symbol + +10: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +. static_data_symbol + +11: 00000004 +4 +(COMMON|OBJECT) +GLOBAL +DEFAULT +(PRC|COM) common_symbol diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss-tmips b/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss-tmips new file mode 100644 index 00000000..1f872489 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/readelf.ss-tmips @@ -0,0 +1,15 @@ + +Symbol table '.symtab' contains 12 entries: + +Num: +Value +Size +Type +Bind +Vis +Ndx +Name + +0: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +UND + +1: 00000000 +0 +SECTION +LOCAL +DEFAULT +1 + +2: 00000000 +0 +SECTION +LOCAL +DEFAULT +3 + +3: 00000000 +0 +SECTION +LOCAL +DEFAULT +4 + +4: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +1 static_text_symbol + +5: 00000000 +0 +NOTYPE +LOCAL +DEFAULT +3 static_data_symbol + +6: 00000000 +0 +SECTION +LOCAL +DEFAULT +5 + +7: 00000000 +0 +SECTION +LOCAL +DEFAULT +6 + +8: 00000000 +0 +OBJECT +GLOBAL +DEFAULT +1 text_symbol + +9: 00000000 +0 +NOTYPE +GLOBAL +DEFAULT +UND external_symbol + +10: 00000000 +0 +OBJECT +GLOBAL +DEFAULT +3 data_symbol + +11: 00000004 +4 +(COMMON|OBJECT) +GLOBAL +DEFAULT +(PRC|COM) common_symbol diff --git a/binutils-2.25/binutils/testsuite/binutils-all/readelf.wa b/binutils-2.25/binutils/testsuite/binutils-all/readelf.wa new file mode 100644 index 00000000..43d60b17 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/readelf.wa @@ -0,0 +1,27 @@ +Contents of the .zdebug_abbrev section: + + Number TAG (0x0) + 1 DW_TAG_compile_unit [has children] + DW_AT_stmt_list DW_FORM_data4 + DW_AT_high_pc DW_FORM_addr + DW_AT_low_pc DW_FORM_addr + DW_AT_name DW_FORM_string + DW_AT_producer DW_FORM_string + DW_AT_language DW_FORM_data1 + DW_AT value: 0 DW_FORM value: 0 + 2 DW_TAG_subprogram [no children] + DW_AT_external DW_FORM_flag + DW_AT_decl_file DW_FORM_data1 + DW_AT_decl_line DW_FORM_data1 + DW_AT_name DW_FORM_string + DW_AT_type DW_FORM_ref4 + DW_AT_low_pc DW_FORM_addr + DW_AT_high_pc DW_FORM_addr + DW_AT_frame_base DW_FORM_block1 + DW_AT value: 0 DW_FORM value: 0 + 3 DW_TAG_base_type [no children] + DW_AT_name DW_FORM_string + DW_AT_byte_size DW_FORM_data1 + DW_AT_encoding DW_FORM_data1 + DW_AT value: 0 DW_FORM value: 0 + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/size.exp b/binutils-2.25/binutils/testsuite/binutils-all/size.exp new file mode 100644 index 00000000..5050a548 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/size.exp @@ -0,0 +1,82 @@ +# Copyright 1993, 1994, 1995, 1997, 1998, 2007, 2009 +# 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 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. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-dejagnu@prep.ai.mit.edu + +# This file was written by Rob Savoye <rob@cygnus.com> +# and rewritten by Ian Lance Taylor <ian@cygnus.com> + +if ![is_remote host] { + if {[which $SIZE] == 0} then { + perror "$SIZE does not exist" + return + } +} + +send_user "Version [binutil_version $SIZE]" + + +if {![binutils_assemble $srcdir/$subdir/bintest.s tmpdir/bintest.o]} then { + return +} + +if [is_remote host] { + set testfile [remote_download host tmpdir/bintest.o] +} else { + set testfile tmpdir/bintest.o +} + +set dec "\[0-9\]+" +set hex "\[0-9a-fA-F\]+" + +# Test size with no arguments + +set got [binutils_run $SIZE "$SIZEFLAGS $testfile"] + +set want "($dec)\[ \]+($dec)\[ \]+($dec)\[ \]+($dec)\[ \]+($hex)\[ \]+${testfile}" + +if ![regexp $want $got all text data bss dtot hextot] then { + fail "size (no arguments)" +} else { + if {$text < 8 || $data < 4} then { + # The z80-coff port defaults to a "binary" like output + # file format which does not include a data section. + setup_xfail "z80-*-coff" + fail "size (no arguments)" + } else { + pass "size (no arguments)" + } +} + +# Test size -A + +set got [binutils_run $SIZE "$SIZEFLAGS -A ${testfile}"] + +set want "${testfile}.*(text|TEXT)\[^\n\r\]*\[ \]($dec)\[ \]+$dec.*(\\.data|DATA)\[^\n\r\]*\[ \]($dec)\[ \]+$dec" + +if ![regexp $want $got all textname textsize dataname datasize] then { + fail "size -A" +} else { + verbose "text size: $textsize" + verbose "data size: $datasize" + if {$textsize < 8 || $datasize < 4} then { + fail "size -A" + } else { + pass "size -A" + } +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-1.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-1.d new file mode 100644 index 00000000..20098321 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/strip-1.d @@ -0,0 +1,11 @@ +#PROG: strip +#source: group.s +#readelf: -Sg --wide +#name: strip with section group 1 + +#... + \[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AX[ \t]+.* +#... + \[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WA[ \t]+.* +#... +There are no section groups in this file. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-10.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-10.d new file mode 100644 index 00000000..588c7d12 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/strip-10.d @@ -0,0 +1,8 @@ +#PROG: strip +#source: unique.s +#strip: -g +#readelf: -s +#name: strip on STB_GNU_UNIQUE + +#... + +[0-9]+: +[0-9a-f]+ +[0-9]+ +OBJECT +(UNIQUE|<OS specific>: 10) +DEFAULT +[1-9] foo diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-2.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-2.d new file mode 100644 index 00000000..9922f475 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/strip-2.d @@ -0,0 +1,18 @@ +#PROG: strip +#source: group.s +#strip: --strip-unneeded +#readelf: -Sg --wide +#name: strip with section group 2 + +#... + \[[ 0-9]+\] \.group[ \t]+GROUP[ \t]+.* +#... + \[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AXG[ \t]+.* +#... + \[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WAG[ \t]+.* +#... +COMDAT group section \[[ 0-9]+\] `\.group' \[foo_group\] contains 2 sections: + \[Index\] Name + \[[ 0-9]+\] .text.* + \[[ 0-9]+\] .data.* +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-3.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-3.d new file mode 100644 index 00000000..acfec85d --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/strip-3.d @@ -0,0 +1,11 @@ +#PROG: strip +#source: empty.s +#strip: -R .text -R .data -R .bss -R .ARM.attributes -R .reginfo -R .pdr -R .xtensa.info +#readelf: -S --wide +#name: strip empty file +#target: *-*-linux* *-*-gnu* + +#... + \[[ 0]+\][ \t]+NULL[ \t]+.* + \[[ 1]+\] \.shstrtab.*[ \t]+STRTAB[ \t]+.* +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-4.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-4.d new file mode 100644 index 00000000..c8c2509f --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/strip-4.d @@ -0,0 +1,11 @@ +#PROG: strip +#source: group-2.s +#readelf: -Sg --wide +#name: strip with section group 4 + +#... + \[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AX[ \t]+.* +#... + \[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WA[ \t]+.* +#... +There are no section groups in this file. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-5.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-5.d new file mode 100644 index 00000000..8dd23318 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/strip-5.d @@ -0,0 +1,18 @@ +#PROG: strip +#source: group-2.s +#strip: --strip-unneeded +#readelf: -Sg --wide +#name: strip with section group 5 + +#... + \[[ 0-9]+\] .group[ \t]+GROUP[ \t]+.* +#... + \[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AXG[ \t]+.* +#... + \[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WAG[ \t]+.* +#... +COMDAT group section \[[ 0-9]+\] `.group' \[.text.foo\] contains 2 sections: + \[Index\] Name + \[[ 0-9]+\] .text.* + \[[ 0-9]+\] .data.* +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-6.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-6.d new file mode 100644 index 00000000..c5d42887 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/strip-6.d @@ -0,0 +1,11 @@ +#PROG: strip +#source: group-3.s +#readelf: -Sg --wide +#name: strip with section group 6 + +#... + \[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AX[ \t]+.* +#... + \[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WA[ \t]+.* +#... +There are no section groups in this file. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-7.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-7.d new file mode 100644 index 00000000..791463b8 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/strip-7.d @@ -0,0 +1,18 @@ +#PROG: strip +#source: group-3.s +#strip: --strip-unneeded +#readelf: -Sg --wide +#name: strip with section group 7 + +#... + \[[ 0-9]+\] .group[ \t]+GROUP[ \t]+.* +#... + \[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AXG[ \t]+.* +#... + \[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WAG[ \t]+.* +#... +COMDAT group section \[[ 0-9]+\] `.group' \[foo3\] contains 2 sections: + \[Index\] Name + \[[ 0-9]+\] .text.* + \[[ 0-9]+\] .data.* +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-8.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-8.d new file mode 100644 index 00000000..56185103 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/strip-8.d @@ -0,0 +1,11 @@ +#PROG: strip +#source: group-4.s +#readelf: -Sg --wide +#name: strip with section group 8 + +#... + \[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AX[ \t]+.* +#... + \[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WA[ \t]+.* +#... +There are no section groups in this file. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/strip-9.d b/binutils-2.25/binutils/testsuite/binutils-all/strip-9.d new file mode 100644 index 00000000..7f07a0da --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/strip-9.d @@ -0,0 +1,18 @@ +#PROG: strip +#source: group-4.s +#strip: --strip-unneeded +#readelf: -Sg --wide +#name: strip with section group 9 + +#... + \[[ 0-9]+\] .group[ \t]+GROUP[ \t]+.* +#... + \[[ 0-9]+\] \.text.*[ \t]+PROGBITS[ \t0-9a-f]+AXG[ \t]+.* +#... + \[[ 0-9]+\] \.data.*[ \t]+PROGBITS[ \t0-9a-f]+WAG[ \t]+.* +#... +COMDAT group section \[[ 0-9]+\] `.group' \[foo4\] contains 2 sections: + \[Index\] Name + \[[ 0-9]+\] .text.* + \[[ 0-9]+\] .data.* +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/testprog.c b/binutils-2.25/binutils/testsuite/binutils-all/testprog.c new file mode 100644 index 00000000..6ead98e7 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/testprog.c @@ -0,0 +1,31 @@ +/* This program is used to test objcopy, readelf and strip. */ + +extern int strcmp (char *, const char *); +extern int printf (const char *, ...); + +int common; +int global = 1; +static int local = 2; +static char string[] = "string"; + +int +fn (void) +{ + return 3; +} + +int +main (void) +{ + if (common != 0 + || global != 1 + || local != 2 + || strcmp (string, "string") != 0) + { + printf ("failed\n"); + return 1; + } + + printf ("ok\n"); + return 0; +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/testranges-ia64.d b/binutils-2.25/binutils/testsuite/binutils-all/testranges-ia64.d new file mode 100644 index 00000000..9713236b --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/testranges-ia64.d @@ -0,0 +1,15 @@ +#PROG: objcopy +#source: testranges-ia64.s +#readelf: -wR --wide +#name: unordered .debug_info references to .debug_ranges +#target: ia64-*-* + +Contents of the .debug_ranges section: + + Offset Begin End + 00000000 00000001 00000002 + 00000000 <End of list> + 00000010 00000000 00000002 + 00000010 <End of list> + +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/testranges-ia64.s b/binutils-2.25/binutils/testsuite/binutils-all/testranges-ia64.s new file mode 100644 index 00000000..9af6b634 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/testranges-ia64.s @@ -0,0 +1,57 @@ +# Test .debug_info can reference .debug_ranges entries without ordering the +# offsets strictly as increasing. + + .text +start: + .byte 1 +sub: + .byte 2 +end: + + .section .debug_ranges,"",@progbits +range: + +range_sub: + data4.ua @secrel(sub), @secrel(end) + data4.ua 0, 0 /* range terminator */ + +range_cu: + data4.ua @secrel(start), @secrel(end) + data4.ua 0, 0 /* range terminator */ + + .section .debug_info,"",@progbits + data4.ua debugE - debugS /* Length of Compilation Unit Info */ +debugS: + .short 0x2 /* DWARF version number */ + data4.ua @secrel(abbrev0) /* Offset Into Abbrev. Section */ + .byte 0x4 /* Pointer Size (in bytes) */ + + .uleb128 0x1 /* (DIE (0xb) DW_TAG_compile_unit) */ + data4.ua range_cu - range /* DW_AT_ranges */ + + .uleb128 0x2 /* (DIE (0x6d) DW_TAG_subprogram) */ + .ascii "A\0" /* DW_AT_name */ + data4.ua range_sub - range /* DW_AT_ranges */ +debugE: + + .section .debug_abbrev,"",@progbits +abbrev0: + .uleb128 0x1 /* (abbrev code) */ + .uleb128 0x11 /* (TAG: DW_TAG_compile_unit) */ + .byte 0x0 /* DW_children_no */ + .uleb128 0x55 /* (DW_AT_ranges) */ + .uleb128 0x6 /* (DW_FORM_data4) */ + .byte 0x0 + .byte 0x0 + + .uleb128 0x2 /* (abbrev code) */ + .uleb128 0x2e /* (TAG: DW_TAG_subprogram) */ + .byte 0x0 /* DW_children_no */ + .uleb128 0x3 /* (DW_AT_name) */ + .uleb128 0x8 /* (DW_FORM_string) */ + .uleb128 0x55 /* (DW_AT_ranges) */ + .uleb128 0x6 /* (DW_FORM_data4) */ + .byte 0x0 + .byte 0x0 + + .byte 0x0 /* abbrevs terminator */ diff --git a/binutils-2.25/binutils/testsuite/binutils-all/testranges.d b/binutils-2.25/binutils/testsuite/binutils-all/testranges.d new file mode 100644 index 00000000..07f97503 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/testranges.d @@ -0,0 +1,15 @@ +#PROG: objcopy +#source: testranges.s +#readelf: -wR --wide +#name: unordered .debug_info references to .debug_ranges +#not-target: ia64-*-* + +Contents of the \.z?debug_ranges section: + + Offset Begin End + 00000000 00000001 00000002 + 00000000 <End of list> + 00000010 00000000 00000002 + 00000010 <End of list> + +#pass diff --git a/binutils-2.25/binutils/testsuite/binutils-all/testranges.s b/binutils-2.25/binutils/testsuite/binutils-all/testranges.s new file mode 100644 index 00000000..e1f9931b --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/testranges.s @@ -0,0 +1,61 @@ +# Test .debug_info can reference .debug_ranges entries without ordering the +# offsets strictly as increasing. + + .text +start: + .byte 1 +sub: + .byte 2 +end: + + .section .debug_ranges,"",%progbits +range: + +range_sub: + .4byte sub, end + .4byte 0, 0 ;# range terminator + +range_cu: + .4byte start, end + .4byte 0, 0 ;# range terminator + + .section .debug_info,"",%progbits + .4byte debugE - debugS ;# Length of Compilation Unit Info +debugS: + .short 0x2 ;# DWARF version number + .4byte abbrev0 ;# Offset Into Abbrev. Section + .byte 0x4 ;# Pointer Size (in bytes) + + .uleb128 0x1 ;# (DIE (0xb) DW_TAG_compile_unit) + .4byte range_cu - range ;# DW_AT_ranges + + .uleb128 0x2 ;# (DIE (0x6d) DW_TAG_subprogram) + .ascii "A\0" ;# DW_AT_name + .4byte range_sub - range ;# DW_AT_ranges + + ;# minimal section alignment on alpha-* is 2, ensure no new invalid CU + ;# will be started. + .balign 2 +debugE: + + .section .debug_abbrev,"",%progbits +abbrev0: + .uleb128 0x1 ;# (abbrev code) + .uleb128 0x11 ;# (TAG: DW_TAG_compile_unit) + .byte 0x0 ;# DW_children_no + .uleb128 0x55 ;# (DW_AT_ranges) + .uleb128 0x6 ;# (DW_FORM_data4) + .byte 0x0 + .byte 0x0 + + .uleb128 0x2 ;# (abbrev code) + .uleb128 0x2e ;# (TAG: DW_TAG_subprogram) + .byte 0x0 ;# DW_children_no + .uleb128 0x3 ;# (DW_AT_name) + .uleb128 0x8 ;# (DW_FORM_string) + .uleb128 0x55 ;# (DW_AT_ranges) + .uleb128 0x6 ;# (DW_FORM_data4) + .byte 0x0 + .byte 0x0 + + .byte 0x0 ;# abbrevs terminator diff --git a/binutils-2.25/binutils/testsuite/binutils-all/unique.s b/binutils-2.25/binutils/testsuite/binutils-all/unique.s new file mode 100644 index 00000000..44fb7a09 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/unique.s @@ -0,0 +1,4 @@ + .data + .type foo,%gnu_unique_object +foo: + .byte 0 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/unknown.s b/binutils-2.25/binutils/testsuite/binutils-all/unknown.s new file mode 100644 index 00000000..e1b53c01 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/unknown.s @@ -0,0 +1,4 @@ + .section .foo,"a","note" + .global _start +_start: + .long 0 diff --git a/binutils-2.25/binutils/testsuite/binutils-all/vax/entrymask.s b/binutils-2.25/binutils/testsuite/binutils-all/vax/entrymask.s new file mode 100644 index 00000000..18f90106 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/vax/entrymask.s @@ -0,0 +1,11 @@ +.text + +.global label1 +label1: + .word 0x0110 + +.global label2 +.type label2,@function +label2: + .word 0x0224 + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/vax/objdump.exp b/binutils-2.25/binutils/testsuite/binutils-all/vax/objdump.exp new file mode 100644 index 00000000..f4734a5b --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/vax/objdump.exp @@ -0,0 +1,64 @@ +# +# Copyright 1993, 1994, 1995, 1997, 1999, 2000, 2002, 2005, 2007, 2009 +# 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 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. +# + +# +# This file was written by Jan-Benedict Glaw <jbglaw@lug-owl.de>. It's goal +# is to check the VAX-specific support of the -M entry:0xf00 switch, which +# allows to force function entry masks at given addresses. +# + +if ![istarget vax*-*-*] then { + return +} + +if {[which $OBJDUMP] == 0} then { + perror "$OBJDUMP does not exist" + return +} + +send_user "Version [binutil_version $OBJDUMP]" + +if {![binutils_assemble $srcdir/$subdir/entrymask.s tmpdir/entrymask.o]} then { + return +} + +if [is_remote host] { + set objfile [remote_download host tmpdir/entrymask.o] +} else { + set objfile tmpdir/entrymask.o +} + +# +# We check both function entry points. The second one at offset 2 will +# show up automatically on ELF targets, but needs to be set on a.out +# targets. +# +set got [binutils_run $OBJDUMP "$OBJDUMPFLAGS -d -M entry:0x0 -M entry:2 $objfile"] +set want1 "\[ \]+0:\[ \]+10 01\[ \]+\\.word 0x0110.\*r8 r4" +set want2 "\[ \]+2:\[ \]+24 02\[ \]+\\.word 0x0224.\*r9 r5 r2" +if [regexp $want1 $got] then { + pass "entrymask test 1" +} else { + fail "entrymask test 1" +} +if [regexp $want2 $got] then { + pass "entrymask test 2" +} else { + fail "entrymask test 2" +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/version.def b/binutils-2.25/binutils/testsuite/binutils-all/version.def new file mode 100644 index 00000000..ce1c4b54 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/version.def @@ -0,0 +1,17 @@ +LIBRARY VERSION.dll +EXPORTS +GetFileVersionInfoA1 +GetFileVersionInfoSizeA2 +GetFileVersionInfoSizeW3 +GetFileVersionInfoW4 +VerFindFileA5 +VerFindFileW6 +VerInstallFileA7 +VerInstallFileW8 +VerLanguageNameA9 +VerLanguageNameW10 +VerQueryValueA11 +VerQueryValueIndexA12 +VerQueryValueIndexW13 +VerQueryValueW14 + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/version.s b/binutils-2.25/binutils/testsuite/binutils-all/version.s new file mode 100644 index 00000000..66a0566b --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/version.s @@ -0,0 +1 @@ + .version "Version 1.0" diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/MSG00001.bin b/binutils-2.25/binutils/testsuite/binutils-all/windres/MSG00001.bin Binary files differnew file mode 100644 index 00000000..0092b834 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/MSG00001.bin diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/README b/binutils-2.25/binutils/testsuite/binutils-all/windres/README new file mode 100644 index 00000000..67114461 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/README @@ -0,0 +1,33 @@ +Instructions for adding tests: + +The files *.rc are hand-edited or copied from elsewhere. + +The script msupdate is used to generate the *.rsd files, which are +dumps of the RES formatted output of MSVC's RC utility. + +Within the *.rc file, the first N lines beginning with a special +comment can control the test. Comments are // /* or # (// is +recommended, as both rc and windres support those). Each line +contains one command: + + // parse-only + // xfail *-*-* + // cpparg <preprocessor options passed via --preprocessor-arg> + +parse-only must preceed any xfail commands, and indicates that a +comparison with the *.rsd file will not happen. xfail indicates when +a failure is expected. This should only be used for when you are +adding a new test that is known to fail because of a bug in windres, +and it should be removed when the bug is fixed. + +You can use pfail or cfail instead of xfail to indicate that only the +parsing or comparing should be xfailed. + +The windres tests only run for ix86 targets, because the +MSVC-generated *.rsd files are generated for that. + +Copyright (C) 2012 Free Software Foundation, Inc. + +Copying and distribution of this file, with or without modification, +are permitted in any medium without royalty provided the copyright +notice and this notice are preserved. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/bmp1.bmp b/binutils-2.25/binutils/testsuite/binutils-all/windres/bmp1.bmp Binary files differnew file mode 100644 index 00000000..208a8aa2 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/bmp1.bmp diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/bmpalign.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/bmpalign.rc new file mode 100644 index 00000000..7cb5583d --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/bmpalign.rc @@ -0,0 +1,9 @@ +LANGUAGE 0, 0 + +A BITMAP MOVEABLE PURE DISCARDABLE "bmp1.bmp" + +AB BITMAP MOVEABLE PURE DISCARDABLE "bmp1.bmp" + +ABC BITMAP MOVEABLE PURE DISCARDABLE "bmp1.bmp" + +ABCD BITMAP MOVEABLE PURE DISCARDABLE "bmp1.bmp" diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/bmpalign.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/bmpalign.rsd new file mode 100644 index 00000000..3ee53965 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/bmpalign.rsd @@ -0,0 +1,38 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 6c000000 20000000 ffff0200 41000000 l... .......A... + 0030 00000000 30100000 00000000 00000000 ....0........... + 0040 28000000 01000000 01000000 01000400 (............... + 0050 00000000 04000000 00000000 00000000 ................ + 0060 00000000 00000000 00000000 00008000 ................ + 0070 00800000 00808000 80000000 80008000 ................ + 0080 80800000 c0c0c000 80808000 0000ff00 ................ + 0090 00ff0000 00ffff00 ff000000 ff00ff00 ................ + 00a0 ffff0000 ffffff00 90000000 6c000000 ............l... + 00b0 24000000 ffff0200 41004200 00000000 $.......A.B..... + 00c0 00000000 30100000 00000000 00000000 ....0........... + 00d0 28000000 01000000 01000000 01000400 (............... + 00e0 00000000 04000000 00000000 00000000 ................ + 00f0 00000000 00000000 00000000 00008000 ................ + 0100 00800000 00808000 80000000 80008000 ................ + 0110 80800000 c0c0c000 80808000 0000ff00 ................ + 0120 00ff0000 00ffff00 ff000000 ff00ff00 ................ + 0130 ffff0000 ffffff00 90000000 6c000000 ............l... + 0140 24000000 ffff0200 41004200 43000000 $.......A.B.C... + 0150 00000000 30100000 00000000 00000000 ....0........... + 0160 28000000 01000000 01000000 01000400 (............... + 0170 00000000 04000000 00000000 00000000 ................ + 0180 00000000 00000000 00000000 00008000 ................ + 0190 00800000 00808000 80000000 80008000 ................ + 01a0 80800000 c0c0c000 80808000 0000ff00 ................ + 01b0 00ff0000 00ffff00 ff000000 ff00ff00 ................ + 01c0 ffff0000 ffffff00 90000000 6c000000 ............l... + 01d0 28000000 ffff0200 41004200 43004400 (.......A.B.C.D. + 01e0 00000000 00000000 30100000 00000000 ........0....... + 01f0 00000000 28000000 01000000 01000000 ....(........... + 0200 01000400 00000000 04000000 00000000 ................ + 0210 00000000 00000000 00000000 00000000 ................ + 0220 00008000 00800000 00808000 80000000 ................ + 0230 80008000 80800000 c0c0c000 80808000 ................ + 0240 0000ff00 00ff0000 00ffff00 ff000000 ................ + 0250 ff00ff00 ffff0000 ffffff00 90000000 ................ diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/capstyle.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/capstyle.rc new file mode 100644 index 00000000..238d21ea --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/capstyle.rc @@ -0,0 +1,5 @@ +101 DIALOG DISCARDABLE 0, 0, 186, 95 +CAPTION "" +BEGIN + DEFPUSHBUTTON "OK",1,129,7,50,14 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/capstyle.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/capstyle.rsd new file mode 100644 index 00000000..fef81169 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/capstyle.rsd @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 36000000 20000000 ffff0500 ffff6500 6... .........e. + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 0000c880 00000000 01000000 0000ba00 ................ + 0050 5f000000 00000000 01000150 00000000 _..........P.... + 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O. + 0070 4b000000 00000000 K....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/checkbox.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/checkbox.rc new file mode 100644 index 00000000..a941d6a5 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/checkbox.rc @@ -0,0 +1,5 @@ +501 DIALOGEX DISCARDABLE 0, 0, 168, 137 +BEGIN + CHECKBOX 108, 1002, 12, 76, 123, 41 + CHECKBOX "tick me", 1001, 12, 15, 123, 41 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/checkbox.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/checkbox.rsd new file mode 100644 index 00000000..f3ea5a04 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/checkbox.rsd @@ -0,0 +1,12 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 72000000 20000000 ffff0500 fffff501 r... ........... + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 0100ffff 00000000 00000000 00008880 ................ + 0050 02000000 0000a800 89000000 00000000 ................ + 0060 00000000 00000000 02000150 0c004c00 ...........P..L. + 0070 7b002900 ea030000 ffff8000 ffff6c00 {.)...........l. + 0080 00000000 00000000 00000000 02000150 ...............P + 0090 0c000f00 7b002900 e9030000 ffff8000 ....{.)......... + 00a0 74006900 63006b00 20006d00 65000000 t.i.c.k. .m.e... + 00b0 00000000 .... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/combobox.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/combobox.rc new file mode 100644 index 00000000..f9f52d18 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/combobox.rc @@ -0,0 +1,8 @@ +#define CBS_SIMPLE 0x1 +#define WS_TABSTOP 0x10000 + +501 DIALOG DISCARDABLE 0, 0, 168, 137 +BEGIN + COMBOBOX 1001,10,10,50,54, CBS_SIMPLE | WS_TABSTOP +END + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/combobox.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/combobox.rsd new file mode 100644 index 00000000..509c7382 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/combobox.rsd @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 32000000 20000000 ffff0500 fffff501 2... ........... + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 00008880 00000000 01000000 0000a800 ................ + 0050 89000000 00000000 01000150 00000000 ...........P.... + 0060 0a000a00 32003600 e903ffff 85000000 ....2.6......... + 0070 00000000 .... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/deflang.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/deflang.rc new file mode 100644 index 00000000..1f3c20f5 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/deflang.rc @@ -0,0 +1,4 @@ +101 DIALOG DISCARDABLE 0, 0, 186, 95 +BEGIN + DEFPUSHBUTTON "OK",1,129,7,50,14 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/deflang.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/deflang.rsd new file mode 100644 index 00000000..270b6223 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/deflang.rsd @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 36000000 20000000 ffff0500 ffff6500 6... .........e. + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 00008880 00000000 01000000 0000ba00 ................ + 0050 5f000000 00000000 01000150 00000000 _..........P.... + 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O. + 0070 4b000000 00000000 K....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog0.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog0.rc new file mode 100644 index 00000000..fba7ed77 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog0.rc @@ -0,0 +1,4 @@ +101 DIALOG 0, 0, 186, 95
+BEGIN
+ DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14
+END
diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog0.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog0.rsd new file mode 100644 index 00000000..270b6223 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog0.rsd @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 36000000 20000000 ffff0500 ffff6500 6... .........e. + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 00008880 00000000 01000000 0000ba00 ................ + 0050 5f000000 00000000 01000150 00000000 _..........P.... + 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O. + 0070 4b000000 00000000 K....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog1.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog1.rc new file mode 100644 index 00000000..71deb4a5 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog1.rc @@ -0,0 +1,5 @@ +101 DIALOG DISCARDABLE 0, 0, 186, 95
+BEGIN
+ DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14
+END
+
diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog1.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog1.rsd new file mode 100644 index 00000000..270b6223 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialog1.rsd @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 36000000 20000000 ffff0500 ffff6500 6... .........e. + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 00008880 00000000 01000000 0000ba00 ................ + 0050 5f000000 00000000 01000150 00000000 _..........P.... + 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O. + 0070 4b000000 00000000 K....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogid.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogid.rc new file mode 100644 index 00000000..43bf1ec8 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogid.rc @@ -0,0 +1,9 @@ +// Test created based on bug report submitted to binutils mailing list +// See: http://sources.redhat.com/ml/binutils/2003-03/msg00312.html + +101 DIALOGEX 0, 0, 200, 200 + +BEGIN +CONTROL 108, -1, "classname", 77, 11, 11, 83, 162 +CONTROL "stringid", 102, "classname", 0x5000120e, 5, 5, 10, 10 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogid.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogid.rsd new file mode 100644 index 00000000..6c655a1c --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogid.rsd @@ -0,0 +1,18 @@ + +fred.res: file format binary + +Contents of section .data: + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 94000000 20000000 ffff0500 ffff6500 .... .........e. + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 0100ffff 00000000 00000000 00008880 ................ + 0050 02000000 0000c800 c8000000 00000000 ................ + 0060 00000000 00000000 4d000050 0b000b00 ........M..P.... + 0070 5300a200 ffffffff 43004c00 41005300 S.......C.L.A.S. + 0080 53004e00 41004d00 45000000 ffff6c00 S.N.A.M.E.....l. + 0090 00000000 00000000 00000000 0e120050 ...............P + 00a0 05000500 0a000a00 66000000 43004c00 ........f...C.L. + 00b0 41005300 53004e00 41004d00 45000000 A.S.S.N.A.M.E... + 00c0 73007400 72006900 6e006700 69006400 s.t.r.i.n.g.i.d. + 00d0 00000000 .... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogsignature.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogsignature.rc new file mode 100644 index 00000000..a05ce190 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogsignature.rc @@ -0,0 +1,5 @@ +101 DIALOG DISCARDABLE 0, 0, 186, 95 +STYLE 1 +BEGIN + DEFPUSHBUTTON "OK",1,129,7,50,14 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogsignature.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogsignature.rsd new file mode 100644 index 00000000..a01c14de --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/dialogsignature.rsd @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 36000000 20000000 ffff0500 ffff6500 6... .........e. + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 01000000 00000000 01000000 0000ba00 ................ + 0050 5f000000 00000000 01000150 00000000 _..........P.... + 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O. + 0070 4b000000 00000000 K....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dlgfont.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/dlgfont.rc new file mode 100644 index 00000000..9c763e59 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/dlgfont.rc @@ -0,0 +1,29 @@ +101 DIALOG DISCARDABLE 0, 0, 186, 95 +FONT 8, "Tahoma" +BEGIN + DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14 +END + +102 DIALOGEX DISCARDABLE 0, 0, 186, 95 +FONT 8, "Tahoma" +BEGIN + DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14 +END + +103 DIALOGEX DISCARDABLE 0, 0, 186, 95 +FONT 8, "Tahoma", 0 +BEGIN + DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14 +END + +104 DIALOGEX DISCARDABLE 0, 0, 186, 95 +FONT 8, "Tahoma", 0, 0 +BEGIN + DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14 +END + +105 DIALOGEX DISCARDABLE 0, 0, 186, 95 +FONT 8, "Tahoma", 0, 0, 1 +BEGIN + DEFPUSHBUTTON "OK", 1, 129, 7, 50, 14 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/dlgfont.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/dlgfont.rsd new file mode 100644 index 00000000..8a25cfa6 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/dlgfont.rsd @@ -0,0 +1,39 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 46000000 20000000 ffff0500 ffff6500 F... .........e. + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 40008880 00000000 01000000 0000ba00 @............... + 0050 5f000000 00000000 08005400 61006800 _.........T.a.h. + 0060 6f006d00 61000000 01000150 00000000 o.m.a......P.... + 0070 81000700 32000e00 0100ffff 80004f00 ....2.........O. + 0080 4b000000 00000000 58000000 20000000 K.......X... ... + 0090 ffff0500 ffff6600 00000000 30100904 ......f.....0... + 00a0 00000000 00000000 0100ffff 00000000 ................ + 00b0 00000000 40008880 01000000 0000ba00 ....@........... + 00c0 5f000000 00000000 08000000 00015400 _.............T. + 00d0 61006800 6f006d00 61000000 00000000 a.h.o.m.a....... + 00e0 00000000 01000150 81000700 32000e00 .......P....2... + 00f0 01000000 ffff8000 4f004b00 00000000 ........O.K..... + 0100 58000000 20000000 ffff0500 ffff6700 X... .........g. + 0110 00000000 30100904 00000000 00000000 ....0........... + 0120 0100ffff 00000000 00000000 40008880 ............@... + 0130 01000000 0000ba00 5f000000 00000000 ........_....... + 0140 08000000 00015400 61006800 6f006d00 ......T.a.h.o.m. + 0150 61000000 00000000 00000000 01000150 a..............P + 0160 81000700 32000e00 01000000 ffff8000 ....2........... + 0170 4f004b00 00000000 58000000 20000000 O.K.....X... ... + 0180 ffff0500 ffff6800 00000000 30100904 ......h.....0... + 0190 00000000 00000000 0100ffff 00000000 ................ + 01a0 00000000 40008880 01000000 0000ba00 ....@........... + 01b0 5f000000 00000000 08000000 00015400 _.............T. + 01c0 61006800 6f006d00 61000000 00000000 a.h.o.m.a....... + 01d0 00000000 01000150 81000700 32000e00 .......P....2... + 01e0 01000000 ffff8000 4f004b00 00000000 ........O.K..... + 01f0 58000000 20000000 ffff0500 ffff6900 X... .........i. + 0200 00000000 30100904 00000000 00000000 ....0........... + 0210 0100ffff 00000000 00000000 40008880 ............@... + 0220 01000000 0000ba00 5f000000 00000000 ........_....... + 0230 08000000 00015400 61006800 6f006d00 ......T.a.h.o.m. + 0240 61000000 00000000 00000000 01000150 a..............P + 0250 81000700 32000e00 01000000 ffff8000 ....2........... + 0260 4f004b00 00000000 O.K..... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/edittext.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/edittext.rc new file mode 100644 index 00000000..0fd70001 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/edittext.rc @@ -0,0 +1,4 @@ +501 DIALOG DISCARDABLE 0, 0, 168, 137 +BEGIN + EDITTEXT 1001, 28, 63, 137, 52 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/edittext.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/edittext.rsd new file mode 100644 index 00000000..7132b20f --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/edittext.rsd @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 32000000 20000000 ffff0500 fffff501 2... ........... + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 00008880 00000000 01000000 0000a800 ................ + 0050 89000000 00000000 00008150 00000000 ...........P.... + 0060 1c003f00 89003400 e903ffff 81000000 ..?...4......... + 0070 00000000 .... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/escapea.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapea.rc new file mode 100644 index 00000000..0e3e9670 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapea.rc @@ -0,0 +1,7 @@ +20 MENU DISCARDABLE +BEGIN + POPUP "&File" + BEGIN + MENUITEM "&Open\a^O", 17 + END +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/escapea.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapea.rsd new file mode 100644 index 00000000..c8a7f4eb --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapea.rsd @@ -0,0 +1,7 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 28000000 20000000 ffff0400 ffff1400 (... ........... + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 00000000 90002600 46006900 6c006500 ......&.F.i.l.e. + 0050 00008000 11002600 4f007000 65006e00 ......&.O.p.e.n. + 0060 08005e00 4f000000 ..^.O... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex-2.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex-2.rc new file mode 100755 index 00000000..ed35b214 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex-2.rc @@ -0,0 +1,5 @@ +101 DIALOG DISCARDABLE 0, 0, 186, 95 +BEGIN + LTEXT "\xB0ABC",-1,23,46,28,8 +END + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex-2.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex-2.rsd new file mode 100644 index 00000000..774c648c --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex-2.rsd @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 3a000000 20000000 ffff0500 ffff6500 :... .........e. + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 00008880 00000000 01000000 0000ba00 ................ + 0050 5f000000 00000000 00000250 00000000 _..........P.... + 0060 17002e00 1c000800 ffffffff 8200b000 ................ + 0070 41004200 43000000 00000000 A.B.C....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex.rc new file mode 100644 index 00000000..1a025f65 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex.rc @@ -0,0 +1,4 @@ +101 DIALOG DISCARDABLE 0, 0, 186, 95 +BEGIN + LTEXT "\xB0",-1,23,46,28,8 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex.rsd new file mode 100644 index 00000000..280aead0 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/escapex.rsd @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 34000000 20000000 ffff0500 ffff6500 4... .........e. + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 00008880 00000000 01000000 0000ba00 ................ + 0050 5f000000 00000000 00000250 00000000 _..........P.... + 0060 17002e00 1c000800 ffffffff 8200b000 ................ + 0070 00000000 .... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/html.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/html.rc new file mode 100644 index 00000000..d85f5653 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/html.rc @@ -0,0 +1,6 @@ +#include "windows.h" + +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN + +129 HTML "html1.hm" +130 HTML "html2.hm" diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/html.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/html.rsd new file mode 100644 index 00000000..c124a82b --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/html.rsd @@ -0,0 +1,45 @@ + +html.res: file format binary + +Contents of section .data: + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 0d010000 20000000 ffff1700 ffff8100 .... ........... + 0030 00000000 30100704 00000000 00000000 ....0........... + 0040 3c21444f 43545950 4520646f 63747970 <!DOCTYPE doctyp + 0050 65205055 424c4943 20222d2f 2f773363 e PUBLIC "-//w3c + 0060 2f2f6474 64206874 6d6c2034 2e302074 //dtd html 4.0 t + 0070 72616e73 6974696f 6e616c2f 2f656e22 ransitional//en" + 0080 3e0d0a3c 68746d6c 3e0d0a3c 68656164 >..<html>..<head + 0090 3e0d0a20 203c6d65 74612063 6f6e7465 >.. <meta conte + 00a0 6e743d22 74657874 2f68746d 6c3b2063 nt="text/html; c + 00b0 68617273 65743d69 736f2d38 3835392d harset=iso-8859- + 00c0 31222020 68747470 2d657175 69763d22 1" http-equiv=" + 00d0 436f6e74 656e742d 54797065 223e0d0a Content-Type">.. + 00e0 20203c74 69746c65 3e57696e 64726573 <title>Windres + 00f0 3c2f7469 746c653e 0d0a3c2f 68656164 </title>..</head + 0100 3e0d0a0d 0a3c626f 64793e0d 0a546869 >....<body>..Thi + 0110 73206973 20612074 65737420 70616765 s is a test page + 0120 20666f72 2077696e 64726573 2048544d for windres HTM + 0130 4c207265 736f7572 63652e0d 0a3c2f62 L resource...</b + 0140 6f64793e 0d0a3c2f 68746d6c 3e000000 ody>..</html>... + 0150 14010000 20000000 ffff1700 ffff8200 .... ........... + 0160 00000000 30100704 00000000 00000000 ....0........... + 0170 3c21444f 43545950 4520646f 63747970 <!DOCTYPE doctyp + 0180 65205055 424c4943 20222d2f 2f773363 e PUBLIC "-//w3c + 0190 2f2f6474 64206874 6d6c2034 2e302074 //dtd html 4.0 t + 01a0 72616e73 6974696f 6e616c2f 2f656e22 ransitional//en" + 01b0 3e0d0a3c 68746d6c 3e0d0a3c 68656164 >..<html>..<head + 01c0 3e0d0a20 203c6d65 74612063 6f6e7465 >.. <meta conte + 01d0 6e743d22 74657874 2f68746d 6c3b2063 nt="text/html; c + 01e0 68617273 65743d69 736f2d38 3835392d harset=iso-8859- + 01f0 31222020 68747470 2d657175 69763d22 1" http-equiv=" + 0200 436f6e74 656e742d 54797065 223e0d0a Content-Type">.. + 0210 20203c74 69746c65 3e57696e 64726573 <title>Windres + 0220 3c2f7469 746c653e 0d0a3c2f 68656164 </title>..</head + 0230 3e0d0a0d 0a3c626f 64793e0d 0a546869 >....<body>..Thi + 0240 73206973 20612073 65636f6e 64207465 s is a second te + 0250 73742070 61676520 666f7220 77696e64 st page for wind + 0260 72657320 48544d4c 20726573 6f757263 res HTML resourc + 0270 652e0d0a 3c2f626f 64793e0d 0a3c2f68 e...</body>..</h + 0280 746d6c3e tml> diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/html1.hm b/binutils-2.25/binutils/testsuite/binutils-all/windres/html1.hm new file mode 100644 index 00000000..ffc5a182 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/html1.hm @@ -0,0 +1,11 @@ +<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
+ <title>Windres</title>
+</head>
+
+<body>
+This is a test page for windres HTML resource.
+</body>
+</html>
\ No newline at end of file diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/html2.hm b/binutils-2.25/binutils/testsuite/binutils-all/windres/html2.hm new file mode 100644 index 00000000..2fb343bf --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/html2.hm @@ -0,0 +1,11 @@ +<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+ <meta content="text/html; charset=iso-8859-1" http-equiv="Content-Type">
+ <title>Windres</title>
+</head>
+
+<body>
+This is a second test page for windres HTML resource.
+</body>
+</html>
\ No newline at end of file diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/lang.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/lang.rc new file mode 100644 index 00000000..d8943155 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/lang.rc @@ -0,0 +1,15 @@ +#include "windows.h" + +LANGUAGE 0, 0 + +1 MENU MOVEABLE PURE DISCARDABLE +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN +BEGIN + POPUP "&Datei" { MENUITEM "foo", 1 } +END + +1 MENU MOVEABLE PURE DISCARDABLE +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US +BEGIN + POPUP "&File" { MENUITEM "foo", 1 } +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/lang.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/lang.rsd new file mode 100644 index 00000000..9e0045f6 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/lang.rsd @@ -0,0 +1,10 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 20000000 20000000 ffff0400 ffff0100 ... ........... + 0030 00000000 30100704 00000000 00000000 ....0........... + 0040 00000000 90002600 44006100 74006500 ......&.D.a.t.e. + 0050 69000000 80000100 66006f00 6f000000 i.......f.o.o... + 0060 1e000000 20000000 ffff0400 ffff0100 .... ........... + 0070 00000000 30100904 00000000 00000000 ....0........... + 0080 00000000 90002600 46006900 6c006500 ......&.F.i.l.e. + 0090 00008000 01006600 6f006f00 00000000 ......f.o.o..... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/listbox.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/listbox.rc new file mode 100644 index 00000000..bb7c121e --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/listbox.rc @@ -0,0 +1,4 @@ +501 DIALOG DISCARDABLE 0, 0, 168, 137 +BEGIN + LISTBOX 1001, 28, 63, 137, 52 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/listbox.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/listbox.rsd new file mode 100644 index 00000000..4c3eadfc --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/listbox.rsd @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 32000000 20000000 ffff0500 fffff501 2... ........... + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 00008880 00000000 01000000 0000a800 ................ + 0050 89000000 00000000 01008050 00000000 ...........P.... + 0060 1c003f00 89003400 e903ffff 83000000 ..?...4......... + 0070 00000000 .... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/messagetable.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/messagetable.rc new file mode 100644 index 00000000..250d2417 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/messagetable.rc @@ -0,0 +1,5 @@ +#include "windows.h" + +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN + +888 MESSAGETABLE MSG00001.bin diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/messagetable.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/messagetable.rsd new file mode 100644 index 00000000..9d108a58 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/messagetable.rsd @@ -0,0 +1,15 @@ + +messagetable.res: file format binary + +Contents of section .data: + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 70000000 20000000 ffff0b00 ffff7803 p... .........x. + 0030 00000000 30100704 00000000 00000000 ....0........... + 0040 01000000 00000000 05000000 10000000 ................ + 0050 14000000 4e6f7469 63653a20 25310d0a ....Notice: %1.. + 0060 00000000 0c000000 25310d0a 00000000 ........%1...... + 0070 10000000 5761726e 3a202531 0d0a0000 ....Warn: %1.... + 0080 10000000 4572726f 723a2025 310d0a00 ....Error: %1... + 0090 10000000 46617461 6c3a2025 310d0a00 ....Fatal: %1... + 00a0 10000000 25310d0a 25320d0a 00000000 ....%1..%2...... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/msupdate b/binutils-2.25/binutils/testsuite/binutils-all/windres/msupdate new file mode 100755 index 00000000..94d36988 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/msupdate @@ -0,0 +1,40 @@ +#!/bin/sh +# Copyright 2001, 2007, 2009 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 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. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-dejagnu@prep.ai.mit.edu + +# Written by DJ Delorie <dj@redhat.com> + +# Run this on a machine with Cygwin and Microsoft Visual C to create +# the RES files we match against. + +RC="rc" +if test x"$1" != x"" +then + RC="$1" +fi + +for i in *.rc +do + o=`echo $i | sed s/.rc/.res/` + d=`echo $i | sed s/.rc/.rsd/` + echo "$i -> $o -> $d" + $RC /fo$o $i + objdump -b binary -s $o | sed -n '/^ [0-9a-f][0-9a-f]* /p' > $d + rm $o +done diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/nocaption.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/nocaption.rc new file mode 100644 index 00000000..1f3c20f5 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/nocaption.rc @@ -0,0 +1,4 @@ +101 DIALOG DISCARDABLE 0, 0, 186, 95 +BEGIN + DEFPUSHBUTTON "OK",1,129,7,50,14 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/nocaption.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/nocaption.rsd new file mode 100644 index 00000000..270b6223 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/nocaption.rsd @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 36000000 20000000 ffff0500 ffff6500 6... .........e. + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 00008880 00000000 01000000 0000ba00 ................ + 0050 5f000000 00000000 01000150 00000000 _..........P.... + 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O. + 0070 4b000000 00000000 K....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/printstyle.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/printstyle.rc new file mode 100644 index 00000000..0066c995 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/printstyle.rc @@ -0,0 +1,6 @@ +101 DIALOG DISCARDABLE 0, 0, 186, 95 +STYLE 0 +BEGIN + DEFPUSHBUTTON "OK",1,129,7,50,14 +END + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/printstyle.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/printstyle.rsd new file mode 100644 index 00000000..6a4a919c --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/printstyle.rsd @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 36000000 20000000 ffff0500 ffff6500 6... .........e. + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 00000000 00000000 01000000 0000ba00 ................ + 0050 5f000000 00000000 01000150 00000000 _..........P.... + 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O. + 0070 4b000000 00000000 K....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/quoteclass.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/quoteclass.rc new file mode 100644 index 00000000..c1f98e19 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/quoteclass.rc @@ -0,0 +1,8 @@ +// parse-only + +101 DIALOG DISCARDABLE 0, 0, 186, 95 +CLASS "myclass" +BEGIN + DEFPUSHBUTTON "OK",1,129,7,50,14 +END + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/scrollbar.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/scrollbar.rc new file mode 100644 index 00000000..9391d1ab --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/scrollbar.rc @@ -0,0 +1,4 @@ +501 DIALOGEX 0, 0, 168, 137 +BEGIN + SCROLLBAR 1001,43,68,105,10,0,0,0x81f503e9 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/scrollbar.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/scrollbar.rsd new file mode 100644 index 00000000..c509c4cd --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/scrollbar.rsd @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 40000000 20000000 ffff0500 fffff501 @... ........... + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 0100ffff 00000000 00000000 00008880 ................ + 0050 01000000 0000a800 89000000 00000000 ................ + 0060 e903f581 00000000 00000050 2b004400 ...........P+.D. + 0070 69000a00 e9030000 ffff8400 00000000 i............... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab1.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab1.rc new file mode 100644 index 00000000..a1a246d8 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab1.rc @@ -0,0 +1,8 @@ +#include "windows.h" + +LANGUAGE 0, 0 + +STRINGTABLE MOVEABLE PURE DISCARDABLE +BEGIN + 1 "hello, world" +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab1.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab1.rsd new file mode 100644 index 00000000..4d610739 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab1.rsd @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 38000000 20000000 ffff0600 ffff0100 8... ........... + 0030 00000000 30100000 00000000 00000000 ....0........... + 0040 00000c00 68006500 6c006c00 6f002c00 ....h.e.l.l.o.,. + 0050 20007700 6f007200 6c006400 00000000 .w.o.r.l.d..... + 0060 00000000 00000000 00000000 00000000 ................ + 0070 00000000 00000000 ........ diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab2.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab2.rc new file mode 100644 index 00000000..2721d159 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab2.rc @@ -0,0 +1,8 @@ +#include "windows.h" + +LANGUAGE 0, 0 + +STRINGTABLE MOVEABLE PURE DISCARDABLE +BEGIN + 1 L"hello, world" +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab2.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab2.rsd new file mode 100644 index 00000000..4d610739 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab2.rsd @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 38000000 20000000 ffff0600 ffff0100 8... ........... + 0030 00000000 30100000 00000000 00000000 ....0........... + 0040 00000c00 68006500 6c006c00 6f002c00 ....h.e.l.l.o.,. + 0050 20007700 6f007200 6c006400 00000000 .w.o.r.l.d..... + 0060 00000000 00000000 00000000 00000000 ................ + 0070 00000000 00000000 ........ diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab3.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab3.rc new file mode 100644 index 00000000..542e9dc6 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab3.rc @@ -0,0 +1,14 @@ +// cpparg -DTEST=1 + +#include "windows.h" + +LANGUAGE 0, 0 + +STRINGTABLE MOVEABLE PURE DISCARDABLE +BEGIN +#ifdef TEST + 1 "hello, world" +#else + 1 "fail" +#endif +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab3.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab3.rsd new file mode 100644 index 00000000..4d610739 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab3.rsd @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 38000000 20000000 ffff0600 ffff0100 8... ........... + 0030 00000000 30100000 00000000 00000000 ....0........... + 0040 00000c00 68006500 6c006c00 6f002c00 ....h.e.l.l.o.,. + 0050 20007700 6f007200 6c006400 00000000 .w.o.r.l.d..... + 0060 00000000 00000000 00000000 00000000 ................ + 0070 00000000 00000000 ........ diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab4.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab4.rc new file mode 100644 index 00000000..cd532980 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab4.rc @@ -0,0 +1,10 @@ +// cpparg -DTEST=1 + +#include "windows.h" + +LANGUAGE 0, 0 + +STRINGTABLE MOVEABLE PURE DISCARDABLE +BEGIN + 1 "hello\0 world" +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab4.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab4.rsd new file mode 100644 index 00000000..9fa055d7 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/strtab4.rsd @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 38000000 20000000 ffff0600 ffff0100 8... ........... + 0030 00000000 30100000 00000000 00000000 ....0........... + 0040 00000c00 68006500 6c006c00 6f000000 ....h.e.l.l.o... + 0050 20007700 6f007200 6c006400 00000000 .w.o.r.l.d..... + 0060 00000000 00000000 00000000 00000000 ................ + 0070 00000000 00000000 ........ diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/sublang.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/sublang.rc new file mode 100644 index 00000000..a37921b3 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/sublang.rc @@ -0,0 +1,5 @@ +LANGUAGE 9, 1 +101 DIALOG DISCARDABLE 0, 0, 186, 95 +BEGIN + DEFPUSHBUTTON "OK",1,129,7,50,14 +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/sublang.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/sublang.rsd new file mode 100644 index 00000000..270b6223 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/sublang.rsd @@ -0,0 +1,8 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 36000000 20000000 ffff0500 ffff6500 6... .........e. + 0030 00000000 30100904 00000000 00000000 ....0........... + 0040 00008880 00000000 01000000 0000ba00 ................ + 0050 5f000000 00000000 01000150 00000000 _..........P.... + 0060 81000700 32000e00 0100ffff 80004f00 ....2.........O. + 0070 4b000000 00000000 K....... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/version.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/version.rc new file mode 100644 index 00000000..59c8743a --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/version.rc @@ -0,0 +1,32 @@ +#include "windows.h" + +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL + FILEFLAGS 0x0L + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040704e4" + BEGIN + VALUE L"CompanyName", L"binutil\x0073" + VALUE "FileDescription", "RC compiler." + VALUE "FileVersion", "1.0.0.1" + VALUE "InternalName", "windres.exe" + VALUE "LegalCopyright", "(c) FSF. All rights are reserved." + VALUE "OriginalFilename", "windres.exe" + VALUE "ProductName", "windows resource compiler" + VALUE "ProductVersion", "1.0.0.1" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x407, 1252 + END +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/version.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/version.rsd new file mode 100644 index 00000000..8ad479c1 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/version.rsd @@ -0,0 +1,51 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 ec020000 20000000 ffff1000 ffff0100 .... ........... + 0030 00000000 00000704 00000000 00000000 ................ + 0040 ec023400 00005600 53005f00 56004500 ..4...V.S._.V.E. + 0050 52005300 49004f00 4e005f00 49004e00 R.S.I.O.N._.I.N. + 0060 46004f00 00000000 bd04effe 00000100 F.O............. + 0070 00000100 01000000 00000100 01000000 ................ + 0080 3f000000 00000000 04000000 01000000 ?............... + 0090 00000000 00000000 00000000 4c020000 ............L... + 00a0 01005300 74007200 69006e00 67004600 ..S.t.r.i.n.g.F. + 00b0 69006c00 65004900 6e006600 6f000000 i.l.e.I.n.f.o... + 00c0 28020000 01003000 34003000 37003000 (.....0.4.0.7.0. + 00d0 34006500 34000000 32000900 01004300 4.e.4...2.....C. + 00e0 6f006d00 70006100 6e007900 4e006100 o.m.p.a.n.y.N.a. + 00f0 6d006500 00000000 62006900 6e007500 m.e.....b.i.n.u. + 0100 74006900 6c007300 00000000 42000d00 t.i.l.s.....B... + 0110 01004600 69006c00 65004400 65007300 ..F.i.l.e.D.e.s. + 0120 63007200 69007000 74006900 6f006e00 c.r.i.p.t.i.o.n. + 0130 00000000 52004300 20006300 6f006d00 ....R.C. .c.o.m. + 0140 70006900 6c006500 72002e00 00000000 p.i.l.e.r....... + 0150 30000800 01004600 69006c00 65005600 0.....F.i.l.e.V. + 0160 65007200 73006900 6f006e00 00000000 e.r.s.i.o.n..... + 0170 31002e00 30002e00 30002e00 31000000 1...0...0...1... + 0180 38000c00 01004900 6e007400 65007200 8.....I.n.t.e.r. + 0190 6e006100 6c004e00 61006d00 65000000 n.a.l.N.a.m.e... + 01a0 77006900 6e006400 72006500 73002e00 w.i.n.d.r.e.s... + 01b0 65007800 65000000 68002200 01004c00 e.x.e...h."...L. + 01c0 65006700 61006c00 43006f00 70007900 e.g.a.l.C.o.p.y. + 01d0 72006900 67006800 74000000 28006300 r.i.g.h.t...(.c. + 01e0 29002000 46005300 46002e00 20004100 ). .F.S.F... .A. + 01f0 6c006c00 20007200 69006700 68007400 l.l. .r.i.g.h.t. + 0200 73002000 61007200 65002000 72006500 s. .a.r.e. .r.e. + 0210 73006500 72007600 65006400 2e000000 s.e.r.v.e.d..... + 0220 40000c00 01004f00 72006900 67006900 @.....O.r.i.g.i. + 0230 6e006100 6c004600 69006c00 65006e00 n.a.l.F.i.l.e.n. + 0240 61006d00 65000000 77006900 6e006400 a.m.e...w.i.n.d. + 0250 72006500 73002e00 65007800 65000000 r.e.s...e.x.e... + 0260 54001a00 01005000 72006f00 64007500 T.....P.r.o.d.u. + 0270 63007400 4e006100 6d006500 00000000 c.t.N.a.m.e..... + 0280 77006900 6e006400 6f007700 73002000 w.i.n.d.o.w.s. . + 0290 72006500 73006f00 75007200 63006500 r.e.s.o.u.r.c.e. + 02a0 20006300 6f006d00 70006900 6c006500 .c.o.m.p.i.l.e. + 02b0 72000000 34000800 01005000 72006f00 r...4.....P.r.o. + 02c0 64007500 63007400 56006500 72007300 d.u.c.t.V.e.r.s. + 02d0 69006f00 6e000000 31002e00 30002e00 i.o.n...1...0... + 02e0 30002e00 31000000 44000000 01005600 0...1...D.....V. + 02f0 61007200 46006900 6c006500 49006e00 a.r.F.i.l.e.I.n. + 0300 66006f00 00000000 24000400 00005400 f.o.....$.....T. + 0310 72006100 6e007300 6c006100 74006900 r.a.n.s.l.a.t.i. + 0320 6f006e00 00000000 0704e404 o.n......... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/version_cat.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_cat.rc new file mode 100644 index 00000000..8368aa12 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_cat.rc @@ -0,0 +1,32 @@ +#include "windows.h" + +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL + FILEFLAGS 0x0L + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040704e4" + BEGIN + VALUE L"Company" "Name", L"binutil\x0073" + VALUE "File" "Description", L"RC " L"compiler." + VALUE "File" "Version", "1.0.0.1" + VALUE "Internal" "Name", "windres" L".exe" + VALUE "Legal" "Copyright", "(c) FSF." " All rights are reserved." + VALUE "Original" "Filename", L"windres" ".exe" + VALUE "Product" "Name", "windows resource " "compiler" + VALUE "Product" "Version", "1.0.0.1" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x407, 1252 + END +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/version_cat.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_cat.rsd new file mode 100644 index 00000000..4e575121 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_cat.rsd @@ -0,0 +1,55 @@ + +version.res: file format binary + +Contents of section .data: + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 ec020000 20000000 ffff1000 ffff0100 .... ........... + 0030 00000000 00000704 00000000 00000000 ................ + 0040 ec023400 00005600 53005f00 56004500 ..4...V.S._.V.E. + 0050 52005300 49004f00 4e005f00 49004e00 R.S.I.O.N._.I.N. + 0060 46004f00 00000000 bd04effe 00000100 F.O............. + 0070 00000100 01000000 00000100 01000000 ................ + 0080 3f000000 00000000 04000000 01000000 ?............... + 0090 00000000 00000000 00000000 4c020000 ............L... + 00a0 01005300 74007200 69006e00 67004600 ..S.t.r.i.n.g.F. + 00b0 69006c00 65004900 6e006600 6f000000 i.l.e.I.n.f.o... + 00c0 28020000 01003000 34003000 37003000 (.....0.4.0.7.0. + 00d0 34006500 34000000 32000900 01004300 4.e.4...2.....C. + 00e0 6f006d00 70006100 6e007900 4e006100 o.m.p.a.n.y.N.a. + 00f0 6d006500 00000000 62006900 6e007500 m.e.....b.i.n.u. + 0100 74006900 6c007300 00000000 42000d00 t.i.l.s.....B... + 0110 01004600 69006c00 65004400 65007300 ..F.i.l.e.D.e.s. + 0120 63007200 69007000 74006900 6f006e00 c.r.i.p.t.i.o.n. + 0130 00000000 52004300 20006300 6f006d00 ....R.C. .c.o.m. + 0140 70006900 6c006500 72002e00 00000000 p.i.l.e.r....... + 0150 30000800 01004600 69006c00 65005600 0.....F.i.l.e.V. + 0160 65007200 73006900 6f006e00 00000000 e.r.s.i.o.n..... + 0170 31002e00 30002e00 30002e00 31000000 1...0...0...1... + 0180 38000c00 01004900 6e007400 65007200 8.....I.n.t.e.r. + 0190 6e006100 6c004e00 61006d00 65000000 n.a.l.N.a.m.e... + 01a0 77006900 6e006400 72006500 73002e00 w.i.n.d.r.e.s... + 01b0 65007800 65000000 68002200 01004c00 e.x.e...h."...L. + 01c0 65006700 61006c00 43006f00 70007900 e.g.a.l.C.o.p.y. + 01d0 72006900 67006800 74000000 28006300 r.i.g.h.t...(.c. + 01e0 29002000 46005300 46002e00 20004100 ). .F.S.F... .A. + 01f0 6c006c00 20007200 69006700 68007400 l.l. .r.i.g.h.t. + 0200 73002000 61007200 65002000 72006500 s. .a.r.e. .r.e. + 0210 73006500 72007600 65006400 2e000000 s.e.r.v.e.d..... + 0220 40000c00 01004f00 72006900 67006900 @.....O.r.i.g.i. + 0230 6e006100 6c004600 69006c00 65006e00 n.a.l.F.i.l.e.n. + 0240 61006d00 65000000 77006900 6e006400 a.m.e...w.i.n.d. + 0250 72006500 73002e00 65007800 65000000 r.e.s...e.x.e... + 0260 54001a00 01005000 72006f00 64007500 T.....P.r.o.d.u. + 0270 63007400 4e006100 6d006500 00000000 c.t.N.a.m.e..... + 0280 77006900 6e006400 6f007700 73002000 w.i.n.d.o.w.s. . + 0290 72006500 73006f00 75007200 63006500 r.e.s.o.u.r.c.e. + 02a0 20006300 6f006d00 70006900 6c006500 .c.o.m.p.i.l.e. + 02b0 72000000 34000800 01005000 72006f00 r...4.....P.r.o. + 02c0 64007500 63007400 56006500 72007300 d.u.c.t.V.e.r.s. + 02d0 69006f00 6e000000 31002e00 30002e00 i.o.n...1...0... + 02e0 30002e00 31000000 44000000 01005600 0...1...D.....V. + 02f0 61007200 46006900 6c006500 49006e00 a.r.F.i.l.e.I.n. + 0300 66006f00 00000000 24000400 00005400 f.o.....$.....T. + 0310 72006100 6e007300 6c006100 74006900 r.a.n.s.l.a.t.i. + 0320 6f006e00 00000000 0704e404 o.n......... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/version_mlang.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_mlang.rc new file mode 100644 index 00000000..e796ca95 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_mlang.rc @@ -0,0 +1,43 @@ +#include "windows.h" + +LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,1 + PRODUCTVERSION 1,0,0,1 + FILEFLAGSMASK 0x3fL + FILEFLAGS 0x0L + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "binutils" + VALUE "FileDescription", "RC compiler." + VALUE "FileVersion", "1.0.0.1" + VALUE "InternalName", "windres.exe" + VALUE "LegalCopyright", "(c) FSF. All rights are reserved." + VALUE "OriginalFilename", "windres.exe" + VALUE "ProductName", "windows resource compiler" + VALUE "ProductVersion", "1.0.0.1" + END + BLOCK "041504b0" + BEGIN + VALUE "CompanyName", "binutils" + VALUE "FileDescription", "Kompilator RC." + VALUE "FileVersion", "1.0.0.1" + VALUE "InternalName", "windres.exe" + VALUE "LegalCopyright", "(c) FSF. Wszystkie prawa zastrzezone." + VALUE "OriginalFilename", "windres.exe" + VALUE "ProductName", "windows resource compiler" + VALUE "ProductVersion", "1.0.0.1" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0409, 0x04b0, 0x0415, 0x04b0 + END +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/version_mlang.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_mlang.rsd new file mode 100644 index 00000000..05ed4883 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_mlang.rsd @@ -0,0 +1,87 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 24050000 20000000 ffff1000 ffff0100 $... ........... + 0030 00000000 00000000 00000000 00000000 ................ + 0040 24053400 00005600 53005f00 56004500 $.4...V.S._.V.E. + 0050 52005300 49004f00 4e005f00 49004e00 R.S.I.O.N._.I.N. + 0060 46004f00 00000000 bd04effe 00000100 F.O............. + 0070 00000100 01000000 00000100 01000000 ................ + 0080 3f000000 00000000 04000000 01000000 ?............... + 0090 00000000 00000000 00000000 80040000 ................ + 00a0 01005300 74007200 69006e00 67004600 ..S.t.r.i.n.g.F. + 00b0 69006c00 65004900 6e006600 6f000000 i.l.e.I.n.f.o... + 00c0 28020000 01003000 34003000 39003000 (.....0.4.0.9.0. + 00d0 34006200 30000000 32000900 01004300 4.b.0...2.....C. + 00e0 6f006d00 70006100 6e007900 4e006100 o.m.p.a.n.y.N.a. + 00f0 6d006500 00000000 62006900 6e007500 m.e.....b.i.n.u. + 0100 74006900 6c007300 00000000 42000d00 t.i.l.s.....B... + 0110 01004600 69006c00 65004400 65007300 ..F.i.l.e.D.e.s. + 0120 63007200 69007000 74006900 6f006e00 c.r.i.p.t.i.o.n. + 0130 00000000 52004300 20006300 6f006d00 ....R.C. .c.o.m. + 0140 70006900 6c006500 72002e00 00000000 p.i.l.e.r....... + 0150 30000800 01004600 69006c00 65005600 0.....F.i.l.e.V. + 0160 65007200 73006900 6f006e00 00000000 e.r.s.i.o.n..... + 0170 31002e00 30002e00 30002e00 31000000 1...0...0...1... + 0180 38000c00 01004900 6e007400 65007200 8.....I.n.t.e.r. + 0190 6e006100 6c004e00 61006d00 65000000 n.a.l.N.a.m.e... + 01a0 77006900 6e006400 72006500 73002e00 w.i.n.d.r.e.s... + 01b0 65007800 65000000 68002200 01004c00 e.x.e...h."...L. + 01c0 65006700 61006c00 43006f00 70007900 e.g.a.l.C.o.p.y. + 01d0 72006900 67006800 74000000 28006300 r.i.g.h.t...(.c. + 01e0 29002000 46005300 46002e00 20004100 ). .F.S.F... .A. + 01f0 6c006c00 20007200 69006700 68007400 l.l. .r.i.g.h.t. + 0200 73002000 61007200 65002000 72006500 s. .a.r.e. .r.e. + 0210 73006500 72007600 65006400 2e000000 s.e.r.v.e.d..... + 0220 40000c00 01004f00 72006900 67006900 @.....O.r.i.g.i. + 0230 6e006100 6c004600 69006c00 65006e00 n.a.l.F.i.l.e.n. + 0240 61006d00 65000000 77006900 6e006400 a.m.e...w.i.n.d. + 0250 72006500 73002e00 65007800 65000000 r.e.s...e.x.e... + 0260 54001a00 01005000 72006f00 64007500 T.....P.r.o.d.u. + 0270 63007400 4e006100 6d006500 00000000 c.t.N.a.m.e..... + 0280 77006900 6e006400 6f007700 73002000 w.i.n.d.o.w.s. . + 0290 72006500 73006f00 75007200 63006500 r.e.s.o.u.r.c.e. + 02a0 20006300 6f006d00 70006900 6c006500 .c.o.m.p.i.l.e. + 02b0 72000000 34000800 01005000 72006f00 r...4.....P.r.o. + 02c0 64007500 63007400 56006500 72007300 d.u.c.t.V.e.r.s. + 02d0 69006f00 6e000000 31002e00 30002e00 i.o.n...1...0... + 02e0 30002e00 31000000 34020000 01003000 0...1...4.....0. + 02f0 34003100 35003000 34006200 30000000 4.1.5.0.4.b.0... + 0300 32000900 01004300 6f006d00 70006100 2.....C.o.m.p.a. + 0310 6e007900 4e006100 6d006500 00000000 n.y.N.a.m.e..... + 0320 62006900 6e007500 74006900 6c007300 b.i.n.u.t.i.l.s. + 0330 00000000 46000f00 01004600 69006c00 ....F.....F.i.l. + 0340 65004400 65007300 63007200 69007000 e.D.e.s.c.r.i.p. + 0350 74006900 6f006e00 00000000 4b006f00 t.i.o.n.....K.o. + 0360 6d007000 69006c00 61007400 6f007200 m.p.i.l.a.t.o.r. + 0370 20005200 43002e00 00000000 30000800 .R.C.......0... + 0380 01004600 69006c00 65005600 65007200 ..F.i.l.e.V.e.r. + 0390 73006900 6f006e00 00000000 31002e00 s.i.o.n.....1... + 03a0 30002e00 30002e00 31000000 38000c00 0...0...1...8... + 03b0 01004900 6e007400 65007200 6e006100 ..I.n.t.e.r.n.a. + 03c0 6c004e00 61006d00 65000000 77006900 l.N.a.m.e...w.i. + 03d0 6e006400 72006500 73002e00 65007800 n.d.r.e.s...e.x. + 03e0 65000000 70002600 01004c00 65006700 e...p.&...L.e.g. + 03f0 61006c00 43006f00 70007900 72006900 a.l.C.o.p.y.r.i. + 0400 67006800 74000000 28006300 29002000 g.h.t...(.c.). . + 0410 46005300 46002e00 20005700 73007a00 F.S.F... .W.s.z. + 0420 79007300 74006b00 69006500 20007000 y.s.t.k.i.e. .p. + 0430 72006100 77006100 20007a00 61007300 r.a.w.a. .z.a.s. + 0440 74007200 7a006500 7a006f00 6e006500 t.r.z.e.z.o.n.e. + 0450 2e000000 40000c00 01004f00 72006900 ....@.....O.r.i. + 0460 67006900 6e006100 6c004600 69006c00 g.i.n.a.l.F.i.l. + 0470 65006e00 61006d00 65000000 77006900 e.n.a.m.e...w.i. + 0480 6e006400 72006500 73002e00 65007800 n.d.r.e.s...e.x. + 0490 65000000 54001a00 01005000 72006f00 e...T.....P.r.o. + 04a0 64007500 63007400 4e006100 6d006500 d.u.c.t.N.a.m.e. + 04b0 00000000 77006900 6e006400 6f007700 ....w.i.n.d.o.w. + 04c0 73002000 72006500 73006f00 75007200 s. .r.e.s.o.u.r. + 04d0 63006500 20006300 6f006d00 70006900 c.e. .c.o.m.p.i. + 04e0 6c006500 72000000 34000800 01005000 l.e.r...4.....P. + 04f0 72006f00 64007500 63007400 56006500 r.o.d.u.c.t.V.e. + 0500 72007300 69006f00 6e000000 31002e00 r.s.i.o.n...1... + 0510 30002e00 30002e00 31000000 48000000 0...0...1...H... + 0520 01005600 61007200 46006900 6c006500 ..V.a.r.F.i.l.e. + 0530 49006e00 66006f00 00000000 28000800 I.n.f.o.....(... + 0540 00005400 72006100 6e007300 6c006100 ..T.r.a.n.s.l.a. + 0550 74006900 6f006e00 00000000 0904b004 t.i.o.n......... + 0560 1504b004 .... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/version_small.rc b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_small.rc new file mode 100755 index 00000000..add98551 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_small.rc @@ -0,0 +1,32 @@ +#include "windows.h" + +LANGUAGE LANG_GERMAN, SUBLANG_GERMAN + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,1 + PRODUCTVERSION 1,1 + FILEFLAGSMASK 0x3fL + FILEFLAGS 0x0L + FILEOS 0x4L + FILETYPE 0x1L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040704e4" + BEGIN + VALUE L"CompanyName", L"binutil\x0073" + VALUE "FileDescription", "RC compiler." + VALUE "FileVersion", "1.0.1.0" + VALUE "InternalName", "windres.exe" + VALUE "LegalCopyright", "(c) FSF. All rights are reserved." + VALUE "OriginalFilename", "windres.exe" + VALUE "ProductName", "windows resource compiler" + VALUE "ProductVersion", "1.1.0.0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x407, 1252 + END +END diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/version_small.rsd b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_small.rsd new file mode 100755 index 00000000..141ddb14 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/version_small.rsd @@ -0,0 +1,51 @@ + 0000 00000000 20000000 ffff0000 ffff0000 .... ........... + 0010 00000000 00000000 00000000 00000000 ................ + 0020 ec020000 20000000 ffff1000 ffff0100 .... ........... + 0030 00000000 00000704 00000000 00000000 ................ + 0040 ec023400 00005600 53005f00 56004500 ..4...V.S._.V.E. + 0050 52005300 49004f00 4e005f00 49004e00 R.S.I.O.N._.I.N. + 0060 46004f00 00000000 bd04effe 00000100 F.O............. + 0070 00000100 00000100 01000100 00000000 ................ + 0080 3f000000 00000000 04000000 01000000 ?............... + 0090 00000000 00000000 00000000 4c020000 ............L... + 00a0 01005300 74007200 69006e00 67004600 ..S.t.r.i.n.g.F. + 00b0 69006c00 65004900 6e006600 6f000000 i.l.e.I.n.f.o... + 00c0 28020000 01003000 34003000 37003000 (.....0.4.0.7.0. + 00d0 34006500 34000000 32000900 01004300 4.e.4...2.....C. + 00e0 6f006d00 70006100 6e007900 4e006100 o.m.p.a.n.y.N.a. + 00f0 6d006500 00000000 62006900 6e007500 m.e.....b.i.n.u. + 0100 74006900 6c007300 00000000 42000d00 t.i.l.s.....B... + 0110 01004600 69006c00 65004400 65007300 ..F.i.l.e.D.e.s. + 0120 63007200 69007000 74006900 6f006e00 c.r.i.p.t.i.o.n. + 0130 00000000 52004300 20006300 6f006d00 ....R.C. .c.o.m. + 0140 70006900 6c006500 72002e00 00000000 p.i.l.e.r....... + 0150 30000800 01004600 69006c00 65005600 0.....F.i.l.e.V. + 0160 65007200 73006900 6f006e00 00000000 e.r.s.i.o.n..... + 0170 31002e00 30002e00 31002e00 30000000 1...0...1...0... + 0180 38000c00 01004900 6e007400 65007200 8.....I.n.t.e.r. + 0190 6e006100 6c004e00 61006d00 65000000 n.a.l.N.a.m.e... + 01a0 77006900 6e006400 72006500 73002e00 w.i.n.d.r.e.s... + 01b0 65007800 65000000 68002200 01004c00 e.x.e...h."...L. + 01c0 65006700 61006c00 43006f00 70007900 e.g.a.l.C.o.p.y. + 01d0 72006900 67006800 74000000 28006300 r.i.g.h.t...(.c. + 01e0 29002000 46005300 46002e00 20004100 ). .F.S.F... .A. + 01f0 6c006c00 20007200 69006700 68007400 l.l. .r.i.g.h.t. + 0200 73002000 61007200 65002000 72006500 s. .a.r.e. .r.e. + 0210 73006500 72007600 65006400 2e000000 s.e.r.v.e.d..... + 0220 40000c00 01004f00 72006900 67006900 @.....O.r.i.g.i. + 0230 6e006100 6c004600 69006c00 65006e00 n.a.l.F.i.l.e.n. + 0240 61006d00 65000000 77006900 6e006400 a.m.e...w.i.n.d. + 0250 72006500 73002e00 65007800 65000000 r.e.s...e.x.e... + 0260 54001a00 01005000 72006f00 64007500 T.....P.r.o.d.u. + 0270 63007400 4e006100 6d006500 00000000 c.t.N.a.m.e..... + 0280 77006900 6e006400 6f007700 73002000 w.i.n.d.o.w.s. . + 0290 72006500 73006f00 75007200 63006500 r.e.s.o.u.r.c.e. + 02a0 20006300 6f006d00 70006900 6c006500 .c.o.m.p.i.l.e. + 02b0 72000000 34000800 01005000 72006f00 r...4.....P.r.o. + 02c0 64007500 63007400 56006500 72007300 d.u.c.t.V.e.r.s. + 02d0 69006f00 6e000000 31002e00 31002e00 i.o.n...1...1... + 02e0 30002e00 30000000 44000000 01005600 0...0...D.....V. + 02f0 61007200 46006900 6c006500 49006e00 a.r.F.i.l.e.I.n. + 0300 66006f00 00000000 24000400 00005400 f.o.....$.....T. + 0310 72006100 6e007300 6c006100 74006900 r.a.n.s.l.a.t.i. + 0320 6f006e00 00000000 0704e404 o.n......... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/windres/windres.exp b/binutils-2.25/binutils/testsuite/binutils-all/windres/windres.exp new file mode 100644 index 00000000..2ef73ffe --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/windres/windres.exp @@ -0,0 +1,141 @@ +# Copyright 2001, 2003, 2004, 2006, 2007, 2009 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 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. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-dejagnu@prep.ai.mit.edu + +# Written by DJ Delorie <dj@redhat.com> + +if {![istarget "i*86-*-*"] && ![istarget "x86_64-*-mingw*"] } { + return +} + +if {![info exists WINDRES]} then { + return +} + +if {[which $WINDRES] == 0} then { + return +} + +set wr "$WINDRES --include-dir $srcdir/$subdir" + +if [file exists "$srcdir/../../winsup/w32api/include"] { + set wr "$wr --include-dir $srcdir/../../winsup/w32api/include" +} else { + send_log "\nWarning: Assuming windres can find the win32 headers\n\n" +} + +set res_list [lsort [glob -nocomplain $srcdir/$subdir/*.rc]] + +proc oneline { file } { + while { 1 } { + if { [gets $file line] == -1 } { + return "" + } + if [regexp "^ \[0-9a-z\]\[0-9a-z\]* " $line] { + return $line + } + } +} + +foreach res $res_list { + set sroot [file rootname $res] + set broot [file tail $sroot] + set done 0 + set cpp_opts "" + + set rc [open $res] + while { [gets $rc line] != -1 } { + if ![regexp "^(//|/\*|#)" $line] { + break + } + if [regexp "\[xp\]fail *(\[^ \]*)" $line junk sys] { + setup_xfail $sys + continue + } + if [regexp "cpparg *(\[^ \]*)" $line junk cppopt] { + set cpp_opts "--preprocessor-arg \"$cppopt\"" + continue + } + } + + verbose "$wr -J rc -O res $res tmpdir/$broot.res" 1 + catch "exec $wr $cpp_opts -J rc -O res $res tmpdir/$broot.res" err + + if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + if [string match "*windows.h: No such file*" $err] then { + unsupported "windres/$broot (parse)" + } else { + fail "windres/$broot (parse)" + } + continue + } + pass "windres/$broot (parse)" + + set rc [open $res] + while { [gets $rc line] != -1 } { + if ![regexp "^(//|/\*|#)" $line] { + break + } + if [regexp "parse-only" $line] { + file delete "tmpdir/$broot.res" + set done 1 + break + } + if [regexp "\[xc\]fail *(\[^ \]*)" $line junk sys] { + setup_xfail $sys + continue + } + } + if { $done != 0 } { + continue + } + + verbose "$OBJDUMP -b binary -s tmpdir/$broot.res > tmpdir/$broot.dump" 1 + catch "exec $OBJDUMP -b binary -s tmpdir/$broot.res > tmpdir/$broot.dump" err + + if ![string match "" $err] then { + send_log "$err\n" + verbose "$err" 1 + fail "windres/$broot (compare)" + continue + } + + set pat [open "$sroot.rsd"] + set out [open "tmpdir/$broot.dump"] + set patline "foo" + + while { ![string match $patline ""] } { + set patline [oneline $pat] + set outline [oneline $out] + + if ![string match $patline $outline] { + send_log "< $patline\n" + send_log "> $outline\n" + fail "windres/$broot (compare)" + set done 1 + break + } + } + if { $done == 0 } { + pass "windres/$broot (compare)" + file delete "tmpdir/$broot.res" + file delete "tmpdir/$broot.dump" + } +} diff --git a/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1.s b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1.s new file mode 100644 index 00000000..e0ffc82b --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1.s @@ -0,0 +1,142 @@ + .file "compressed-1.c" + .section .debug_abbrev,"",@progbits +.Ldebug_abbrev0: + .section .debug_info,"",@progbits +.Ldebug_info0: + .section .debug_line,"",@progbits +.Ldebug_line0: + .text +.Ltext0: + .cfi_sections .debug_frame + .p2align 4,,15 +.globl foo2 + .type foo2, @function +foo2: +.LFB1: + .file 1 "compressed-1.c" + .loc 1 11 0 + .cfi_startproc + .loc 1 12 0 + rep + ret + .cfi_endproc +.LFE1: + .size foo2, .-foo2 + .p2align 4,,15 +.globl foo1 + .type foo1, @function +foo1: +.LFB0: + .loc 1 5 0 + .cfi_startproc + .loc 1 6 0 + jmp bar + .cfi_endproc +.LFE0: + .size foo1, .-foo1 +.Letext0: + .section .debug_info + .long 0x5e + .value 0x3 + .long .Ldebug_abbrev0 + .byte 0x8 + .uleb128 0x1 + .long .LASF2 + .byte 0x1 + .long .LASF3 + .long .LASF4 + .quad .Ltext0 + .quad .Letext0 + .long .Ldebug_line0 + .uleb128 0x2 + .byte 0x1 + .long .LASF0 + .byte 0x1 + .byte 0xa + .quad .LFB1 + .quad .LFE1 + .byte 0x1 + .byte 0x9c + .uleb128 0x2 + .byte 0x1 + .long .LASF1 + .byte 0x1 + .byte 0x4 + .quad .LFB0 + .quad .LFE0 + .byte 0x1 + .byte 0x9c + .byte 0x0 + .section .debug_abbrev + .uleb128 0x1 + .uleb128 0x11 + .byte 0x1 + .uleb128 0x25 + .uleb128 0xe + .uleb128 0x13 + .uleb128 0xb + .uleb128 0x3 + .uleb128 0xe + .uleb128 0x1b + .uleb128 0xe + .uleb128 0x11 + .uleb128 0x1 + .uleb128 0x12 + .uleb128 0x1 + .uleb128 0x10 + .uleb128 0x6 + .byte 0x0 + .byte 0x0 + .uleb128 0x2 + .uleb128 0x2e + .byte 0x0 + .uleb128 0x3f + .uleb128 0xc + .uleb128 0x3 + .uleb128 0xe + .uleb128 0x3a + .uleb128 0xb + .uleb128 0x3b + .uleb128 0xb + .uleb128 0x11 + .uleb128 0x1 + .uleb128 0x12 + .uleb128 0x1 + .uleb128 0x40 + .uleb128 0xa + .byte 0x0 + .byte 0x0 + .byte 0x0 + .section .debug_pubnames,"",@progbits + .long 0x20 + .value 0x2 + .long .Ldebug_info0 + .long 0x62 + .long 0x2d + .string "foo2" + .long 0x47 + .string "foo1" + .long 0x0 + .section .debug_aranges,"",@progbits + .long 0x2c + .value 0x2 + .long .Ldebug_info0 + .byte 0x8 + .byte 0x0 + .value 0x0 + .value 0x0 + .quad .Ltext0 + .quad .Letext0-.Ltext0 + .quad 0x0 + .quad 0x0 + .section .debug_str,"MS",@progbits,1 +.LASF2: + .string "GNU C 4.4.4" +.LASF0: + .string "foo2" +.LASF1: + .string "foo1" +.LASF4: + .string "." +.LASF3: + .string "compressed-1.c" diff --git a/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1a.d b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1a.d new file mode 100644 index 00000000..f1e4bbcd --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1a.d @@ -0,0 +1,157 @@ +#PROG: objcopy +#source: compressed-1.s +#as: --64 --compress-debug-sections +#objcopy: +#readelf: -w +#name: objcopy on compressed debug sections + +Contents of the .[z]?debug_abbrev section: + + Number TAG \(0x0\) + 1 DW_TAG_compile_unit \[has children\] + DW_AT_producer DW_FORM_strp + DW_AT_language DW_FORM_data1 + DW_AT_name DW_FORM_strp + DW_AT_comp_dir DW_FORM_strp + DW_AT_low_pc DW_FORM_addr + DW_AT_high_pc DW_FORM_addr + DW_AT_stmt_list DW_FORM_data4 + DW_AT value: 0 DW_FORM value: 0 + 2 DW_TAG_subprogram \[no children\] + DW_AT_external DW_FORM_flag + DW_AT_name DW_FORM_strp + DW_AT_decl_file DW_FORM_data1 + DW_AT_decl_line DW_FORM_data1 + DW_AT_low_pc DW_FORM_addr + DW_AT_high_pc DW_FORM_addr + DW_AT_frame_base DW_FORM_block1 + DW_AT value: 0 DW_FORM value: 0 + +Contents of the .[z]?debug_info section: + + Compilation Unit @ offset 0x0: + Length: 0x5e \(32-bit\) + Version: 3 + Abbrev Offset: 0x0 + Pointer Size: 8 + <0><b>: Abbrev Number: 1 \(DW_TAG_compile_unit\) + <c> DW_AT_producer : \(indirect string, offset: 0x0\): GNU C 4.4.4 + <10> DW_AT_language : 1 \(ANSI C\) + <11> DW_AT_name : \(indirect string, offset: 0x18\): compressed-1.c + <15> DW_AT_comp_dir : \(indirect string, offset: 0x16\): . + <19> DW_AT_low_pc : 0x0 + <21> DW_AT_high_pc : 0x15 + <29> DW_AT_stmt_list : 0x0 + <1><2d>: Abbrev Number: 2 \(DW_TAG_subprogram\) + <2e> DW_AT_external : 1 + <2f> DW_AT_name : \(indirect string, offset: 0xc\): foo2 + <33> DW_AT_decl_file : 1 + <34> DW_AT_decl_line : 10 + <35> DW_AT_low_pc : 0x0 + <3d> DW_AT_high_pc : 0x2 + <45> DW_AT_frame_base : 1 byte block: 9c \(DW_OP_call_frame_cfa\) + <1><47>: Abbrev Number: 2 \(DW_TAG_subprogram\) + <48> DW_AT_external : 1 + <49> DW_AT_name : \(indirect string, offset: 0x11\): foo1 + <4d> DW_AT_decl_file : 1 + <4e> DW_AT_decl_line : 4 + <4f> DW_AT_low_pc : 0x10 + <57> DW_AT_high_pc : 0x15 + <5f> DW_AT_frame_base : 1 byte block: 9c \(DW_OP_call_frame_cfa\) + <1><61>: Abbrev Number: 0 + +Raw dump of debug contents of section .[z]?debug_line: + + Offset: 0x0 + Length: 67 + DWARF Version: 2 + Prologue Length: 37 + Minimum Instruction Length: 1 + Initial value of 'is_stmt': 1 + Line Base: -5 + Line Range: 14 + Opcode Base: 13 + + Opcodes: + Opcode 1 has 0 args + Opcode 2 has 1 args + Opcode 3 has 1 args + Opcode 4 has 1 args + Opcode 5 has 1 args + Opcode 6 has 0 args + Opcode 7 has 0 args + Opcode 8 has 0 args + Opcode 9 has 1 args + Opcode 10 has 0 args + Opcode 11 has 0 args + Opcode 12 has 1 args + + The Directory Table is empty. + + The File Name Table \(offset 0x.*\): + Entry Dir Time Size Name + 1 0 0 0 compressed-1.c + + Line Number Statements: + \[0x.*\] Extended opcode 2: set Address to 0x0 + \[0x.*\] Advance Line by 10 to 11 + \[0x.*\] Copy + \[0x.*\] Special opcode 6: advance Address by 0 to 0x0 and Line by 1 to 12 + \[0x.*\] Advance Line by -7 to 5 + \[0x.*\] Special opcode 229: advance Address by 16 to 0x10 and Line by 0 to 5 + \[0x.*\] Special opcode 6: advance Address by 0 to 0x10 and Line by 1 to 6 + \[0x.*\] Advance PC by 5 to 0x15 + \[0x.*\] Extended opcode 1: End of Sequence + + +Contents of the .[z]?debug_pubnames section: + + Length: 32 + Version: 2 + Offset into .[z]?debug_info section: 0x0 + Size of area in .[z]?debug_info section: 98 + + Offset Name + 2d foo2 + 47 foo1 + +Contents of the .[z]?debug_aranges section: + + Length: 44 + Version: 2 + Offset into .[z]?debug_info: 0x0 + Pointer Size: 8 + Segment Size: 0 + + Address Length + 0000000000000000 0000000000000015 + 0000000000000000 0000000000000000 + +Contents of the .[z]?debug_str section: + + 0x00000000 474e5520 4320342e 342e3400 666f6f32 GNU C 4.4.4.foo2 + 0x00000010 00666f6f 31002e00 636f6d70 72657373 .foo1...compress + 0x00000020 65642d31 2e6300 ed-1.c. + +Contents of the .[z]?debug_frame section: + +00000000 0+014 ffffffff CIE + Version: 1 + Augmentation: "" + Code alignment factor: 1 + Data alignment factor: -8 + Return address column: 16 + + DW_CFA_def_cfa: r7 \(rsp\) ofs 8 + DW_CFA_offset: r16 \(rip\) at cfa-8 + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + DW_CFA_nop + +00000018 0+014 00000000 FDE cie=00000000 pc=0+0000..0+0002 + +00000030 0+014 00000000 FDE cie=00000000 pc=0+0010..0+0015 + diff --git a/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1b.d b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1b.d new file mode 100644 index 00000000..ed5a45ed --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1b.d @@ -0,0 +1,18 @@ +#PROG: strip +#source: compressed-1.s +#as: --64 +#strip: +#readelf: -S --wide +#name: strip on uncompressed debug sections + +There are 5 section headers, starting at offset 0x78: + +Section Headers: + \[Nr\] Name Type Address Off Size ES Flg Lk Inf Al + \[ 0\] NULL 0000000000000000 000000 000000 00 0 0 0 + \[ 1\] .text PROGBITS 0000000000000000 000040 000015 00 AX 0 0 16 + \[ 2\] .data PROGBITS 0000000000000000 000055 000000 00 WA 0 0 1 + \[ 3\] .bss NOBITS 0000000000000000 000055 000000 00 WA 0 0 1 + \[ 4\] .shstrtab STRTAB 0000000000000000 000055 00001c 00 0 0 1 +Key to Flags: +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1c.d b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1c.d new file mode 100644 index 00000000..a0308c89 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/compressed-1c.d @@ -0,0 +1,18 @@ +#PROG: strip +#source: compressed-1.s +#as: --64 --compress-debug-sections +#strip: +#readelf: -S --wide +#name: strip on compressed debug sections + +There are 5 section headers, starting at offset 0x78: + +Section Headers: + \[Nr\] Name Type Address Off Size ES Flg Lk Inf Al + \[ 0\] NULL 0000000000000000 000000 000000 00 0 0 0 + \[ 1\] .text PROGBITS 0000000000000000 000040 000015 00 AX 0 0 16 + \[ 2\] .data PROGBITS 0000000000000000 000055 000000 00 WA 0 0 1 + \[ 3\] .bss NOBITS 0000000000000000 000055 000000 00 WA 0 0 1 + \[ 4\] .shstrtab STRTAB 0000000000000000 000055 00001c 00 0 0 1 +Key to Flags: +#... diff --git a/binutils-2.25/binutils/testsuite/binutils-all/x86-64/x86-64.exp b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/x86-64.exp new file mode 100644 index 00000000..ccabc635 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/x86-64/x86-64.exp @@ -0,0 +1,34 @@ +# Copyright 2010, 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 +# 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. + +if {!([istarget "x86_64-*-linux*"] + || [istarget "x86_64-*-nacl*"]) + || [is_remote host]} { + return +} + +global tempfile +global copyfile +set tempfile tmpdir/x86-64temp.o +set copyfile tmpdir/x86-64copy + +set test_list [lsort [glob -nocomplain $srcdir/$subdir/*.d]] +foreach t $test_list { + # We need to strip the ".d", but can leave the dirname. + verbose [file rootname $t] + run_dump_test [file rootname $t] +} diff --git a/binutils-2.25/binutils/testsuite/config/default.exp b/binutils-2.25/binutils/testsuite/config/default.exp new file mode 100644 index 00000000..c5595a18 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/config/default.exp @@ -0,0 +1,135 @@ +# Copyright 1993, 1994, 1995, 1997, 1999, 2001, 2002, 2004, 2005, 2007, 2009 +# 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 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. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-dejagnu@prep.ai.mit.edu + +# This file was written by Rob Savoye. (rob@cygnus.com) + +load_lib utils-lib.exp + +if ![info exists NM] then { + set NM [findfile $base_dir/nm-new $base_dir/nm-new [transform nm]] +} +if ![info exists NMFLAGS] then { + set NMFLAGS "" +} +if ![info exists SIZE] then { + set SIZE [findfile $base_dir/size] +} +if ![info exists SIZEFLAGS] then { + set SIZEFLAGS "" +} +if ![info exists OBJDUMP] then { + set OBJDUMP [findfile $base_dir/objdump] +} +if ![info exists OBJDUMPFLAGS] then { + set OBJDUMPFLAGS "" +} +if ![info exists OBJCOPY] then { + set OBJCOPY [findfile $base_dir/objcopy] +} +if ![info exists OBJCOPYFLAGS] then { + set OBJCOPYFLAGS "" +} +if ![info exists AR] then { + set AR [findfile $base_dir/ar] +} +if ![info exists STRIP] then { + set STRIP [findfile $base_dir/strip-new $base_dir/strip-new [transform strip]] +} +if ![info exists STRIPFLAGS] then { + set STRIPFLAGS "" +} +if ![info exists READELF] then { + set READELF [findfile $base_dir/readelf] +} +if ![info exists READELFFLAGS] then { + set READELFFLAGS "" +} +if ![info exists ELFEDIT] then { + set ELFEDIT [findfile $base_dir/elfedit] +} +if ![info exists ELFEDITFLAGS] then { + set ELFEDITFLAGS "" +} +if ![info exists WINDRES] then { + set WINDRES [findfile $base_dir/windres] +} +if ![info exists DLLTOOL] then { + set DLLTOOL [findfile $base_dir/dlltool] +} + +if ![file isdirectory tmpdir] {catch "exec mkdir tmpdir" status} + +# Make a copy from tmpdir/gas/as and tmpdir/gas/ld to the assembler +# and linker in the build tree, so that we can use a -B option to gcc +# to force it to use the newly built assembler/linker. +if {![file isdirectory tmpdir/gas]} {catch "exec mkdir tmpdir/gas" status} + +proc link_or_copy { src dst } { + if ![catch "exec ln -sf ../../../$src tmpdir/gas/$dst" status] then {return 0} + if ![catch "exec ln -f ../$src tmpdir/gas/$dst" status] then {return 0} + catch "exec cp -fpu ../$src tmpdir/gas/$dst" status +} + +if {[file isfile gas/as-new[exe_ext]]} then { + link_or_copy gas/as-new[exe_ext] as[exe_ext] +} else { + # For non-Windows hosts there may be an executable + # without a .exe suffix, so try copying that instead. + link_or_copy gas/as-new as[exe_ext] +} +# This may not be needed any more... +if {[file isfile ld/ld-new[exe_ext]]} then { + link_or_copy ld/ld-new[exe_ext] ld[exe_ext] +} else { + link_or_copy ld/ld-new ld[exe_ext] +} +if {[file isfile tmpdir/gas/as[exe_ext]]} then { + set gcc_gas_flag "-B[pwd]/tmpdir/gas/" + set dlltool_gas_flag "-S [pwd]/tmpdir/gas/as[exe_ext]" +} else { + # Testing an installed toolchain. + set gcc_gas_flag "" + set dlltool_gas_flag "" +} + +# +# binutils_run +# run a program, returning the output +# sets binutils_run_failed if the program does not exist +# +proc binutils_run { prog progargs } { + default_binutils_run $prog $progargs +} + +# +# binutils_assemble +# assemble a file +# +proc binutils_assemble { source object } { + default_binutils_assemble_flags $source $object "" +} + +# +# binutils_assemble_flags +# assemble a file +# +proc binutils_assemble_flags { source object asflags } { + default_binutils_assemble_flags $source $object $asflags +} diff --git a/binutils-2.25/binutils/testsuite/config/hppa.sed b/binutils-2.25/binutils/testsuite/config/hppa.sed new file mode 100644 index 00000000..5b1b808f --- /dev/null +++ b/binutils-2.25/binutils/testsuite/config/hppa.sed @@ -0,0 +1,4 @@ +s/# Old OSF sed blows up if you have a sed command starting with "#"// +s/# Avoid it by putting the comments within real sed commands.// +s/# Fix the definition of common_symbol to be correct for the PA assemblers.// +s/ \.comm common_symbol,4/common_symbol .comm 4/ diff --git a/binutils-2.25/binutils/testsuite/lib/binutils-common.exp b/binutils-2.25/binutils/testsuite/lib/binutils-common.exp new file mode 100644 index 00000000..af0040ec --- /dev/null +++ b/binutils-2.25/binutils/testsuite/lib/binutils-common.exp @@ -0,0 +1,342 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2003, 2004, 2006, 2007, +# 2009, 2010, 2011, 2012 Free Software Foundation, Inc. +# +# This file is part of the GNU Binutils. +# +# 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 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. + +# True if the object format is known to be ELF. +# +proc is_elf_format {} { + if { ![istarget *-*-sysv4*] + && ![istarget *-*-unixware*] + && ![istarget *-*-elf*] + && ![istarget *-*-eabi*] + && ![istarget *-*-rtems*] + && ![istarget hppa*64*-*-hpux*] + && ![istarget ia64-*-hpux*] + && ![istarget *-*-linux*] + && ![istarget *-*-gnu*] + && ![istarget *-*-nacl*] + && ![istarget frv-*-uclinux*] + && ![istarget bfin-*-uclinux] + && ![istarget sh*-*-uclinux*] + && ![istarget tic6x*-*-uclinux*] + && ![istarget *-*-irix5*] + && ![istarget *-*-irix6*] + && ![istarget *-*-netbsd*] + && ![istarget *-*-openbsd*] + && ![istarget *-*-solaris2*] } { + return 0 + } + + if { [istarget *-*-linux*aout*] + || [istarget *-*-linux*ecoff*] + || [istarget *-*-linux*oldld*] + || [istarget h8500-*-rtems*] + || [istarget i960-*-rtems*] + || [istarget *-*-rtemscoff*] } { + return 0 + } + + if { ![istarget *-*-netbsdelf*] + && ([istarget *-*-netbsd*aout*] + || [istarget *-*-netbsdpe*] + || [istarget arm*-*-netbsd*] + || [istarget sparc-*-netbsd*] + || [istarget i*86-*-netbsd*] + || [istarget m68*-*-netbsd*] + || [istarget vax-*-netbsd*] + || [istarget ns32k-*-netbsd*]) } { + return 0 + } + + if { [istarget arm-*-openbsd*] + || [istarget i386-*-openbsd\[0-2\].*] + || [istarget i386-*-openbsd3.\[0-2\]] + || [istarget m68*-*-openbsd*] + || [istarget ns32k-*-openbsd*] + || [istarget sparc-*-openbsd\[0-2\].*] + || [istarget sparc-*-openbsd3.\[0-1\]] + || [istarget vax-*-openbsd*] } { + return 0 + } + + return 1 +} + +# True if the object format is known to be a.out. +# +proc is_aout_format {} { + if { [istarget *-*-netbsdelf] + || [istarget sparc64-*-netbsd*] + || [istarget sparc64-*-openbsd*] } { + return 0 + } + if { [istarget *-*-*\[ab\]out*] + || [istarget *-*-linux*oldld*] + || [istarget *-*-bsd*] + || [istarget *-*-msdos*] + || [istarget arm-*-netbsd*] + || [istarget arm-*-openbsd*] + || [istarget arm-*-riscix*] + || [istarget i?86-*-freebsd\[12\]*] + || [istarget i?86-*-netbsd*] + || [istarget i?86-*-openbsd\[0-2\]*] + || [istarget i?86-*-openbsd3.\[0-2\]*] + || [istarget i?86-*-vsta] + || [istarget i?86-*-mach*] + || [istarget m68*-*-netbsd*] + || [istarget m68*-*-openbsd*] + || [istarget ns32k-*-*] + || [istarget pdp11-*-*] + || [istarget sparc*-*-sunos4*] + || [istarget sparc*-*-netbsd*] + || [istarget sparc*-*-openbsd\[0-2\]*] + || [istarget sparc*-*-openbsd3.\[0-1\]*] + || [istarget sparc*-fujitsu-none] + || [istarget vax-dec-ultrix*] + || [istarget vax-*-netbsd] } { + return 1 + } + return 0 +} + +# True if the object format is known to be PE COFF. +# +proc is_pecoff_format {} { + if { ![istarget *-*-mingw*] + && ![istarget *-*-cygwin*] + && ![istarget *-*-cegcc*] + && ![istarget *-*-pe*] } { + return 0 + } + + return 1 +} + +# True if the object format is known to be 64-bit ELF. +# +proc is_elf64 { binary_file } { + global READELF + global READELFFLAGS + + set readelf_size "" + catch "exec $READELF $READELFFLAGS -h $binary_file > readelf.out" got + + if ![string match "" $got] then { + return 0 + } + + if { ![regexp "\n\[ \]*Class:\[ \]*ELF(\[0-9\]+)\n" \ + [file_contents readelf.out] nil readelf_size] } { + return 0 + } + + if { $readelf_size == "64" } { + return 1 + } + + return 0 +} + +# True if the build supports zlib compression. +proc is_zlib_supported {} { + + # This replicates the AS selection logic of dejagnu's target_assemble. + global AS_FOR_TARGET + if [info exists AS_FOR_TARGET] { + set AS $AS_FOR_TARGET + } else { + if {![board_info target exists assembler]} { + set AS [find_gas] + } else { + set AS [board_info target assembler] + } + } + + set as_output [remote_exec host "$AS --help"] + + set have_zlib 0 + if {[string first "--compress-debug-sections" $as_output] >= 0} { + set have_zlib 1 + } + + return $have_zlib +} + +# Compare two files line-by-line. FILE_1 is the actual output and FILE_2 +# is the expected output. Ignore blank lines in either file. +# +# FILE_2 is a series of regexps, comments and # directives. The directives +# are: +# +# #pass +# Treat the test as a PASS if everything up till this point has +# matched. Ignore any remaining lines in either FILE_1 or FILE_2. +# +# #failif +# Reverse the sense of the test: expect differences to exist. +# +# #... +# REGEXP +# Skip all lines in FILE_1 until the first that matches REGEXP. +# +# Other # lines are comments. Regexp lines starting with the `!' character +# specify inverse matching (use `\!' for literal matching against a leading +# `!'). Skip empty lines in both files. +# +# The first optional argument is a list of regexp substitutions of the form: +# +# EXP1 SUBSPEC1 EXP2 SUBSPEC2 ... +# +# This tells the function to apply each regexp substitution EXPi->SUBSPECi +# in order to every line of FILE_2. +# +# Return nonzero if differences exist. +proc regexp_diff { file_1 file_2 args } { + set eof -1 + set end_1 0 + set end_2 0 + set differences 0 + set diff_pass 0 + set fail_if_match 0 + set ref_subst "" + if { [llength $args] > 0 } { + set ref_subst [lindex $args 0] + } + if { [llength $args] > 1 } { + perror "Too many arguments to regexp_diff" + return 1 + } + + if [file exists $file_1] then { + set file_a [open $file_1 r] + } else { + perror "$file_1 doesn't exist" + return 1 + } + + if [file exists $file_2] then { + set file_b [open $file_2 r] + } else { + perror "$file_2 doesn't exist" + close $file_a + return 1 + } + + verbose " Regexp-diff'ing: $file_1 $file_2" 2 + + while { 1 } { + set line_a "" + set line_b "" + while { [string length $line_a] == 0 } { + # Ignore blank line in FILE_1. + if { [gets $file_a line_a] == $eof } { + set end_1 1 + break + } + } + while { [string length $line_b] == 0 || [string match "#*" $line_b] } { + if { [string match "#pass" $line_b] } { + set end_2 1 + set diff_pass 1 + break + } elseif { [string match "#failif" $line_b] } { + send_log "fail if no difference\n" + verbose "fail if no difference" 3 + set fail_if_match 1 + } elseif { [string match "#..." $line_b] } { + if { [gets $file_b line_b] == $eof } { + set end_2 1 + set diff_pass 1 + break + } + set negated [expr { [string index $line_b 0] == "!" }] + set line_bx [string range $line_b $negated end] + set n [expr { $negated ? "! " : "" }] + # Substitute on the reference. + foreach {name value} $ref_subst { + regsub -- $name $line_bx $value line_bx + } + verbose "looking for $n\"^$line_bx$\"" 3 + while { [expr [regexp "^$line_bx$" "$line_a"] == $negated] } { + verbose "skipping \"$line_a\"" 3 + if { [gets $file_a line_a] == $eof } { + set end_1 1 + break + } + } + break + } + if { [gets $file_b line_b] == $eof } { + set end_2 1 + break + } + } + + if { $diff_pass } { + break + } elseif { $end_1 && $end_2 } { + break + } elseif { $end_1 } { + send_log "extra regexps in $file_2 starting with \"^$line_b$\"\nEOF from $file_1\n" + verbose "extra regexps in $file_2 starting with \"^$line_b$\"\nEOF from $file_1" 3 + set differences 1 + break + } elseif { $end_2 } { + send_log "extra lines in $file_1 starting with \"^$line_a$\"\nEOF from $file_2\n" + verbose "extra lines in $file_1 starting with \"^$line_a$\"\nEOF from $file_2\n" 3 + set differences 1 + break + } else { + set negated [expr { [string index $line_b 0] == "!" }] + set line_bx [string range $line_b $negated end] + set n [expr { $negated ? "! " : "" }] + set s [expr { $negated ? " " : "" }] + # Substitute on the reference. + foreach {name value} $ref_subst { + regsub -- $name $line_bx $value line_bx + } + verbose "regexp $n\"^$line_bx$\"\nline \"$line_a\"" 3 + if { [expr [regexp "^$line_bx$" "$line_a"] == $negated] } { + send_log "regexp_diff match failure\n" + send_log "regexp $n\"^$line_bx$\"\nline $s\"$line_a\"\n" + verbose "regexp_diff match failure\n" 3 + set differences 1 + } + } + } + + if { $differences == 0 && !$diff_pass && [eof $file_a] != [eof $file_b] } { + send_log "$file_1 and $file_2 are different lengths\n" + verbose "$file_1 and $file_2 are different lengths" 3 + set differences 1 + } + + if { $fail_if_match } { + if { $differences == 0 } { + set differences 1 + } else { + set differences 0 + } + } + + close $file_a + close $file_b + + return $differences +} diff --git a/binutils-2.25/binutils/testsuite/lib/utils-lib.exp b/binutils-2.25/binutils/testsuite/lib/utils-lib.exp new file mode 100644 index 00000000..3fe6c14b --- /dev/null +++ b/binutils-2.25/binutils/testsuite/lib/utils-lib.exp @@ -0,0 +1,558 @@ +# Copyright 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2003, 2004, 2006, 2007, +# 2009, 2010, 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 +# 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. + +# Please email any bugs, comments, and/or additions to this file to: +# bug-dejagnu@prep.ai.mit.edu + +# This file was written by Rob Savoye <rob@cygnus.com> +# and extended by Ian Lance Taylor <ian@cygnus.com> + +proc load_common_lib { name } { + load_lib $name +} + +load_common_lib binutils-common.exp + +proc binutil_version { prog } { + if ![is_remote host] { + set path [which $prog] + if {$path == 0} then { + perror "$prog can't be run, file not found." + return "" + } + } else { + set path $prog + } + set state [remote_exec host $prog --version] + set tmp "[lindex $state 1]\n" + # Should find a way to discard constant parts, keep whatever's + # left, so the version string could be almost anything at all... + regexp "\[^\n\]* (cygnus-|)(\[-0-9.a-zA-Z-\]+)\[\r\n\].*" "$tmp" version cyg number + if ![info exists number] then { + return "$path (no version number)\n" + } + return "$path $number\n" +} + +# +# default_binutils_run +# run a program, returning the output +# sets binutils_run_failed if the program does not exist +# +proc default_binutils_run { prog progargs } { + global binutils_run_failed + global host_triplet + + set binutils_run_failed 0 + + if ![is_remote host] { + if {[which $prog] == 0} then { + perror "$prog does not exist" + set binutils_run_failed 1 + return "" + } + } + + send_log "$prog $progargs\n" + verbose "$prog $progargs" + + # Gotta quote dollar-signs because they get mangled by the + # shell otherwise. + regsub -all "\\$" "$progargs" "\\$" progargs + + set state [remote_exec host $prog $progargs] + set exec_output [prune_warnings [lindex $state 1]] + if {![string match "" $exec_output]} then { + send_log "$exec_output\n" + verbose "$exec_output" + } else { + if { [lindex $state 0] != 0 } { + set exec_output "$prog exited with status [lindex $state 0]" + send_log "$exec_output\n" + verbose "$exec_output" + } + } + return $exec_output +} + +# +# default_binutils_assemble_flags +# assemble a file +# +proc default_binutils_assemble_flags { source object asflags } { + global srcdir + global host_triplet + + # The HPPA assembler syntax is a little different than most, to make + # the test source file assemble we need to run it through sed. + # + # This is a hack in that it won't scale well if other targets need + # similar transformations to assemble. We'll generalize the hack + # if/when other targets need similar handling. + if { [istarget "hppa*-*-*"] && ![istarget "*-*-linux*" ] } then { + set sed_file $srcdir/config/hppa.sed + send_log "sed -f $sed_file < $source > asm.s\n" + verbose "sed -f $sed_file < $source > asm.s" + catch "exec sed -f $sed_file < $source > asm.s" + set source asm.s + } + + set exec_output [target_assemble $source $object $asflags] + set exec_output [prune_warnings $exec_output] + + if [string match "" $exec_output] { + return 1 + } else { + send_log "$exec_output\n" + verbose "$exec_output" + perror "$source: assembly failed" + return 0 + } +} + +# +# exe_ext +# Returns target executable extension, if any. +# +proc exe_ext {} { + if { [istarget *-*-mingw*] || [istarget *-*-cygwin*] } { + return ".exe" + } else { + return "" + } +} + +# Copied and modified from gas. + +# run_dump_test FILE (optional:) EXTRA_OPTIONS +# +# Assemble a .s file, then run some utility on it and check the output. +# +# There should be an assembly language file named FILE.s in the test +# suite directory, and a pattern file called FILE.d. `run_dump_test' +# will assemble FILE.s, run some tool like `objdump', `objcopy', or +# `nm' on the .o file to produce textual output, and then analyze that +# with regexps. The FILE.d file specifies what program to run, and +# what to expect in its output. +# +# The FILE.d file begins with zero or more option lines, which specify +# flags to pass to the assembler, the program to run to dump the +# assembler's output, and the options it wants. The option lines have +# the syntax: +# +# # OPTION: VALUE +# +# OPTION is the name of some option, like "name" or "objdump", and +# VALUE is OPTION's value. The valid options are described below. +# Whitespace is ignored everywhere, except within VALUE. The option +# list ends with the first line that doesn't match the above syntax. +# However, a line within the options that begins with a #, but doesn't +# have a recognizable option name followed by a colon, is considered a +# comment and entirely ignored. +# +# The optional EXTRA_OPTIONS argument to `run_dump_test' is a list of +# two-element lists. The first element of each is an option name, and +# the second additional arguments to be added on to the end of the +# option list as given in FILE.d. (If omitted, no additional options +# are added.) +# +# The interesting options are: +# +# name: TEST-NAME +# The name of this test, passed to DejaGNU's `pass' and `fail' +# commands. If omitted, this defaults to FILE, the root of the +# .s and .d files' names. +# +# as: FLAGS +# When assembling FILE.s, pass FLAGS to the assembler. +# +# PROG: PROGRAM-NAME +# The name of the program to run to analyze the .o file produced +# by the assembler. This can be omitted; run_dump_test will guess +# which program to run by seeing which of the flags options below +# is present. +# +# objdump: FLAGS +# nm: FLAGS +# objcopy: FLAGS +# Use the specified program to analyze the .o file, and pass it +# FLAGS, in addition to the .o file name. Note that they are run +# with LC_ALL=C in the environment to give consistent sorting +# of symbols. +# +# source: SOURCE +# Assemble the file SOURCE.s. If omitted, this defaults to FILE.s. +# This is useful if several .d files want to share a .s file. +# +# target: GLOBS... +# Run this test only on a specified list of targets. More precisely, +# each glob in the space-separated list is passed to "istarget"; if +# it evaluates true for any of them, the test will be run, otherwise +# it will be marked unsupported. +# +# not-target: GLOBS... +# Do not run this test on a specified list of targets. Again, +# the each glob in the space-separated list is passed to +# "istarget", and the test is run if it evaluates *false* for +# *all* of them. Otherwise it will be marked unsupported. +# +# skip: GLOBS... +# not-skip: GLOBS... +# These are exactly the same as "not-target" and "target", +# respectively, except that they do nothing at all if the check +# fails. They should only be used in groups, to construct a single +# test which is run on all targets but with variant options or +# expected output on some targets. (For example, see +# gas/arm/inst.d and gas/arm/wince_inst.d.) +# +# error: REGEX +# An error with message matching REGEX must be emitted for the test +# to pass. The PROG, objdump, nm and objcopy options have no +# meaning and need not supplied if this is present. +# +# warning: REGEX +# Expect a gas warning matching REGEX. It is an error to issue +# both "error" and "warning". +# +# stderr: FILE +# FILE contains regexp lines to be matched against the diagnostic +# output of the assembler. This does not preclude the use of +# PROG, nm, objdump, or objcopy. +# +# error-output: FILE +# Means the same as 'stderr', but also indicates that the assembler +# is expected to exit unsuccessfully (therefore PROG, objdump, nm, +# and objcopy have no meaning and should not be supplied). +# +# Each option may occur at most once. +# +# After the option lines come regexp lines. `run_dump_test' calls +# `regexp_diff' to compare the output of the dumping tool against the +# regexps in FILE.d. `regexp_diff' is defined in binutils-common.exp; +# see further comments there. + +proc run_dump_test { name {extra_options {}} } { + global subdir srcdir + global OBJDUMP NM OBJCOPY READELF STRIP + global OBJDUMPFLAGS NMFLAGS OBJCOPYFLAGS READELFFLAGS STRIPFLAGS + global ELFEDIT ELFEDITFLAGS + global host_triplet + global env + global copyfile + global tempfile + + if [string match "*/*" $name] { + set file $name + set name [file tail $name] + } else { + set file "$srcdir/$subdir/$name" + } + set opt_array [slurp_options "${file}.d"] + if { $opt_array == -1 } { + perror "error reading options from $file.d" + unresolved $subdir/$name + return + } + set opts(addr2line) {} + set opts(ar) {} + set opts(as) {} + set opts(nm) {} + set opts(objcopy) {} + set opts(objdump) {} + set opts(strip) {} + set opts(ranlib) {} + set opts(readelf) {} + set opts(size) {} + set opts(strings) {} + set opts(name) {} + set opts(elfedit) {} + set opts(PROG) {} + set opts(DUMPPROG) {} + set opts(source) {} + set opts(target) {} + set opts(not-target) {} + set opts(skip) {} + set opts(not-skip) {} + + foreach i $opt_array { + set opt_name [lindex $i 0] + set opt_val [lindex $i 1] + if ![info exists opts($opt_name)] { + perror "unknown option $opt_name in file $file.d" + unresolved $subdir/$name + return + } + + # Permit the option to use $srcdir to refer to the source + # directory. + regsub -all "\\\$srcdir" "$opt_val" "$srcdir/$subdir" opt_val + + if [string length $opts($opt_name)] { + perror "option $opt_name multiply set in $file.d" + unresolved $subdir/$name + return + } + set opts($opt_name) $opt_val + } + + foreach i $extra_options { + set opt_name [lindex $i 0] + set opt_val [lindex $i 1] + if ![info exists opts($opt_name)] { + perror "unknown option $opt_name given in extra_opts" + unresolved $subdir/$name + return + } + + # Permit the option to use $srcdir to refer to the source + # directory. + regsub -all "\\\$srcdir" "$opt_val" "$srcdir/$subdir" opt_val + + # add extra option to end of existing option, adding space + # if necessary. + if [string length $opts($opt_name)] { + append opts($opt_name) " " + } + append opts($opt_name) $opt_val + } + + if { $opts(name) == "" } { + set testname "$subdir/$name" + } else { + set testname $opts(name) + } + verbose "Testing $testname" + + if {$opts(PROG) == ""} { + perror "program isn't set in $file.d" + unresolved $testname + return + } + + set destopt "" + switch -- $opts(PROG) { + ar { set program ar } + objcopy { set program objcopy } + ranlib { set program ranlib } + strip { + set program strip + set destopt "-o" + } + strings { set program strings } + elfedit { set program elfedit } + nm { set program nm } + default { + perror "unrecognized program option $opts(PROG) in $file.d" + unresolved $testname + return } + } + + set dumpprogram "" + if { $opts(DUMPPROG) != "" } { + switch -- $opts(DUMPPROG) { + addr2line { set dumpprogram addr2line } + nm { set dumpprogram nm } + objdump { set dumpprogram objdump } + readelf { set dumpprogram readelf } + size { set dumpprogram size } + default { + perror "unrecognized dump program option $opts(DUMPPROG) in $file.d" + unresolved $testname + return } + } + } else { + # Guess which program to run, by seeing which option was specified. + foreach p {objdump nm readelf} { + if {$opts($p) != ""} { + if {$dumpprogram != ""} { + perror "ambiguous dump program in $file.d" + unresolved $testname + return + } else { + set dumpprogram $p + } + } + } + } + + # Handle skipping the test on specified targets. + # You can have both skip/not-skip and target/not-target, but you can't + # have both skip and not-skip, or target and not-target, in the same file. + if { $opts(skip) != "" } then { + if { $opts(not-skip) != "" } then { + perror "$testname: mixing skip and not-skip directives is invalid" + unresolved $testname + return + } + foreach glob $opts(skip) { + if {[istarget $glob]} { return } + } + } + if { $opts(not-skip) != "" } then { + set skip 1 + foreach glob $opts(not-skip) { + if {[istarget $glob]} { + set skip 0 + break + } + } + if {$skip} { return } + } + if { $opts(target) != "" } then { + if { $opts(not-target) != "" } then { + perror "$testname: mixing target and not-target directives is invalid" + unresolved $testname + return + } + set skip 1 + foreach glob $opts(target) { + if {[istarget $glob]} { + set skip 0 + break + } + } + if {$skip} { + unsupported $testname + return + } + } + if { $opts(not-target) != "" } then { + foreach glob $opts(not-target) { + if {[istarget $glob]} { + unsupported $testname + return + } + } + } + + if { [string match "*--compress-debug-sections*" $opts(as)] \ + && ![is_zlib_supported] } { + unsupported $testname + return + } + + if { $opts(source) == "" } { + set srcfile ${file}.s + } else { + set srcfile $srcdir/$subdir/$opts(source) + } + + set exec_output [binutils_assemble_flags ${srcfile} $tempfile $opts(as)] + if [string match "" $exec_output] then { + send_log "$exec_output\n" + verbose "$exec_output" + fail $testname + return + } + + set progopts1 $opts($program) + eval set progopts \$[string toupper $program]FLAGS + eval set binary \$[string toupper $program] + + set exec_output [binutils_run $binary "$progopts $progopts1 $tempfile $destopt ${copyfile}.o"] + if ![string match "" $exec_output] { + send_log "$exec_output\n" + verbose "$exec_output" + fail $testname + return + } + + set progopts1 $opts($dumpprogram) + eval set progopts \$[string toupper $dumpprogram]FLAGS + eval set binary \$[string toupper $dumpprogram] + + if { ![is_remote host] && [which $binary] == 0 } { + untested $testname + return + } + + verbose "running $binary $progopts $progopts1" 3 + + set cmd "$binary $progopts $progopts1 ${copyfile}.o" + + # Ensure consistent sorting of symbols + if {[info exists env(LC_ALL)]} { + set old_lc_all $env(LC_ALL) + } + set env(LC_ALL) "C" + send_log "$cmd\n" + set comp_output [remote_exec host $cmd "" "/dev/null" "tmpdir/dump.out"] + if {[info exists old_lc_all]} { + set env(LC_ALL) $old_lc_all + } else { + unset env(LC_ALL) + } + if { [lindex $comp_output 0] != 0 } then { + send_log "$comp_output\n" + fail $testname + return + } + set comp_output [prune_warnings [lindex $comp_output 1]] + if ![string match "" $comp_output] then { + send_log "$comp_output\n" + fail $testname + return + } + + verbose_eval {[file_contents "tmpdir/dump.out"]} 3 + if { [regexp_diff "tmpdir/dump.out" "${file}.d"] } then { + fail $testname + verbose "output is [file_contents "tmpdir/dump.out"]" 2 + return + } + + pass $testname +} + +proc slurp_options { file } { + if [catch { set f [open $file r] } x] { + #perror "couldn't open `$file': $x" + perror "$x" + return -1 + } + set opt_array {} + # whitespace expression + set ws {[ ]*} + set nws {[^ ]*} + # whitespace is ignored anywhere except within the options list; + # option names are alphabetic plus dash + set pat "^#${ws}(\[a-zA-Z-\]*)$ws:${ws}(.*)$ws\$" + while { [gets $f line] != -1 } { + set line [string trim $line] + # Whitespace here is space-tab. + if [regexp $pat $line xxx opt_name opt_val] { + # match! + lappend opt_array [list $opt_name $opt_val] + } elseif {![regexp "^#" $line ]} { + break + } + } + close $f + return $opt_array +} + +proc file_contents { filename } { + set file [open $filename r] + set contents [read $file] + close $file + return $contents +} + +proc verbose_eval { expr { level 1 } } { + global verbose + if $verbose>$level then { eval verbose "$expr" $level } +} |