diff options
Diffstat (limited to 'source/d/binutils/patches/binutils-2.26-formatting.patch')
-rw-r--r-- | source/d/binutils/patches/binutils-2.26-formatting.patch | 297 |
1 files changed, 297 insertions, 0 deletions
diff --git a/source/d/binutils/patches/binutils-2.26-formatting.patch b/source/d/binutils/patches/binutils-2.26-formatting.patch new file mode 100644 index 00000000..0eadb0c3 --- /dev/null +++ b/source/d/binutils/patches/binutils-2.26-formatting.patch @@ -0,0 +1,297 @@ +--- ../binutils-2.26.orig/bfd/coff-i386.c 2016-02-04 10:31:44.684793142 +0000 ++++ bfd/coff-i386.c 2016-02-04 10:32:02.106891045 +0000 +@@ -139,41 +139,41 @@ coff_i386_reloc (bfd *abfd, + #define DOIT(x) \ + x = ((x & ~howto->dst_mask) | (((x & howto->src_mask) + diff) & howto->dst_mask)) + +- if (diff != 0) +- { +- reloc_howto_type *howto = reloc_entry->howto; +- unsigned char *addr = (unsigned char *) data + reloc_entry->address; ++ if (diff != 0) ++ { ++ reloc_howto_type *howto = reloc_entry->howto; ++ unsigned char *addr = (unsigned char *) data + reloc_entry->address; ++ ++ switch (howto->size) ++ { ++ case 0: ++ { ++ char x = bfd_get_8 (abfd, addr); ++ DOIT (x); ++ bfd_put_8 (abfd, x, addr); ++ } ++ break; + +- switch (howto->size) ++ case 1: + { +- case 0: +- { +- char x = bfd_get_8 (abfd, addr); +- DOIT (x); +- bfd_put_8 (abfd, x, addr); +- } +- break; +- +- case 1: +- { +- short x = bfd_get_16 (abfd, addr); +- DOIT (x); +- bfd_put_16 (abfd, (bfd_vma) x, addr); +- } +- break; +- +- case 2: +- { +- long x = bfd_get_32 (abfd, addr); +- DOIT (x); +- bfd_put_32 (abfd, (bfd_vma) x, addr); +- } +- break; ++ short x = bfd_get_16 (abfd, addr); ++ DOIT (x); ++ bfd_put_16 (abfd, (bfd_vma) x, addr); ++ } ++ break; + +- default: +- abort (); ++ case 2: ++ { ++ long x = bfd_get_32 (abfd, addr); ++ DOIT (x); ++ bfd_put_32 (abfd, (bfd_vma) x, addr); + } +- } ++ break; ++ ++ default: ++ abort (); ++ } ++ } + + /* Now let bfd_perform_relocation finish everything up. */ + return bfd_reloc_continue; +--- ../binutils-2.26.orig/bfd/coff-x86_64.c 2016-02-04 10:31:44.686793153 +0000 ++++ bfd/coff-x86_64.c 2016-02-04 10:33:02.044227862 +0000 +@@ -138,59 +138,61 @@ coff_amd64_reloc (bfd *abfd, + #define DOIT(x) \ + x = ((x & ~howto->dst_mask) | (((x & howto->src_mask) + diff) & howto->dst_mask)) + +- if (diff != 0) +- { +- reloc_howto_type *howto = reloc_entry->howto; +- unsigned char *addr = (unsigned char *) data + reloc_entry->address; +- +- /* FIXME: We do not have an end address for data, so we cannot +- accurately range check any addresses computed against it. +- cf: PR binutils/17512: file: 1085-1761-0.004. +- For now we do the best that we can. */ +- if (addr < (unsigned char *) data || addr > ((unsigned char *) data) + input_section->size) ++ if (diff != 0) ++ { ++ reloc_howto_type *howto = reloc_entry->howto; ++ unsigned char *addr = (unsigned char *) data + reloc_entry->address; ++ ++ /* FIXME: We do not have an end address for data, so we cannot ++ accurately range check any addresses computed against it. ++ cf: PR binutils/17512: file: 1085-1761-0.004. ++ For now we do the best that we can. */ ++ if (addr < (unsigned char *) data ++ || addr > ((unsigned char *) data) + input_section->size) ++ { ++ bfd_set_error (bfd_error_bad_value); ++ return bfd_reloc_notsupported; ++ } ++ ++ switch (howto->size) ++ { ++ case 0: + { +- bfd_set_error (bfd_error_bad_value); +- return bfd_reloc_notsupported; ++ char x = bfd_get_8 (abfd, addr); ++ DOIT (x); ++ bfd_put_8 (abfd, x, addr); + } ++ break; + +- switch (howto->size) ++ case 1: + { +- case 0: +- { +- char x = bfd_get_8 (abfd, addr); +- DOIT (x); +- bfd_put_8 (abfd, x, addr); +- } +- break; +- +- case 1: +- { +- short x = bfd_get_16 (abfd, addr); +- DOIT (x); +- bfd_put_16 (abfd, (bfd_vma) x, addr); +- } +- break; +- +- case 2: +- { +- long x = bfd_get_32 (abfd, addr); +- DOIT (x); +- bfd_put_32 (abfd, (bfd_vma) x, addr); +- } +- break; +- case 4: +- { +- long long x = bfd_get_64 (abfd, addr); +- DOIT (x); +- bfd_put_64 (abfd, (bfd_vma) x, addr); +- } +- break; +- +- default: +- bfd_set_error (bfd_error_bad_value); +- return bfd_reloc_notsupported; ++ short x = bfd_get_16 (abfd, addr); ++ DOIT (x); ++ bfd_put_16 (abfd, (bfd_vma) x, addr); + } +- } ++ break; ++ ++ case 2: ++ { ++ long x = bfd_get_32 (abfd, addr); ++ DOIT (x); ++ bfd_put_32 (abfd, (bfd_vma) x, addr); ++ } ++ break; ++ ++ case 4: ++ { ++ long long x = bfd_get_64 (abfd, addr); ++ DOIT (x); ++ bfd_put_64 (abfd, (bfd_vma) x, addr); ++ } ++ break; ++ ++ default: ++ bfd_set_error (bfd_error_bad_value); ++ return bfd_reloc_notsupported; ++ } ++ } + + /* Now let bfd_perform_relocation finish everything up. */ + return bfd_reloc_continue; +--- ../binutils-2.26.orig/bfd/elf64-s390.c 2016-02-09 15:01:11.983640775 +0000 ++++ bfd/elf64-s390.c 2016-02-09 15:01:37.675779605 +0000 +@@ -337,10 +337,10 @@ elf_s390_reloc_name_lookup (bfd *abfd AT + && strcasecmp (elf_howto_table[i].name, r_name) == 0) + return &elf_howto_table[i]; + +- if (strcasecmp (elf64_s390_vtinherit_howto.name, r_name) == 0) +- return &elf64_s390_vtinherit_howto; +- if (strcasecmp (elf64_s390_vtentry_howto.name, r_name) == 0) +- return &elf64_s390_vtentry_howto; ++ if (strcasecmp (elf64_s390_vtinherit_howto.name, r_name) == 0) ++ return &elf64_s390_vtinherit_howto; ++ if (strcasecmp (elf64_s390_vtentry_howto.name, r_name) == 0) ++ return &elf64_s390_vtentry_howto; + + return NULL; + } +--- ../binutils-2.26.orig/bfd/pe-mips.c 2016-02-09 15:01:11.995640840 +0000 ++++ bfd/pe-mips.c 2016-02-09 15:31:21.348317265 +0000 +@@ -95,44 +95,44 @@ coff_mips_reloc (bfd *abfd, + #define DOIT(x) \ + x = ((x & ~howto->dst_mask) | (((x & howto->src_mask) + (diff >> howto->rightshift)) & howto->dst_mask)) + +- if (diff != 0) +- { +- reloc_howto_type *howto = reloc_entry->howto; +- unsigned char *addr = (unsigned char *) data + reloc_entry->address; ++ if (diff != 0) ++ { ++ reloc_howto_type *howto = reloc_entry->howto; ++ unsigned char *addr = (unsigned char *) data + reloc_entry->address; ++ ++ switch (howto->size) ++ { ++ case 0: ++ { ++ char x = bfd_get_8 (abfd, addr); ++ ++ DOIT (x); ++ bfd_put_8 (abfd, x, addr); ++ } ++ break; ++ ++ case 1: ++ { ++ short x = bfd_get_16 (abfd, addr); ++ ++ DOIT (x); ++ bfd_put_16 (abfd, (bfd_vma) x, addr); ++ } ++ break; + +- switch (howto->size) ++ case 2: + { +- case 0: +- { +- char x = bfd_get_8 (abfd, addr); +- +- DOIT (x); +- bfd_put_8 (abfd, x, addr); +- } +- break; +- +- case 1: +- { +- short x = bfd_get_16 (abfd, addr); +- +- DOIT (x); +- bfd_put_16 (abfd, (bfd_vma) x, addr); +- } +- break; +- +- case 2: +- { +- long x = bfd_get_32 (abfd, addr); +- +- DOIT (x); +- bfd_put_32 (abfd, (bfd_vma) x, addr); +- } +- break; ++ long x = bfd_get_32 (abfd, addr); + +- default: +- abort (); ++ DOIT (x); ++ bfd_put_32 (abfd, (bfd_vma) x, addr); + } +- } ++ break; ++ ++ default: ++ abort (); ++ } ++ } + + /* Now let bfd_perform_relocation finish everything up. */ + return bfd_reloc_continue; +--- ../binutils-2.26.orig/gas/config/tc-ia64.c 2016-02-09 15:01:12.086641332 +0000 ++++ gas/config/tc-ia64.c 2016-02-09 15:30:18.562003661 +0000 +@@ -4360,7 +4360,8 @@ dot_prologue (int dummy ATTRIBUTE_UNUSED + as_warn (_("Pointless use of zero first operand to .prologue")); + else + mask = e.X_add_number; +- n = popcount (mask); ++ ++ n = popcount (mask); + + if (sep == ',') + parse_operand_and_eval (&e, 0); |