Compare commits
10 Commits
Author | SHA1 | Date |
---|---|---|
Nick Clifton | 2fa8a6267e | |
Nick Clifton | 0c423754f0 | |
Nick Clifton | 30680af246 | |
Nick Clifton | e28e96e795 | |
Nick Clifton | 3a98358b5a | |
Nick Clifton | c19a61caa4 | |
Nick Clifton | 22682100d7 | |
Nick Clifton | 2f54daa42f | |
Nick Clifton | 0126fe8661 | |
Nick Clifton | d51c5c23ca |
|
@ -1,146 +0,0 @@
|
|||
diff -upr binutils-2.26.orig/ld/ld.texinfo binutils-2.26/ld/ld.texinfo
|
||||
--- binutils-2.26.orig/ld/ld.texinfo 2016-02-16 10:45:43.245336561 +0000
|
||||
+++ binutils-2.26/ld/ld.texinfo 2016-02-16 10:47:04.670763451 +0000
|
||||
@@ -1325,15 +1325,21 @@ libraries.
|
||||
When creating a shared library, bind references to global symbols to the
|
||||
definition within the shared library, if any. Normally, it is possible
|
||||
for a program linked against a shared library to override the definition
|
||||
-within the shared library. This option is only meaningful on ELF
|
||||
-platforms which support shared libraries.
|
||||
+within the shared library. This option can also be used with the
|
||||
+@option{--export-dynamic} option, when creating a position independent
|
||||
+executable, to bind references to global symbols to the definition within
|
||||
+the executable. This option is only meaningful on ELF platforms which
|
||||
+support shared libraries and position independent executables.
|
||||
|
||||
@kindex -Bsymbolic-functions
|
||||
@item -Bsymbolic-functions
|
||||
When creating a shared library, bind references to global function
|
||||
symbols to the definition within the shared library, if any.
|
||||
+This option can also be used with the @option{--export-dynamic} option,
|
||||
+when creating a position independent executable, to bind references
|
||||
+to global function symbols to the definition within the executable.
|
||||
This option is only meaningful on ELF platforms which support shared
|
||||
-libraries.
|
||||
+libraries and position independent executables.
|
||||
|
||||
@kindex --dynamic-list=@var{dynamic-list-file}
|
||||
@item --dynamic-list=@var{dynamic-list-file}
|
||||
diff -upr binutils-2.26.orig/ld/lexsup.c binutils-2.26/ld/lexsup.c
|
||||
--- binutils-2.26.orig/ld/lexsup.c 2016-02-16 10:45:43.246336567 +0000
|
||||
+++ binutils-2.26/ld/lexsup.c 2016-02-16 10:47:04.671763456 +0000
|
||||
@@ -1586,15 +1586,14 @@ parse_args (unsigned argc, char **argv)
|
||||
/* We may have -Bsymbolic, -Bsymbolic-functions, --dynamic-list-data,
|
||||
--dynamic-list-cpp-new, --dynamic-list-cpp-typeinfo and
|
||||
--dynamic-list FILE. -Bsymbolic and -Bsymbolic-functions are
|
||||
- for shared libraries. -Bsymbolic overrides all others and vice
|
||||
- versa. */
|
||||
+ for PIC outputs. -Bsymbolic overrides all others and vice versa. */
|
||||
switch (command_line.symbolic)
|
||||
{
|
||||
case symbolic_unset:
|
||||
break;
|
||||
case symbolic:
|
||||
- /* -Bsymbolic is for shared library only. */
|
||||
- if (bfd_link_dll (&link_info))
|
||||
+ /* -Bsymbolic is for PIC output only. */
|
||||
+ if (bfd_link_pic (&link_info))
|
||||
{
|
||||
link_info.symbolic = TRUE;
|
||||
/* Should we free the unused memory? */
|
||||
@@ -1603,8 +1602,8 @@ parse_args (unsigned argc, char **argv)
|
||||
}
|
||||
break;
|
||||
case symbolic_functions:
|
||||
- /* -Bsymbolic-functions is for shared library only. */
|
||||
- if (bfd_link_dll (&link_info))
|
||||
+ /* -Bsymbolic-functions is for PIC output only. */
|
||||
+ if (bfd_link_pic (&link_info))
|
||||
command_line.dynamic_list = dynamic_list_data;
|
||||
break;
|
||||
}
|
||||
diff -upr binutils-2.26.orig/ld/testsuite/ld-i386/i386.exp binutils-2.26/ld/testsuite/ld-i386/i386.exp
|
||||
--- binutils-2.26.orig/ld/testsuite/ld-i386/i386.exp 2016-02-16 10:45:43.319336949 +0000
|
||||
+++ binutils-2.26/ld/testsuite/ld-i386/i386.exp 2016-02-16 10:47:04.672763461 +0000
|
||||
@@ -319,6 +319,7 @@ run_dump_test "load5a"
|
||||
run_dump_test "load5b"
|
||||
run_dump_test "load6"
|
||||
run_dump_test "pr19175"
|
||||
+run_dump_test "pr19615"
|
||||
|
||||
if { !([istarget "i?86-*-linux*"]
|
||||
|| [istarget "i?86-*-gnu*"]
|
||||
--- /dev/null 2016-02-16 08:27:18.513962320 +0000
|
||||
+++ binutils-2.26/ld/testsuite/ld-i386/pr19615.s 2016-02-16 10:56:11.886632341 +0000
|
||||
@@ -0,0 +1,13 @@
|
||||
+ .text
|
||||
+ .globl _start
|
||||
+ .type _start, @function
|
||||
+_start:
|
||||
+ ret
|
||||
+
|
||||
+ .globl xyzzy /* This symbol should be exported */
|
||||
+ .type xyzzy, @function
|
||||
+xyzzy:
|
||||
+ ret
|
||||
+
|
||||
+ .section ".xyzzy_ptr","aw",%progbits
|
||||
+ .dc.a xyzzy
|
||||
--- /dev/null 2016-02-16 08:27:18.513962320 +0000
|
||||
+++ binutils-2.26/ld/testsuite/ld-i386/pr19615.d 2016-02-16 10:56:11.886632341 +0000
|
||||
@@ -0,0 +1,13 @@
|
||||
+#as: --32
|
||||
+#ld: -pie -Bsymbolic -E -melf_i386
|
||||
+#readelf: -r --wide --dyn-syms
|
||||
+
|
||||
+Relocation section '.rel.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
|
||||
+ Offset Info Type Sym. Value Symbol's Name
|
||||
+[0-9a-f]+ +[0-9a-f]+ +R_386_RELATIVE +
|
||||
+
|
||||
+Symbol table '.dynsym' contains [0-9]+ entries:
|
||||
+ Num: Value Size Type Bind Vis Ndx Name
|
||||
+#...
|
||||
+[ ]*[a-f0-9]+: [a-f0-9]+ 0 FUNC GLOBAL DEFAULT [a-f0-9]+ xyzzy
|
||||
+#...
|
||||
--- /dev/null 2016-02-16 08:27:18.513962320 +0000
|
||||
+++ binutils-2.26/ld/testsuite/ld-x86-64/pr19615.s 2016-02-16 10:57:55.386174958 +0000
|
||||
@@ -0,0 +1,13 @@
|
||||
+ .text
|
||||
+ .globl _start
|
||||
+ .type _start, @function
|
||||
+_start:
|
||||
+ ret
|
||||
+
|
||||
+ .globl xyzzy /* This symbol should be exported */
|
||||
+ .type xyzzy, @function
|
||||
+xyzzy:
|
||||
+ ret
|
||||
+
|
||||
+ .section ".xyzzy_ptr","aw",%progbits
|
||||
+ .dc.a xyzzy
|
||||
--- /dev/null 2016-02-16 08:27:18.513962320 +0000
|
||||
+++ binutils-2.26/ld/testsuite/ld-x86-64/pr19615.d 2016-02-16 10:57:55.386174958 +0000
|
||||
@@ -0,0 +1,13 @@
|
||||
+#as: --64
|
||||
+#ld: -pie -Bsymbolic -E -melf_x86_64
|
||||
+#readelf: -r --wide --dyn-syms
|
||||
+
|
||||
+Relocation section '.rela.dyn' at offset 0x[0-9a-f]+ contains 1 entries:
|
||||
+ Offset Info Type Symbol's Value Symbol's Name \+ Addend
|
||||
+[0-9a-f]+ +[0-9a-f]+ +R_X86_64_RELATIVE +[0-9]+
|
||||
+
|
||||
+Symbol table '.dynsym' contains [0-9]+ entries:
|
||||
+ Num: Value Size Type Bind Vis Ndx Name
|
||||
+#...
|
||||
+[ ]*[a-f0-9]+: [a-f0-9]+ 0 FUNC GLOBAL DEFAULT [a-f0-9]+ xyzzy
|
||||
+#...
|
||||
--- binutils-2.26.orig/ld/testsuite/ld-x86-64/x86-64.exp 2016-02-16 10:45:43.443337600 +0000
|
||||
+++ binutils-2.26/ld/testsuite/ld-x86-64/x86-64.exp 2016-02-16 11:01:02.418162157 +0000
|
||||
@@ -353,6 +353,7 @@ run_dump_test "pr19013-x32"
|
||||
run_dump_test "pr19013-nacl"
|
||||
run_dump_test "pr19162"
|
||||
run_dump_test "pr19175"
|
||||
+run_dump_test "pr19615"
|
||||
|
||||
# Add $PLT_CFLAGS if PLT is expected.
|
||||
global PLT_CFLAGS
|
|
@ -0,0 +1,55 @@
|
|||
diff -rup binutils-2.26.orig/bfd/libaout.h binutils-2.26/bfd/libaout.h
|
||||
--- binutils-2.26.orig/bfd/libaout.h 2016-03-15 09:50:29.080059305 +0000
|
||||
+++ binutils-2.26/bfd/libaout.h 2016-03-15 09:53:26.178070524 +0000
|
||||
@@ -448,9 +448,7 @@ struct aout_data_struct
|
||||
#define obj_aout_sym_hashes(bfd) (adata (bfd).sym_hashes)
|
||||
#define obj_aout_dynamic_info(bfd) (adata (bfd).dynamic_info)
|
||||
|
||||
-/* We take the address of the first element of an asymbol to ensure that the
|
||||
- macro is only ever applied to an asymbol. */
|
||||
-#define aout_symbol(asymbol) ((aout_symbol_type *)(&(asymbol)->the_bfd))
|
||||
+#define aout_symbol(asymbol) ((aout_symbol_type *) (asymbol))
|
||||
|
||||
/* Information we keep for each a.out section. This is currently only
|
||||
used by the a.out backend linker. */
|
||||
diff -rup binutils-2.26.orig/bfd/libcoff.h binutils-2.26/bfd/libcoff.h
|
||||
--- binutils-2.26.orig/bfd/libcoff.h 2016-03-15 09:50:29.080059305 +0000
|
||||
+++ binutils-2.26/bfd/libcoff.h 2016-03-15 09:54:02.826279784 +0000
|
||||
@@ -192,9 +192,7 @@ struct xcoff_tdata
|
||||
|
||||
#define xcoff_data(abfd) ((abfd)->tdata.xcoff_obj_data)
|
||||
|
||||
-/* We take the address of the first element of an asymbol to ensure that the
|
||||
- macro is only ever applied to an asymbol. */
|
||||
-#define coffsymbol(asymbol) ((coff_symbol_type *)(&((asymbol)->the_bfd)))
|
||||
+#define coffsymbol(asymbol) ((coff_symbol_type *) (asymbol))
|
||||
|
||||
/* Tdata for sections in XCOFF files. This is used by the linker. */
|
||||
|
||||
diff -rup binutils-2.26.orig/bfd/libcoff-in.h binutils-2.26/bfd/libcoff-in.h
|
||||
--- binutils-2.26.orig/bfd/libcoff-in.h 2016-03-15 09:50:29.080059305 +0000
|
||||
+++ binutils-2.26/bfd/libcoff-in.h 2016-03-15 09:53:44.989177935 +0000
|
||||
@@ -188,9 +188,7 @@ struct xcoff_tdata
|
||||
|
||||
#define xcoff_data(abfd) ((abfd)->tdata.xcoff_obj_data)
|
||||
|
||||
-/* We take the address of the first element of an asymbol to ensure that the
|
||||
- macro is only ever applied to an asymbol. */
|
||||
-#define coffsymbol(asymbol) ((coff_symbol_type *)(&((asymbol)->the_bfd)))
|
||||
+#define coffsymbol(asymbol) ((coff_symbol_type *) (asymbol))
|
||||
|
||||
/* Tdata for sections in XCOFF files. This is used by the linker. */
|
||||
|
||||
--- binutils-2.26.orig/gas/config/obj-elf.h 2016-03-15 09:50:29.143059664 +0000
|
||||
+++ binutils-2.26/gas/config/obj-elf.h 2016-03-15 10:36:26.342646864 +0000
|
||||
@@ -93,8 +93,8 @@ extern void elf_begin (void);
|
||||
#define LOCAL_LABEL_PREFIX '.'
|
||||
#endif
|
||||
|
||||
-/* should be conditional on address size! */
|
||||
-#define elf_symbol(asymbol) ((elf_symbol_type *) (&(asymbol)->the_bfd))
|
||||
+/* Should be conditional on address size! */
|
||||
+#define elf_symbol(asymbol) ((elf_symbol_type *) (asymbol))
|
||||
|
||||
#ifndef S_GET_SIZE
|
||||
#define S_GET_SIZE(S) \
|
|
@ -73,3 +73,17 @@
|
|||
|
||||
static int mfloat_abi_opt = -1;
|
||||
/* Record user cpu selection for object attributes. */
|
||||
--- binutils-2.26.orig/gas/config/tc-arm.c 2016-05-09 17:21:37.239766096 +0100
|
||||
+++ binutils-2.26/gas/config/tc-arm.c 2016-05-09 17:23:08.410319859 +0100
|
||||
@@ -1982,6 +1982,11 @@ parse_neon_el_struct_list (char **str, u
|
||||
const char *const type_error = _("mismatched element/structure types in list");
|
||||
struct neon_typed_alias firsttype;
|
||||
|
||||
+ firsttype.defined = 0;
|
||||
+ firsttype.eltype.type = NT_invtype;
|
||||
+ firsttype.eltype.size = -1;
|
||||
+ firsttype.index = -1;
|
||||
+
|
||||
if (skip_past_char (&ptr, '{') == SUCCESS)
|
||||
leading_brace = 1;
|
||||
|
||||
|
|
|
@ -1,190 +1,3 @@
|
|||
--- ../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
|
||||
|
|
|
@ -2553,100 +2553,3 @@ diff -rup binutils-2.26.orig/ld/testsuite/ld-plugin/lto.exp binutils-2.26/ld/tes
|
|||
|
||||
run_cc_link_tests $lto_link_symbol_tests
|
||||
|
||||
diff -rup binutils-2.26.orig/ld/testsuite/ld-plugin/lto.exp.orig binutils-2.26/ld/testsuite/ld-plugin/lto.exp.orig
|
||||
--- binutils-2.26.orig/ld/testsuite/ld-plugin/lto.exp.orig 2016-02-19 09:35:36.805003880 +0000
|
||||
+++ binutils-2.26/ld/testsuite/ld-plugin/lto.exp.orig 2016-02-19 09:35:54.929106657 +0000
|
||||
@@ -79,6 +79,15 @@ set lto_link_tests [list \
|
||||
[list "Build liblto-3.a" \
|
||||
"" "-flto $lto_fat" \
|
||||
{lto-3b.c} {} "liblto-3.a"] \
|
||||
+ [list "Compile 4a" \
|
||||
+ "" "-flto $lto_fat" \
|
||||
+ {lto-4a.c} {} ""] \
|
||||
+ [list "Compile 4b" \
|
||||
+ "" "-O2" \
|
||||
+ {lto-4b.c} {} ""] \
|
||||
+ [list "Compile 4c" \
|
||||
+ "" "-O2" \
|
||||
+ {lto-4c.c} {} ""] \
|
||||
[list "Compile 5a" \
|
||||
"" "-flto $lto_fat" \
|
||||
{lto-5a.c} {} ""] \
|
||||
@@ -94,6 +103,12 @@ set lto_link_tests [list \
|
||||
[list "Compile 9" \
|
||||
"" "-O2 -finline -flto" \
|
||||
{lto-9.cc} {} "" "c++"] \
|
||||
+ [list "Compile 10a" \
|
||||
+ "" "-O2" \
|
||||
+ {lto-10a.c} {} ""] \
|
||||
+ [list "Compile 10b" \
|
||||
+ "" "-O2 -flto $lto_fat" \
|
||||
+ {lto-10b.c} {} ""] \
|
||||
[list "Compile 11a" \
|
||||
"" "-O -flto" \
|
||||
{lto-11a.c} {} ""] \
|
||||
@@ -291,9 +306,21 @@ set lto_run_tests [list \
|
||||
[list "LTO 3c" \
|
||||
"-O2 -flto -fuse-linker-plugin tmpdir/lto-3a.o tmpdir/lto-3c.o -Wl,--whole-archive tmpdir/liblto-3.a -Wl,--no-whole-archive tmpdir/liblto-3.a" "" \
|
||||
{dummy.c} "lto-3d.exe" "lto-3.out" "" "c"] \
|
||||
+ [list "LTO 4a" \
|
||||
+ "-O2 -flto -fuse-linker-plugin tmpdir/lto-4r-a.o" "" \
|
||||
+ {dummy.c} "lto-4a.exe" "lto-4.out" "" "c"] \
|
||||
+ [list "LTO 4c" \
|
||||
+ "-O2 -flto -fuse-linker-plugin tmpdir/lto-4r-c.o" "" \
|
||||
+ {dummy.c} "lto-4c.exe" "lto-4.out" "" "c"] \
|
||||
+ [list "LTO 4d" \
|
||||
+ "-O2 -flto -fuse-linker-plugin tmpdir/lto-4r-d.o" "" \
|
||||
+ {dummy.c} "lto-4d.exe" "lto-4.out" "" "c"] \
|
||||
[list "LTO 5" \
|
||||
"-O2 -flto -fuse-linker-plugin tmpdir/lto-5.o" "" \
|
||||
{dummy.c} "lto-5.exe" "lto-5.out" "" "c"] \
|
||||
+ [list "LTO 10" \
|
||||
+ "-O2 -flto -fuse-linker-plugin tmpdir/lto-10.o" "" \
|
||||
+ {dummy.c} "lto-10.exe" "lto-10.out" "" "c"] \
|
||||
[list "LTO 11" \
|
||||
"-O -flto -fuse-linker-plugin tmpdir/liblto-11.a" "" \
|
||||
{dummy.c} "lto-11.exe" "lto-11.out" "" "c"] \
|
||||
@@ -378,6 +405,15 @@ if { [is_elf_format] && [check_lto_share
|
||||
}
|
||||
}
|
||||
|
||||
+set testname "Build liblto-4.a"
|
||||
+remote_file host delete "tmpdir/liblto-4.a"
|
||||
+set catch_output [run_host_cmd "$ar" "rc tmpdir/liblto-4.a tmpdir/lto-4a.o tmpdir/lto-4b.o tmpdir/lto-4c.o"]
|
||||
+if {![string match "" $catch_output]} {
|
||||
+ unresolved $testname
|
||||
+ restore_notify
|
||||
+ return
|
||||
+}
|
||||
+
|
||||
set testname "Build liblto-11.a"
|
||||
remote_file host delete "tmpdir/liblto-11.a"
|
||||
set catch_output [run_host_cmd "$ar" "rc $plug_opt tmpdir/liblto-11.a tmpdir/lto-11a.o tmpdir/lto-11b.o tmpdir/lto-11c.o"]
|
||||
@@ -416,11 +452,26 @@ if { [at_least_gcc_version 4 7] } {
|
||||
}
|
||||
}
|
||||
|
||||
+# Fedora specific binutils patches break some of the tests that follow...
|
||||
+restore_notify
|
||||
+return
|
||||
+
|
||||
+
|
||||
# Run "ld -r" to generate inputs for complex LTO tests.
|
||||
run_dump_test "lto-3r"
|
||||
remote_exec host "mv" "tmpdir/dump tmpdir/lto-3.o"
|
||||
+run_dump_test "lto-4r-a"
|
||||
+remote_exec host "mv" "tmpdir/dump tmpdir/lto-4r-a.o"
|
||||
+run_dump_test "lto-4r-b"
|
||||
+remote_exec host "mv" "tmpdir/dump tmpdir/lto-4r-b.o"
|
||||
+run_dump_test "lto-4r-c"
|
||||
+remote_exec host "mv" "tmpdir/dump tmpdir/lto-4r-c.o"
|
||||
+run_dump_test "lto-4r-d"
|
||||
+remote_exec host "mv" "tmpdir/dump tmpdir/lto-4r-d.o"
|
||||
run_dump_test "lto-5r"
|
||||
remote_exec host "mv" "tmpdir/dump tmpdir/lto-5.o"
|
||||
+run_dump_test "lto-10r"
|
||||
+remote_exec host "mv" "tmpdir/dump tmpdir/lto-10.o"
|
||||
|
||||
run_cc_link_tests $lto_link_symbol_tests
|
||||
|
||||
|
|
|
@ -19,8 +19,8 @@
|
|||
|
||||
Summary: A GNU collection of binary utilities
|
||||
Name: %{?cross}binutils%{?_with_debug:-debug}
|
||||
Version: 2.26
|
||||
Release: 12%{?dist}
|
||||
Version: 2.26.1
|
||||
Release: 1%{?dist}
|
||||
License: GPLv3+
|
||||
Group: Development/Tools
|
||||
URL: http://sources.redhat.com/binutils
|
||||
|
@ -38,7 +38,7 @@ Patch02: binutils-2.20.51.0.10-ppc64-pie.patch
|
|||
Patch03: binutils-2.20.51.0.2-ia64-lib64.patch
|
||||
Patch04: binutils-2.25-version.patch
|
||||
Patch05: binutils-2.25-set-long-long.patch
|
||||
Patch06: binutils-2.20.51.0.10-copy-osabi.patch
|
||||
# Patch06: binutils-2.20.51.0.10-copy-osabi.patch
|
||||
Patch07: binutils-2.20.51.0.10-sec-merge-emit.patch
|
||||
# Enable -zrelro by default: BZ #621983
|
||||
Patch08: binutils-2.22.52.0.1-relro-on-by-default.patch
|
||||
|
@ -59,9 +59,20 @@ Patch16: binutils-2.25.1-cleansweep.patch
|
|||
Patch17: binutils-2.26-formatting.patch
|
||||
Patch18: binutils-2.26-fix-compile-warnings.patch
|
||||
# Enable -Bsymbolic and -Bsymbolic-functions to PIE
|
||||
Patch19: binutils-2.26-Bsymbolic_PIE.patch
|
||||
# Patch19: binutils-2.26-Bsymbolic_PIE.patch
|
||||
# Import H.J.Lu's Kernel LTO patch.
|
||||
Patch20: binutils-2.26-lto.patch
|
||||
# Import fix for PR 19698
|
||||
# Patch21: binutils-rh1312151.patch
|
||||
# Import fix for PR 19601
|
||||
# Patch22: binutils-2.26-fix-GOT-offset-calculation.patch
|
||||
# Import fix for PR 19579
|
||||
# Patch23: binutils-2.26-common-definitions.patch
|
||||
# Fix compilation under broken F24 GCC, which geneerates bogus strict aliasing violations.
|
||||
# FIXME: Remove once GCC is fixed.
|
||||
Patch24: binutils-2.26-bad-aliasing.patch
|
||||
# Import fix for PR 19827
|
||||
# Patch25: binutils-2.26-x86-PIE-relocations.patch
|
||||
|
||||
Provides: bundled(libiberty)
|
||||
|
||||
|
@ -171,7 +182,7 @@ using libelf instead of BFD.
|
|||
%endif
|
||||
%patch04 -p1 -b .version~
|
||||
%patch05 -p1 -b .set-long-long~
|
||||
%patch06 -p1 -b .copy-osabi~
|
||||
# %patch06 -p1 -b .copy-osabi~
|
||||
%patch07 -p1 -b .sec-merge-emit~
|
||||
%if 0%{?fedora} >= 18 || 0%{?rhel} >= 7
|
||||
%patch08 -p1 -b .relro~
|
||||
|
@ -188,8 +199,13 @@ using libelf instead of BFD.
|
|||
%patch16 -p0
|
||||
%patch17 -p0
|
||||
%patch18 -p1
|
||||
%patch19 -p1
|
||||
# %patch19 -p1
|
||||
%patch20 -p1
|
||||
# %patch21 -p1
|
||||
# %patch22 -p1
|
||||
# %patch23 -p1
|
||||
%patch24 -p1
|
||||
# %patch25 -p1
|
||||
|
||||
# We cannot run autotools as there is an exact requirement of autoconf-2.59.
|
||||
|
||||
|
@ -509,6 +525,43 @@ exit 0
|
|||
%endif # %{isnative}
|
||||
|
||||
%changelog
|
||||
* Wed Jun 29 2016 Nick Clifton <nickc@redhat.com> 2.26.1-1
|
||||
- Rebase on FSF binutils 2.26.1 release.
|
||||
- Retire: binutils-2.26-Bsymbolic_PIE.patch
|
||||
- Retire: binutils-rh1312151.patch
|
||||
- Retire: binutils-2.26-fix-GOT-offset-calculation.patch
|
||||
- Retire: binutils-2.26-common-definitions.patch
|
||||
- Retire: binutils-2.26-x86-PIE-relocations.patch
|
||||
|
||||
* Thu Jun 02 2016 Nick Clifton <nickc@redhat.com> 2.26-20
|
||||
- Retire the copy-osabi patch.
|
||||
(#1252066)
|
||||
|
||||
* Mon May 09 2016 Nick Clifton <nickc@redhat.com> 2.26-19
|
||||
- Fix another compile time warning, this time in tc-arm.c.
|
||||
(#1333695)
|
||||
|
||||
* Wed Apr 20 2016 Nick Clifton <nickc@redhat.com> 2.26-18
|
||||
- Import patch to fix generation of x86 relocs in PIE mode. (PR 19827)
|
||||
(#1302071)
|
||||
|
||||
* Tue Mar 15 2016 Nick Clifton <nickc@redhat.com> 2.26-17
|
||||
- Fix strict aliasing errors compiling with broken F24 gcc.
|
||||
See thread starting here: https://sourceware.org/ml/binutils/2016-03/msg00119.html
|
||||
(#1312507)
|
||||
|
||||
* Mon Mar 14 2016 Nick Clifton <nickc@redhat.com> 2.26-15
|
||||
- Import patch to have common symbols in an executable override definitions in shared objects (PR 19579)
|
||||
(#1312507)
|
||||
|
||||
* Mon Feb 29 2016 Nick Clifton <nickc@redhat.com> 2.26-14
|
||||
- Import patch to fix x86 GOT offset calculation in 2.26 sources (PR 19601)
|
||||
(#1312489)
|
||||
|
||||
* Fri Feb 26 2016 Nick Clifton <nickc@redhat.com> 2.26-13
|
||||
- Import patch to fix symbol versioning bug in 2.26 sources (PR 19698)
|
||||
(#1312151)
|
||||
|
||||
* Fri Feb 19 2016 Nick Clifton <nickc@redhat.com> 2.26-12
|
||||
- Import H.J.Lu's kernel LTO patch.
|
||||
(#1302071)
|
||||
|
|
Loading…
Reference in New Issue