This is the beta release of binutils 2.24.51.0.4 for Linux, which is
based on binutils 2014 0923 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.24.51.0.4 to
hjl.tools@gmail.com

and

http://www.sourceware.org/bugzilla/

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.24.51.0.4 tag at

https://sourceware.org/git/?p=binutils-gdb.git;a=summary

Thanks.


H.J. Lu
hjl.tools@gmail.com
10/10/2014
