toolchain/binutils: refresh patches
authorFlorian Fainelli <florian@openwrt.org>
Tue, 26 Feb 2013 16:40:12 +0000 (16:40 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Tue, 26 Feb 2013 16:40:12 +0000 (16:40 +0000)
Signed-off-by: Florian Fainelli <florian@openwrt.org>
SVN-Revision: 35812

13 files changed:
toolchain/binutils/patches/2.19.1/700-avr32.patch
toolchain/binutils/patches/2.21.1/111-pr7093.elf32-arm.c.patch
toolchain/binutils/patches/2.21.1/112-arm-uclibc-gas-needs-libm.patch
toolchain/binutils/patches/2.21.1/200-mips_non_pic.patch
toolchain/binutils/patches/2.21.1/300-001_ld_makefile_patch.patch
toolchain/binutils/patches/2.21.1/300-012_check_ldrunpath_length.patch
toolchain/binutils/patches/2.21.1/700-avr32.patch
toolchain/binutils/patches/2.22/200-musl.patch
toolchain/binutils/patches/2.22/500-arm_ld_assert_fix.patch
toolchain/binutils/patches/2.23.1/112-arm-uclibc-gas-needs-libm.patch
toolchain/binutils/patches/2.23.1/120-sh-conf.patch
toolchain/binutils/patches/2.23.1/300-001_ld_makefile_patch.patch
toolchain/binutils/patches/2.23.1/300-012_check_ldrunpath_length.patch

index e843a3f3c1dbaa5fc9ff7e3453499234c32005c1..8020c6faf3da2ea0fb4842e92980a60c671ba434 100644 (file)
@@ -13,7 +13,7 @@
  .  bfd_arch_bfin,        {* ADI Blackfin *}
  .#define bfd_mach_bfin          1
  .  bfd_arch_cr16,       {* National Semiconductor CompactRISC (ie CR16). *}
  .  bfd_arch_bfin,        {* ADI Blackfin *}
  .#define bfd_mach_bfin          1
  .  bfd_arch_cr16,       {* National Semiconductor CompactRISC (ie CR16). *}
-@@ -454,6 +460,7 @@ extern const bfd_arch_info_type bfd_alph
+@@ -449,6 +455,7 @@ extern const bfd_arch_info_type bfd_alph
  extern const bfd_arch_info_type bfd_arc_arch;
  extern const bfd_arch_info_type bfd_arm_arch;
  extern const bfd_arch_info_type bfd_avr_arch;
  extern const bfd_arch_info_type bfd_arc_arch;
  extern const bfd_arch_info_type bfd_arm_arch;
  extern const bfd_arch_info_type bfd_avr_arch;
@@ -21,7 +21,7 @@
  extern const bfd_arch_info_type bfd_bfin_arch;
  extern const bfd_arch_info_type bfd_cr16_arch;
  extern const bfd_arch_info_type bfd_cr16c_arch;
  extern const bfd_arch_info_type bfd_bfin_arch;
  extern const bfd_arch_info_type bfd_cr16_arch;
  extern const bfd_arch_info_type bfd_cr16c_arch;
-@@ -526,6 +533,7 @@ static const bfd_arch_info_type * const
+@@ -520,6 +527,7 @@ static const bfd_arch_info_type * const
      &bfd_arc_arch,
      &bfd_arm_arch,
      &bfd_avr_arch,
      &bfd_arc_arch,
      &bfd_arm_arch,
      &bfd_avr_arch,
@@ -44,7 +44,7 @@
    bfd_arch_bfin,        /* ADI Blackfin */
  #define bfd_mach_bfin          1
    bfd_arch_cr16,       /* National Semiconductor CompactRISC (ie CR16). */
    bfd_arch_bfin,        /* ADI Blackfin */
  #define bfd_mach_bfin          1
    bfd_arch_cr16,       /* National Semiconductor CompactRISC (ie CR16). */
-@@ -3748,6 +3754,88 @@ instructions  */
+@@ -3743,6 +3749,88 @@ instructions  */
  instructions  */
    BFD_RELOC_AVR_6_ADIW,
  
  instructions  */
    BFD_RELOC_AVR_6_ADIW,
  
        cpu-bfin.lo \
        cpu-cr16.lo \
        cpu-cr16c.lo \
        cpu-bfin.lo \
        cpu-cr16.lo \
        cpu-cr16c.lo \
-@@ -247,6 +248,7 @@ BFD32_BACKENDS = \
+@@ -245,6 +246,7 @@ BFD32_BACKENDS = \
        elf32-arc.lo \
        elf32-arm.lo \
        elf32-avr.lo \
        elf32-arc.lo \
        elf32-arm.lo \
        elf32-avr.lo \
        elf32-bfin.lo \
        elf32-cr16.lo \
        elf32-cr16c.lo \
        elf32-bfin.lo \
        elf32-cr16.lo \
        elf32-cr16c.lo \
-@@ -1355,6 +1357,10 @@ elf32-cr16.lo: elf32-cr16.c $(INCDIR)/fi
+@@ -1350,6 +1352,10 @@ elf32-cr16.lo: elf32-cr16.c $(INCDIR)/fi
    $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h elf-bfd.h \
    $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
    $(INCDIR)/elf/cr16.h $(INCDIR)/elf/reloc-macros.h elf32-target.h
    $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h elf-bfd.h \
    $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
    $(INCDIR)/elf/cr16.h $(INCDIR)/elf/reloc-macros.h elf32-target.h
        cpu-bfin.lo \
        cpu-cr16.lo \
        cpu-cr16c.lo \
        cpu-bfin.lo \
        cpu-cr16.lo \
        cpu-cr16c.lo \
-@@ -501,6 +502,7 @@ BFD32_BACKENDS = \
+@@ -499,6 +500,7 @@ BFD32_BACKENDS = \
        elf32-arc.lo \
        elf32-arm.lo \
        elf32-avr.lo \
        elf32-arc.lo \
        elf32-arm.lo \
        elf32-avr.lo \
        elf32-bfin.lo \
        elf32-cr16.lo \
        elf32-cr16c.lo \
        elf32-bfin.lo \
        elf32-cr16.lo \
        elf32-cr16c.lo \
-@@ -1939,6 +1941,10 @@ elf32-cr16.lo: elf32-cr16.c $(INCDIR)/fi
+@@ -1934,6 +1936,10 @@ elf32-cr16.lo: elf32-cr16.c $(INCDIR)/fi
    $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h elf-bfd.h \
    $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
    $(INCDIR)/elf/cr16.h $(INCDIR)/elf/reloc-macros.h elf32-target.h
    $(INCDIR)/hashtab.h $(INCDIR)/libiberty.h elf-bfd.h \
    $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
    $(INCDIR)/elf/cr16.h $(INCDIR)/elf/reloc-macros.h elf32-target.h
  extern const bfd_target bfd_elf32_bfin_vec;
  extern const bfd_target bfd_elf32_bfinfdpic_vec;
  extern const bfd_target bfd_elf32_big_generic_vec;
  extern const bfd_target bfd_elf32_bfin_vec;
  extern const bfd_target bfd_elf32_bfinfdpic_vec;
  extern const bfd_target bfd_elf32_big_generic_vec;
-@@ -898,6 +899,7 @@ static const bfd_target * const _bfd_tar
+@@ -896,6 +897,7 @@ static const bfd_target * const _bfd_tar
        &bfd_efi_rtdrv_ia64_vec,
  #endif
        &bfd_elf32_avr_vec,
        &bfd_efi_rtdrv_ia64_vec,
  #endif
        &bfd_elf32_avr_vec,
    bfin*)              cpu_type=bfin endian=little ;;
    c4x*)                       cpu_type=tic4x ;;
    cr16*)              cpu_type=cr16 endian=little ;;
    bfin*)              cpu_type=bfin endian=little ;;
    c4x*)                       cpu_type=tic4x ;;
    cr16*)              cpu_type=cr16 endian=little ;;
