Permalink
Browse files

Import 2.26.1; please see the individual ChangeLogs for bug fixes.

  • Loading branch information...
1 parent 179b61b commit 15084bd6b19a27641a2a049b7f69de6ce2537817 christos committed Jul 28, 2016
Showing with 6,429 additions and 1,774 deletions.
  1. +418 −121 external/gpl3/binutils/dist/bfd/ChangeLog
  2. +1 −1 external/gpl3/binutils/dist/bfd/archive.c
  3. +1 −1 external/gpl3/binutils/dist/bfd/coff-alpha.c
  4. +32 −32 external/gpl3/binutils/dist/bfd/coff-i386.c
  5. +50 −48 external/gpl3/binutils/dist/bfd/coff-x86_64.c
  6. +2 −0 external/gpl3/binutils/dist/bfd/coffcode.h
  7. +6 −0 external/gpl3/binutils/dist/bfd/cofflink.c
  8. +10 −10 external/gpl3/binutils/dist/bfd/configure
  9. +1 −1 external/gpl3/binutils/dist/bfd/development.sh
  10. +3 −1 external/gpl3/binutils/dist/bfd/dwarf2.c
  11. +5 −3 external/gpl3/binutils/dist/bfd/elf-bfd.h
  12. +35 −6 external/gpl3/binutils/dist/bfd/elf-strtab.c
  13. +56 −45 external/gpl3/binutils/dist/bfd/elf32-arm.c
  14. +31 −5 external/gpl3/binutils/dist/bfd/elf32-avr.c
  15. +9 −0 external/gpl3/binutils/dist/bfd/elf32-hppa.c
  16. +85 −48 external/gpl3/binutils/dist/bfd/elf32-i386.c
  17. +1 −0 external/gpl3/binutils/dist/bfd/elf32-ppc.c
  18. +13 −5 external/gpl3/binutils/dist/bfd/elf64-hppa.c
  19. +47 −34 external/gpl3/binutils/dist/bfd/elf64-ppc.c
  20. +55 −32 external/gpl3/binutils/dist/bfd/elf64-x86-64.c
  21. +65 −22 external/gpl3/binutils/dist/bfd/elflink.c
  22. +19 −6 external/gpl3/binutils/dist/bfd/elfnn-aarch64.c
  23. +1 −1 external/gpl3/binutils/dist/bfd/version.h
  24. +1 −1 external/gpl3/binutils/dist/bfd/version.m4
  25. +51 −6 external/gpl3/binutils/dist/binutils/ChangeLog
  26. +1 −0 external/gpl3/binutils/dist/binutils/Makefile.am
  27. +1 −0 external/gpl3/binutils/dist/binutils/Makefile.in
  28. +10 −10 external/gpl3/binutils/dist/binutils/configure
  29. +1 −1 external/gpl3/binutils/dist/binutils/doc/addr2line.1
  30. +1 −1 external/gpl3/binutils/dist/binutils/doc/ar.1
  31. +1 −1 external/gpl3/binutils/dist/binutils/doc/binutils.info
  32. +1 −1 external/gpl3/binutils/dist/binutils/doc/binutils.texi
  33. +1 −1 external/gpl3/binutils/dist/binutils/doc/cxxfilt.man
  34. +1 −1 external/gpl3/binutils/dist/binutils/doc/dlltool.1
  35. +1 −1 external/gpl3/binutils/dist/binutils/doc/elfedit.1
  36. +1 −1 external/gpl3/binutils/dist/binutils/doc/nlmconv.1
  37. +1 −1 external/gpl3/binutils/dist/binutils/doc/nm.1
  38. +2 −2 external/gpl3/binutils/dist/binutils/doc/objcopy.1
  39. +1 −1 external/gpl3/binutils/dist/binutils/doc/objdump.1
  40. +1 −1 external/gpl3/binutils/dist/binutils/doc/ranlib.1
  41. +1 −1 external/gpl3/binutils/dist/binutils/doc/readelf.1
  42. +1 −1 external/gpl3/binutils/dist/binutils/doc/size.1
  43. +1 −1 external/gpl3/binutils/dist/binutils/doc/strings.1
  44. +1 −1 external/gpl3/binutils/dist/binutils/doc/strip.1
  45. +1 −1 external/gpl3/binutils/dist/binutils/doc/windmc.1
  46. +1 −1 external/gpl3/binutils/dist/binutils/doc/windres.1
  47. +1 −0 external/gpl3/binutils/dist/binutils/objcopy.c
  48. +2 −1 external/gpl3/binutils/dist/binutils/objdump.c
  49. +1 −1 external/gpl3/binutils/dist/binutils/po/sv.po
  50. +4 −4 external/gpl3/binutils/dist/binutils/testsuite/ChangeLog
  51. +40 −0 external/gpl3/binutils/dist/binutils/testsuite/binutils-all/ar.exp
  52. +94 −1 external/gpl3/binutils/dist/binutils/testsuite/binutils-all/compress.exp
  53. 0 external/gpl3/binutils/dist/binutils/testsuite/binutils-all/empty
  54. +2 −2 external/gpl3/binutils/dist/elfcpp/ChangeLog
  55. +198 −15 external/gpl3/binutils/dist/gas/ChangeLog
  56. +7 −2 external/gpl3/binutils/dist/gas/NEWS
  57. +3 −0 external/gpl3/binutils/dist/gas/config.in
  58. +1 −0 external/gpl3/binutils/dist/gas/config/tc-arc.c
  59. +32 −4 external/gpl3/binutils/dist/gas/config/tc-i386.c
  60. +34 −8 external/gpl3/binutils/dist/gas/config/tc-mips.c
  61. +47 −13 external/gpl3/binutils/dist/gas/configure
  62. +30 −1 external/gpl3/binutils/dist/gas/configure.ac
  63. +14 −1 external/gpl3/binutils/dist/gas/doc/as.1
  64. +392 −380 external/gpl3/binutils/dist/gas/doc/as.info
  65. +12 −0 external/gpl3/binutils/dist/gas/doc/c-i386.texi
  66. +12 −7 external/gpl3/binutils/dist/gas/testsuite/ChangeLog
  67. +6 −4 external/gpl3/binutils/dist/gas/testsuite/gas/i386/disp32.d
  68. +4 −0 external/gpl3/binutils/dist/gas/testsuite/gas/i386/disp32.s
  69. +31 −0 external/gpl3/binutils/dist/gas/testsuite/gas/i386/got-no-relax.d
  70. +1 −0 external/gpl3/binutils/dist/gas/testsuite/gas/i386/got.d
  71. +2 −0 external/gpl3/binutils/dist/gas/testsuite/gas/i386/i386.exp
  72. +1 −0 external/gpl3/binutils/dist/gas/testsuite/gas/i386/ilp32/x86-64-gotpcrel.d
  73. +1 −0 external/gpl3/binutils/dist/gas/testsuite/gas/i386/ilp32/x86-64-localpic.d
  74. +1 −0 external/gpl3/binutils/dist/gas/testsuite/gas/i386/localpic.d
  75. +1 −0 external/gpl3/binutils/dist/gas/testsuite/gas/i386/mixed-mode-reloc32.d
  76. +1 −0 external/gpl3/binutils/dist/gas/testsuite/gas/i386/reloc32.d
  77. +2 −0 external/gpl3/binutils/dist/gas/testsuite/gas/i386/x86-64-avx512f-intel.d
  78. +2 −0 external/gpl3/binutils/dist/gas/testsuite/gas/i386/x86-64-avx512f.d
  79. +2 −0 external/gpl3/binutils/dist/gas/testsuite/gas/i386/x86-64-avx512f.s
  80. +6 −4 external/gpl3/binutils/dist/gas/testsuite/gas/i386/x86-64-disp32.d
  81. +3 −0 external/gpl3/binutils/dist/gas/testsuite/gas/i386/x86-64-disp32.s
  82. +27 −0 external/gpl3/binutils/dist/gas/testsuite/gas/i386/x86-64-gotpcrel-no-relax.d
  83. +1 −0 external/gpl3/binutils/dist/gas/testsuite/gas/i386/x86-64-gotpcrel.d
  84. +1 −0 external/gpl3/binutils/dist/gas/testsuite/gas/i386/x86-64-localpic.d
  85. +49 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/isa-override-1.d
  86. +31 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/isa-override-1.s
  87. +4 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/isa-override-2.l
  88. +18 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/isa-override-2.s
  89. +50 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/micromips@isa-override-1.d
  90. +3 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips.exp
  91. +53 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips1@isa-override-1.d
  92. +4 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips1@isa-override-2.l
  93. +18 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips1@isa-override-2.s
  94. +50 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips2@isa-override-1.d
  95. +4 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips2@isa-override-2.l
  96. +18 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips2@isa-override-2.s
  97. +5 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips32@isa-override-1.d
  98. +4 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips32@isa-override-2.l
  99. +18 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips32@isa-override-2.s
  100. +50 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips32r2@isa-override-1.d
  101. +4 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips32r2@isa-override-2.l
  102. +18 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips32r2@isa-override-2.s
  103. +5 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips32r3@isa-override-1.d
  104. +4 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips32r3@isa-override-2.l
  105. +18 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips32r3@isa-override-2.s
  106. +5 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips32r5@isa-override-1.d
  107. +4 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips32r5@isa-override-2.l
  108. +18 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips32r5@isa-override-2.s
  109. +5 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips32r6@isa-override-1.d
  110. +4 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips32r6@isa-override-2.l
  111. +18 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips32r6@isa-override-2.s
  112. +50 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips64r2@isa-override-1.d
  113. +5 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips64r3@isa-override-1.d
  114. +5 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips64r5@isa-override-1.d
  115. +5 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/mips64r6@isa-override-1.d
  116. +6 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/octeon3@isa-override-1.d
  117. +2 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/octeon3@isa-override-1.l
  118. +5 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/octeon3@isa-override-2.l
  119. +18 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/octeon3@isa-override-2.s
  120. +5 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/octeon@isa-override-1.d
  121. +5 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/r3000@isa-override-1.d
  122. +4 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/r3000@isa-override-2.l
  123. +18 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/r3000@isa-override-2.s
  124. +5 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/r3900@isa-override-1.d
  125. +4 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/r3900@isa-override-2.l
  126. +18 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/r3900@isa-override-2.s
  127. +28 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/r5900@isa-override-1.d
  128. +23 −0 external/gpl3/binutils/dist/gas/testsuite/gas/mips/r5900@isa-override-1.s
  129. +1 −0 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/altivec3.d
  130. +1 −0 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/altivec3.s
  131. +17 −0 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/e6500.d
  132. +16 −0 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/e6500.s
  133. +10 −1 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/power4.d
  134. +8 −0 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/power4.s
  135. +32 −0 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/power8.d
  136. +32 −0 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/power8.s
  137. +35 −0 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/power9.d
  138. +35 −0 external/gpl3/binutils/dist/gas/testsuite/gas/ppc/power9.s
  139. +0 −1 external/gpl3/binutils/dist/gas/write.c
  140. +69 −63 external/gpl3/binutils/dist/gold/ChangeLog
  141. +68 −47 external/gpl3/binutils/dist/gold/icf.cc
  142. +8 −0 external/gpl3/binutils/dist/gprof/ChangeLog
  143. +10 −10 external/gpl3/binutils/dist/gprof/configure
  144. +4 −226 external/gpl3/binutils/dist/include/ChangeLog
  145. +4 −0 external/gpl3/binutils/dist/include/aout/ChangeLog
  146. +119 −7 external/gpl3/binutils/dist/include/elf/ChangeLog
  147. +7 −3 external/gpl3/binutils/dist/include/gdb/ChangeLog
  148. +127 −8 external/gpl3/binutils/dist/include/opcode/ChangeLog
  149. +505 −54 external/gpl3/binutils/dist/ld/ChangeLog
  150. +11 −11 external/gpl3/binutils/dist/ld/configure
  151. +1 −1 external/gpl3/binutils/dist/ld/configure.ac
  152. +20 −13 external/gpl3/binutils/dist/ld/emultempl/elf32.em
  153. +18 −12 external/gpl3/binutils/dist/ld/emultempl/mmo.em
  154. +18 −12 external/gpl3/binutils/dist/ld/emultempl/pe.em
  155. +18 −12 external/gpl3/binutils/dist/ld/emultempl/pep.em
  156. +10 −4 external/gpl3/binutils/dist/ld/ld.1
  157. +286 −279 external/gpl3/binutils/dist/ld/ld.info
  158. +9 −3 external/gpl3/binutils/dist/ld/ld.texinfo
  159. +5 −6 external/gpl3/binutils/dist/ld/lexsup.c
  160. +7 −8 external/gpl3/binutils/dist/ld/testsuite/ChangeLog
  161. +2 −1 external/gpl3/binutils/dist/ld/testsuite/ld-aarch64/aarch64-elf.exp
  162. +20 −1 external/gpl3/binutils/dist/ld/testsuite/ld-aarch64/farcall-b-none-function.d
  163. +34 −0 external/gpl3/binutils/dist/ld/testsuite/ld-aarch64/farcall-b-section.d
  164. +20 −0 external/gpl3/binutils/dist/ld/testsuite/ld-aarch64/farcall-b-section.s
  165. +20 −1 external/gpl3/binutils/dist/ld/testsuite/ld-aarch64/farcall-bl-none-function.d
  166. +34 −0 external/gpl3/binutils/dist/ld/testsuite/ld-aarch64/farcall-bl-section.d
  167. +20 −0 external/gpl3/binutils/dist/ld/testsuite/ld-aarch64/farcall-bl-section.s
  168. +5 −1 external/gpl3/binutils/dist/ld/testsuite/ld-arm/arm-elf.exp
  169. +57 −24 external/gpl3/binutils/dist/ld/testsuite/ld-arm/stm32l4xx-fix-all.d
  170. +3 −0 external/gpl3/binutils/dist/ld/testsuite/ld-arm/stm32l4xx-fix-all.s
  171. +49 −0 external/gpl3/binutils/dist/ld/testsuite/ld-arm/stm32l4xx-fix-vldm-dp.d
  172. +27 −0 external/gpl3/binutils/dist/ld/testsuite/ld-arm/stm32l4xx-fix-vldm-dp.s
  173. +1 −0 external/gpl3/binutils/dist/ld/testsuite/ld-arm/stm32l4xx-fix-vldm.s
  174. +10 −0 external/gpl3/binutils/dist/ld/testsuite/ld-avr/avr-prop-5.d
  175. +7 −0 external/gpl3/binutils/dist/ld/testsuite/ld-avr/avr-prop-5.s
  176. +14 −0 external/gpl3/binutils/dist/ld/testsuite/ld-avr/avr-prop-6.d
  177. +9 −0 external/gpl3/binutils/dist/ld/testsuite/ld-avr/avr-prop-6.s
  178. +2 −1 external/gpl3/binutils/dist/ld/testsuite/ld-elf/compressed1b.d
  179. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-elf/compressed1c.d
  180. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-elf/gabiend.rt
  181. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-elf/gabinormal.rt
  182. +23 −1 external/gpl3/binutils/dist/ld/testsuite/ld-elf/indirect.exp
  183. +9 −0 external/gpl3/binutils/dist/ld/testsuite/ld-elf/pr19539.d
  184. +2 −0 external/gpl3/binutils/dist/ld/testsuite/ld-elf/pr19539.s
  185. +1 −0 external/gpl3/binutils/dist/ld/testsuite/ld-elf/pr19539.t
  186. +5 −0 external/gpl3/binutils/dist/ld/testsuite/ld-elf/pr19553.map
  187. +8 −0 external/gpl3/binutils/dist/ld/testsuite/ld-elf/pr19553a.c
  188. +8 −0 external/gpl3/binutils/dist/ld/testsuite/ld-elf/pr19553b.c
  189. +1 −0 external/gpl3/binutils/dist/ld/testsuite/ld-elf/pr19553b.out
  190. +9 −0 external/gpl3/binutils/dist/ld/testsuite/ld-elf/pr19553c.c
  191. +1 −0 external/gpl3/binutils/dist/ld/testsuite/ld-elf/pr19553c.out
  192. +8 −0 external/gpl3/binutils/dist/ld/testsuite/ld-elf/pr19553d.c
  193. +1 −0 external/gpl3/binutils/dist/ld/testsuite/ld-elf/pr19553d.out
  194. +15 −0 external/gpl3/binutils/dist/ld/testsuite/ld-elf/pr19579a.c
  195. +14 −0 external/gpl3/binutils/dist/ld/testsuite/ld-elf/pr19579b.c
  196. +10 −0 external/gpl3/binutils/dist/ld/testsuite/ld-elf/pr19698.d
  197. +5 −0 external/gpl3/binutils/dist/ld/testsuite/ld-elf/pr19698.s
  198. +11 −0 external/gpl3/binutils/dist/ld/testsuite/ld-elf/pr19698.t
  199. +24 −0 external/gpl3/binutils/dist/ld/testsuite/ld-elf/shared.exp
  200. +3 −1 external/gpl3/binutils/dist/ld/testsuite/ld-elfvsb/elfvsb.exp
  201. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/branch1.d
  202. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/call1.d
  203. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/call2.d
  204. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/call3a.d
  205. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/call3b.d
  206. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/call3c.d
  207. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/call3d.d
  208. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/call3e.d
  209. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/call3f.d
  210. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/call3g.d
  211. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/call3h.d
  212. +2 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/got1.dd
  213. +10 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/got1a.S
  214. +0 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/got1d.S
  215. +95 −18 external/gpl3/binutils/dist/ld/testsuite/ld-i386/i386.exp
  216. +8 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/ifunc-1a.c
  217. +42 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/ifunc-1b.S
  218. +26 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/ifunc-1c.S
  219. +76 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/ifunc-1d.S
  220. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/jmp1.d
  221. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/jmp2.d
  222. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/lea1c.d
  223. +19 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/libno-plt-1b.dd
  224. +8 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/libno-plt-1b.rd
  225. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/load1.d
  226. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/load2.d
  227. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/load3.d
  228. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/load4a.d
  229. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/load5a.d
  230. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/mov2b.d
  231. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-i386/mov3.d
  232. +43 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1a.dd
  233. +10 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1a.rd
  234. +31 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1b.dd
  235. +16 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1b.rd
  236. +31 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1c.dd
  237. +14 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1c.rd
  238. +43 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1d.dd
  239. +7 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1d.rd
  240. +43 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1e.dd
  241. +10 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1e.rd
  242. +31 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1f.dd
  243. +16 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1f.rd
  244. +31 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1g.dd
  245. +14 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1g.rd
  246. +34 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1h.dd
  247. +10 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1h.rd
  248. +33 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1i.dd
  249. +12 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1i.rd
  250. +34 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1j.dd
  251. +7 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-1j.rd
  252. +39 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-check1a.S
  253. +28 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-check1b.S
  254. +26 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-extern1a.S
  255. +16 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-extern1b.S
  256. +5 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-func1.c
  257. +8 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt-main1.c
  258. +290 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/no-plt.exp
  259. +1 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pass.out
  260. +13 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr19615.d
  261. +13 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr19615.s
  262. +5 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr19827-nacl.rd
  263. +5 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr19827.rd
  264. +8 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr19827a.S
  265. +2 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr19827b.S
  266. +12 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr20117.d
  267. +7 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr20117.s
  268. +17 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr20244-1.s
  269. +26 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr20244-1a.d
  270. +11 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr20244-1b.d
  271. +4 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr20244-1c.d
  272. +17 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr20244-2.s
  273. +43 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr20244-2a.d
  274. +11 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr20244-2b.d
  275. +10 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr20244-2c.d
  276. +4 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr20244-2d.d
  277. +8 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr20244-3a.c
  278. +30 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr20244-3b.S
  279. +15 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr20244-3c.S
  280. +44 −0 external/gpl3/binutils/dist/ld/testsuite/ld-i386/pr20244-3d.S
  281. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-ifunc/ifunc-21-x86-64.d
  282. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-ifunc/ifunc-22-x86-64.d
  283. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-ifunc/ifunc-5r-local-x86-64.d
  284. +12 −1 external/gpl3/binutils/dist/ld/testsuite/ld-plugin/lto.exp
  285. +10 −0 external/gpl3/binutils/dist/ld/testsuite/ld-powerpc/powerpc.exp
  286. +19 −0 external/gpl3/binutils/dist/ld/testsuite/ld-powerpc/tlsdll.s
  287. +7 −0 external/gpl3/binutils/dist/ld/testsuite/ld-powerpc/tlsdll.ver
  288. +18 −0 external/gpl3/binutils/dist/ld/testsuite/ld-powerpc/tlsdll_32.s
  289. +54 −0 external/gpl3/binutils/dist/ld/testsuite/ld-powerpc/tlsopt5.d
  290. +5 −0 external/gpl3/binutils/dist/ld/testsuite/ld-powerpc/tlsopt5.s
  291. +52 −0 external/gpl3/binutils/dist/ld/testsuite/ld-powerpc/tlsopt5_32.d
  292. +4 −0 external/gpl3/binutils/dist/ld/testsuite/ld-powerpc/tlsopt5_32.s
  293. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-x86-64/call1a.d
  294. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-x86-64/call1b.d
  295. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-x86-64/call1c.d
  296. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-x86-64/call1d.d
  297. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-x86-64/call1e.d
  298. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-x86-64/call1f.d
  299. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-x86-64/call1g.d
  300. +1 −1 external/gpl3/binutils/dist/ld/testsuite/ld-x86-64/call1h.d
