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