-@@ -134,6 +135,9 @@ case ${generic_target} in
+@@ -133,6 +134,9 @@ case ${generic_target} in
  
    cr16-*-elf*)                                fmt=elf ;;
  
  
    cr16-*-elf*)                                fmt=elf ;;
  
        bfin \
        cr16 \
        cris \
        bfin \
        cr16 \
        cris \
-@@ -242,6 +243,7 @@ TARGET_CPU_CFILES = \
+@@ -241,6 +242,7 @@ TARGET_CPU_CFILES = \
        config/tc-arc.c \
        config/tc-arm.c \
        config/tc-avr.c \
        config/tc-arc.c \
        config/tc-arm.c \
        config/tc-avr.c \
        config/tc-bfin.c \
        config/tc-cr16.c \
        config/tc-cris.c \
        config/tc-bfin.c \
        config/tc-cr16.c \
        config/tc-cris.c \
-@@ -303,6 +305,7 @@ TARGET_CPU_HFILES = \
+@@ -301,6 +303,7 @@ TARGET_CPU_HFILES = \
        config/tc-arc.h \
        config/tc-arm.h \
        config/tc-avr.h \
        config/tc-arc.h \
        config/tc-arm.h \
        config/tc-avr.h \
        config/tc-bfin.h \
        config/tc-cr16.h \
        config/tc-cris.h \
        config/tc-bfin.h \
        config/tc-cr16.h \
        config/tc-cris.h \
-@@ -1075,6 +1078,11 @@ DEPTC_avr_elf = $(srcdir)/config/obj-elf
+@@ -1073,6 +1076,11 @@ DEPTC_avr_elf = $(srcdir)/config/obj-elf
    $(INCDIR)/bfdlink.h $(srcdir)/config/tc-avr.h dwarf2dbg.h \
    $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
    $(INCDIR)/opcode/avr.h
    $(INCDIR)/bfdlink.h $(srcdir)/config/tc-avr.h dwarf2dbg.h \
    $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
    $(INCDIR)/opcode/avr.h
  DEPTC_bfin_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
    $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
    $(INCDIR)/bfdlink.h $(srcdir)/config/tc-bfin.h dwarf2dbg.h \
  DEPTC_bfin_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
    $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
    $(INCDIR)/bfdlink.h $(srcdir)/config/tc-bfin.h dwarf2dbg.h \
-@@ -1511,6 +1519,11 @@ DEPOBJ_avr_elf = $(srcdir)/config/obj-el
+@@ -1501,6 +1509,11 @@ DEPOBJ_avr_elf = $(srcdir)/config/obj-el
    $(INCDIR)/bfdlink.h $(srcdir)/config/tc-avr.h dwarf2dbg.h \
    $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
    struc-symbol.h $(INCDIR)/aout/aout64.h
    $(INCDIR)/bfdlink.h $(srcdir)/config/tc-avr.h dwarf2dbg.h \
    $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
    struc-symbol.h $(INCDIR)/aout/aout64.h
  DEPOBJ_bfin_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
    $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
    $(INCDIR)/bfdlink.h $(srcdir)/config/tc-bfin.h dwarf2dbg.h \
  DEPOBJ_bfin_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
    $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
    $(INCDIR)/bfdlink.h $(srcdir)/config/tc-bfin.h dwarf2dbg.h \
-@@ -1884,6 +1897,9 @@ DEP_cr16_elf = $(srcdir)/config/obj-elf.
+@@ -1869,6 +1882,9 @@ DEP_cr16_elf = $(srcdir)/config/obj-elf.
    $(INCDIR)/bfdlink.h $(srcdir)/config/tc-cr16.h dwarf2dbg.h \
    $(srcdir)/config/obj-coff.h $(INCDIR)/coff/internal.h \
    $(BFDDIR)/libcoff.h
    $(INCDIR)/bfdlink.h $(srcdir)/config/tc-cr16.h dwarf2dbg.h \
    $(srcdir)/config/obj-coff.h $(INCDIR)/coff/internal.h \
    $(BFDDIR)/libcoff.h
        bfin \
        cr16 \
        cris \
        bfin \
        cr16 \
        cris \
-@@ -489,6 +490,7 @@ TARGET_CPU_CFILES = \
+@@ -488,6 +489,7 @@ TARGET_CPU_CFILES = \
        config/tc-arc.c \
        config/tc-arm.c \
        config/tc-avr.c \
        config/tc-arc.c \
        config/tc-arm.c \
        config/tc-avr.c \
        config/tc-bfin.c \
        config/tc-cr16.c \
        config/tc-cris.c \
        config/tc-bfin.c \
        config/tc-cr16.c \
        config/tc-cris.c \
-@@ -550,6 +552,7 @@ TARGET_CPU_HFILES = \
+@@ -548,6 +550,7 @@ TARGET_CPU_HFILES = \
        config/tc-arc.h \
        config/tc-arm.h \
        config/tc-avr.h \
        config/tc-arc.h \
        config/tc-arm.h \
        config/tc-avr.h \
        config/tc-bfin.h \
        config/tc-cr16.h \
        config/tc-cris.h \
        config/tc-bfin.h \
        config/tc-cr16.h \
        config/tc-cris.h \
-@@ -844,6 +847,12 @@ DEPTC_avr_elf = $(srcdir)/config/obj-elf
+@@ -841,6 +844,12 @@ DEPTC_avr_elf = $(srcdir)/config/obj-elf
    $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
    $(INCDIR)/opcode/avr.h
  
    $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
    $(INCDIR)/opcode/avr.h
  
  DEPTC_bfin_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
    $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
    $(INCDIR)/bfdlink.h $(srcdir)/config/tc-bfin.h dwarf2dbg.h \
  DEPTC_bfin_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
    $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
    $(INCDIR)/bfdlink.h $(srcdir)/config/tc-bfin.h dwarf2dbg.h \
-@@ -1359,6 +1368,12 @@ DEPOBJ_avr_elf = $(srcdir)/config/obj-el
+@@ -1349,6 +1358,12 @@ DEPOBJ_avr_elf = $(srcdir)/config/obj-el
    $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
    struc-symbol.h $(INCDIR)/aout/aout64.h
  
    $(INCDIR)/safe-ctype.h subsegs.h $(INCDIR)/obstack.h \
    struc-symbol.h $(INCDIR)/aout/aout64.h
  
  DEPOBJ_bfin_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
    $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
    $(INCDIR)/bfdlink.h $(srcdir)/config/tc-bfin.h dwarf2dbg.h \
  DEPOBJ_bfin_elf = $(srcdir)/config/obj-elf.h $(BFDDIR)/elf-bfd.h \
    $(INCDIR)/elf/common.h $(INCDIR)/elf/external.h $(INCDIR)/elf/internal.h \
    $(INCDIR)/bfdlink.h $(srcdir)/config/tc-bfin.h dwarf2dbg.h \
-@@ -1814,6 +1829,10 @@ DEP_cr16_elf = $(srcdir)/config/obj-elf.
+@@ -1799,6 +1814,10 @@ DEP_cr16_elf = $(srcdir)/config/obj-elf.
    $(srcdir)/config/obj-coff.h $(INCDIR)/coff/internal.h \
    $(BFDDIR)/libcoff.h
  
    $(srcdir)/config/obj-coff.h $(INCDIR)/coff/internal.h \
    $(BFDDIR)/libcoff.h
  
  extern int print_insn_bfin            (bfd_vma, disassemble_info *);
  extern int print_insn_big_arm         (bfd_vma, disassemble_info *);
  extern int print_insn_big_mips                (bfd_vma, disassemble_info *);
  extern int print_insn_bfin            (bfd_vma, disassemble_info *);
  extern int print_insn_big_arm         (bfd_vma, disassemble_info *);
  extern int print_insn_big_mips                (bfd_vma, disassemble_info *);