Sorry, we could not display the entire diff because too many files (371) changed.
View
539 external/gpl3/binutils/dist/bfd/ChangeLog
@@ -1,3 +1,301 @@
+2016-06-29 Tristan Gingold <gingold@adacore.com>
+
+ * version.m4: Bump version to 2.26.1
+ * configure: Regenerate.
+
+2016-06-29 Tristan Gingold <gingold@adacore.com>
+
+ * development.sh: Set development to false.
+
+2016-06-28 Alan Modra <amodra@gmail.com>
+
+ Apply from master
+ 2016-05-19 Alan Modra <amodra@gmail.com>
+ * elf64-ppc.c (ppc64_elf_branch_reloc): Check for NULL owner
+ before dereferencing.
+
+2016-06-28 Alan Modra <amodra@gmail.com>
+
+ PR ld/19264
+ * elf64-ppc.c (STUB_SHRINK_ITER): Define.
+ (ppc64_elf_size_stubs): Exit stub sizing loop past STUB_SHRINK_ITER
+ if shrinking stubs.
+ (ppc64_elf_size_stubs): Adjust to suit.
+
+2016-06-14 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
+
+ Backport from master
+ 2016-06-14 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
+
+ PR ld/20254
+ * elf32-avr.c (elf32_avr_relax_delete_bytes): Adjust reloc
+ offsets until reloc_toaddr.
+
+2016-06-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from master
+ 2016-06-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/20244
+ * elf32-i386.c (elf_i386_relocate_section): Add the .got.plt
+ section address for R_386_GOT32/R_386_GOT32X relocations against
+ IFUNC symbols if there is no base register and return error for
+ PIC.
+
+ 2016-06-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf32-i386.c (elf_i386_relocate_section): Simplify IFUNC
+ GOT32 adjustment for static executables.
+
+2016-06-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from master
+ 2016-06-11 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/20244
+ * elf32-i386.c (elf_i386_relocate_section): When relocating
+ R_386_GOT32, return error without a base register for PIC and
+ subtract the .got.plt section address only with a base register.
+
+2016-06-13 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
+
+ Backport from master
+ 2016-06-08 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com>
+
+ PR ld/20221
+ * elf32-avr.c (elf32_avr_relax_delete_bytes): Adjust syms
+ and relocs only if shrinking occurred.
+
+2016-06-09 Alan Modra <amodra@gmail.com>
+
+ PR ld/20159
+ PR ld/16467
+ * elflink.c (_bfd_elf_merge_symbol): Revert PR16467 change.
+ (_bfd_elf_add_default_symbol): Don't indirect to/from defined
+ symbol given a version by a script different to the version
+ of the symbol being added.
+ (elf_link_add_object_symbols): Use _bfd_elf_strtab_save and
+ _bfd_elf_strtab_restore. Don't fudge dynstr references.
+ * elf-strtab.c (_bfd_elf_strtab_restore_size): Delete.
+ (struct strtab_save): New.
+ (_bfd_elf_strtab_save, _bfd_elf_strtab_restore): New functions.
+ * elf-bfd.h (_bfd_elf_strtab_restore_size): Delete.
+ (_bfd_elf_strtab_save, _bfd_elf_strtab_restore): Declare.
+
+2016-05-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from master
+ 2016-05-20 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf32-i386.c (elf_i386_check_relocs): Don't check R_386_GOT32
+ when setting need_convert_load.
+
+ 2016-05-19 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/20117
+ * elf32-i386.c (elf_i386_convert_load): Don't convert
+ R_386_GOT32.
+
+2016-05-18 Christophe Monat <christophe.monat@st.com>
+
+ Backport from master
+ 2016-05-09 Christophe Monat <christophe.monat@st.com>
+
+ PR ld/20030
+ * elf32-arm.c (is_thumb2_vldm): Account for T1 (DP) encoding.
+ (stm32l4xx_need_create_replacing_stub): Rename ambiguous nb_regs
+ to nb_words.
+ (create_instruction_vldmia): Add is_dp to disambiguate SP/DP
+ encoding.
+ (create_instruction_vldmdb): Likewise.
+ (stm32l4xx_create_replacing_stub_vldm): is_dp detects DP encoding,
+ uses it to re-encode.
+
+2016-05-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from master
+ 2016-05-13 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/20093
+ * elf64-x86-64.c (elf_x86_64_convert_load_reloc): Don't convert
+ GOTPCREL relocation against large section.
+
+ * elflink.c (bfd_elf_final_link): Likewise.
+
+2016-05-11 Alan Modra <amodra@gmail.com>
+
+ PR 20060
+ * elf64-ppc.c (ppc64_elf_tls_setup): Clear forced_local.
+ * elf32-ppc.c (ppc_elf_tls_setup): Likewise.
+
+2016-04-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from master
+ 2016-04-27 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/20006
+ * elf64-x86-64.c (elf_x86_64_convert_load): Skip debug sections
+ when estimating distances between output sections.
+
+2016-03-29 Toni Spets <toni.spets@iki.fi>
+
+ PR 19878
+ * coffcode.h (coff_write_object_contents): Revert accidental
+ 2014-11-10 change.
+
+2016-03-17 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from master
+ 2016-03-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/19827
+ * elf32-i386.c (elf_i386_check_relocs): Bind defined symbol
+ locally in PIE.
+ (elf_i386_relocate_section): Likewise.
+ * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise.
+ (elf_x86_64_relocate_section): Likewise.
+
+2016-03-15 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from master
+ 2016-01-30 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/19539
+ * elf32-i386.c (elf_i386_reloc_type_class): Check relocation
+ against STT_GNU_IFUNC symbol only with dynamic symbols.
+ * elf64-x86-64.c (elf_x86_64_reloc_type_class): Likewise.
+
+2016-03-15 Nick Clifton <nickc@redhat.com>
+
+ Backport from master:
+ 2016-03-09 Leon Winter <winter-gcc@bfw-online.de>
+
+ PR ld/19623
+ * cofflink.c (_bfd_coff_generic_relocate_section): Do not apply
+ relocations against absolute symbols.
+
+2016-03-14 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from master
+ 2016-01-28 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR binutils/19523
+ * dwarf2.c (_bfd_dwarf2_slurp_debug_info): Set BFD_DECOMPRESS to
+ decompress debug sections.
+
+2016-03-09 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/19579
+ Backport from master
+ 2016-03-08 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elflink.c (_bfd_elf_merge_symbol): Group common symbol checking
+ together.
+
+ 2016-03-04 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elflink.c (_bfd_elf_merge_symbol): Treat common symbol in
+ executable as definition if the new definition comes from a
+ shared library.
+
+2016-03-09 Nick Clifton <nickc@redhat.com>
+ Alan Modra <amodra@gmail.com>
+
+ PR binutils/19775
+ * archive.c (bfd_generic_openr_next_archived_file): Allow zero
+ length elements in the archive.
+ * coff-alpha.c (alpha_ecoff_openr_next_archived_file): Likewise.
+
+2016-03-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/19752
+ Backport from master
+ 2015-12-18 H.J. Lu <hongjiu.lu@intel.com>
+
+ * coff-x86_64.c (coff_amd64_reloc): Fix formatting.
+
+ 2015-12-18 Nick Clifton <nickc@redhat.com>
+
+ * coff-i386.c (coff_i386_reloc): Fix formatting.
+
+2016-02-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from master
+ 2016-02-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/19698
+ * elflink.c (bfd_elf_record_link_assignment): Set versioned if
+ symbol version is unknown.
+
+2016-02-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from master
+ 2016-02-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/19553
+ * elflink.c (elf_link_add_object_symbols): Don't add DT_NEEDED
+ if a symbol from a library loaded via DT_NEEDED doesn't match
+ the symbol referenced by regular object.
+
+2016-02-26 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from master
+ 2016-02-24 H.J. Lu <hongjiu.lu@intel.com>
+
+ * elf32-i386.c (elf_i386_allocate_dynrelocs): Set plt_got.offset
+ to (bfd_vma) -1 when setting needs_plt to 0.
+ * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
+
+2016-02-26 Alan Modra <amodra@gmail.com>
+
+ * elf64-ppc.c (create_linkage_sections): Create sfpr when
+ save_restore_funcs, rest of sections when not relocatable.
+ (ppc64_elf_init_stub_bfd): Always call create_linkage_sections.
+ (sfpr_define): Define all symbols on emitted code.
+ (ppc64_elf_func_desc_adjust): Adjust for sfpr now being created
+ when relocatable. Move sfpr_define loop earlier.
+
+2016-02-25 Jiong Wang <jiong.wang@arm.com>
+
+ Backport from master
+ 2016-01-21 Jiong Wang <jiong.wang@arm.com>
+
+ * elfnn-aarch64.c (aarch64_type_of_stub): Allow insert long branch
+ veneer for sym_sec != input_sec.
+ (elfNN_aarch64_size_stub): Support STT_SECTION symbol.
+ (elfNN_aarch64_final_link_relocate): Take rela addend into account when
+ calculation destination.
+
+2016-02-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from master
+ 2016-02-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/19601
+ * elf32-i386.c (elf_i386_relocate_section): Mask off the least
+ significant bit in GOT offset for R_386_GOT32X.
+
+2016-02-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ Backport from master
+ 2016-02-02 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/19542
+ * elf64-x86-64.c (elf_x86_64_convert_load): Store the estimated
+ distances in the compressed_size field of the output section.
+
+2016-02-01 John David Anglin <danglin@gcc.gnu.org>
+
+ PR ld/19526
+ * elf32-hppa.c (elf32_hppa_final_link): Don't sort non-regular output
+ files.
+ * elf64-hppa.c (elf32_hppa_final_link): Likewise. Remove retval.
+
+2016-01-25 Tristan Gingold <gingold@adacore.com>
+
+ * version.m4: Bump version to 2.26.0
+ * configure: Regenerate.
+
2016-01-25 Tristan Gingold <gingold@adacore.com>
* version.m4: Bump version to 2.26
@@ -119,7 +417,7 @@
* configure: Regenerate.
2015-11-11 Alan Modra <amodra@gmail.com>
- Peter Bergner <bergner@vnet.ibm.com>
+ Peter Bergner <bergner@vnet.ibm.com>
* elf32-ppc.c (ppc_elf_howto_raw): Add R_PPC_REL16DX_HA.
(ppc_elf_reloc_type_lookup): Handle R_PPC_REL16DX_HA.
@@ -179,8 +477,8 @@
2015-10-29 Catherine Moore <clm@codesourcery.com>
- * elfxx-mips.c (mips_elf_check_mips16_stubs): Set a stub's output
- section to bfd_abs_section_ptr if the stub is discarded.
+ * elfxx-mips.c (mips_elf_check_mips16_stubs): Set a stub's output
+ section to bfd_abs_section_ptr if the stub is discarded.
2015-10-29 Ed Schouten <ed@nuxi.nl>
@@ -232,7 +530,7 @@
* bfd-in2.h: Regenerate.
2015-10-27 Laurent Alfonsi <laurent.alfonsi@st.com>
- Christophe Monat <christophe.monat@st.com>
+ Christophe Monat <christophe.monat@st.com>
* bfd-in2.h: Regenerate.
* bfd-in.h (bfd_arm_stm32l4xx_fix): New enum. Specify how
@@ -1225,115 +1523,115 @@
2015-08-18 H.J. Lu <hongjiu.lu@intel.com>
- * bfd/aoutx.h: Replace shared, executable, relocatable and pie
+ * aoutx.h: Replace shared, executable, relocatable and pie
fields with bfd_link_executable, bfd_link_dll,
bfd_link_relocatable, bfd_link_pic and bfd_link_pie.
- * bfd/bout.c: Likewise.
- * bfd/coff-alpha.c: Likewise.
- * bfd/coff-arm.c: Likewise.
- * bfd/coff-i386.c: Likewise.
- * bfd/coff-i960.c: Likewise.
- * bfd/coff-m68k.c: Likewise.
- * bfd/coff-mcore.c: Likewise.
- * bfd/coff-mips.c: Likewise.
- * bfd/coff-ppc.c: Likewise.
- * bfd/coff-rs6000.c: Likewise.
- * bfd/coff-sh.c: Likewise.
- * bfd/coff-tic80.c: Likewise.
- * bfd/coff-x86_64.c: Likewise.
- * bfd/coff64-rs6000.c: Likewise.
- * bfd/coffgen.c: Likewise.
- * bfd/cofflink.c: Likewise.
- * bfd/ecoff.c: Likewise.
- * bfd/ecofflink.c: Likewise.
- * bfd/elf-bfd.h: Likewise.
- * bfd/elf-eh-frame.c: Likewise.
- * bfd/elf-ifunc.c: Likewise.
- * bfd/elf-m10200.c: Likewise.
- * bfd/elf-m10300.c: Likewise.
- * bfd/elf-s390-common.c: Likewise.
- * bfd/elf-vxworks.c: Likewise.
- * bfd/elf.c: Likewise.
- * bfd/elf32-arm.c: Likewise.
- * bfd/elf32-avr.c: Likewise.
- * bfd/elf32-bfin.c: Likewise.
- * bfd/elf32-cr16.c: Likewise.
- * bfd/elf32-cr16c.c: Likewise.
- * bfd/elf32-cris.c: Likewise.
- * bfd/elf32-crx.c: Likewise.
- * bfd/elf32-d10v.c: Likewise.
- * bfd/elf32-dlx.c: Likewise.
- * bfd/elf32-epiphany.c: Likewise.
- * bfd/elf32-fr30.c: Likewise.
- * bfd/elf32-frv.c: Likewise.
- * bfd/elf32-ft32.c: Likewise.
- * bfd/elf32-h8300.c: Likewise.
- * bfd/elf32-hppa.c: Likewise.
- * bfd/elf32-i370.c: Likewise.
- * bfd/elf32-i386.c: Likewise.
- * bfd/elf32-i860.c: Likewise.
- * bfd/elf32-ip2k.c: Likewise.
- * bfd/elf32-iq2000.c: Likewise.
- * bfd/elf32-lm32.c: Likewise.
- * bfd/elf32-m32c.c: Likewise.
- * bfd/elf32-m32r.c: Likewise.
- * bfd/elf32-m68hc11.c: Likewise.
- * bfd/elf32-m68hc1x.c: Likewise.
- * bfd/elf32-m68k.c: Likewise.
- * bfd/elf32-mcore.c: Likewise.
- * bfd/elf32-mep.c: Likewise.
- * bfd/elf32-metag.c: Likewise.
- * bfd/elf32-microblaze.c: Likewise.
- * bfd/elf32-moxie.c: Likewise.
- * bfd/elf32-msp430.c: Likewise.
- * bfd/elf32-mt.c: Likewise.
- * bfd/elf32-nds32.c: Likewise.
- * bfd/elf32-nios2.c: Likewise.
- * bfd/elf32-or1k.c: Likewise.
- * bfd/elf32-ppc.c: Likewise.
- * bfd/elf32-rl78.c: Likewise.
- * bfd/elf32-rx.c: Likewise.
- * bfd/elf32-s390.c: Likewise.
- * bfd/elf32-score.c: Likewise.
- * bfd/elf32-score7.c: Likewise.
- * bfd/elf32-sh-symbian.c: Likewise.
- * bfd/elf32-sh.c: Likewise.
- * bfd/elf32-sh64.c: Likewise.
- * bfd/elf32-spu.c: Likewise.
- * bfd/elf32-tic6x.c: Likewise.
- * bfd/elf32-tilepro.c: Likewise.
- * bfd/elf32-v850.c: Likewise.
- * bfd/elf32-vax.c: Likewise.
- * bfd/elf32-visium.c: Likewise.
- * bfd/elf32-xc16x.c: Likewise.
- * bfd/elf32-xstormy16.c: Likewise.
- * bfd/elf32-xtensa.c: Likewise.
- * bfd/elf64-alpha.c: Likewise.
- * bfd/elf64-hppa.c: Likewise.
- * bfd/elf64-ia64-vms.c: Likewise.
- * bfd/elf64-mmix.c: Likewise.
- * bfd/elf64-ppc.c: Likewise.
- * bfd/elf64-s390.c: Likewise.
- * bfd/elf64-sh64.c: Likewise.
- * bfd/elf64-x86-64.c: Likewise.
- * bfd/elflink.c: Likewise.
- * bfd/elfnn-aarch64.c: Likewise.
- * bfd/elfnn-ia64.c: Likewise.
- * bfd/elfxx-mips.c: Likewise.
- * bfd/elfxx-sparc.c: Likewise.
- * bfd/elfxx-tilegx.c: Likewise.
- * bfd/i386linux.c: Likewise.
- * bfd/linker.c: Likewise.
- * bfd/m68klinux.c: Likewise.
- * bfd/pdp11.c: Likewise.
- * bfd/pe-mips.c: Likewise.
- * bfd/peXXigen.c: Likewise.
- * bfd/reloc.c: Likewise.
- * bfd/reloc16.c: Likewise.
- * bfd/sparclinux.c: Likewise.
- * bfd/sunos.c: Likewise.
- * bfd/vms-alpha.c: Likewise.
- * bfd/xcofflink.c: Likewise.
+ * bout.c: Likewise.
+ * coff-alpha.c: Likewise.
+ * coff-arm.c: Likewise.
+ * coff-i386.c: Likewise.
+ * coff-i960.c: Likewise.
+ * coff-m68k.c: Likewise.
+ * coff-mcore.c: Likewise.
+ * coff-mips.c: Likewise.
+ * coff-ppc.c: Likewise.
+ * coff-rs6000.c: Likewise.
+ * coff-sh.c: Likewise.
+ * coff-tic80.c: Likewise.
+ * coff-x86_64.c: Likewise.
+ * coff64-rs6000.c: Likewise.
+ * coffgen.c: Likewise.
+ * cofflink.c: Likewise.
+ * ecoff.c: Likewise.
+ * ecofflink.c: Likewise.
+ * elf-bfd.h: Likewise.
+ * elf-eh-frame.c: Likewise.
+ * elf-ifunc.c: Likewise.
+ * elf-m10200.c: Likewise.
+ * elf-m10300.c: Likewise.
+ * elf-s390-common.c: Likewise.
+ * elf-vxworks.c: Likewise.
+ * elf.c: Likewise.
+ * elf32-arm.c: Likewise.
+ * elf32-avr.c: Likewise.
+ * elf32-bfin.c: Likewise.
+ * elf32-cr16.c: Likewise.
+ * elf32-cr16c.c: Likewise.
+ * elf32-cris.c: Likewise.
+ * elf32-crx.c: Likewise.
+ * elf32-d10v.c: Likewise.
+ * elf32-dlx.c: Likewise.
+ * elf32-epiphany.c: Likewise.
+ * elf32-fr30.c: Likewise.
+ * elf32-frv.c: Likewise.
+ * elf32-ft32.c: Likewise.
+ * elf32-h8300.c: Likewise.
+ * elf32-hppa.c: Likewise.
+ * elf32-i370.c: Likewise.
+ * elf32-i386.c: Likewise.
+ * elf32-i860.c: Likewise.
+ * elf32-ip2k.c: Likewise.
+ * elf32-iq2000.c: Likewise.
+ * elf32-lm32.c: Likewise.
+ * elf32-m32c.c: Likewise.
+ * elf32-m32r.c: Likewise.
+ * elf32-m68hc11.c: Likewise.
+ * elf32-m68hc1x.c: Likewise.
+ * elf32-m68k.c: Likewise.
+ * elf32-mcore.c: Likewise.
+ * elf32-mep.c: Likewise.
+ * elf32-metag.c: Likewise.
+ * elf32-microblaze.c: Likewise.
+ * elf32-moxie.c: Likewise.
+ * elf32-msp430.c: Likewise.
+ * elf32-mt.c: Likewise.
+ * elf32-nds32.c: Likewise.
+ * elf32-nios2.c: Likewise.
+ * elf32-or1k.c: Likewise.
+ * elf32-ppc.c: Likewise.
+ * elf32-rl78.c: Likewise.
+ * elf32-rx.c: Likewise.
+ * elf32-s390.c: Likewise.
+ * elf32-score.c: Likewise.
+ * elf32-score7.c: Likewise.
+ * elf32-sh-symbian.c: Likewise.
+ * elf32-sh.c: Likewise.
+ * elf32-sh64.c: Likewise.
+ * elf32-spu.c: Likewise.
+ * elf32-tic6x.c: Likewise.
+ * elf32-tilepro.c: Likewise.
+ * elf32-v850.c: Likewise.
+ * elf32-vax.c: Likewise.
+ * elf32-visium.c: Likewise.
+ * elf32-xc16x.c: Likewise.
+ * elf32-xstormy16.c: Likewise.
+ * elf32-xtensa.c: Likewise.
+ * elf64-alpha.c: Likewise.
+ * elf64-hppa.c: Likewise.
+ * elf64-ia64-vms.c: Likewise.
+ * elf64-mmix.c: Likewise.
+ * elf64-ppc.c: Likewise.
+ * elf64-s390.c: Likewise.
+ * elf64-sh64.c: Likewise.
+ * elf64-x86-64.c: Likewise.
+ * elflink.c: Likewise.
+ * elfnn-aarch64.c: Likewise.
+ * elfnn-ia64.c: Likewise.
+ * elfxx-mips.c: Likewise.
+ * elfxx-sparc.c: Likewise.
+ * elfxx-tilegx.c: Likewise.
+ * i386linux.c: Likewise.
+ * linker.c: Likewise.
+ * m68klinux.c: Likewise.
+ * pdp11.c: Likewise.
+ * pe-mips.c: Likewise.
+ * peXXigen.c: Likewise.
+ * reloc.c: Likewise.
+ * reloc16.c: Likewise.
+ * sparclinux.c: Likewise.
+ * sunos.c: Likewise.
+ * vms-alpha.c: Likewise.
+ * xcofflink.c: Likewise.
2015-08-18 Alan Modra <amodra@gmail.com>
@@ -1387,7 +1685,7 @@
2015-08-11 Jiong Wang <jiong.wang@arm.com>
- * bfd/elfnn-aarch64.c (aarch64_type_of_stub): New parameter "sym_sec".
+ * elfnn-aarch64.c (aarch64_type_of_stub): New parameter "sym_sec".
Loose the check for symbol from ABS section.
(elfNN_aarch64_size_stubs): Pass sym_sec.
@@ -1688,10 +1986,10 @@
2015-07-10 H.J. Lu <hongjiu.lu@intel.com>
- PR binutils/18656
- * bfd.c (bfd_convert_section_size): New function.
- (bfd_convert_section_contents): Likewise.
- * bfd-in2.h: Regenerated.
+ PR binutils/18656
+ * bfd.c (bfd_convert_section_size): New function.
+ (bfd_convert_section_contents): Likewise.
+ * bfd-in2.h: Regenerated.
2015-07-09 Catherine Moore <clm@codesourcery.com>
@@ -2004,7 +2302,6 @@
Bernd Schmidt <bernds@codesourcery.com>
Paul Brook <paul@codesourcery.com>
- bfd/
* bfd-in2.h: Regenerated.
* elf-bfd.h (DWARF2_EH_HDR, COMPACT_EH_HDR): Define.
(COMPACT_EH_CANT_UNWIND_OPCODE): Define.
@@ -2913,7 +3210,7 @@
2015-03-18 H.J. Lu <hongjiu.lu@intel.com>
* compress.c (bfd_compress_section_contents): Make it static.
- * bfd/bfd-in2.h: Regenerated.
+ * bfd-in2.h: Regenerated.
2015-03-18 Eric Youngdale <eyoungdale@ptc.com>
@@ -3062,8 +3359,8 @@
2015-02-27 Marcus Shawcroft <marcus.shawcroft@arm.com>
- * bfd/bfd-in2.h: Regenerate.
- * bfd/libbfd.h: Regenerate.
+ * bfd-in2.h: Regenerate.
+ * libbfd.h: Regenerate.
2015-02-26 Marcus Shawcroft <marcus.shawcroft@arm.com>
@@ -3534,7 +3831,7 @@
is weak or pointer_equality_needed is FALSE.
* elf32-arm.c (elf32_arm_finish_dynamic_symbol): Improve
- comment discussing why we clear st_value for some symbols.
+ comment discussing why we clear st_value for some symbols.
2015-02-02 Kuan-Lin Chen <kuanlinchentw@gmail.com>
View
2 external/gpl3/binutils/dist/bfd/archive.c
@@ -802,7 +802,7 @@ bfd_generic_openr_next_archived_file (bfd *archive, bfd *last_file)
Note that last_file->origin can be odd in the case of
BSD-4.4-style element with a long odd size. */
filestart += filestart % 2;
- if (filestart <= last_file->proxy_origin)
+ if (filestart < last_file->proxy_origin)
{
/* Prevent looping. See PR19256. */
bfd_set_error (bfd_error_malformed_archive);
View
2 external/gpl3/binutils/dist/bfd/coff-alpha.c
@@ -2208,7 +2208,7 @@ alpha_ecoff_openr_next_archived_file (bfd *archive, bfd *last_file)
BSD-4.4-style element with a long odd size. */
filestart = last_file->proxy_origin + size;
filestart += filestart % 2;
- if (filestart <= last_file->proxy_origin)
+ if (filestart < last_file->proxy_origin)
{
/* Prevent looping. See PR19256. */
bfd_set_error (bfd_error_malformed_archive);
View
64 external/gpl3/binutils/dist/bfd/coff-i386.c
@@ -139,41 +139,41 @@ coff_i386_reloc (bfd *abfd,
#define DOIT(x) \
x = ((x & ~howto->dst_mask) | (((x & howto->src_mask) + diff) & howto->dst_mask))
- if (diff != 0)
- {
- reloc_howto_type *howto = reloc_entry->howto;
- unsigned char *addr = (unsigned char *) data + reloc_entry->address;
+ if (diff != 0)
+ {
+ reloc_howto_type *howto = reloc_entry->howto;
+ unsigned char *addr = (unsigned char *) data + reloc_entry->address;
+
+ switch (howto->size)
+ {
+ case 0:
+ {
+ char x = bfd_get_8 (abfd, addr);
+ DOIT (x);
+ bfd_put_8 (abfd, x, addr);
+ }
+ break;
- switch (howto->size)
+ case 1:
{
- case 0:
- {
- char x = bfd_get_8 (abfd, addr);
- DOIT (x);
- bfd_put_8 (abfd, x, addr);
- }
- break;
-
- case 1:
- {
- short x = bfd_get_16 (abfd, addr);
- DOIT (x);
- bfd_put_16 (abfd, (bfd_vma) x, addr);
- }
- break;
-
- case 2:
- {
- long x = bfd_get_32 (abfd, addr);
- DOIT (x);
- bfd_put_32 (abfd, (bfd_vma) x, addr);
- }
- break;
-
- default:
- abort ();
+ short x = bfd_get_16 (abfd, addr);
+ DOIT (x);
+ bfd_put_16 (abfd, (bfd_vma) x, addr);
}
- }
+ break;
+
+ case 2:
+ {
+ long x = bfd_get_32 (abfd, addr);
+ DOIT (x);
+ bfd_put_32 (abfd, (bfd_vma) x, addr);
+ }
+ break;
+
+ default:
+ abort ();
+ }
+ }
/* Now let bfd_perform_relocation finish everything up. */
return bfd_reloc_continue;
View
98 external/gpl3/binutils/dist/bfd/coff-x86_64.c
@@ -138,59 +138,61 @@ coff_amd64_reloc (bfd *abfd,
#define DOIT(x) \
x = ((x & ~howto->dst_mask) | (((x & howto->src_mask) + diff) & howto->dst_mask))
- if (diff != 0)
- {
- reloc_howto_type *howto = reloc_entry->howto;
- unsigned char *addr = (unsigned char *) data + reloc_entry->address;
-
- /* FIXME: We do not have an end address for data, so we cannot
- accurately range check any addresses computed against it.
- cf: PR binutils/17512: file: 1085-1761-0.004.
- For now we do the best that we can. */
- if (addr < (unsigned char *) data || addr > ((unsigned char *) data) + input_section->size)
+ if (diff != 0)
+ {
+ reloc_howto_type *howto = reloc_entry->howto;
+ unsigned char *addr = (unsigned char *) data + reloc_entry->address;
+
+ /* FIXME: We do not have an end address for data, so we cannot
+ accurately range check any addresses computed against it.
+ cf: PR binutils/17512: file: 1085-1761-0.004.
+ For now we do the best that we can. */
+ if (addr < (unsigned char *) data
+ || addr > ((unsigned char *) data) + input_section->size)
+ {
+ bfd_set_error (bfd_error_bad_value);
+ return bfd_reloc_notsupported;
+ }
+
+ switch (howto->size)
+ {
+ case 0:
+ {
+ char x = bfd_get_8 (abfd, addr);
+ DOIT (x);
+ bfd_put_8 (abfd, x, addr);
+ }
+ break;
+
+ case 1:
+ {
+ short x = bfd_get_16 (abfd, addr);
+ DOIT (x);
+ bfd_put_16 (abfd, (bfd_vma) x, addr);
+ }
+ break;
+
+ case 2:
{
- bfd_set_error (bfd_error_bad_value);
- return bfd_reloc_notsupported;
+ long x = bfd_get_32 (abfd, addr);
+ DOIT (x);
+ bfd_put_32 (abfd, (bfd_vma) x, addr);
}
+ break;
- switch (howto->size)
+ case 4:
{
- case 0:
- {
- char x = bfd_get_8 (abfd, addr);
- DOIT (x);
- bfd_put_8 (abfd, x, addr);
- }
- break;
-
- case 1:
- {
- short x = bfd_get_16 (abfd, addr);
- DOIT (x);
- bfd_put_16 (abfd, (bfd_vma) x, addr);
- }
- break;
-
- case 2:
- {
- long x = bfd_get_32 (abfd, addr);
- DOIT (x);
- bfd_put_32 (abfd, (bfd_vma) x, addr);
- }
- break;
- case 4:
- {
- long long x = bfd_get_64 (abfd, addr);
- DOIT (x);
- bfd_put_64 (abfd, (bfd_vma) x, addr);
- }
- break;
-
- default:
- bfd_set_error (bfd_error_bad_value);
- return bfd_reloc_notsupported;
+ long long x = bfd_get_64 (abfd, addr);
+ DOIT (x);
+ bfd_put_64 (abfd, (bfd_vma) x, addr);
}
- }
+ break;
+
+ default:
+ bfd_set_error (bfd_error_bad_value);
+ return bfd_reloc_notsupported;
+ }
+ }
/* Now let bfd_perform_relocation finish everything up. */
return bfd_reloc_continue;
View
2 external/gpl3/binutils/dist/bfd/coffcode.h
@@ -4076,6 +4076,8 @@ coff_write_object_contents (bfd * abfd)
internal_f.f_flags |= F_DYNLOAD;
#endif
+ memset (&internal_a, 0, sizeof internal_a);
+
/* Set up architecture-dependent stuff. */
{
unsigned int magic = 0;
View
6 external/gpl3/binutils/dist/bfd/cofflink.c
@@ -2977,6 +2977,12 @@ _bfd_coff_generic_relocate_section (bfd *output_bfd,
else
{
sec = sections[symndx];
+
+ /* PR 19623: Relocations against symbols in
+ the absolute sections should ignored. */
+ if (bfd_is_abs_section (sec))
+ continue;
+
val = (sec->output_section->vma
+ sec->output_offset
+ sym->n_value);
View
20 external/gpl3/binutils/dist/bfd/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.64 for bfd 2.26.
+# Generated by GNU Autoconf 2.64 for bfd 2.26.1.
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software
@@ -556,8 +556,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='bfd'
PACKAGE_TARNAME='bfd'
-PACKAGE_VERSION='2.26'
-PACKAGE_STRING='bfd 2.26'
+PACKAGE_VERSION='2.26.1'
+PACKAGE_STRING='bfd 2.26.1'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
@@ -1351,7 +1351,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures bfd 2.26 to adapt to many kinds of systems.
+\`configure' configures bfd 2.26.1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1422,7 +1422,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of bfd 2.26:";;
+ short | recursive ) echo "Configuration of bfd 2.26.1:";;
esac
cat <<\_ACEOF
@@ -1543,7 +1543,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-bfd configure 2.26
+bfd configure 2.26.1
generated by GNU Autoconf 2.64
Copyright (C) 2009 Free Software Foundation, Inc.
@@ -2185,7 +2185,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by bfd $as_me 2.26, which was
+It was created by bfd $as_me 2.26.1, which was
generated by GNU Autoconf 2.64. Invocation command line was
$ $0 $@
@@ -3993,7 +3993,7 @@ fi
# Define the identity of the package.
PACKAGE='bfd'
- VERSION='2.26'
+ VERSION='2.26.1'
cat >>confdefs.h <<_ACEOF
@@ -16533,7 +16533,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by bfd $as_me 2.26, which was
+This file was extended by bfd $as_me 2.26.1, which was
generated by GNU Autoconf 2.64. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -16597,7 +16597,7 @@ Report bugs to the package provider."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
-bfd config.status 2.26
+bfd config.status 2.26.1
configured by $0, generated by GNU Autoconf 2.64,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
View
2 external/gpl3/binutils/dist/bfd/development.sh
@@ -16,4 +16,4 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
# Controls whether to enable development-mode features by default.
-development=true
+development=false
View
4 external/gpl3/binutils/dist/bfd/dwarf2.c
@@ -3706,8 +3706,10 @@ _bfd_dwarf2_slurp_debug_info (bfd *abfd, bfd *debug_bfd,
fail more quickly. */
return FALSE;
+ /* Set BFD_DECOMPRESS to decompress debug sections. */
if ((debug_bfd = bfd_openr (debug_filename, NULL)) == NULL
- || ! bfd_check_format (debug_bfd, bfd_object)
+ || !(debug_bfd->flags |= BFD_DECOMPRESS,
+ bfd_check_format (debug_bfd, bfd_object))
|| (msec = find_debug_info (debug_bfd,
debug_sections, NULL)) == NULL
|| !bfd_generic_link_read_symbols (debug_bfd))
View
8 external/gpl3/binutils/dist/bfd/elf-bfd.h
@@ -2039,9 +2039,11 @@ extern void _bfd_elf_strtab_delref
extern unsigned int _bfd_elf_strtab_refcount
(struct elf_strtab_hash *, bfd_size_type);
extern void _bfd_elf_strtab_clear_all_refs
- (struct elf_strtab_hash *tab);
-extern void _bfd_elf_strtab_restore_size
- (struct elf_strtab_hash *, bfd_size_type);
+ (struct elf_strtab_hash *);
+extern void *_bfd_elf_strtab_save
+ (struct elf_strtab_hash *);
+extern void _bfd_elf_strtab_restore
+ (struct elf_strtab_hash *, void *);
extern bfd_size_type _bfd_elf_strtab_size
(struct elf_strtab_hash *);
extern bfd_size_type _bfd_elf_strtab_offset
View
41 external/gpl3/binutils/dist/bfd/elf-strtab.c
@@ -215,16 +215,45 @@ _bfd_elf_strtab_clear_all_refs (struct elf_strtab_hash *tab)
tab->array[idx]->refcount = 0;
}
-/* Downsizes strtab. Entries from IDX up to the current size are
- removed from the array. */
+/* Save strtab refcounts prior to adding --as-needed library. */
+
+struct strtab_save
+{
+ bfd_size_type size;
+ unsigned int refcount[1];
+};
+
+void *
+_bfd_elf_strtab_save (struct elf_strtab_hash *tab)
+{
+ struct strtab_save *save;
+ bfd_size_type idx, size;
+
+ size = sizeof (*save) + (tab->size - 1) * sizeof (save->refcount[0]);
+ save = bfd_malloc (size);
+ if (save == NULL)
+ return save;
+
+ save->size = tab->size;
+ for (idx = 1; idx < tab->size; idx++)
+ save->refcount[idx] = tab->array[idx]->refcount;
+ return save;
+}
+
+/* Restore strtab refcounts on finding --as-needed library not needed. */
+
void
-_bfd_elf_strtab_restore_size (struct elf_strtab_hash *tab, bfd_size_type idx)
+_bfd_elf_strtab_restore (struct elf_strtab_hash *tab, void *buf)
{
- bfd_size_type curr_size = tab->size;
+ bfd_size_type idx, curr_size = tab->size;
+ struct strtab_save *save = (struct strtab_save *) buf;
BFD_ASSERT (tab->sec_size == 0);
- BFD_ASSERT (idx <= curr_size);
- tab->size = idx;
+ BFD_ASSERT (save->size <= curr_size);
+ tab->size = save->size;
+ for (idx = 1; idx < save->size; ++idx)
+ tab->array[idx]->refcount = save->refcount[idx];
+
for (; idx < curr_size; ++idx)
{
/* We don't remove entries from the hash table, just set their
View
101 external/gpl3/binutils/dist/bfd/elf32-arm.c
@@ -7374,18 +7374,21 @@ is_thumb2_vldm (const insn32 insn)
{
/* A6.5 Extension register load or store instruction
A7.7.229
- We look only for the 32-bit registers case since the DP (64-bit
- registers) are not supported for STM32L4XX
+ We look for SP 32-bit and DP 64-bit registers.
+ Encoding T1 VLDM{mode}<c> <Rn>{!}, <list>
+ <list> is consecutive 64-bit registers
+ 1110 - 110P - UDW1 - rrrr - vvvv - 1011 - iiii - iiii
Encoding T2 VLDM{mode}<c> <Rn>{!}, <list>
<list> is consecutive 32-bit registers
1110 - 110P - UDW1 - rrrr - vvvv - 1010 - iiii - iiii
if P==0 && U==1 && W==1 && Rn=1101 VPOP
if PUW=010 || PUW=011 || PUW=101 VLDM. */
return
- ((insn & 0xfe100f00) == 0xec100a00)
+ (((insn & 0xfe100f00) == 0xec100b00) ||
+ ((insn & 0xfe100f00) == 0xec100a00))
&& /* (IA without !). */
(((((insn << 7) >> 28) & 0xd) == 0x4)
- /* (IA with !), includes VPOP (when reg number is SP). */
+ /* (IA with !), includes VPOP (when reg number is SP). */
|| ((((insn << 7) >> 28) & 0xd) == 0x5)
/* (DB with !). */
|| ((((insn << 7) >> 28) & 0xd) == 0x9));
@@ -7402,19 +7405,19 @@ static bfd_boolean
stm32l4xx_need_create_replacing_stub (const insn32 insn,
bfd_arm_stm32l4xx_fix stm32l4xx_fix)
{
- int nb_regs = 0;
+ int nb_words = 0;
/* The field encoding the register list is the same for both LDMIA
and LDMDB encodings. */
if (is_thumb2_ldmia (insn) || is_thumb2_ldmdb (insn))
- nb_regs = popcount (insn & 0x0000ffff);
+ nb_words = popcount (insn & 0x0000ffff);
else if (is_thumb2_vldm (insn))
- nb_regs = (insn & 0xff);
+ nb_words = (insn & 0xff);
/* DEFAULT mode accounts for the real bug condition situation,
ALL mode inserts stubs for each LDM/VLDM instruction (testing). */
return
- (stm32l4xx_fix == BFD_ARM_STM32L4XX_FIX_DEFAULT) ? nb_regs > 8 :
+ (stm32l4xx_fix == BFD_ARM_STM32L4XX_FIX_DEFAULT) ? nb_words > 8 :
(stm32l4xx_fix == BFD_ARM_STM32L4XX_FIX_ALL) ? TRUE : FALSE;
}
@@ -16242,30 +16245,31 @@ create_instruction_sub (int target_reg, int source_reg, int value)
}
static inline bfd_vma
-create_instruction_vldmia (int base_reg, int wback, int num_regs,
+create_instruction_vldmia (int base_reg, int is_dp, int wback, int num_words,
int first_reg)
{
/* A8.8.332 VLDM (A8-922)
- VLMD{MODE} Rn{!}, {list} (Encoding T2). */
- bfd_vma patched_inst = 0xec900a00
+ VLMD{MODE} Rn{!}, {list} (Encoding T1 or T2). */
+ bfd_vma patched_inst = (is_dp ? 0xec900b00 : 0xec900a00)
| (/*W=*/wback << 21)
| (base_reg << 16)
- | (num_regs & 0x000000ff)
- | (((unsigned)first_reg>>1) & 0x0000000f) << 12
+ | (num_words & 0x000000ff)
+ | (((unsigned)first_reg >> 1) & 0x0000000f) << 12
| (first_reg & 0x00000001) << 22;
return patched_inst;
}
static inline bfd_vma
-create_instruction_vldmdb (int base_reg, int num_regs, int first_reg)
+create_instruction_vldmdb (int base_reg, int is_dp, int num_words,
+ int first_reg)
{
/* A8.8.332 VLDM (A8-922)
- VLMD{MODE} Rn!, {} (Encoding T2). */
- bfd_vma patched_inst = 0xed300a00
+ VLMD{MODE} Rn!, {} (Encoding T1 or T2). */
+ bfd_vma patched_inst = (is_dp ? 0xed300b00 : 0xed300a00)
| (base_reg << 16)
- | (num_regs & 0x000000ff)
- | (((unsigned)first_reg>>1) & 0x0000000f) << 12
+ | (num_words & 0x000000ff)
+ | (((unsigned)first_reg >>1 ) & 0x0000000f) << 12
| (first_reg & 0x00000001) << 22;
return patched_inst;
@@ -16745,15 +16749,15 @@ stm32l4xx_create_replacing_stub_vldm (struct elf32_arm_link_hash_table * htab,
const bfd_byte *const initial_insn_addr,
bfd_byte *const base_stub_contents)
{
- int num_regs = ((unsigned int)initial_insn << 24) >> 24;
+ int num_words = ((unsigned int) initial_insn << 24) >> 24;
bfd_byte *current_stub_contents = base_stub_contents;
BFD_ASSERT (is_thumb2_vldm (initial_insn));
/* In BFD_ARM_STM32L4XX_FIX_ALL mode we may have to deal with
- smaller than 8 registers load sequences that do not cause the
+ smaller than 8 words load sequences that do not cause the
hardware issue. */
- if (num_regs <= 8)
+ if (num_words <= 8)
{
/* Untouched instruction. */
current_stub_contents =
@@ -16768,28 +16772,30 @@ stm32l4xx_create_replacing_stub_vldm (struct elf32_arm_link_hash_table * htab,
}
else
{
+ bfd_boolean is_dp = /* DP encoding. */
+ (initial_insn & 0xfe100f00) == 0xec100b00;
bfd_boolean is_ia_nobang = /* (IA without !). */
(((initial_insn << 7) >> 28) & 0xd) == 0x4;
bfd_boolean is_ia_bang = /* (IA with !) - includes VPOP. */
(((initial_insn << 7) >> 28) & 0xd) == 0x5;
bfd_boolean is_db_bang = /* (DB with !). */
(((initial_insn << 7) >> 28) & 0xd) == 0x9;
- int base_reg = ((unsigned int)initial_insn << 12) >> 28;
+ int base_reg = ((unsigned int) initial_insn << 12) >> 28;
/* d = UInt (Vd:D);. */
- int first_reg = ((((unsigned int)initial_insn << 16) >> 28) << 1)
+ int first_reg = ((((unsigned int) initial_insn << 16) >> 28) << 1)
| (((unsigned int)initial_insn << 9) >> 31);
- /* Compute the number of 8-register chunks needed to split. */
- int chunks = (num_regs%8) ? (num_regs/8 + 1) : (num_regs/8);
+ /* Compute the number of 8-words chunks needed to split. */
+ int chunks = (num_words % 8) ? (num_words / 8 + 1) : (num_words / 8);
int chunk;
/* The test coverage has been done assuming the following
hypothesis that exactly one of the previous is_ predicates is
true. */
- BFD_ASSERT ((is_ia_nobang ^ is_ia_bang ^ is_db_bang) &&
- !(is_ia_nobang & is_ia_bang & is_db_bang));
+ BFD_ASSERT ( (is_ia_nobang ^ is_ia_bang ^ is_db_bang)
+ && !(is_ia_nobang & is_ia_bang & is_db_bang));
- /* We treat the cutting of the register in one pass for all
+ /* We treat the cutting of the words in one pass for all
cases, then we emit the adjustments:
vldm rx, {...}
@@ -16802,29 +16808,34 @@ stm32l4xx_create_replacing_stub_vldm (struct elf32_arm_link_hash_table * htab,
vldmd rx!, {...}
-> vldmb rx!, {8_words_or_less} for each needed 8_word. */
- for (chunk = 0; chunk<chunks; ++chunk)
+ for (chunk = 0; chunk < chunks; ++chunk)
{
+ bfd_vma new_insn = 0;
+
if (is_ia_nobang || is_ia_bang)
{
- current_stub_contents =
- push_thumb2_insn32 (htab, output_bfd, current_stub_contents,
- create_instruction_vldmia
- (base_reg,
- /*wback= . */1,
- chunks - (chunk + 1) ?
- 8 : num_regs - chunk * 8,
- first_reg + chunk * 8));
+ new_insn = create_instruction_vldmia
+ (base_reg,
+ is_dp,
+ /*wback= . */1,
+ chunks - (chunk + 1) ?
+ 8 : num_words - chunk * 8,
+ first_reg + chunk * 8);
}
else if (is_db_bang)
{
- current_stub_contents =
- push_thumb2_insn32 (htab, output_bfd, current_stub_contents,
- create_instruction_vldmdb
- (base_reg,
- chunks - (chunk + 1) ?
- 8 : num_regs - chunk * 8,
- first_reg + chunk * 8));
+ new_insn = create_instruction_vldmdb
+ (base_reg,
+ is_dp,
+ chunks - (chunk + 1) ?
+ 8 : num_words - chunk * 8,
+ first_reg + chunk * 8);
}
+
+ if (new_insn)
+ current_stub_contents =
+ push_thumb2_insn32 (htab, output_bfd, current_stub_contents,
+ new_insn);
}
/* Only this case requires the base register compensation
@@ -16834,7 +16845,7 @@ stm32l4xx_create_replacing_stub_vldm (struct elf32_arm_link_hash_table * htab,
current_stub_contents =
push_thumb2_insn32 (htab, output_bfd, current_stub_contents,
create_instruction_sub
- (base_reg, base_reg, 4*num_regs));
+ (base_reg, base_reg, 4*num_words));
}
/* B initial_insn_addr+4. */
View
36 external/gpl3/binutils/dist/bfd/elf32-avr.c
@@ -1826,12 +1826,13 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
Elf_Internal_Rela *irel, *irelend;
Elf_Internal_Sym *isym;
Elf_Internal_Sym *isymbuf = NULL;
- bfd_vma toaddr;
+ bfd_vma toaddr, reloc_toaddr;
struct elf_link_hash_entry **sym_hashes;
struct elf_link_hash_entry **end_hashes;
unsigned int symcount;
struct avr_relax_info *relax_info;
struct avr_property_record *prop_record = NULL;
+ bfd_boolean did_shrink = FALSE;
symtab_hdr = &elf_tdata (abfd)->symtab_hdr;
sec_shndx = _bfd_elf_section_from_bfd_section (abfd, sec);
@@ -1862,15 +1863,32 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
}
}
+ /* We need to look at all relocs with offsets less than toaddr. prop
+ records handling adjusts toaddr downwards to avoid moving syms at the
+ address of the property record, but all relocs with offsets between addr
+ and the current value of toaddr need to have their offsets adjusted.
+ Assume addr = 0, toaddr = 4 and count = 2. After prop records handling,
+ toaddr becomes 2, but relocs with offsets 2 and 3 still need to be
+ adjusted (to 0 and 1 respectively), as the first 2 bytes are now gone.
+ So record the current value of toaddr here, and use it when adjusting
+ reloc offsets. */
+ reloc_toaddr = toaddr;
+
irel = elf_section_data (sec)->relocs;
irelend = irel + sec->reloc_count;
/* Actually delete the bytes. */
if (toaddr - addr - count > 0)
- memmove (contents + addr, contents + addr + count,
- (size_t) (toaddr - addr - count));
+ {
+ memmove (contents + addr, contents + addr + count,
+ (size_t) (toaddr - addr - count));
+ did_shrink = TRUE;
+ }
if (prop_record == NULL)
- sec->size -= count;
+ {
+ sec->size -= count;
+ did_shrink = TRUE;
+ }
else
{
/* Use the property record to fill in the bytes we've opened up. */
@@ -1889,13 +1907,21 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
prop_record->data.align.preceding_deleted += count;
break;
};
+ /* If toaddr == (addr + count), then we didn't delete anything, yet
+ we fill count bytes backwards from toaddr. This is still ok - we
+ end up overwriting the bytes we would have deleted. We just need
+ to remember we didn't delete anything i.e. don't set did_shrink,
+ so that we don't corrupt reloc offsets or symbol values.*/
memset (contents + toaddr - count, fill, count);
/* Adjust the TOADDR to avoid moving symbols located at the address
of the property record, which has not moved. */
toaddr -= count;
}
+ if (!did_shrink)
+ return TRUE;
+
/* Adjust all the reloc addresses. */
for (irel = elf_section_data (sec)->relocs; irel < irelend; irel++)
{
@@ -1906,7 +1932,7 @@ elf32_avr_relax_delete_bytes (bfd *abfd,
/* Get the new reloc address. */
if ((irel->r_offset > addr
- && irel->r_offset < toaddr))
+ && irel->r_offset < reloc_toaddr))
{
if (debug_relax)
printf ("Relocation at address 0x%x needs to be moved.\n"
View
9 external/gpl3/binutils/dist/bfd/elf32-hppa.c
@@ -3245,6 +3245,8 @@ tpoff (struct bfd_link_info *info, bfd_vma address)
static bfd_boolean
elf32_hppa_final_link (bfd *abfd, struct bfd_link_info *info)
{
+ struct stat buf;
+
/* Invoke the regular ELF linker to do all the work. */
if (!bfd_elf_final_link (abfd, info))
return FALSE;
@@ -3254,6 +3256,13 @@ elf32_hppa_final_link (bfd *abfd, struct bfd_link_info *info)
if (bfd_link_relocatable (info))
return TRUE;
+ /* Do not attempt to sort non-regular files. This is here
+ especially for configure scripts and kernel builds which run
+ tests with "ld [...] -o /dev/null". */
+ if (stat (abfd->filename, &buf) != 0
+ || !S_ISREG(buf.st_mode))
+ return TRUE;
+
return elf_hppa_sort_unwind (abfd);
}
View
133 external/gpl3/binutils/dist/bfd/elf32-i386.c
@@ -1830,7 +1830,8 @@ elf_i386_check_relocs (bfd *abfd,
&& (sec->flags & SEC_ALLOC) != 0
&& (r_type != R_386_PC32
|| (h != NULL
- && (! SYMBOLIC_BIND (info, h)
+ && (! (bfd_link_pie (info)
+ || SYMBOLIC_BIND (info, h))
|| h->root.type == bfd_link_hash_defweak
|| !h->def_regular))))
|| (ELIMINATE_COPY_RELOCS
@@ -1961,7 +1962,7 @@ elf_i386_check_relocs (bfd *abfd,
return FALSE;
}
- if ((r_type == R_386_GOT32 || r_type == R_386_GOT32X)
+ if (r_type == R_386_GOT32X
&& (h == NULL || h->type != STT_GNU_IFUNC))
sec->need_convert_load = 1;
}
@@ -2490,12 +2491,14 @@ elf_i386_allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
}
else
{
+ eh->plt_got.offset = (bfd_vma) -1;
h->plt.offset = (bfd_vma) -1;
h->needs_plt = 0;
}
}
else
{
+ eh->plt_got.offset = (bfd_vma) -1;
h->plt.offset = (bfd_vma) -1;
h->needs_plt = 0;
}
@@ -2813,28 +2816,28 @@ elf_i386_convert_load (bfd *abfd, asection *sec,
unsigned int nop;
bfd_vma nop_offset;
- if (r_type != R_386_GOT32 && r_type != R_386_GOT32X)
+ /* Don't convert R_386_GOT32 since we can't tell if it is applied
+ to "mov $foo@GOT, %reg" which isn't a load via GOT. */
+ if (r_type != R_386_GOT32X)
continue;
roff = irel->r_offset;
if (roff < 2)
continue;
- /* Addend for R_386_GOT32 and R_386_GOT32X relocations must be 0. */
+ /* Addend for R_386_GOT32X relocation must be 0. */
addend = bfd_get_32 (abfd, contents + roff);
if (addend != 0)
continue;
modrm = bfd_get_8 (abfd, contents + roff - 1);
baseless = (modrm & 0xc7) == 0x5;
- if (r_type == R_386_GOT32X
- && baseless
+ if (baseless
&& bfd_link_pic (link_info))
{
/* For PIC, disallow R_386_GOT32X without a base register
- since we don't know what the GOT base is. Allow
- R_386_GOT32 for existing object files. */
+ since we don't know what the GOT base is. */
const char *name;
if (r_symndx < symtab_hdr->sh_info)
@@ -2862,21 +2865,15 @@ elf_i386_convert_load (bfd *abfd, asection *sec,
/* It is OK to convert mov to lea. */
if (opcode != 0x8b)
{
- /* Only convert R_386_GOT32X relocation for call, jmp or
- one of adc, add, and, cmp, or, sbb, sub, test, xor
- instructions. */
- if (r_type != R_386_GOT32X)
- continue;
-
/* It is OK to convert indirect branch to direct branch. It
is OK to convert adc, add, and, cmp, or, sbb, sub, test,
xor only when PIC is false. */
if (opcode != 0xff && bfd_link_pic (link_info))
continue;
}
- /* Try to convert R_386_GOT32 and R_386_GOT32X. Get the symbol
- referred to by the reloc. */
+ /* Try to convert R_386_GOT32X. Get the symbol referred to by
+ the reloc. */
if (r_symndx < symtab_hdr->sh_info)
{
isym = bfd_sym_from_r_symndx (&htab->sym_cache,
@@ -2988,8 +2985,7 @@ elf_i386_convert_load (bfd *abfd, asection *sec,
{
/* Convert "mov foo@GOT(%reg1), %reg2" to
"lea foo@GOTOFF(%reg1), %reg2". */
- if (r_type == R_386_GOT32X
- && (baseless || !bfd_link_pic (link_info)))
+ if (baseless || !bfd_link_pic (link_info))
{
r_type = R_386_32;
/* For R_386_32, convert
@@ -3953,20 +3949,26 @@ elf_i386_relocate_section (bfd *output_bfd,
}
relocation = off;
-
- /* Adjust for static executables. */
- if (htab->elf.splt == NULL)
- relocation += gotplt->output_offset;
}
else
+ relocation = (base_got->output_section->vma
+ + base_got->output_offset + off
+ - gotplt->output_section->vma
+ - gotplt->output_offset);
+
+ if ((*(contents + rel->r_offset - 1) & 0xc7) == 0x5)
+ {
+ if (bfd_link_pic (info))
+ goto disallow_got32;
+
+ /* Add the GOT base if there is no base register. */
+ relocation += (gotplt->output_section->vma
+ + gotplt->output_offset);
+ }
+ else if (htab->elf.splt == NULL)
{
- relocation = (base_got->output_section->vma
- + base_got->output_offset + off
- - gotplt->output_section->vma
- - gotplt->output_offset);
/* Adjust for static executables. */
- if (htab->elf.splt == NULL)
- relocation += gotplt->output_offset;
+ relocation += gotplt->output_offset;
}
goto do_relocation;
@@ -4016,10 +4018,12 @@ elf_i386_relocate_section (bfd *output_bfd,
/* It is relative to .got.plt section. */
if (h->got.offset != (bfd_vma) -1)
- /* Use GOT entry. */
+ /* Use GOT entry. Mask off the least significant bit in
+ GOT offset which may be set by R_386_GOT32 processing
+ below. */
relocation = (htab->elf.sgot->output_section->vma
+ htab->elf.sgot->output_offset
- + h->got.offset - offplt);
+ + (h->got.offset & ~1) - offplt);
else
/* Use GOTPLT entry. */
relocation = (h->plt.offset / plt_entry_size - 1 + 3) * 4;
@@ -4122,10 +4126,39 @@ elf_i386_relocate_section (bfd *output_bfd,
if (off >= (bfd_vma) -2)
abort ();
- relocation = htab->elf.sgot->output_section->vma
- + htab->elf.sgot->output_offset + off
- - htab->elf.sgotplt->output_section->vma
- - htab->elf.sgotplt->output_offset;
+ relocation = (htab->elf.sgot->output_section->vma
+ + htab->elf.sgot->output_offset + off);
+ if ((*(contents + rel->r_offset - 1) & 0xc7) == 0x5)
+ {
+ if (bfd_link_pic (info))
+ {
+ /* For PIC, disallow R_386_GOT32 without a base
+ register since we don't know what the GOT base
+ is. */
+ const char *name;
+
+disallow_got32:
+ if (h == NULL)
+ name = bfd_elf_sym_name (input_bfd, symtab_hdr, sym,
+ NULL);
+ else
+ name = h->root.root.string;
+
+ (*_bfd_error_handler)
+ (_("%B: direct GOT relocation %s against `%s' without base register can not be used when making a shared object"),
+ input_bfd, howto->name, name);
+ bfd_set_error (bfd_error_bad_value);
+ return FALSE;
+ }
+ }
+ else
+ {
+ /* Subtract the .got.plt section address only with a base
+ register. */
+ relocation -= (htab->elf.sgotplt->output_section->vma
+ + htab->elf.sgotplt->output_offset);
+ }
+
break;
case R_386_GOTOFF:
@@ -4285,8 +4318,8 @@ elf_i386_relocate_section (bfd *output_bfd,
else if (h != NULL
&& h->dynindx != -1
&& (r_type == R_386_PC32
- || !bfd_link_pic (info)
- || !SYMBOLIC_BIND (info, h)
+ || !(bfd_link_executable (info)
+ || SYMBOLIC_BIND (info, h))
|| !h->def_regular))
outrel.r_info = ELF32_R_INFO (h->dynindx, r_type);
else
@@ -5355,19 +5388,23 @@ elf_i386_reloc_type_class (const struct bfd_link_info *info,
bfd *abfd = info->output_bfd;
const struct elf_backend_data *bed = get_elf_backend_data (abfd);
struct elf_link_hash_table *htab = elf_hash_table (info);
- unsigned long r_symndx = ELF32_R_SYM (rela->r_info);
- Elf_Internal_Sym sym;
-
- if (htab->dynsym == NULL
- || !bed->s->swap_symbol_in (abfd,
- (htab->dynsym->contents
- + r_symndx * sizeof (Elf32_External_Sym)),
- 0, &sym))
- abort ();
- /* Check relocation against STT_GNU_IFUNC symbol. */
- if (ELF32_ST_TYPE (sym.st_info) == STT_GNU_IFUNC)
- return reloc_class_ifunc;
+ if (htab->dynsym != NULL
+ && htab->dynsym->contents != NULL)
+ {
+ /* Check relocation against STT_GNU_IFUNC symbol if there are
+ dynamic symbols. */
+ unsigned long r_symndx = ELF32_R_SYM (rela->r_info);
+ Elf_Internal_Sym sym;
+ if (!bed->s->swap_symbol_in (abfd,
+ (htab->dynsym->contents
+ + r_symndx * sizeof (Elf32_External_Sym)),
+ 0, &sym))
+ abort ();
+
+ if (ELF32_ST_TYPE (sym.st_info) == STT_GNU_IFUNC)
+ return reloc_class_ifunc;
+ }
switch (ELF32_R_TYPE (rela->r_info))
{
View
1 external/gpl3/binutils/dist/bfd/elf32-ppc.c
@@ -5166,6 +5166,7 @@ ppc_elf_tls_setup (bfd *obfd, struct bfd_link_info *info)
tga->root.type = bfd_link_hash_indirect;
tga->root.u.i.link = &opt->root;
ppc_elf_copy_indirect_symbol (info, opt, tga);
+ opt->forced_local = 0;
if (opt->dynindx != -1)
{
/* Use __tls_get_addr_opt in dynamic relocations. */
View
18 external/gpl3/binutils/dist/bfd/elf64-hppa.c
@@ -2945,7 +2945,7 @@ elf_hppa_record_segment_addrs (bfd *abfd,
static bfd_boolean
elf_hppa_final_link (bfd *abfd, struct bfd_link_info *info)
{
- bfd_boolean retval;
+ struct stat buf;
struct elf64_hppa_link_hash_table *hppa_info = hppa_link_hash_table (info);
if (hppa_info == NULL)
@@ -3029,18 +3029,26 @@ elf_hppa_final_link (bfd *abfd, struct bfd_link_info *info)
info);
/* Invoke the regular ELF backend linker to do all the work. */
- retval = bfd_elf_final_link (abfd, info);
+ if (!bfd_elf_final_link (abfd, info))
+ return FALSE;
elf_link_hash_traverse (elf_hash_table (info),
elf_hppa_remark_useless_dynamic_symbols,
info);
/* If we're producing a final executable, sort the contents of the
unwind section. */
- if (retval && !bfd_link_relocatable (info))
- retval = elf_hppa_sort_unwind (abfd);
+ if (bfd_link_relocatable (info))
+ return TRUE;
+
+ /* Do not attempt to sort non-regular files. This is here
+ especially for configure scripts and kernel builds which run
+ tests with "ld [...] -o /dev/null". */
+ if (stat (abfd->filename, &buf) != 0
+ || !S_ISREG(buf.st_mode))
+ return TRUE;
- return retval;
+ return elf_hppa_sort_unwind (abfd);
}
/* Relocate the given INSN. VALUE should be the actual value we want
View
81 external/gpl3/binutils/dist/bfd/elf64-ppc.c
@@ -2570,6 +2570,7 @@ ppc64_elf_branch_reloc (bfd *abfd, arelent *reloc_entry, asymbol *symbol,
elf_symbol