defined.exp 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. # Test DEFINED in a linker script.
  2. # By Ian Lance Taylor, Cygnus Support.
  3. # Copyright (C) 2001-2022 Free Software Foundation, Inc.
  4. #
  5. # This file is part of the GNU Binutils.
  6. #
  7. # This program is free software; you can redistribute it and/or modify
  8. # it under the terms of the GNU General Public License as published by
  9. # the Free Software Foundation; either version 3 of the License, or
  10. # (at your option) any later version.
  11. #
  12. # This program is distributed in the hope that it will be useful,
  13. # but WITHOUT ANY WARRANTY; without even the implied warranty of
  14. # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15. # GNU General Public License for more details.
  16. #
  17. # You should have received a copy of the GNU General Public License
  18. # along with this program; if not, write to the Free Software
  19. # Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
  20. # MA 02110-1301, USA.
  21. set testname "DEFINED"
  22. set prms_id 5699
  23. if ![ld_assemble $as $srcdir/$subdir/defined.s tmpdir/def.o] {
  24. unsupported $testname
  25. return
  26. }
  27. set saved_LDFLAGS "$LDFLAGS"
  28. if { [is_pecoff_format] } then {
  29. set LDFLAGS "$LDFLAGS --image-base 0"
  30. } elseif { [is_xcoff_format] } then {
  31. set LDFLAGS "$LDFLAGS -bnogc"
  32. }
  33. if { ![ld_link $ld tmpdir/def "$LDFLAGS -T $srcdir/$subdir/defined.t tmpdir/def.o"] } {
  34. fail $testname
  35. } elseif { ![ld_nm $nm "" tmpdir/def] } {
  36. fail $testname
  37. } elseif { ![info exists nm_output(value1)]
  38. || ![info exists nm_output(value2)]} {
  39. send_log "bad output from nm\n"
  40. verbose "bad output from nm"
  41. fail $testname
  42. } elseif {$nm_output(value1) != 1} {
  43. send_log "value1 == $nm_output(value1)\n"
  44. verbose "value1 == $nm_output(value1)"
  45. fail $testname
  46. } elseif {$nm_output(value2) != 2} {
  47. send_log "value2 == $nm_output(value2)\n"
  48. verbose "value2 == $nm_output(value2)"
  49. fail $testname
  50. } else {
  51. pass $testname
  52. }
  53. set saved_ASFLAGS "$ASFLAGS"
  54. if { [is_elf_format] \
  55. && ([istarget "i?86-*-*"] || [istarget "x86_64-*-*"]) } {
  56. set ASFLAGS "$ASFLAGS -mx86-used-note=no"
  57. }
  58. set prms_id 0
  59. run_dump_test "defined2"
  60. run_dump_test "defined3"
  61. run_dump_test "defined4"
  62. if ![is_aout_format] {
  63. run_dump_test "defined5"
  64. }
  65. if [is_elf_format] {
  66. run_dump_test "defined6"
  67. }
  68. run_dump_test "pr24008"
  69. set LDFLAGS "$saved_LDFLAGS"
  70. set ASFLAGS "$saved_ASFLAGS"