-@@ -293,7 +294,9 @@ extern void print_i386_disassembler_opti
+@@ -292,7 +293,9 @@ extern void print_i386_disassembler_opti
  extern void print_mips_disassembler_options (FILE *);
  extern void print_ppc_disassembler_options (FILE *);
  extern void print_arm_disassembler_options (FILE *);
  extern void print_mips_disassembler_options (FILE *);
  extern void print_ppc_disassembler_options (FILE *);
  extern void print_arm_disassembler_options (FILE *);
        ecoff_i860.o \
        ecoff_sparc.o \
        eelf32_spu.o \
        ecoff_i860.o \
        ecoff_sparc.o \
        eelf32_spu.o \
-@@ -648,6 +695,194 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(
+@@ -646,6 +693,194 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(
    $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
    ${GEN_DEPENDS}
        ${GENSCRIPTS} avr6 "$(tdir_avr2)"
    $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
    ${GEN_DEPENDS}
        ${GENSCRIPTS} avr6 "$(tdir_avr2)"
        ecoff_i860.o \
        ecoff_sparc.o \
        eelf32_spu.o \
        ecoff_i860.o \
        ecoff_sparc.o \
        eelf32_spu.o \
-@@ -1480,6 +1527,194 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(
+@@ -1478,6 +1525,194 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(
    $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
    ${GEN_DEPENDS}
        ${GENSCRIPTS} avr6 "$(tdir_avr2)"
    $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
    ${GEN_DEPENDS}
        ${GENSCRIPTS} avr6 "$(tdir_avr2)"
  #define ARCH_bfin
  #define ARCH_cr16
  #define ARCH_cris
  #define ARCH_bfin
  #define ARCH_cr16
  #define ARCH_cris
-@@ -129,6 +130,11 @@ disassembler (abfd)
+@@ -128,6 +129,11 @@ disassembler (abfd)
        disassemble = print_insn_avr;
        break;
  #endif
        disassemble = print_insn_avr;
        break;
  #endif
  #ifdef ARCH_bfin
      case bfd_arch_bfin:
        disassemble = print_insn_bfin;
  #ifdef ARCH_bfin
      case bfd_arch_bfin:
        disassemble = print_insn_bfin;
-@@ -472,6 +478,9 @@ disassembler_usage (stream)
+@@ -466,6 +472,9 @@ disassembler_usage (stream)
  #ifdef ARCH_i386
    print_i386_disassembler_options (stream);
  #endif
  #ifdef ARCH_i386
    print_i386_disassembler_options (stream);
  #endif
index 7d6cb7ba71d8eb54ae97bac051d16431e8846f3d..b291aaf73c2d056e2aeb20defdfe1f95218135da 100644 (file)
@@ -1,6 +1,6 @@
 --- a/bfd/elf32-arm.c
 +++ b/bfd/elf32-arm.c
 --- a/bfd/elf32-arm.c
 +++ b/bfd/elf32-arm.c
-@@ -5631,6 +5631,10 @@ bfd_elf32_arm_init_maps (bfd *abfd)
+@@ -5637,6 +5637,10 @@ bfd_elf32_arm_init_maps (bfd *abfd)
    if (! is_arm_elf (abfd))
      return;
  
    if (! is_arm_elf (abfd))
      return;
  
index 63663922104fb22a64012807b34de9caa99c1602..4e31558fddb264ed4decd5a57bec78ac561fa3ad 100644 (file)
@@ -20,7 +20,7 @@ make[4]: *** [as-new] Error 1
 
 --- a/gas/configure.tgt
 +++ b/gas/configure.tgt
 
 --- a/gas/configure.tgt
 +++ b/gas/configure.tgt
-@@ -431,6 +431,12 @@ case ${generic_target} in
+@@ -432,6 +432,12 @@ case ${generic_target} in
    *-*-netware)                                fmt=elf em=netware ;;
  esac
  
    *-*-netware)                                fmt=elf em=netware ;;
  esac
  
index 298f3cbfdc1047c45169a7d848f6599ea248bcc3..5815f4ee72415a9189313026068059fb22061840 100644 (file)
@@ -57,7 +57,7 @@
  /* True if NAME is the recognized name of any SHT_MIPS_OPTIONS section.
     Some IRIX system files do not use MIPS_ELF_OPTIONS_SECTION_NAME.  */
  #define MIPS_ELF_OPTIONS_SECTION_NAME_P(NAME) \
  /* True if NAME is the recognized name of any SHT_MIPS_OPTIONS section.
     Some IRIX system files do not use MIPS_ELF_OPTIONS_SECTION_NAME.  */
  #define MIPS_ELF_OPTIONS_SECTION_NAME_P(NAME) \
-@@ -7686,7 +7694,9 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
+@@ -7690,7 +7698,9 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
  
              /* We need a stub, not a plt entry for the undefined
                 function.  But we record it as if it needs plt.  See
  
              /* We need a stub, not a plt entry for the undefined
                 function.  But we record it as if it needs plt.  See
@@ -68,7 +68,7 @@
              h->needs_plt = 1;
              h->type = STT_FUNC;
            }
              h->needs_plt = 1;
              h->type = STT_FUNC;
            }
-@@ -7793,6 +7803,8 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
+@@ -7796,6 +7806,8 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
        case R_MIPS_32:
        case R_MIPS_REL32:
        case R_MIPS_64:
        case R_MIPS_32:
        case R_MIPS_REL32:
        case R_MIPS_64:
@@ -77,7 +77,7 @@
          /* In VxWorks executables, references to external symbols
             are handled using copy relocs or PLT stubs, so there's
             no need to add a .rela.dyn entry for this relocation.  */
          /* In VxWorks executables, references to external symbols
             are handled using copy relocs or PLT stubs, so there's
             no need to add a .rela.dyn entry for this relocation.  */
-@@ -7848,11 +7860,21 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
+@@ -7851,11 +7863,21 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
        case R_MIPS_GPREL16:
        case R_MIPS_LITERAL:
        case R_MIPS_GPREL32:
        case R_MIPS_GPREL16:
        case R_MIPS_LITERAL:
        case R_MIPS_GPREL32:
@@ -99,7 +99,7 @@
          /* This relocation describes the C++ object vtable hierarchy.
             Reconstruct it for later use during GC.  */
        case R_MIPS_GNU_VTINHERIT:
          /* This relocation describes the C++ object vtable hierarchy.
             Reconstruct it for later use during GC.  */
        case R_MIPS_GNU_VTINHERIT:
-@@ -7875,20 +7897,20 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
+@@ -7878,20 +7900,20 @@ _bfd_mips_elf_check_relocs (bfd *abfd, s
  
        /* We must not create a stub for a symbol that has relocations
         related to taking the function's address.  This doesn't apply to
  
        /* We must not create a stub for a symbol that has relocations
         related to taking the function's address.  This doesn't apply to
          }
  
        /* See if this reloc would need to refer to a MIPS16 hard-float stub,
          }
  
        /* See if this reloc would need to refer to a MIPS16 hard-float stub,
-@@ -12601,7 +12623,9 @@ _bfd_mips_elf_merge_private_bfd_data (bf
+@@ -12607,7 +12629,9 @@ _bfd_mips_elf_merge_private_bfd_data (bf
          break;
        }
      }
          break;
        }
      }
  
    if (! bfd_set_arch_mach (stdoutput, bfd_arch_mips, file_mips_arch))
      as_warn (_("Could not set architecture and machine"));
  
    if (! bfd_set_arch_mach (stdoutput, bfd_arch_mips, file_mips_arch))
      as_warn (_("Could not set architecture and machine"));
-@@ -11270,6 +11276,7 @@ enum options
+@@ -11256,6 +11262,7 @@ enum options
      OPTION_PDR,
      OPTION_NO_PDR,
      OPTION_MVXWORKS_PIC,
      OPTION_PDR,
      OPTION_NO_PDR,
      OPTION_MVXWORKS_PIC,
  #endif /* OBJ_ELF */
      OPTION_END_OF_ENUM    
    };
  #endif /* OBJ_ELF */
      OPTION_END_OF_ENUM    
    };
-@@ -11377,6 +11384,7 @@ struct option md_longopts[] =
+@@ -11363,6 +11370,7 @@ struct option md_longopts[] =
    {"mpdr", no_argument, NULL, OPTION_PDR},
    {"mno-pdr", no_argument, NULL, OPTION_NO_PDR},
    {"mvxworks-pic", no_argument, NULL, OPTION_MVXWORKS_PIC},
    {"mpdr", no_argument, NULL, OPTION_PDR},
    {"mno-pdr", no_argument, NULL, OPTION_NO_PDR},
    {"mvxworks-pic", no_argument, NULL, OPTION_MVXWORKS_PIC},
  #endif /* OBJ_ELF */
  
    {NULL, no_argument, NULL, 0}
  #endif /* OBJ_ELF */
  
    {NULL, no_argument, NULL, 0}
-@@ -11825,6 +11833,11 @@ md_parse_option (int c, char *arg)
+@@ -11811,6 +11819,11 @@ md_parse_option (int c, char *arg)
      case OPTION_MVXWORKS_PIC:
        mips_pic = VXWORKS_PIC;
        break;
      case OPTION_MVXWORKS_PIC:
        mips_pic = VXWORKS_PIC;
        break;
index 2759872690002762048c550d34a0a9b12394746c..0482d5db363dad4b83c4a9efeaf4100660b2ddd0 100644 (file)
@@ -11,7 +11,7 @@
  EMULATION_OFILES = @EMULATION_OFILES@
 --- a/ld/Makefile.in
 +++ b/ld/Makefile.in
  EMULATION_OFILES = @EMULATION_OFILES@
 --- a/ld/Makefile.in
 +++ b/ld/Makefile.in
-@@ -360,7 +360,7 @@ AM_CFLAGS = $(WARN_CFLAGS)
+@@ -365,7 +365,7 @@ AM_CFLAGS = $(WARN_CFLAGS)
  # We put the scripts in the directory $(scriptdir)/ldscripts.
  # We can't put the scripts in $(datadir) because the SEARCH_DIR
  # directives need to be different for native and cross linkers.
  # We put the scripts in the directory $(scriptdir)/ldscripts.
  # We can't put the scripts in $(datadir) because the SEARCH_DIR
  # directives need to be different for native and cross linkers.
index 3746f0307802e67c2dc454bfe0dd7fc6598d2087..28809a29754311ea34412ffea2f876197997df6a 100644 (file)
@@ -1,6 +1,6 @@
 --- a/ld/emultempl/elf32.em
 +++ b/ld/emultempl/elf32.em
 --- a/ld/emultempl/elf32.em
 +++ b/ld/emultempl/elf32.em
-@@ -1270,6 +1270,8 @@ fragment <<EOF
+@@ -1272,6 +1272,8 @@ fragment <<EOF
              && command_line.rpath == NULL)
            {
              lib_path = (const char *) getenv ("LD_RUN_PATH");
              && command_line.rpath == NULL)
            {
              lib_path = (const char *) getenv ("LD_RUN_PATH");
@@ -9,7 +9,7 @@
              if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
                                                      force))
                break;
              if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
                                                      force))
                break;
