Merge remote-tracking branch 'origin/users/hjl/linux/master' into users/hjl/linux...
[external/binutils.git] / release.binutils-2.25.51.0.2
1 This is the beta release of binutils 2.25.51.0.2 for Linux, which is
2 based on binutils 2015 0515 master branch on sourceware.org plus
3 various changes. It is purely for Linux.
4
5 All relevant patches in patches have been applied to the source tree.
6 You can take a look at patches/README to see what have been applied and
7 in what order they have been applied.
8
9 Starting from the 2.23.52.0.2 release, when creating executables, BFD
10 linker will issue an error for undefined weak reference which is
11 defined in a shared library from DT_NEEDED.  Previously BFD linker
12 will silently include the shared library from DT_NEEDED.
13
14 Starting from the 2.21.51.0.3 release, you must remove .ctors/.dtors
15 section sentinels when building glibc or other C run-time libraries.
16 Otherwise, you will run into:
17
18 http://sourceware.org/bugzilla/show_bug.cgi?id=12343
19
20 Starting from the 2.21.51.0.2 release, BFD linker has the working LTO
21 plugin support. It can be used with GCC 4.5 and above. For GCC 4.5, you
22 need to configure GCC with --enable-gold to enable LTO plugin support.
23
24 Starting from the 2.21.51.0.2 release, binutils fully supports compressed
25 debug sections.  However, compressed debug section isn't turned on by
26 default in assembler. I am planning to turn it on for x86 assembler in
27 the future release, which may lead to the Linux kernel bug messages like
28
29 WARNING: lib/ts_kmp.o (.zdebug_aranges): unexpected non-allocatable section.
30
31 But the resulting kernel works fine.
32
33 Starting from the 2.20.51.0.4 release, no diffs against the previous
34 release will be provided.
35
36 You can enable both gold and bfd ld with --enable-gold=both.  Gold will
37 be installed as ld.gold and bfd ld will be installed as ld.bfd.  By
38 default, ld.bfd will be installed as ld.  You can use the configure
39 option, --enable-gold=both/gold to choose gold as the default linker,
40 ld.  IA-32 binary and X64_64 binary tar balls are configured with
41 --enable-gold=both/ld --enable-plugins --enable-threads.
42
43 Starting from the 2.25.51.0.2 release, the x86 assembler will optimize
44 out relocations against defined non-weak global branch targets with
45 default visibility by default.  This Linux kernel patch is needed to
46 create a working x86 Linux kernel if it hasn't been applied:
47
48 diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
49 index ae6588b..b91a00c 100644
50 --- a/arch/x86/kernel/head_64.S
51 +++ b/arch/x86/kernel/head_64.S
52 @@ -339,8 +339,8 @@ early_idt_handlers:
53         i = i + 1
54         .endr
55  
56 -/* This is global to keep gas from relaxing the jumps */
57 -ENTRY(early_idt_handler)
58 +/* This is weak to keep gas from relaxing the jumps */
59 +WEAK(early_idt_handler)
60         cld
61  
62         cmpl $2,(%rsp)          # X86_TRAP_NMI
63 -- 
64
65 Starting from the 2.18.50.0.4 release, the x86 assembler no longer
66 accepts
67
68         fnstsw %eax
69
70 fnstsw stores 16bit into %ax and the upper 16bit of %eax is unchanged.
71 Please use
72
73         fnstsw %ax
74
75 Starting from the 2.17.50.0.4 release, the default output section LMA
76 (load memory address) has changed for allocatable sections from being
77 equal to VMA (virtual memory address), to keeping the difference between
78 LMA and VMA the same as the previous output section in the same region.
79
80 For
81
82 .data.init_task : { *(.data.init_task) }
83
84 LMA of .data.init_task section is equal to its VMA with the old linker.
85 With the new linker, it depends on the previous output section. You
86 can use
87
88 .data.init_task : AT (ADDR(.data.init_task)) { *(.data.init_task) }
89
90 to ensure that LMA of .data.init_task section is always equal to its
91 VMA. The linker script in the older 2.6 x86-64 kernel depends on the
92 old behavior.  You can add AT (ADDR(section)) to force LMA of
93 .data.init_task section equal to its VMA. It will work with both old
94 and new linkers. The x86-64 kernel linker script in kernel 2.6.13 and
95 above is OK.
96
97 The new x86_64 assembler no longer accepts
98
99         monitor %eax,%ecx,%edx
100
101 You should use
102
103         monitor %rax,%ecx,%edx
104
105 or
106         monitor
107
108 which works with both old and new x86_64 assemblers. They should
109 generate the same opcode.
110
111 The new i386/x86_64 assemblers no longer accept instructions for moving
112 between a segment register and a 32bit memory location, i.e.,
113
114         movl (%eax),%ds
115         movl %ds,(%eax)
116
117 To generate instructions for moving between a segment register and a
118 16bit memory location without the 16bit operand size prefix, 0x66,
119
120         mov (%eax),%ds
121         mov %ds,(%eax)
122
123 should be used. It will work with both new and old assemblers. The
124 assembler starting from 2.16.90.0.1 will also support
125
126         movw (%eax),%ds
127         movw %ds,(%eax)
128
129 without the 0x66 prefix. Patches for 2.4 and 2.6 Linux kernels are
130 available at
131
132 http://www.kernel.org/pub/linux/devel/binutils/linux-2.4-seg-4.patch
133 http://www.kernel.org/pub/linux/devel/binutils/linux-2.6-seg-5.patch
134
135 The ia64 assembler is now defaulted to tune for Itanium 2 processors.
136 To build a kernel for Itanium 1 processors, you will need to add
137
138 ifeq ($(CONFIG_ITANIUM),y)
139         CFLAGS += -Wa,-mtune=itanium1
140         AFLAGS += -Wa,-mtune=itanium1
141 endif
142
143 to arch/ia64/Makefile in your kernel source tree.
144
145 Please report any bugs related to binutils 2.25.51.0.2 to
146 hjl.tools@gmail.com
147
148 and
149
150 http://www.sourceware.org/bugzilla/
151
152 Changes from binutils 2.25.51.0.1:
153
154 1. Update from binutils 2015 0515.
155 2. Add support for Intel MCU psABI.
156 3. Add supporr for AMD znver1 processor.
157 4. Enable gABI compressed debug section support to as and binutils.
158 5. Add --compress-debug-sections=[none|zlib|zlib-gnu|zlib-gabi] support
159 to ld and gold.
160 6. Don't create .plt section if not needed.
161 7. Add branch optimization to x86 assembler.
162 8. Change x86 assembler to limit multi-byte nop instructions to 10 bytes.
163 9. Remove .note section for -march= in x86 assembler.
164 10. Don't change compressed input debug section names.  PR binutils/18209.
165 11. Support copy relocation in PIE for i386.  PR ld/18289.
166 12. Support copy relocation on protected symbols for i386 and x86-64.
167 PRs ld/15228/17709.
168 13. Don't remove _init/_fini functions with --gc-sections.  PR ld/18223.
169 14. Don't remove .bss section with --gc-sections.  PR ld/17615.
170 15. Don't create large padding for PT_GNU_RELRO segment.  PR ld/18176.
171 16. Add llvm plugin support to ld.  PRs ld/17878/18250.
172 17. Generate correct sh_info for .rel.plt/.rela.plt sections.  PR ld/18169.
173 18. Fix PIE copy relocations with pointers on x86-64.  PR ld/17827.
174 19. Change ld not to print newlines in INPUT statements.  PRs ld/18344.
175 20. Support both AMD64 and Intel64 in x86-64 assembler and
176 disassembler.  PR binutis/18386.
177 21. Fix x86 disassembler for rdrand/rdseed.  PR binutils/17898.
178 22. Add -z/--decompress option to readelf.
179 23. Add --update-section option to objcopy.
180 24. Properly dump .debug_loc section.  PR binutils/18374.
181 25. Properly dump .debug_str_offsets section.  PR binutils/18218.
182 26. Change readelf -s --wide to issue an error.  PR binutils/18101.
183 27. Change objcopy not to leave temporary directory in case of error.
184 PR binutils/17636.
185 28. Avoid gaps between sections and section headers when ld -s is used.
186 PRs ld/17773/17842.
187 29. Issue a warning for relocation in readonly section for -z text.
188 PR ld/17935.
189 30. Don't complain about -fPIC for undefined symbol.  PR ld/17847.
190 31. Don't ignore undefined references produced by linker plugin.
191 PRs ld/12365/14272.
192 32. Removed undefined symbols in static executables.  PR ld/4317.
193 33. Remove useless symbols.  PRs ld/17973/17975.
194 34. Avoid seg fault when input relocation is incompatible with output.
195 PR ld/18160.
196 35. Fix more memory access issues.  PRs ld/17512/17531.
197 36. Add Nuxi CloudABI support.
198 37. Add ft32 support.
199 38. Add Linux/h8300 support.
200 39. Improve gold support.
201 40. Improve COFF support.
202 41. Improve PE support.
203 42. Improve aarch64 support.
204 43. Improve arm support.
205 44. Improve avr support.
206 45. Improve m32c support.
207 46. Improve mep support.
208 47. Improve microblaze support.
209 48. Improve mips support.
210 49. Improve moxie support.
211 50. Improve msp430 support.
212 51. Improve nds32 support.
213 52. Improve pdp11 support.
214 53. Improve ppc support.
215 54. Improve rl78 support.
216 55. Improve rx support.
217 56. Improve s390 support.
218 57. Improve sh support.
219 58. Improve sh64 support.
220 59. Improve v850 support.
221 60. Improve xtensa support.
222
223 Changes from binutils 2.24.51.0.4:
224
225 1. Update from binutils 2014 1224.
226 2. Update Intel instruction extension support to October, 2014,
227 including AVX512VBMI, AVX512IFMA, PCOMMIT and CLWB.
228 3. --compress-debug-sections is turned on for Linux/x86 assembler by
229 default.
230 4. Deprecate R_X86_64_PC32_BND and R_X86_64_PLT32_BND support.  Add
231 -z bndplt linker option to enable MPX PLT.
232 5. Support copy relocations in x86-64 PIE.
233 6. Don't output symbol version definitions for non-DT_NEEDED libs.
234 PR ld/16452, ld/16457.
235 7. Optimize out i386/x86-64 JUMP_SLOT relocation.
236 8. Check PC-relative offset overflow in x86-64 PLT entry.  PR ld/17618.
237 9. Check branch displacement overflow in x86-64 PLT entry.
238 10. Fix many memory access issues.  PRs ld/17453, binutils/17510,
239 binutils/17512, binutils/17531, binutils/17533, binutils/17597,
240 PR binutuls/17605, PR ld/17713.
241 11. Disallow copy relocations against protected symbols.  PR ld/15228.
242 12. Fix an x86 assembler crash on invalid input.  PR gas/17493.
243 12. Fix an addr2line bug.  PR binutils/17541.
244 14. Sort relocs output by ld -r.  PR ld/17666.
245 15. Speed up x86 PLT dump.  PR binutils/17677.
246 16. Update x86 assembler to add REX prefix to encode R_X86_64_GOTTPOFF
247 for x32.  PR ld/17482.
248 17. Run eh_frame optimisation for relocatable link.  PR ld/17467.
249 18. Discard zero address range eh_frame FDEs.  PR ld/17447.
250 19. Add support for more than one plugin in lib/bfd-plugins.  PR ld/17422.
251 20. Add -D/-U options to objcopy/strip.  PR binutils/17671.
252 21. Don't check shared libraries for .eh_frame sections nor --build-id.
253 PR ld/17742.
254 22. Fix exception frame section with static link for gold.  PR gold/14675.
255 23. Handle stack split for x32 in gold.  PR gold/17729.
256 24. Initial visium support.
257 25. Improve gold support.
258 26. Improve COFF support.
259 27. Improve aarch64 support.
260 28. Improve arm support.
261 29. Improve avr support.
262 30. Improve mips support.
263 31. Improve moxie support.
264 32. Improve msp430 support.
265 33. Improve nios2 support.
266 34. Improve ppc/ppc64 support.
267 35. Improve sparc support.
268 36. Improve spu support.
269
270 Changes from binutils 2.24.51.0.3:
271
272 1. Update from binutils 2014 0923.
273 2. Update Intel AVX-512 instruction support to July, 2014.
274 3. Support Intel secure enclave instruction.
275 4. Support Intel clflushopt instruction.
276 5. Support Intel xsavec/xrstors instructions.
277 6. Fix an x86 linker crash with --just-symbols.  PR ld/17306.
278 7. Improve x86 PLT entry matching.  PR binutils/17154.
279 8. Fix an x86 GNU2 TLS linker bug.  PR ld/17057.
280 9. Update x86-64 linker to create alternate PLT entries for MPX.
281 10. Update x86 assembler to disallow VEX/EVEX encoded instructions in
282 16-bit mode.  PR gas/17421.
283 11. Improve prefix handling in x86 disassembler.  PR binutils/16893.
284 12. Update x86 disassembler to properly handle suffix for iret and sysret
285 in Intel mode.
286 13. Update x86 disassembler to properly handle prefixes before fwait.
287 PR binutils/16891.
288 14. Fix an AVX512 gather/scatter x86 disassembler bug.  PR
289 binutils/16490.
290 15. Add -momit-lock-prefix option to x86 assembler.
291 16. Fix nm on mixed IR/non-IR input objects.
292 17. Fix a --just-symbols linker bug.  PR ld/17313.
293 18. Fix a bad .eh-frame section bug with LTO and non-LTO objects.  PR
294 ld/16563.
295 19. Improve linker EH frame support
296 20. Fix a linker .gnu.warning bug with LTO objects.  PR ld/16746.
297 21. Improve support for slim LTO objects.  PR ld/13227.
298 22. Fix a linker crash when MALLOC_PERTURB_ is set.  PR ld/17047.
299 23. Fix a wrapped symbol linker bug.  PR ld/16910.
300 24. Fix a linker bug on object with separate debug file.  PR ld/16867.
301 25. Fix an incorrect error message linker bug.  PR ld/16787.
302 26. Fix an incorrect warning message linker bug.  PR ld/16756.
303 27. Fix a linker bug on LTO objects with TLS.  PR ld/16846.
304 28. Fix the 32-bit linker on large file (~2 Gb).  PR ld/16803.
305 29. Fix a garbage collection linker bug.  PR ld/16643.
306 30. Fix a garbage collection linker bug with --dynamic-list.  PR
307 gold/16530.
308 31. Properly handle DW_CFA_restore_state in DWARF dumper.  PR
309 binutils/16252.
310 32. Fix a strip bug.  PR binutils/16811.
311 33. Update ar/nm to load liblto_plugin.so automatically if available.  PR
312 binutils/14698.
313 34. Check corrupt section names in readelf.  PR binutils/16664.a
314 35. Add NT_GNU_GOLD_VERSION support to readelf.  PR binutils/16444.
315 36. Update assembler to honour #line directives inside macros.  PR
316 gas/16908.
317 37. Improve linker supprot for --as-needed and --start-group/--end-group.
318 PR ld/17068.
319 38. Honor "-z noexecstack" for "ld -r".  PR ld/16744.
320 39. Honor --no-demangle for "ld --cref".  PR ld/16569.
321 40. Improve gold.
322 41. Improve Windows support.
323 42. Improve MacOS support.
324 43. Improve aarch64 support.
325 44. Improve alpha support.
326 45. Improve arm support.
327 46. Improve avr support.
328 47. Improve cris support.
329 48. Improve m68k support.
330 49. Improve metag support.
331 50. Improve mips support.
332 51. Improve mmix support.
333 52. Improve msp430 support.
334 53. Improve nds32 support.
335 54. Improve nios2 support.
336 55. Improve or1k support.
337 56. Improve ppc/ppc64 support.
338 57. Improve rl78 support.
339 58. Improve rx support.
340 59. Improve s390 support.
341 60. Improve sh support.
342 61. Improve sparc support.
343 62. Improve v850 support.
344 63. Improve xtensa support.
345
346 Changes from binutils 2.24.51.0.2:
347
348 1. Update from binutils 2014 0127.
349 2. Fix a linker crash with mixed IR/non-IR input objects.
350 3. Update readelf/objdump to display versioned symbol names when dumping
351 dynamic relocations.  PR 16496.
352 4. Update linker to improve orphaned TLS section handling.  PR 16498.
353 5. Update linker to check incompatible existing default symbol definition.
354 PR 16467.
355 6. Update linker to properly handle non-PIC references to __ehdr_start in
356 pie and shared object.  PR 16428.
357 7. Update bfd to properly generate PT_GNU_RELRO segment for ld and
358 objcopy.  PRs 14207/16322/16323.
359 8. Update x86 assembler to check for invalid register set in AVX512 gather
360 instructions.  PR 16489.
361 9. Update empty section handling in linker.
362 10. Avoid invalid directory in linker library search.  PR 16456.
363 11. Improve x86 disassembler.
364 12. Improve gold.
365 13. Improve COFF support.
366 14. Add nds32 support.
367 15. Improve aarch64 support.
368 16. Improve arm support.
369 17. Improve mips support.
370 18. Improve msp430 support.
371 19. Improve ppc support.
372 20. Improve rl78 support.
373 21. Improve z80 support.
374
375 Changes from binutils 2.24.51.0.1:
376
377 1. Update from binutils 2013 1213.
378 2. Fix ld and objcopy to set the SHF_INFO_LINK bit for SHT_REL/SHT_RELA
379 sections.  PR 16317.
380 3. Fix ld and objcopy to properly generate PT_GNU_RELRO segment. PRs
381 14207/16322/16323.
382 4. Fix objcopy to copy EI_OSABI field.  PR 16318.
383 5. Change ld to set e_type in ELF header to ET_EXEC for -pie
384 -Ttext-segment=.
385 6. Fix a ld bug for --as-needed with symbol versioning.
386 7. Add gas/ld/gold support for R_X86_64_PC32_BND and R_X86_64_PLT32_BND
387 relocations.
388 8. Fix an assembler line listing bug.  PR 16109.
389 9. Improve gold.
390 10. Improve nacl support.
391 11. Improve COFF support.
392 12. Improve aarch64 support.
393 13. Improve arm support.
394 14. Improve hppa support.
395 15. Improve mips support.
396 16. Improve ppc support.
397
398 Changes from binutils 2.23.52.0.2:
399
400 1. Update from binutils 2013 1106.
401 2. Add Intel AVX-512 new instruction support.
402 3. Add Intel MPX new instruction support.
403 4. Update ld to support x86-64 large PIC model with TLS GD and LD sequences.
404 5. Fix ld to properly handle R_X86_64_DTPOFF64.  PR 15685.
405 6. Fix x86 assembler to properly check 64-bit register.
406 7. Update x86 assembler not to align text/data/bss sections for ELF.
407 8. Fix x86 assembler to properly support cvttps2pi.  PR 13572.
408 9. Fix ld to generate warning sections in glibc.  PR 15762.
409 10. Avoid corrupted binary generated by objcopy/strip.  PR 16056.
410 11. Improve ld hash.  PR 15657.
411 12. Fix objdump on /proc/kcore.  PR 15818.
412 13. Improve DWARF support.
413 14. Improve addr2line.  PR 15994.
414 15. Improve readelf.  PR 15745.
415 16. Improve gold.
416 17. Improve nacl support.
417 18. Improve aarch64 support.
418 19. Improve arm support.
419 20. Improve cris support.
420 21. Improve hppa support.
421 22. Improve m32c support.
422 23. Improve m68k support.
423 24. Improve mips support.
424 25. Improve msp430 support.
425 26. Improve nios2 support.
426 27. Improve ppc support.
427 28. Improve rl78 support.
428 29. Improve rx support.
429 30. Improve rs6000 support.
430 31. Improve s390 support.
431 32. Improve sparc support.
432 33. Improve tile support.
433 34. Improve vax support.
434
435 Changes from binutils 2.23.52.0.1:
436
437 1. Update from binutils 2013 0426.
438 2. Add x32 support to embedded x86_64 ELF target.
439 3. Fix an x86 IFUNC linker regression.  PR 15371.
440 4. Fix an LTO linker weak definition bug.  PR 15323.
441 5. Remove stale dynamic table entries for symbols optimized out by LTO.
442 PR 15270.
443 6. Revert the fix for PR 15149.  When creating executables, BFD linker
444 won't issue an error for undefined weak reference which is defined in
445 7 shared library from DT_NEEDED.
446 8. Ignore weak reference which is is defined in a shared library from
447 DT_NEEDED.  This may change the behavior of resulting binaries with
448 undefined weak reference.  List libraries needed on command-line as work
449 around.  PR 12549.
450 9. Fix a MIPS ELF linker crash.  PR 15382.
451 10. Align LMA per VMA alignment only if needed.  PR 15222.
452 11. Fix a BFD decompress memory leak.  PR 15356.
453 12. Properly check SIB byte in x86 disassembler.
454 13, Fix invalid memory access in readelf.  PR 15191.
455 14, Fix invalid memory access in DWARF dumper.  PRs 15206/15202/15201.
456 15. Improve gold.
457 16. Improve aarch64 support.
458 17. Improve arm support.
459 18. Improve avr support.
460 19. Improve h8300 support.
461 20. Improve mips support.
462 21. Improve nios2 support.
463 22. Improve ppc support.
464 23. Improve rl78 support.
465 24. Improve sh support.
466 25. Improve sparc support.
467 26. Improve tic6x support.
468 27. Improve v850 support.
469
470 Changes from binutils 2.23.51.0.9:
471
472 1. Update from binutils 2013 0226.
473 2. Add Intel SAMP new instruction support.
474 3. Allow dynamic R_386_SIZE32, R_X86_64_SIZE32 and R_X86_64_SIZE64
475 relocations agaist TLS symbols.
476 4. Fix BFD linker to set STB_GNU_UNIQUE only for definition.  PR 15167.
477 5. Fix BFD linker to set STB_GNU_UNIQUE only if symbol is defined in
478 regular object.  PR 15107.
479 6. Don't add DT_NEEDED for references from the LTO IR input.  PR 15146.
480 7. When creating executables, BFD linker will issue an error for undefined
481 weak reference which is defined in a shared library from DT_NEEDED.
482 PR 15149.
483 8. Also trace symbol from the LTO IR input.  PR 15141.
484 9. Support stripping LTO IR sections.  PR 15033.
485 10. Don't allow a nested archive pointing to itself and don't generate
486 bad archive.  PR 15140.
487 11. Fix objcopy segfault on non-ELF input.  PR 14873.
488 12. Update DWARF dump support.
489 13. Improve gold.
490 14. Add nios2 support.
491 15. Improve mach support.
492 16. Improve aarch64 support.
493 17. Improve arm support.
494 18. Improve avr support.
495 19. Improve h8300 support.
496 20. Improve meta support.
497 21. Improve mips support.
498 22. Improve ppc support.
499 23. Improve rl78 support.
500 24. Improve sparc support.
501 25. Improve v850 support.
502
503 Changes from binutils 2.23.51.0.8:
504
505 1. Update from binutils 2013 0118.
506 2. Support R_386_SIZE32, R_X86_64_SIZE32 and R_X86_64_SIZE64
507 relocations.
508 3. Fix x86 assembler for "xtrn@got -1".  PR 15019.
509 4. Don't generate old dtags with --enable-new-dtags.
510 5. Add Meta support.
511 6. Improve gold.
512 7. Improve aarch64 support.
513 8. Improve arm support.
514 9. Improve cr16 support.
515 10. Improve mips support.
516 11. Improve ppc support.
517 12. Improve v850 support.
518 13. Improve xgate support.
519
520 Changes from binutils 2.23.51.0.7:
521
522 1. Properly adjust h->plt.refcount.  PR 14980.
523
524 Changes from binutils 2.23.51.0.6:
525
526 1. Update from binutils 2012 1218.
527 2. Add missing R_*_IRELATIVE relocations.  PR 14968.
528 3. Remove unnecessary R_*_NONE relocations.  PR 14956.
529 4. Fix ar/ranlib on 32-bit filesystems.  PR 14933.
530 5. Fix a "Not enough room for program headers" linker bug.  PR 14926.
531 6. Support self-assignment in a linker script to convert symbols to
532 absolute.  PR 14962.
533 7. Support --copy-dt-needed-entries when creating DSO.  PR 14915.
534 8. Improve linker plugin DSO error handling.  PR 14904.
535 9. Issue warning for plugin dummy.  PR 12760.
536 10. Add -fuse-ld=bfd|gold support to ld and gold.
537 11. Fix gold configure.  PR 14897.
538 12. Correct gas dependency.  PR 14899.
539 13. Add rdos support.
540 14. Improve gold.
541 15. Improve nacl support.
542 16. Improve aarch64 support.
543 17. Improve arm support.
544 18. Improve microblaze support.
545 19. Improve mips support.
546 20. Improve ppc support.
547 21. Improve tile support.
548
549 Changes from binutils 2.23.51.0.5:
550
551 1. Update from binutils 2012 1123.
552 2. Fix 64-bit jecxz encoding regression in x86 assembler.  PR 14859.
553 3. Revert an accidental linker change.  PR 14862.
554 4. Fix x32 TLS LD to LE optimization in gold.  PR 14858.
555 5. Add "-z global" option to set DF_1_GLOBAL to ld.
556 6. Improve ld plugin error handling.
557 7. Port ld lib32 arrangement from Debian.
558 8. Properly set the output maxpagesize when rewriting program header.
559 PR 14493.
560 9. Add additional DF_1_XXX support to readelf.
561 10. Improve nacl support with separate code segments.
562 11. Improve macos support.
563 12. Improve arm support.
564 13. Improve microblaze support.
565 14. Improve mips support.
566 15. Improve ppc support.
567 16. Improve sparc support.
568
569 Changes from binutils 2.23.51.0.4:
570
571 1. Update from binutils 2012 1110.
572 2. Support new Linux NOTE sections.
573 3. Add -z stacksize=SIZE option to ld to set size of stack segment.
574 4. Fix a BFD IOVEC close bug.  PR 14813.
575 5. Fix a BFD IOVEC on archive bug.  PR 14567.
576 6. Fix archive support for non-ELF targets.  PR 14481.
577 7. Improve gold.
578 8. Improve COFF support.
579 9. Improve arm support.
580 10. Improve microblaze support.
581 11. Improve mips support.
582 12. Improve ppc support.
583 13. Improve rx support.
584 14. Improve s390 support.
585 15. Improve v850 support.
586 16. Improve xgate support.
587
588 Changes from binutils 2.23.51.0.3:
589
590 1. Update from binutils 2012 1026.
591 2. Fix an LTO linker bug.  PR 14747.
592 3. Add cx16 arch feature to x86 assembler.
593 4. Add -march=bdver3 option to x86 assembler.
594 5. Properly handle ignored REX prefix with fwait in x86 disassembler.
595 6. Fix x32 register names in objdump DWARF output.
596 7. Add NT_SIGINFO/NT_FILE support to readelf.
597 8. Add linker --ignore-unresolved-symbol option from NetBSD.
598 9. Treat .gdb_index section as debug section.  PR 14662.
599 10. Add --debug-dump=addr, --debug_dump=cu_index options to readelf and
600 objdump.
601 11. Add dwp, DWARF packaging utility.
602 12. Add compressed debug section support to Windows.  PR 14067. 
603 13. Improve gold.
604 14. Improve aarch64 support.
605 15. Improve arm support.
606 16. Improve hppa support.
607 17. Improve mips support.
608 18. Improve s390 support.
609 19. Improve tile support.
610 20. Improve v850 support.
611
612 Changes from binutils 2.23.51.0.2:
613
614 1. Update from binutils 2012 0918.
615 2. Properly handle versioned STB_SECONDARY symbols. 
616 3. Fix wrong symbol type with common symbol and weak function.  PR 14591.
617 4. Ignore discarded sections when converting mov to lea.
618 5. Improve gold.
619 6. Improve avr support.
620 7. Improve aarch64 support.
621 8. Improve moxie support.
622 9. Improve ppc support.
623 10. Improve tile support.
624
625 Changes from binutils 2.23.51.0.1:
626
627 1. Update from binutils 2012 0908.
628 2. Fix STB_SECONDARY support:
629    a. Generate STB_SECONDARY symbols in DSO by default.
630    b. Properly handle STB_SECONDAY symbols when linking with archive.
631    c. Don't allow .weak directive to override .secondary directive.
632 3. Optimize i386/x86-64 linker to convert GOT load (MOV) to LEA.
633 4. Clarify x86 assembler error messages.  PR 14457.
634 5. Improve NOP/prefetch support in x86 disassembler.
635 6. Improve Intel syntax support in x86 assembler.
636 7. Add -march={btver1, btver2} options to x86 assembler.
637 8. Fix binutils build with --enable-shared.  PR 4970.
638 9. Also provide __executable_start for PIE.  PR 14525.
639 10. Use xmalloc to allocate memory for argument list file.  PR 14526.
640 11. Add Intel Itanium Series 9500 support to assembler/diassembler.
641 12. Ignore section symbols without a BFD section when outputing symbols
642 and check bad section index.  PR 14493.
643 13. Improve archive reader.  PR 14475.
644 14. Support DW_OP_GNU_const_index reader.
645 15. Improve handling of imput files with empty ELF group sections.
646 PR 14444.
647 16. Fix IFUNC support in s390 linker.
648 17. Improve gold.
649 18. Add aarch64 support.
650 19. Improve arm support.
651 20. Improve mips support.
652 21. Improve mmix support.
653 22. Improve moxie support.
654 23. Improve ppc support.
655 24. Improve s390 support.
656 25. Improve tile support.
657
658 Changes from binutils 2.22.52.0.4:
659
660 1. Update from binutils 2012 0806.
661 2. Add Intel ADX, RDSEED and PRFCHW new instruction support.
662 3. Support 'rep bsf', 'rep bsr', and 'rep ret' syntax in x86 assembler.
663 4. Mark 256-bit vmovntdqa as AVX2 instruction for x86 assembler.
664 5. Improve x86 assembler error handling.
665 6. Improve the repeat directive support in assembler.  PR 14201.
666 7. Improve x86-64 disassembler on superfluous prefixes.
667 8. Fix x86 disassembler crash on bad XOP instructions.  PR 14355.
668 9. Support STB_SECONDARY:
669
670 https://groups.google.com/forum/?hl=en&fromgroups#!forum/generic-abi
671
672 10. Added SORT_NONE to the linker script language to disable section
673 sorting and properly handle .init/.fini sections.  PR 14156.
674 11. Fix a weak alias linker bug.  PR 14323.
675 12. Fix the NULL GNU_RELRO segment linker bug.  PR 14207.
676 13. Fix the bad GNU_RELRO segment linker bug.  PR 14215.
677 14. Add linker support of __ehdr_start symbol for the ELF file header.
678 15. Add IFUNC support to s390 linker.
679 16. Fix ar for >4GB member.  PR 14302.
680 17. Fix objcopy --compress-debug-sections on empty debug section.  PR
681 14319.
682 18. Fix readelf/objdup to display null bytes in DWARF debug info.  PR
683 14420.
684 19. Improve gold.
685 20. Improve arm support.
686 21. Improve avr support.
687 22. Improve cris support.
688 23. Improve m68k support.
689 24. Improve mips support.
690 25. Improve ppc support.
691 26. Improve vax support.
692 27. Improve xgate support.
693
694 Changes from binutils 2.22.52.0.3:
695
696 1. Update from binutils 2012 0604.
697 2. Check addend overflow for R_X86_64_RELATIVE64.
698 3. Fix ar/nm/ranlib with --plugin.
699 4. Create .eh_frame_hdr section only if needed.  PR 13909.
700 5. Properly create .eh_frame section for PLT.  PR 14105. 
701 6. Fix a linker crash. PR 14170.
702 7. Fix readelf to properly display addend.
703 8. Don't make _DYNAMIC/_GLOBAL_OFFSET_TABLE_/_PROCEDURE_LINKAGE_TABLE_
704 symbols absolute for x86 and ppc.
705 9. Properly handle shared libraries with zero dynamic symbols.  PRs
706 7023/13962.
707 10. Update readelf/assembler to support multibyte characters in symbol
708 names.
709 11. Add --strip-dwo/--extract-dwo options to objcopy/strip.
710 12. Add R_X86_64_RELATIVE64 support to gold.
711 13. Improve gold.
712 14. Improve NACL support.
713 15. Improve alpha support.
714 16. Improve avr support.
715 17. Improve m68k support.
716 18. Improve mips support.
717 19. Improve ppc support.
718 20. Improve vax support.
719
720 Changes from binutils 2.22.52.0.2:
721
722 1. Update from binutils 2012 0507.
723 2. Fix Linux kernel build by reverting the PR 13621 fix.  PR 14052.
724 3. Add support for x86_64-*-linux-gnux32 target.
725 4. Improve x86 assembler.
726 5. Improve DWARF support.
727 6. Improve gold.
728 7. Improve rx support.
729 8. Improve sparc support.
730 9. Add xgate support.
731
732 Changes from binutils 2.22.52.0.1:
733
734 1. Update from binutils 2012 0424.
735 2. Support Intel HLE and RTM extension.
736 3. Add NACL support.
737 4. Fix -Bsymbolic with protected function pointer.  PR 13880.
738 5. Fix an IFUNC regression.  PR 13817.
739 6. Fix x86 NOP fill regression.  PR 13675.
740 7. Fix a linker regression.  PR 13991. 
741 8. Fix dangling global hidden symbol in symtab.  PR 13621.
742 9. Fix objcopy, strip and ld for --emit-relocs.  PR 13947.
743 10. Improve gold.
744 11. Improve mach support.
745 12. Improve vms support.
746 13. Improve windows support.
747 14. Improve arm support.
748 15. Improve avr support.
749 16. Improve mips support.
750 17. Improve ppc support.
751 18. Improve rx support.
752 19. Improve s390 support.
753 20. Improve sh support.
754 21. Improve sparc support.
755 22. Improve tile support.
756
757 Changes from binutils 2.22.51.0.1:
758
759 1. Update from binutils 2012 0131.
760 2. Add x32 support to gold.
761 3. Support linker arch-depedent fill.  PR 13616.
762 4. Add i386 NACL support to x86 assembler.
763 5. Add fake zero displacement for .d8 and .d32 suffixes to x86 assembler.
764 6. Add vmfunc support to x86 assembler/disassembler.
765 7. Support >2GB archive member.  PR 13534.
766 8. Support R_X86_64_PC32 relocation for PIC on x32.  PR 13581.
767 9. Fix LTO linker with --start-group and archive.  PR 12758.
768 10. Fix linker with --build-id.  PR 12451.
769 11. Improve linker dead code dependency removal on DSO.  PR 12772.
770 12. Improve demangler.
771 13. Fix elf64-x86-64.c build with GCC 4.7.
772 14. Avoid linker -z text crash.  PR 13468.
773 15. Avoid readelf crash.  PR 13622.
774 16. Avoid nm crash on --size-sort --no-sort.  PR 13593.
775 17. Fix linker COFF SECREL32 relocation support.  PR 13491.
776 18. Improve gold.
777 19. Improve mach support.
778 20. Improve arm support.
779 21. Improve avr support.
780 22. Improve hppa support.
781 23. Improve m68k support.
782 24. Improve mips support.
783 25. Improve ppc support.
784 26. Improve rl78 support.
785 27. Improve rx support.
786
787 Changes from binutils 2.21.53.0.2:
788
789 1. Update from binutils 2011 1118.
790 2. Fix ar --plugin on archive with mixed IR/non-IR objects.  PR 13298.
791 3. Preserve the maximum alignment and size for common symbols.  PR 13250.
792 4. Fix LTO linker with -as-needed.  PR 13287.
793 5. Fix --plugin support on thin archive.  PR 13257.
794 6. Fix LTO linker on thin archive.  PR 13183.
795 7. Fix --plugin slim object support on archive.  PR 13278.
796 8. Support LDPR_PREVAILING_DEF_IRONLY_EXP in linker plugin.  PR 13229.
797 9. Don't make make IR symbols dynamic.  PR 13244.
798 10. Fix LTO linker with --as-needed.  PR 13201.
799 11. Properly handle 2 IR symbols with the same comdat key.  PR 13066.
800 12. Keep .debug_types sections with linker garbage collection.  PR 13233.
801 13. Fix -ffunction-sections -Wl,--gc-sections failure with symbol
802 versioning.  PR 13195.
803 14. Improve linker garbage collection support.  PR 13177.
804 15. Remove symbols hidden by version scripts with --gc-sections.  PR 12975.
805 16. Remove unnecessary GOT relocation created for IFUNC.  PR 13178.
806 17. Move IRELATIVE relocations to the end.  PR 13302.
807 18. Avoid readelf core dump.  PR 13219.
808 19. Check zero address size when dumping DWARF sections.  PR 13196.
809 20. Remove the group section if all members are removed.  PR 13180.
810 21. Support R_X86_64_64 and R_X86_64_RELATIVE64 relocations for x32.
811 PR 13082.
812 22. Add Adapteva Epiphany support.
813 23. Add Renesas RL78 support.
814 24. Improve gold.
815 25. Improve mach-o support.
816 26. Improve alpha support.
817 27. Improve arm support.
818 28. Improve hppa support.
819 29. Improve mips support.
820 30. Improve ppc support.
821 31. Improve rx support.
822 32. Improve sparc support.
823
824 Changes from binutils 2.21.53.0.1:
825
826 1. Update from binutils 2011 0804.
827 2. Add Intel K1OM support.
828 3. Allow R_X86_64_64 relocation for x32 and check x32 relocation overflow.
829 PR ld/13048.
830 4. Support direct call in x86-64 assembly code.  PR gas/13046.
831 5. Add ia32 Google Native Client support. 
832 6. Add .debug_macro section support.
833 7. Improve gold.
834 8. Improve VMS support.
835 9. Improve arm support.
836 10. Improve hppa support.
837 11. Improve mips support.
838 12. Improve mmix support.
839 13. Improve ppc support.
840
841 Changes from binutils 2.21.52.0.2:
842
843 1. Update from binutils 2011 0716.
844 2. Fix LTO linker bugs.  PRs 12982/12942.
845 3. Fix rorx support in x86 assembler/disassembler for AVX Programming
846 Reference (June, 2011).
847 4. Fix an x86-64 ELFOSABI linker regression.
848 5. Update ELFOSABI_GNU support.  PR 12913.
849 6. Fix a linker regression with prelink support.  PR 12921.
850 7. Add unwind info to x86 PLT section.  PR 12570.
851 8. Support x32 core files.
852 9. Support native x32 linker.
853 10. Fix linker --gc-sections on note sections.  PR 12851.
854 11. Avoid linker crash on bad input.  PR 12887.
855 12. Add section flags in linker script.
856 13. Improve elf linker -z option support.
857 14. Fix nm on compressed debug sections.  PR 12983.
858 15. Fix an ar bug.  PR 12558.
859 16. Fix an ia64 linker regression.  PR 12978.
860 17. Improve gold.
861 18. Improve VMS support.
862 19. Add TILE-Gx/TILEPro support.
863 20. Improve alpha support.
864 21. Improve avr support.
865 22. Improve mips support.
866 23. Improve arm support.
867 24. Improve ppc support.
868 25. Improve sh support.
869 26. Improve TIC6X support.
870
871 Changes from binutils 2.21.52.0.1:
872
873 1. Update from binutils 2011 0610.
874 2. Support AVX Programming Reference (June, 2011)
875 3. Allow R_X86_64_64 relocations in SEC_DEBUGGING sections when building
876 x32 shared libraries.  Used to build kernel x32 vDSO.
877 4. Fix linker --gc-sections on note sections.  PR 12851.
878 5. Update readelf to handle binaries containing corrupt version
879 information.  PR 12855.
880 6. Improve gold.
881 7. Improve VMS support.
882 8. Improve mips support.
883
884 Changes from binutils 2.21.51.0.9:
885
886 1. Update from binutils 2011 0608.
887 2. Fix an x86 linker regression. PRs 12833/12837/12859.
888 3. Fix an x86-64 large model TLS linker bug.  PR 12809.
889 4. Fix LTO bugs.  PRs 12758/12760.
890 5. Add a new linker switch, -plugin-save-temps.
891 6. Fix an linker bug for warning on common symbol in archive.
892 7. Fix warning support when building shared library.  PR 12761.
893 8. Reduce linker memory usage when linking many small object files.
894 PR 12682.
895 9. Fix a thin archive bug.  PR 12710.
896 10. Fix a TLS linker bug.  PR 12763.
897 11. Improve gold.
898 12. Improve DWARF dump support.
899 13. Improve XCOFF support.
900 14. Improve arm support.
901 15. Improve cris support.
902 16. Improve ia64 ILP32 support.
903 17. Improve mips support.
904 18. Improve ppc support.
905 19. Improve rx support.
906 20. Improve s390 support.
907 21. Improve tic30 support.
908 22. Improve tic6x support.
909 23. Improve v850 support.
910
911 Changes from binutils 2.21.51.0.8:
912
913 1. Update from binutils 2011 0507.
914 2. Improve LTO bfd linker.  PRs 12365/12696/12672
915 3. Fix a linker regression with constructor attribute in C++.  PR 12730.
916 4. Warn relocation in readonly section when creating a shared object.
917 5. Remove empty output sections.  PR 12718.
918 6. Remove DT_TEXTREL with local IFUNC symbols.  PR 12694.
919 7. Properly set ELFOSABI_LINUX for STB_GNU_UNIQUE. PR 10549.
920 8. Fix objcopy on unusual input.  PR 12632.
921 9. Fix an ar regression.  PR 12720.
922 10  Avoid linker crash on bad linker input.
923 11. Fix a linker script regression.  PR 12726.
924 12. Support new GNU DWARF extensions.
925 13. Initial support for SystemTap note sections.
926 14. Add --dwarf-start and --dwarf-end to readelf and objdump. 
927 15. Disable 3dnow and 3dnowa for bdver1 in x86 assembler.
928 16. Improve gold.
929 17. Improve VMS support.
930 18. Improve arm support.
931 19. Improve mips support.
932 20. Improve ppc support.
933 21. Improve s390 support.
934 22. Improve tic6x support.
935
936 Changes from binutils 2.21.51.0.7:
937
938 1. Update from binutils 2011 0408.
939 2. Fix x32 TLS linker bug.
940 3. Enable .quad directive in x32 assembler.
941 4. Fix an assembler regression.  PRs 12569/12589.
942 5. Add --size-check= assembler option to issue a warning, instead of an
943 error, on bad ELF .size directive.
944 6. Fix an ia32 linker bug with TLS/PIE.  PR 12654.
945 7. Fix Intel L1OM linker library search path.
946 8. Fix a linker buffer overflow on malformed inputs.  PR 12613.
947 9. Check corrupted symtab in nm/readelf.  PR 12639.
948 10. Avoid objcopy crash on archive with unknown objects.  PR 12632.
949 11. Fix "ar -t".  PR 12590.
950 12. Fix many memory leaks.
951 13. Improve DWARF support.
952 14. Improve gold.
953 15. Improve VMS support.
954 16. Improve Windows support.
955 17. Improve alpha support.
956 18. Improve arm support.
957 19. Improve avr support.
958 20. Improve ppc support.
959 21. Improve sparc support.
960 22. Improve tic6x support.
961
962 Changes from binutils 2.21.51.0.6:
963
964 1. Update from binutils 2011 0306.
965 2. Supprt x32 TLS IE->LE transition.
966 3. Change x32 library directory from /lib32 to /libx32.
967 4. Improve LTO linker support.  Fix PRs 12439/12314/12248/12430.
968 5. Improve linker plugin support.
969 6. Fix an ar bug.  PR 12513.
970 7. Properly generate nops for ia32. PR 6957.
971 8. Improve readelf DT_GNU_HASH support.  PR 12523.
972 9. Improve readelf on invalid input.  PR 12467.
973 10. Update ELF assembler to issue an error on invalid  .size directive.
974 PR 12519,
975 11. Properly handle PT_DYNAMIC segment with zero size sections.  PR 12516.
976 12.  Add a new linker option, --verbose=2, to report plugin symbol
977 status.
978 13. Properly handle entry symbols in linker LTO support.  PR 12507.  
979 14. Improve gold.
980 15. Improve arm support.
981 16. Improve bfin support.
982 17. Improve mips support.
983 18. Improve ppc support.
984
985 Changes from binutils 2.21.51.0.5:
986
987 1. Update from binutils 2011 0118.
988 2. Fix x32 (ILP32) support.  Renamed assembler option to --x32.  It
989 can create working static and dynamic x32 executables.
990 3. Add BMI and TBM new instruction support.
991 4. Fix x86 disassembler to properly display sign-extended byte.
992 5. Improve IFUNC linker support.  PRs 12366/12371.
993 6. Fix readelf bug on archive. PR 12408.
994 7. Fix a assembler when compressing empty debug sections.  PR 12409.
995 8. Fix a warning symbol linker bug.  PR 12339.
996 9. Fix a duplicated assert message linker bug.  PR 12380.
997 10. Fix plugin linker build.  PR 12391.
998 11. Fix a plugin linker crash.  PR 12364.
999 12. Improve plugin linker.
1000 13. Improve gold.
1001 14. Improve arm support.
1002 15. Improve mips support.
1003 16. Improve rx support.
1004
1005 Changes from binutils 2.21.51.0.4:
1006
1007 1. Update from binutils 2011 0104.
1008 2. Add ILP32 support:
1009
1010 http://www.kernel.org/pub/linux/devel/binutils/ilp32/abi.pdf
1011
1012 to Linux/x86-64.
1013 3. Prevent the Linux x86-64 kernel build failure and remove
1014 __ld_compatibility support.  PR 12356.
1015 4. Improve gold.
1016 5. Improve Windows support.
1017 6. Improve hppa support.
1018 7. Improve mips support.
1019
1020 Changes from binutils 2.21.51.0.3:
1021
1022 1. Update from binutils 2010 1217.
1023 2. Fix the Linux relocatable kernel build.  PR 12327.
1024 3. Improve mips support.
1025
1026 Changes from binutils 2.21.51.0.2:
1027
1028 1. Update from binutils 2010 1215.
1029 2. Add BFD linker support for placing input .ctors/.dtors sections in
1030 output .init_array/.fini_array section.  Add SORT_BY_INIT_PRIORITY.  The
1031 benefits are
1032    a. Avoid output .ctors/.dtors section in executables and shared
1033       libraries.
1034    b. Allow mixing input .ctors/.dtors sections with input
1035    .init_array/.fini_array sectiobs.  GCC PR 46770.
1036 3. Add BFD linker support for "ld -r" on mixed IR/non-IR objects. Add
1037 the new ELF section type SHT_GNU_OBJECT_ONLY (0x6ffffff8). See
1038
1039 http://sourceware.org/bugzilla/show_bug.cgi?id=12291
1040
1041 4. Update BFD linker to accept -flto and -flto-partition= for GCC LTO
1042 option compatibility.
1043 5. Fix BFD linker to avoid touching uncompressed section content when
1044 relocating DWARF debug sections for errror reporting.
1045 6. Mark .gnu.lto_* sections with SHF_EXCLUDE.
1046 7. Add --target option to ar.
1047 8. Improve gold.
1048 9. Improve AIX support.
1049 10. Improve Windows support.
1050 11. Improve mips support.
1051
1052 Changes from binutils 2.21.51.0.1:
1053
1054 1. Update from binutils 2010 1206.
1055 2. Fix BFD and GOLD linker for compressed debug section support.
1056 3. Fix BFD linker plugin support.  PR ld/12246, ld/12247, ld/12248,
1057 ld/12277, ld/12288 and ld/12289.
1058 4. Update BFD linker to group .text.exit, text.startup and .text.hot
1059 sections.
1060 5. Fix linker for W_EH_PE_datarel handling.  PR ld/12253.
1061 6. Fix array access bug in readelf/elfedit.  PR binutils/11742 and
1062 binutils/12235.
1063 7. Support dumping GDB .gdb_index section.
1064 8. Install plugin-api.h.
1065 9. Improve gold.
1066 10. Improve Solaris support.
1067 11. Improve VMS support.
1068 12. Improve Windows support.
1069 13. Improve arm support.
1070 14. Improve bfin support.
1071 15. Improve mips support.
1072 16. Improve s390 support.
1073 17. Improve z80 support.
1074
1075 Changes from binutils 2.20.51.0.12:
1076
1077 1. Update from binutils 2010 1110.
1078 2. Fix ld plugin support.  PRs lto/46291 and lto/46319.
1079 3. Fix x86 assembler to properly fold _GLOBAL_OFFSET_TABLE_ in Intel
1080 syntax.  PR 12186.
1081 4. Update assembler to ensure that group signature symbols have the name
1082 of the group.
1083 5. Avoid unnecessary relaxation in assembler.  PR 12049.
1084 6. Update linker NOLOAD processing.
1085 7. Update linker not to include archive members when symbols therein have
1086 already been defined.  PR 12001.
1087 8. Change objdump to display compressed section names without 'z'.
1088 9. Improve gold.
1089 10. Improve Solaris support.
1090 11. Improve VMS support.
1091 12. Improve Windows support.
1092 13. Improve arm support.
1093 14. Improve cr16 support.
1094 15. Improve mips support.
1095 16. Improve ppc support.
1096 17. Improve tic6x support.
1097
1098 It is available as users/hjl/linux/release/2.25.51.0.2 tag at
1099
1100 https://sourceware.org/git/?p=binutils-gdb.git;a=summary
1101
1102 Thanks.
1103
1104
1105 H.J. Lu
1106 hjl.tools@gmail.com
1107 05/18/2015