-@@ -1497,6 +1499,8 @@ gld${EMULATION_NAME}_before_allocation (
+@@ -1499,6 +1501,8 @@ gld${EMULATION_NAME}_before_allocation (
    rpath = command_line.rpath;
    if (rpath == NULL)
      rpath = (const char *) getenv ("LD_RUN_PATH");
    rpath = command_line.rpath;
    if (rpath == NULL)
      rpath = (const char *) getenv ("LD_RUN_PATH");
index b33a3b267e258308663367377325a86fd2ee07ca..e23eeed38f82ec31d5e84fbafee14b380cebfe07 100644 (file)
@@ -31,7 +31,7 @@
      &bfd_cr16c_arch,
 --- a/bfd/bfd-in2.h
 +++ b/bfd/bfd-in2.h
      &bfd_cr16c_arch,
 --- a/bfd/bfd-in2.h
 +++ b/bfd/bfd-in2.h
-@@ -2053,6 +2053,12 @@ enum bfd_architecture
+@@ -2060,6 +2060,12 @@ enum bfd_architecture
  #define bfd_mach_avr5          5
  #define bfd_mach_avr51         51
  #define bfd_mach_avr6          6
  #define bfd_mach_avr5          5
  #define bfd_mach_avr51         51
  #define bfd_mach_avr6          6
@@ -44,7 +44,7 @@
    bfd_arch_bfin,        /* ADI Blackfin */
  #define bfd_mach_bfin          1
    bfd_arch_cr16,       /* National Semiconductor CompactRISC (ie CR16). */
    bfd_arch_bfin,        /* ADI Blackfin */
  #define bfd_mach_bfin          1
    bfd_arch_cr16,       /* National Semiconductor CompactRISC (ie CR16). */
-@@ -3989,6 +3995,88 @@ instructions  */
+@@ -3996,6 +4002,88 @@ instructions  */
    BFD_RELOC_RX_ABS16UL,
    BFD_RELOC_RX_RELAX,
  
    BFD_RELOC_RX_ABS16UL,
    BFD_RELOC_RX_RELAX,
  
      ;;
 --- a/bfd/configure
 +++ b/bfd/configure
      ;;
 --- a/bfd/configure
 +++ b/bfd/configure
-@@ -15040,6 +15040,7 @@ do
+@@ -15188,6 +15188,7 @@ do
      bfd_pei_ia64_vec)         tb="$tb pei-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
      bfd_elf32_am33lin_vec)    tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
      bfd_elf32_avr_vec)                tb="$tb elf32-avr.lo elf32.lo $elf" ;;
      bfd_pei_ia64_vec)         tb="$tb pei-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
      bfd_elf32_am33lin_vec)    tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
      bfd_elf32_avr_vec)                tb="$tb elf32-avr.lo elf32.lo $elf" ;;
      bfd_elf32_big_generic_vec)        tb="$tb elf32-gen.lo elf32.lo $elf" ;;
 --- a/bfd/configure.in
 +++ b/bfd/configure.in
      bfd_elf32_big_generic_vec)        tb="$tb elf32-gen.lo elf32.lo $elf" ;;
 --- a/bfd/configure.in
 +++ b/bfd/configure.in
-@@ -675,6 +675,7 @@ do
+@@ -679,6 +679,7 @@ do
      bfd_pei_ia64_vec)         tb="$tb pei-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
      bfd_elf32_am33lin_vec)    tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
      bfd_elf32_avr_vec)                tb="$tb elf32-avr.lo elf32.lo $elf" ;;
      bfd_pei_ia64_vec)         tb="$tb pei-ia64.lo pepigen.lo cofflink.lo"; target_size=64 ;;
      bfd_elf32_am33lin_vec)    tb="$tb elf32-am33lin.lo elf32.lo $elf" ;;
      bfd_elf32_avr_vec)                tb="$tb elf32-avr.lo elf32.lo $elf" ;;
 +  N(bfd_mach_avr32_ap, "avr32", TRUE, &cpu_info[0]);
 --- /dev/null
 +++ b/bfd/elf32-avr32.c
 +  N(bfd_mach_avr32_ap, "avr32", TRUE, &cpu_info[0]);
 --- /dev/null
 +++ b/bfd/elf32-avr32.c
-@@ -0,0 +1,3915 @@
+@@ -0,0 +1,3944 @@
 +/* AVR32-specific support for 32-bit ELF.
 +   Copyright 2003,2004,2005,2006,2007,2008,2009 Atmel Corporation.
 +
 +/* AVR32-specific support for 32-bit ELF.
 +   Copyright 2003,2004,2005,2006,2007,2008,2009 Atmel Corporation.
 +
 +  unsigned int relax_pass;
 +};
 +#define avr32_elf_hash_table(p)                               \
 +  unsigned int relax_pass;
 +};
 +#define avr32_elf_hash_table(p)                               \
-+  ((struct elf_avr32_link_hash_table *)((p)->hash))
++  (elf_hash_table_id ((struct elf_link_hash_table *) ((p)->hash)) \
++  == AVR32_ELF_DATA ? ((struct elf_avr32_link_hash_table *) ((p)->hash)) : NULL)
 +
 +static struct bfd_hash_entry *
 +avr32_elf_link_hash_newfunc(struct bfd_hash_entry *entry,
 +
 +static struct bfd_hash_entry *
 +avr32_elf_link_hash_newfunc(struct bfd_hash_entry *entry,
 +
 +  if (! _bfd_elf_link_hash_table_init(&ret->root, abfd,
 +                                    avr32_elf_link_hash_newfunc,
 +
 +  if (! _bfd_elf_link_hash_table_init(&ret->root, abfd,
 +                                    avr32_elf_link_hash_newfunc,
-+                      sizeof (struct elf_avr32_link_hash_entry)))
++                      sizeof (struct elf_avr32_link_hash_entry),
++                      AVR32_ELF_DATA))
 +    {
 +      free(ret);
 +      return NULL;
 +    {
 +      free(ret);
 +      return NULL;
 +  htab = avr32_elf_hash_table(info);
 +  flags = bed->dynamic_sec_flags;
 +
 +  htab = avr32_elf_hash_table(info);
 +  flags = bed->dynamic_sec_flags;
 +
++  if (htab == NULL)
++    return FALSE;
++
 +  if (htab->sgot)
 +    return TRUE;
 +
 +  if (htab->sgot)
 +    return TRUE;
 +
 +  htab = avr32_elf_hash_table(info);
 +  flags = bed->dynamic_sec_flags;
 +
 +  htab = avr32_elf_hash_table(info);
 +  flags = bed->dynamic_sec_flags;
 +
++  if (htab == NULL)
++    return FALSE;
++
 +  if (!avr32_elf_create_got_section (dynobj, info))
 +    return FALSE;
 +
 +  if (!avr32_elf_create_got_section (dynobj, info))
 +    return FALSE;
 +
 +  symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
 +  sym_hashes = elf_sym_hashes(abfd);
 +  htab = avr32_elf_hash_table(info);
 +  symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
 +  sym_hashes = elf_sym_hashes(abfd);
 +  htab = avr32_elf_hash_table(info);
++  if (htab == NULL)
++    return FALSE;
++
 +  local_got_ents = elf_local_got_ents(abfd);
 +  sgot = htab->sgot;
 +
 +  local_got_ents = elf_local_got_ents(abfd);
 +  sgot = htab->sgot;
 +
 +  havr = (struct elf_avr32_link_hash_entry *)h;
 +  dynobj = elf_hash_table(info)->dynobj;
 +
 +  havr = (struct elf_avr32_link_hash_entry *)h;
 +  dynobj = elf_hash_table(info)->dynobj;
 +
++  if (htab == NULL)
++    return FALSE;
++
 +  /* Make sure we know what is going on here.  */
 +  BFD_ASSERT (dynobj != NULL
 +            && (h->u.weakdef != NULL
 +  /* Make sure we know what is going on here.  */
 +  BFD_ASSERT (dynobj != NULL
 +            && (h->u.weakdef != NULL
 +  htab = avr32_elf_hash_table(info);
 +  havr = (struct elf_avr32_link_hash_entry *)h;
 +
 +  htab = avr32_elf_hash_table(info);
 +  havr = (struct elf_avr32_link_hash_entry *)h;
 +
++  if (htab == NULL)
++    return FALSE;
++
 +  got = h->got.glist;
 +
 +  /* If got is NULL, the symbol is never referenced through the GOT */
 +  got = h->got.glist;
 +
 +  /* If got is NULL, the symbol is never referenced through the GOT */
 +  pr_debug("(4) size dynamic sections\n");
 +
 +  htab = avr32_elf_hash_table(info);
 +  pr_debug("(4) size dynamic sections\n");
 +
 +  htab = avr32_elf_hash_table(info);
++  if (htab == NULL)
++    return FALSE;
++
 +  dynobj = htab->root.dynobj;
 +  BFD_ASSERT(dynobj != NULL);
 +
 +  dynobj = htab->root.dynobj;
 +  BFD_ASSERT(dynobj != NULL);
 +
 +    return TRUE;
 +
 +  htab = avr32_elf_hash_table(info);
 +    return TRUE;
 +
 +  htab = avr32_elf_hash_table(info);
++  if (htab == NULL)
++    return FALSE;
++
 +  symtab_hdr = &elf_tdata(input_bfd)->symtab_hdr;
 +  sym_hashes = elf_sym_hashes(input_bfd);
 +  local_got_ents = elf_local_got_ents(input_bfd);
 +  symtab_hdr = &elf_tdata(input_bfd)->symtab_hdr;
 +  sym_hashes = elf_sym_hashes(input_bfd);
 +  local_got_ents = elf_local_got_ents(input_bfd);
 +  pr_debug("(7) finish dynamic symbol: %s\n", h->root.root.string);
 +
 +  htab = avr32_elf_hash_table(info);
 +  pr_debug("(7) finish dynamic symbol: %s\n", h->root.root.string);
 +
 +  htab = avr32_elf_hash_table(info);
++  if (htab == NULL)
++    return FALSE;
++
 +  got = h->got.glist;
 +
 +  if (got && got->refcount > 0)
 +  got = h->got.glist;
 +
 +  if (got && got->refcount > 0)
 +  pr_debug("(8) finish dynamic sections\n");
 +
 +  htab = avr32_elf_hash_table(info);
 +  pr_debug("(8) finish dynamic sections\n");
 +
 +  htab = avr32_elf_hash_table(info);
++  if (htab == NULL)
++    return FALSE;
++
 +  sgot = htab->sgot;
 +  sdyn = bfd_get_section_by_name(htab->root.dynobj, ".dynamic");
 +
 +  sgot = htab->sgot;
 +  sdyn = bfd_get_section_by_name(htab->root.dynobj, ".dynamic");
 +
 +
 +void bfd_elf32_avr32_set_options(struct bfd_link_info *info,
 +                               int direct_data_refs);
 +
 +void bfd_elf32_avr32_set_options(struct bfd_link_info *info,
 +                               int direct_data_refs);
---- b/bfd/elf-bfd.h
+--- a/bfd/elf-bfd.h
 +++ b/bfd/elf-bfd.h
 +++ b/bfd/elf-bfd.h
-@@ -406,6 +406,7 @@
+@@ -402,6 +402,7 @@ enum elf_target_id
    ALPHA_ELF_DATA = 1,
    ARM_ELF_DATA,
    AVR_ELF_DATA,
    ALPHA_ELF_DATA = 1,
    ARM_ELF_DATA,
    AVR_ELF_DATA,
    BFIN_ELF_DATA,
    CRIS_ELF_DATA,
    FRV_ELF_DATA,
    BFIN_ELF_DATA,
    CRIS_ELF_DATA,
    FRV_ELF_DATA,
-@@ -1553,6 +1554,10 @@
+@@ -1549,6 +1550,10 @@ struct elf_obj_tdata
       find_nearest_line.  */
    struct mips_elf_find_line *find_line_info;
  
       find_nearest_line.  */
    struct mips_elf_find_line *find_line_info;
  
  
 --- a/binutils/doc/binutils.info
 +++ b/binutils/doc/binutils.info
  
 --- a/binutils/doc/binutils.info
 +++ b/binutils/doc/binutils.info
-@@ -1705,6 +1705,10 @@ equivalent.  At least one option from th
+@@ -1707,6 +1707,10 @@ equivalent.  At least one option from th
       useful when attempting to disassemble thumb code produced by other
       compilers.
  
       useful when attempting to disassemble thumb code produced by other
       compilers.
  
       the following may be specified as a comma separated string.
 --- a/binutils/doc/binutils.texi
 +++ b/binutils/doc/binutils.texi
       the following may be specified as a comma separated string.
 --- a/binutils/doc/binutils.texi
 +++ b/binutils/doc/binutils.texi
-@@ -1980,6 +1980,10 @@ using the switch @option{--disassembler-
+@@ -1982,6 +1982,10 @@ using the switch @option{--disassembler-
  useful when attempting to disassemble thumb code produced by other
  compilers.
  
  useful when attempting to disassemble thumb code produced by other
  compilers.
  
  following may be specified as a comma separated string.
 --- a/binutils/readelf.c
 +++ b/binutils/readelf.c
  following may be specified as a comma separated string.
 --- a/binutils/readelf.c
 +++ b/binutils/readelf.c
-@@ -95,6 +95,7 @@
+@@ -96,6 +96,7 @@
  #include "elf/arc.h"
  #include "elf/arm.h"
  #include "elf/avr.h"
  #include "elf/arc.h"
  #include "elf/arm.h"
  #include "elf/avr.h"
  #include "elf/bfin.h"
  #include "elf/cr16.h"
  #include "elf/cris.h"
  #include "elf/bfin.h"
  #include "elf/cr16.h"
  #include "elf/cris.h"
-@@ -619,6 +620,7 @@ guess_is_rela (unsigned int e_machine)
+@@ -544,6 +545,7 @@ guess_is_rela (unsigned int e_machine)
      case EM_ALPHA:
      case EM_ALTERA_NIOS2:
      case EM_AVR:
      case EM_ALPHA:
      case EM_ALTERA_NIOS2:
      case EM_AVR:
      case EM_AVR_OLD:
      case EM_BLACKFIN:
      case EM_CR16:
      case EM_AVR_OLD:
      case EM_BLACKFIN:
      case EM_CR16:
-@@ -1072,6 +1074,10 @@ dump_relocations (FILE * file,
+@@ -997,6 +999,10 @@ dump_relocations (FILE * file,
          rtype = elf_avr_reloc_type (type);
          break;
  
          rtype = elf_avr_reloc_type (type);
          break;
  
        case EM_SPARCV9:
 --- a/gas/as.c
 +++ b/gas/as.c
        case EM_SPARCV9:
 --- a/gas/as.c
 +++ b/gas/as.c
-@@ -459,10 +459,10 @@ parse_args (int * pargc, char *** pargv)
+@@ -464,10 +464,10 @@ parse_args (int * pargc, char *** pargv)
         the end of the preceeding line so that it is simpler to
         selectively add and remove lines from this list.  */
      {"alternate", no_argument, NULL, OPTION_ALTERNATE}
         the end of the preceeding line so that it is simpler to
         selectively add and remove lines from this list.  */
      {"alternate", no_argument, NULL, OPTION_ALTERNATE}
      ,{"a", optional_argument, NULL, 'a'}
      /* Handle -al=<FILE>.  */
      ,{"al", optional_argument, NULL, OPTION_AL}
      ,{"a", optional_argument, NULL, 'a'}
      /* Handle -al=<FILE>.  */
      ,{"al", optional_argument, NULL, OPTION_AL}
-@@ -839,8 +839,15 @@ This program has absolutely no warranty.
+@@ -854,8 +854,15 @@ This program has absolutely no warranty.
        case 'a':
          if (optarg)
            {
        case 'a':
          if (optarg)
            {
  @set CRIS
 --- a/gas/doc/as.texinfo
 +++ b/gas/doc/as.texinfo
  @set CRIS
 --- a/gas/doc/as.texinfo
 +++ b/gas/doc/as.texinfo
-@@ -6865,6 +6865,9 @@ subject, see the hardware manufacturer's
+@@ -6877,6 +6877,9 @@ subject, see the hardware manufacturer's
  @ifset AVR
  * AVR-Dependent::               AVR Dependent Features
  @end ifset
  @ifset AVR
  * AVR-Dependent::               AVR Dependent Features
  @end ifset
  @ifset Blackfin
  * Blackfin-Dependent::                Blackfin Dependent Features
  @end ifset
  @ifset Blackfin
  * Blackfin-Dependent::                Blackfin Dependent Features
  @end ifset
-@@ -7006,6 +7009,10 @@ subject, see the hardware manufacturer's
+@@ -7018,6 +7021,10 @@ subject, see the hardware manufacturer's
  @include c-avr.texi
  @end ifset
  
  @include c-avr.texi
  @end ifset
  
 +.L2:  nop
 --- a/gas/write.c
 +++ b/gas/write.c
 +.L2:  nop
 --- a/gas/write.c
 +++ b/gas/write.c
-@@ -2221,6 +2221,10 @@ relax_frag (segT segment, fragS *fragP,
+@@ -2227,6 +2227,10 @@ relax_frag (segT segment, fragS *fragP,
  
  #endif /* defined (TC_GENERIC_RELAX_TABLE)  */
  
  
  #endif /* defined (TC_GENERIC_RELAX_TABLE)  */
  
  /* Relax_align. Advance location counter to next address that has 'alignment'
     lowest order bits all 0s, return size of adjustment made.  */
  static relax_addressT
  /* Relax_align. Advance location counter to next address that has 'alignment'
     lowest order bits all 0s, return size of adjustment made.  */
  static relax_addressT
-@@ -2240,6 +2244,7 @@ relax_align (register relax_addressT add
+@@ -2246,6 +2250,7 @@ relax_align (register relax_addressT add
  #endif
    return (new_address - address);
  }
  #endif
    return (new_address - address);
  }
  
  /* Now we have a segment, not a crowd of sub-segments, we can make
     fr_address values.
  
  /* Now we have a segment, not a crowd of sub-segments, we can make
     fr_address values.
-@@ -2286,7 +2291,7 @@ relax_segment (struct frag *segment_frag
+@@ -2292,7 +2297,7 @@ relax_segment (struct frag *segment_frag
        case rs_align_code:
        case rs_align_test:
          {
        case rs_align_code:
        case rs_align_test:
          {
  
            if (fragP->fr_subtype != 0 && offset > fragP->fr_subtype)
              offset = 0;
  
            if (fragP->fr_subtype != 0 && offset > fragP->fr_subtype)
              offset = 0;
-@@ -2497,10 +2502,10 @@ relax_segment (struct frag *segment_frag
+@@ -2503,10 +2508,10 @@ relax_segment (struct frag *segment_frag
                {
                  addressT oldoff, newoff;
  
                {
                  addressT oldoff, newoff;
  
 +LDEMUL_SET_SYMBOLS=avr32_elf_set_symbols
 --- a/ld/Makefile.am
 +++ b/ld/Makefile.am
 +LDEMUL_SET_SYMBOLS=avr32_elf_set_symbols
 --- a/ld/Makefile.am
 +++ b/ld/Makefile.am
-@@ -162,6 +162,53 @@ ALL_EMULATION_SOURCES = \
+@@ -163,6 +163,53 @@ ALL_EMULATION_SOURCES = \
        eavr5.c \
        eavr51.c \
        eavr6.c \
        eavr5.c \
        eavr51.c \
        eavr6.c \
 +      eavr32linux.c \
        ecoff_i860.c \
        ecoff_sparc.c \
 +      eavr32linux.c \
        ecoff_i860.c \
        ecoff_sparc.c \
-       eelf32_spu.c \
-@@ -760,6 +807,214 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(
+       ecrisaout.c \
+@@ -766,6 +813,214 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(
    $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
    ${GEN_DEPENDS}
        ${GENSCRIPTS} avr6 "$(tdir_avr2)"
    $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
    ${GEN_DEPENDS}
        ${GENSCRIPTS} avr6 "$(tdir_avr2)"
  ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \
    $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i860coff.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} coff_i860 "$(tdir_coff_i860)"
  ecoff_i860.c: $(srcdir)/emulparams/coff_i860.sh \
    $(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/i860coff.sc ${GEN_DEPENDS}
        ${GENSCRIPTS} coff_i860 "$(tdir_coff_i860)"
-@@ -2052,7 +2307,9 @@ install-exec-local: ld-new$(EXEEXT) inst
+@@ -2059,7 +2314,9 @@ install-exec-local: ld-new$(EXEEXT) inst
          fi; \
        fi
  
          fi; \
        fi
  
          $(INSTALL_DATA) $$f $(DESTDIR)$(scriptdir)/$$f ; \
 --- a/ld/Makefile.in
 +++ b/ld/Makefile.in
          $(INSTALL_DATA) $$f $(DESTDIR)$(scriptdir)/$$f ; \
 --- a/ld/Makefile.in
 +++ b/ld/Makefile.in
-@@ -462,6 +462,53 @@ ALL_EMULATION_SOURCES = \
+@@ -468,6 +468,53 @@ ALL_EMULATION_SOURCES = \
        eavr5.c \
        eavr51.c \
        eavr6.c \
        eavr5.c \
        eavr51.c \
        eavr6.c \
 +      eavr32linux.c \
        ecoff_i860.c \
        ecoff_sparc.c \
 +      eavr32linux.c \
        ecoff_i860.c \
        ecoff_sparc.c \
-       eelf32_spu.c \
-@@ -2183,6 +2230,194 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(
+       ecrisaout.c \
+@@ -2201,6 +2248,194 @@ eavr6.c: $(srcdir)/emulparams/avr6.sh $(
    $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
    ${GEN_DEPENDS}
        ${GENSCRIPTS} avr6 "$(tdir_avr2)"
    $(ELF_DEPS) $(srcdir)/scripttempl/avr.sc \
    ${GEN_DEPENDS}
        ${GENSCRIPTS} avr6 "$(tdir_avr2)"
  #ifdef ARCH_s390
    print_s390_disassembler_options (stream);
  #endif
  #ifdef ARCH_s390
    print_s390_disassembler_options (stream);
  #endif
---- a/bfd/elf32-avr32.c
-+++ b/bfd/elf32-avr32.c
-@@ -352,7 +352,8 @@ struct elf_avr32_link_hash_table
-   unsigned int relax_pass;
- };
- #define avr32_elf_hash_table(p)                               \
--  ((struct elf_avr32_link_hash_table *)((p)->hash))
-+  (elf_hash_table_id ((struct elf_link_hash_table *) ((p)->hash)) \
-+  == AVR32_ELF_DATA ? ((struct elf_avr32_link_hash_table *) ((p)->hash)) : NULL)
- static struct bfd_hash_entry *
- avr32_elf_link_hash_newfunc(struct bfd_hash_entry *entry,
-@@ -414,7 +415,8 @@ avr32_elf_link_hash_table_create(bfd *ab
-   if (! _bfd_elf_link_hash_table_init(&ret->root, abfd,
-                                     avr32_elf_link_hash_newfunc,
--                      sizeof (struct elf_avr32_link_hash_entry)))
-+                      sizeof (struct elf_avr32_link_hash_entry),
-+                      AVR32_ELF_DATA))
-     {
-       free(ret);
-       return NULL;
-@@ -497,6 +499,9 @@ avr32_elf_create_got_section (bfd *dynob
-   htab = avr32_elf_hash_table(info);
-   flags = bed->dynamic_sec_flags;
-+  if (htab == NULL)
-+    return FALSE;
-+
-   if (htab->sgot)
-     return TRUE;
-@@ -534,6 +539,9 @@ avr32_elf_create_dynamic_sections (bfd *
-   htab = avr32_elf_hash_table(info);
-   flags = bed->dynamic_sec_flags;
-+  if (htab == NULL)
-+    return FALSE;
-+
-   if (!avr32_elf_create_got_section (dynobj, info))
-     return FALSE;
-@@ -574,6 +582,9 @@ avr32_check_relocs (bfd *abfd, struct bf
-   symtab_hdr = &elf_tdata(abfd)->symtab_hdr;
-   sym_hashes = elf_sym_hashes(abfd);
-   htab = avr32_elf_hash_table(info);
-+  if (htab == NULL)
-+    return FALSE;
-+
-   local_got_ents = elf_local_got_ents(abfd);
-   sgot = htab->sgot;
-@@ -756,6 +767,9 @@ avr32_elf_adjust_dynamic_symbol(struct b
-   havr = (struct elf_avr32_link_hash_entry *)h;
-   dynobj = elf_hash_table(info)->dynobj;
-+  if (htab == NULL)
-+    return FALSE;
-+
-   /* Make sure we know what is going on here.  */
-   BFD_ASSERT (dynobj != NULL
-             && (h->u.weakdef != NULL
-@@ -1066,6 +1080,9 @@ allocate_dynrelocs(struct elf_link_hash_
-   htab = avr32_elf_hash_table(info);
-   havr = (struct elf_avr32_link_hash_entry *)h;
-+  if (htab == NULL)
-+    return FALSE;
-+
-   got = h->got.glist;
-   /* If got is NULL, the symbol is never referenced through the GOT */
-@@ -1117,6 +1134,9 @@ avr32_elf_size_dynamic_sections (bfd *ou
-   pr_debug("(4) size dynamic sections\n");
-   htab = avr32_elf_hash_table(info);
-+  if (htab == NULL)
-+    return FALSE;
-+
-   dynobj = htab->root.dynobj;
-   BFD_ASSERT(dynobj != NULL);
-@@ -3260,6 +3280,9 @@ avr32_elf_relocate_section(bfd *output_b
-     return TRUE;
-   htab = avr32_elf_hash_table(info);
-+  if (htab == NULL)
-+    return FALSE;
-+
-   symtab_hdr = &elf_tdata(input_bfd)->symtab_hdr;
-   sym_hashes = elf_sym_hashes(input_bfd);
-   local_got_ents = elf_local_got_ents(input_bfd);
-@@ -3582,6 +3605,9 @@ avr32_elf_finish_dynamic_symbol(bfd *out
-   pr_debug("(7) finish dynamic symbol: %s\n", h->root.root.string);
-   htab = avr32_elf_hash_table(info);
-+  if (htab == NULL)
-+    return FALSE;
-+
-   got = h->got.glist;
-   if (got && got->refcount > 0)
-@@ -3648,6 +3674,9 @@ avr32_elf_finish_dynamic_sections(bfd *o
-   pr_debug("(8) finish dynamic sections\n");
-   htab = avr32_elf_hash_table(info);
-+  if (htab == NULL)
-+    return FALSE;
-+
-   sgot = htab->sgot;
-   sdyn = bfd_get_section_by_name(htab->root.dynobj, ".dynamic");
index 4c75920fc5cab7235e9d8503e860994278d1b365..40fe76d34d93f7c51855d345a01ff4e869e37434 100644 (file)
@@ -1,7 +1,6 @@
-diff --git a/config.sub b/config.sub
 --- a/config.sub
 +++ b/config.sub
 --- a/config.sub
 +++ b/config.sub
-@@ -125,6 +125,7 @@
+@@ -125,6 +125,7 @@ esac
  maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
  case $maybe_os in
    nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
  maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
  case $maybe_os in
    nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
@@ -9,11 +8,3 @@ diff --git a/config.sub b/config.sub
    linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
    knetbsd*-gnu* | netbsd*-gnu* | \
    kopensolaris*-gnu* | \
    linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
    knetbsd*-gnu* | netbsd*-gnu* | \
    kopensolaris*-gnu* | \
-@@ -1335,6 +1336,7 @@
-             | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-             | -mingw32* | -linux-gnu* | -linux-android* \
-             | -linux-newlib* | -linux-uclibc* \
-+            | -linux-musl* \
-             | -uxpv* | -beos* | -mpeix* | -udk* \
-             | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
-             | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
index 25e26db239eb13beaf4d9b121ab367402d3d7bcd..e011c4b111d4e9af175b40580c8d15120f525750 100644 (file)
@@ -1,9 +1,8 @@
 See http://sourceware.org/bugzilla/show_bug.cgi?id=13990 for details.
 ---
 See http://sourceware.org/bugzilla/show_bug.cgi?id=13990 for details.
 ---
-diff -u -r1.287 -r1.288
---- a/bfd/elf32-arm.c  2012/04/24 05:12:31     1.287
-+++ b/bfd/elf32-arm.c  2012/04/24 16:09:12     1.288
-@@ -12256,8 +12256,19 @@
+--- a/bfd/elf32-arm.c
++++ b/bfd/elf32-arm.c
+@@ -12046,8 +12046,19 @@ elf32_arm_gc_sweep_hook (bfd *
        if (may_need_local_target_p
          && elf32_arm_get_plt_info (abfd, eh, r_symndx, &root_plt, &arm_plt))
        {
        if (may_need_local_target_p
          && elf32_arm_get_plt_info (abfd, eh, r_symndx, &root_plt, &arm_plt))
        {
@@ -25,4 +24,3 @@ diff -u -r1.287 -r1.288
  
          if (!call_reloc_p)
            arm_plt->noncall_refcount--;
  
          if (!call_reloc_p)
            arm_plt->noncall_refcount--;
-
index a9e435701e4b73f3c15c19dc53d57ca74cb9dd67..5d0e5ff8efcb30381932a0467296bb27abb23d67 100644 (file)
@@ -20,7 +20,7 @@ make[4]: *** [as-new] Error 1
 
 --- a/gas/configure.tgt
 +++ b/gas/configure.tgt
 
 --- a/gas/configure.tgt
 +++ b/gas/configure.tgt
-@@ -428,6 +428,12 @@ case ${generic_target} in
+@@ -450,6 +450,12 @@ case ${generic_target} in
    *-*-netware)                                fmt=elf em=netware ;;
  esac
  
    *-*-netware)                                fmt=elf em=netware ;;
  esac
  
@@ -31,5 +31,5 @@ make[4]: *** [as-new] Error 1
 +esac
 +
  case ${cpu_type} in
 +esac
 +
  case ${cpu_type} in
-   alpha | arm | i386 | ia64 | microblaze | mips | ns32k | pdp11 | ppc | sparc | z80 | z8k)
+   aarch64 | alpha | arm | i386 | ia64 | microblaze | mips | ns32k | pdp11 | ppc | sparc | z80 | z8k)
      bfd_gas=yes
      bfd_gas=yes
index d92ceb52cf95939cee5ba7a8f077538cbee32e0e..ce0ec81b894cc124bbfa14169aa1bccc18b31e4a 100644 (file)
@@ -1,6 +1,6 @@
 --- a/configure
 +++ b/configure
 --- a/configure
 +++ b/configure
-@@ -3570,7 +3570,7 @@ case "${target}" in
+@@ -3595,7 +3595,7 @@ case "${target}" in
    mips*-*-*)
      noconfigdirs="$noconfigdirs gprof"
      ;;
    mips*-*-*)
      noconfigdirs="$noconfigdirs gprof"
      ;;
@@ -11,7 +11,7 @@
           ;;
 --- a/configure.ac
 +++ b/configure.ac
           ;;
 --- a/configure.ac
 +++ b/configure.ac
-@@ -1006,7 +1006,7 @@ case "${target}" in
+@@ -1021,7 +1021,7 @@ case "${target}" in
    mips*-*-*)
      noconfigdirs="$noconfigdirs gprof"
      ;;
    mips*-*-*)
      noconfigdirs="$noconfigdirs gprof"
      ;;
index aa853ff542792da47e18cea9aa52a254cd93170a..323655a01ccc4c1827641b853a51c341ad3e6870 100644 (file)
@@ -11,7 +11,7 @@
  EMULATION_OFILES = @EMULATION_OFILES@
 --- a/ld/Makefile.in
 +++ b/ld/Makefile.in
  EMULATION_OFILES = @EMULATION_OFILES@
 --- a/ld/Makefile.in
 +++ b/ld/Makefile.in
-@@ -366,7 +366,7 @@ AM_CFLAGS = $(WARN_CFLAGS)
+@@ -367,7 +367,7 @@ AM_CFLAGS = $(WARN_CFLAGS)
  # We put the scripts in the directory $(scriptdir)/ldscripts.
  # We can't put the scripts in $(datadir) because the SEARCH_DIR
  # directives need to be different for native and cross linkers.
  # We put the scripts in the directory $(scriptdir)/ldscripts.
  # We can't put the scripts in $(datadir) because the SEARCH_DIR
  # directives need to be different for native and cross linkers.
index 1e04000340aa8cf089358942474e6a093d7be967..7e90d220a47ef8c3cbb8ea5303b479ce61f4fd5b 100644 (file)
@@ -1,6 +1,6 @@
 --- a/ld/emultempl/elf32.em
 +++ b/ld/emultempl/elf32.em
 --- a/ld/emultempl/elf32.em
 +++ b/ld/emultempl/elf32.em
-@@ -1273,6 +1273,8 @@ fragment <<EOF
+@@ -1274,6 +1274,8 @@ fragment <<EOF
              && command_line.rpath == NULL)
            {
              lib_path = (const char *) getenv ("LD_RUN_PATH");
              && command_line.rpath == NULL)
            {
              lib_path = (const char *) getenv ("LD_RUN_PATH");
@@ -9,7 +9,7 @@
              if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
                                                      force))
                break;
              if (gld${EMULATION_NAME}_search_needed (lib_path, &n,
                                                      force))
                break;
-@@ -1500,6 +1502,8 @@ gld${EMULATION_NAME}_before_allocation (
+@@ -1501,6 +1503,8 @@ gld${EMULATION_NAME}_before_allocation (
    rpath = command_line.rpath;
    if (rpath == NULL)
      rpath = (const char *) getenv ("LD_RUN_PATH");
    rpath = command_line.rpath;
    if (rpath == NULL)
      rpath = (const char *) getenv ("LD_RUN_PATH");