Rebase to GNU Binutils 2.35.1 release.
Retire: binutils-gas-dwarf-level-4.patch Retire: binutils-aarch64-plt-sh_entsize.patch Retire: binutils-ppc-rename-xvcvbf16sp-to-xvcvbf16spn.patch Retire: binutils-dwarf-5-fixes.patch
This commit is contained in:
parent
7691c28cb0
commit
7e6a1748ba
1
.gitignore
vendored
1
.gitignore
vendored
@ -64,3 +64,4 @@ stamp-*
|
||||
/binutils-2.34.0-5dfc0c955dbe912cd328fc2688e5fceb3239ac2a.tar.xz
|
||||
/binutils-2.19.50.0.1-output-format.sed
|
||||
/binutils-2.35.tar.xz
|
||||
/binutils-2.35.1.tar.xz
|
||||
|
@ -1,27 +0,0 @@
|
||||
diff -rup binutils.orig/bfd/elfnn-aarch64.c binutils-2.35/bfd/elfnn-aarch64.c
|
||||
--- binutils.orig/bfd/elfnn-aarch64.c 2020-07-30 17:20:30.607580720 +0100
|
||||
+++ binutils-2.35/bfd/elfnn-aarch64.c 2020-07-30 17:22:45.629741124 +0100
|
||||
@@ -9513,8 +9513,10 @@ elfNN_aarch64_init_small_plt0_entry (bfd
|
||||
|
||||
memcpy (htab->root.splt->contents, htab->plt0_entry,
|
||||
htab->plt_header_size);
|
||||
- elf_section_data (htab->root.splt->output_section)->this_hdr.sh_entsize =
|
||||
- htab->plt_header_size;
|
||||
+ /* PR 26312: Explicitly set the sh_entsize to 0 so that
|
||||
+ consumers do not think that the section contains fixed
|
||||
+ sized objects. */
|
||||
+ elf_section_data (htab->root.splt->output_section)->this_hdr.sh_entsize = 0;
|
||||
|
||||
plt_got_2nd_ent = (htab->root.sgotplt->output_section->vma
|
||||
+ htab->root.sgotplt->output_offset
|
||||
@@ -9616,10 +9618,6 @@ elfNN_aarch64_finish_dynamic_sections (b
|
||||
{
|
||||
elfNN_aarch64_init_small_plt0_entry (output_bfd, htab);
|
||||
|
||||
- elf_section_data (htab->root.splt->output_section)->
|
||||
- this_hdr.sh_entsize = htab->plt_entry_size;
|
||||
-
|
||||
-
|
||||
if (htab->root.tlsdesc_plt && !(info->flags & DF_BIND_NOW))
|
||||
{
|
||||
BFD_ASSERT (htab->root.tlsdesc_got != (bfd_vma)-1);
|
@ -1,426 +0,0 @@
|
||||
diff -rup binutils.orig/bfd/dwarf2.c binutils-2.35/bfd/dwarf2.c
|
||||
--- binutils.orig/bfd/dwarf2.c 2020-08-25 15:40:47.642219922 +0100
|
||||
+++ binutils-2.35/bfd/dwarf2.c 2020-08-25 15:41:16.271039143 +0100
|
||||
@@ -130,6 +130,12 @@ struct dwarf2_debug_file
|
||||
/* Length of the loaded .debug_ranges section. */
|
||||
bfd_size_type dwarf_ranges_size;
|
||||
|
||||
+ /* Pointer to the .debug_rnglists section loaded into memory. */
|
||||
+ bfd_byte *dwarf_rnglists_buffer;
|
||||
+
|
||||
+ /* Length of the loaded .debug_rnglists section. */
|
||||
+ bfd_size_type dwarf_rnglists_size;
|
||||
+
|
||||
/* A list of all previously read comp_units. */
|
||||
struct comp_unit *all_comp_units;
|
||||
|
||||
@@ -327,6 +333,7 @@ const struct dwarf_debug_section dwarf_d
|
||||
{ ".debug_pubnames", ".zdebug_pubnames" },
|
||||
{ ".debug_pubtypes", ".zdebug_pubtypes" },
|
||||
{ ".debug_ranges", ".zdebug_ranges" },
|
||||
+ { ".debug_rnglists", ".zdebug_rnglist" },
|
||||
{ ".debug_static_func", ".zdebug_static_func" },
|
||||
{ ".debug_static_vars", ".zdebug_static_vars" },
|
||||
{ ".debug_str", ".zdebug_str", },
|
||||
@@ -360,6 +367,7 @@ enum dwarf_debug_section_enum
|
||||
debug_pubnames,
|
||||
debug_pubtypes,
|
||||
debug_ranges,
|
||||
+ debug_rnglists,
|
||||
debug_static_func,
|
||||
debug_static_vars,
|
||||
debug_str,
|
||||
@@ -1329,6 +1337,17 @@ read_attribute_value (struct attribute *
|
||||
attr->form = DW_FORM_sdata;
|
||||
attr->u.sval = implicit_const;
|
||||
break;
|
||||
+ case DW_FORM_data16:
|
||||
+ /* This is really a "constant", but there is no way to store that
|
||||
+ so pretend it is a 16 byte block instead. */
|
||||
+ amt = sizeof (struct dwarf_block);
|
||||
+ blk = (struct dwarf_block *) bfd_alloc (abfd, amt);
|
||||
+ if (blk == NULL)
|
||||
+ return NULL;
|
||||
+ blk->size = 16;
|
||||
+ info_ptr = read_n_bytes (info_ptr, info_ptr_end, blk);
|
||||
+ attr->u.blk = blk;
|
||||
+ break;
|
||||
default:
|
||||
_bfd_error_handler (_("DWARF error: invalid or unhandled FORM value: %#x"),
|
||||
form);
|
||||
@@ -2069,11 +2088,17 @@ read_formatted_entries (struct comp_unit
|
||||
case DW_FORM_udata:
|
||||
*uintp = attr.u.val;
|
||||
break;
|
||||
+
|
||||
+ case DW_FORM_data16:
|
||||
+ /* MD5 data is in the attr.blk, but we are ignoring those. */
|
||||
+ break;
|
||||
}
|
||||
}
|
||||
|
||||
- if (!callback (table, fe.name, fe.dir, fe.time, fe.size))
|
||||
- return FALSE;
|
||||
+ /* Skip the first "zero entry", which is the compilation dir/file. */
|
||||
+ if (datai != 0)
|
||||
+ if (!callback (table, fe.name, fe.dir, fe.time, fe.size))
|
||||
+ return FALSE;
|
||||
}
|
||||
|
||||
*bufp = buf;
|
||||
@@ -2617,6 +2642,19 @@ read_debug_ranges (struct comp_unit * un
|
||||
&file->dwarf_ranges_buffer, &file->dwarf_ranges_size);
|
||||
}
|
||||
|
||||
+/* Read in the .debug_rnglists section for future reference. */
|
||||
+
|
||||
+static bfd_boolean
|
||||
+read_debug_rnglists (struct comp_unit * unit)
|
||||
+{
|
||||
+ struct dwarf2_debug *stash = unit->stash;
|
||||
+ struct dwarf2_debug_file *file = unit->file;
|
||||
+
|
||||
+ return read_section (unit->abfd, &stash->debug_sections[debug_rnglists],
|
||||
+ file->syms, 0,
|
||||
+ &file->dwarf_rnglists_buffer, &file->dwarf_rnglists_size);
|
||||
+}
|
||||
+
|
||||
/* Function table functions. */
|
||||
|
||||
static int
|
||||
@@ -3107,8 +3145,8 @@ find_abstract_instance (struct comp_unit
|
||||
}
|
||||
|
||||
static bfd_boolean
|
||||
-read_rangelist (struct comp_unit *unit, struct arange *arange,
|
||||
- bfd_uint64_t offset)
|
||||
+read_ranges (struct comp_unit *unit, struct arange *arange,
|
||||
+ bfd_uint64_t offset)
|
||||
{
|
||||
bfd_byte *ranges_ptr;
|
||||
bfd_byte *ranges_end;
|
||||
@@ -3153,6 +3191,107 @@ read_rangelist (struct comp_unit *unit,
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
+static bfd_boolean
|
||||
+read_rnglists (struct comp_unit *unit, struct arange *arange,
|
||||
+ bfd_uint64_t offset)
|
||||
+{
|
||||
+ bfd_byte *rngs_ptr;
|
||||
+ bfd_byte *rngs_end;
|
||||
+ bfd_vma base_address = unit->base_address;
|
||||
+ bfd_vma low_pc;
|
||||
+ bfd_vma high_pc;
|
||||
+ bfd *abfd = unit->abfd;
|
||||
+
|
||||
+ if (! unit->file->dwarf_rnglists_buffer)
|
||||
+ {
|
||||
+ if (! read_debug_rnglists (unit))
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ rngs_ptr = unit->file->dwarf_rnglists_buffer + offset;
|
||||
+ if (rngs_ptr < unit->file->dwarf_rnglists_buffer)
|
||||
+ return FALSE;
|
||||
+ rngs_end = unit->file->dwarf_rnglists_buffer;
|
||||
+ rngs_end += unit->file->dwarf_rnglists_size;
|
||||
+
|
||||
+ for (;;)
|
||||
+ {
|
||||
+ enum dwarf_range_list_entry rlet;
|
||||
+ unsigned int bytes_read;
|
||||
+
|
||||
+ if (rngs_ptr + 1 > rngs_end)
|
||||
+ return FALSE;
|
||||
+
|
||||
+ rlet = read_1_byte (abfd, rngs_ptr, rngs_end);
|
||||
+ rngs_ptr++;
|
||||
+
|
||||
+ switch (rlet)
|
||||
+ {
|
||||
+ case DW_RLE_end_of_list:
|
||||
+ return TRUE;
|
||||
+
|
||||
+ case DW_RLE_base_address:
|
||||
+ if (rngs_ptr + unit->addr_size > rngs_end)
|
||||
+ return FALSE;
|
||||
+ base_address = read_address (unit, rngs_ptr, rngs_end);
|
||||
+ rngs_ptr += unit->addr_size;
|
||||
+ continue;
|
||||
+
|
||||
+ case DW_RLE_start_length:
|
||||
+ if (rngs_ptr + unit->addr_size > rngs_end)
|
||||
+ return FALSE;
|
||||
+ low_pc = read_address (unit, rngs_ptr, rngs_end);
|
||||
+ rngs_ptr += unit->addr_size;
|
||||
+ high_pc = low_pc;
|
||||
+ high_pc += _bfd_safe_read_leb128 (abfd, rngs_ptr, &bytes_read,
|
||||
+ FALSE, rngs_end);
|
||||
+ rngs_ptr += bytes_read;
|
||||
+ break;
|
||||
+
|
||||
+ case DW_RLE_offset_pair:
|
||||
+ low_pc = base_address;
|
||||
+ low_pc += _bfd_safe_read_leb128 (abfd, rngs_ptr, &bytes_read,
|
||||
+ FALSE, rngs_end);
|
||||
+ high_pc = base_address;
|
||||
+ high_pc += _bfd_safe_read_leb128 (abfd, rngs_ptr, &bytes_read,
|
||||
+ FALSE, rngs_end);
|
||||
+ break;
|
||||
+
|
||||
+ case DW_RLE_start_end:
|
||||
+ if (rngs_ptr + 2 * unit->addr_size > rngs_end)
|
||||
+ return FALSE;
|
||||
+ low_pc = read_address (unit, rngs_ptr, rngs_end);
|
||||
+ rngs_ptr += unit->addr_size;
|
||||
+ high_pc = read_address (unit, rngs_ptr, rngs_end);
|
||||
+ rngs_ptr += unit->addr_size;
|
||||
+ break;
|
||||
+
|
||||
+ /* TODO x-variants need .debug_addr support used for split-dwarf. */
|
||||
+ case DW_RLE_base_addressx:
|
||||
+ case DW_RLE_startx_endx:
|
||||
+ case DW_RLE_startx_length:
|
||||
+ default:
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+
|
||||
+ if ((low_pc == 0 && high_pc == 0) || low_pc == high_pc)
|
||||
+ return FALSE;
|
||||
+
|
||||
+ if (!arange_add (unit, arange, low_pc, high_pc))
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static bfd_boolean
|
||||
+read_rangelist (struct comp_unit *unit, struct arange *arange,
|
||||
+ bfd_uint64_t offset)
|
||||
+{
|
||||
+ if (unit->version <= 4)
|
||||
+ return read_ranges (unit, arange, offset);
|
||||
+ else
|
||||
+ return read_rnglists (unit, arange, offset);
|
||||
+}
|
||||
+
|
||||
static struct varinfo *
|
||||
lookup_var_by_offset (bfd_uint64_t offset, struct varinfo * table)
|
||||
{
|
||||
diff -rup binutils.orig/binutils/testsuite/binutils-all/readelf.exp binutils-2.35/binutils/testsuite/binutils-all/readelf.exp
|
||||
--- binutils.orig/binutils/testsuite/binutils-all/readelf.exp 2020-08-25 15:40:46.998223989 +0100
|
||||
+++ binutils-2.35/binutils/testsuite/binutils-all/readelf.exp 2020-08-25 15:41:08.408088795 +0100
|
||||
@@ -188,7 +188,7 @@ proc readelf_wi_test {} {
|
||||
".*DW_TAG_subprogram.*"
|
||||
".*DW_TAG_base_type.*"
|
||||
".*DW_AT_producer.*(GNU C|indirect string).*"
|
||||
- ".*DW_AT_language.*ANSI C.*"
|
||||
+ ".*DW_AT_language.*(ANSI C|C11).*"
|
||||
".*DW_AT_name.*(testprog.c|indirect string).*"
|
||||
".*DW_AT_name.*fn.*"
|
||||
".*DW_AT_name.*(main|indirect string).*"
|
||||
diff -rup binutils.orig/gas/dwarf2dbg.c binutils-2.35/gas/dwarf2dbg.c
|
||||
--- binutils.orig/gas/dwarf2dbg.c 2020-08-25 15:40:47.251222391 +0100
|
||||
+++ binutils-2.35/gas/dwarf2dbg.c 2020-08-25 15:41:44.775859148 +0100
|
||||
@@ -1992,18 +1992,29 @@ out_dir_and_file_list (void)
|
||||
the .debug_line_str section and reference them here. */
|
||||
out_uleb128 (DW_FORM_string);
|
||||
|
||||
- /* Now state how many rows there are in the table. */
|
||||
- out_uleb128 (dirs_in_use);
|
||||
+ /* Now state how many rows there are in the table. We need at
|
||||
+ least 1 if there is one or more file names to store the
|
||||
+ "working directory". */
|
||||
+ if (dirs_in_use == 0 && files_in_use > 0)
|
||||
+ out_uleb128 (1);
|
||||
+ else
|
||||
+ out_uleb128 (dirs_in_use);
|
||||
}
|
||||
|
||||
/* Emit directory list. */
|
||||
- if (DWARF2_LINE_VERSION >= 5 && dirs_in_use > 0)
|
||||
+ if (DWARF2_LINE_VERSION >= 5 && (dirs_in_use > 0 || files_in_use > 0))
|
||||
{
|
||||
- if (dirs == NULL || dirs[0] == NULL)
|
||||
- dir = remap_debug_filename (".");
|
||||
- else
|
||||
+ /* DWARF5 uses slot zero, but that is only set explicitly
|
||||
+ using a .file 0 directive. If that isn't used, but dir
|
||||
+ one is used, then use that as main file directory.
|
||||
+ Otherwise use pwd as main file directory. */
|
||||
+ if (dirs_in_use > 0 && dirs != NULL && dirs[0] != NULL)
|
||||
dir = remap_debug_filename (dirs[0]);
|
||||
-
|
||||
+ else if (dirs_in_use > 1 && dirs != NULL && dirs[1] != NULL)
|
||||
+ dir = remap_debug_filename (dirs[1]);
|
||||
+ else
|
||||
+ dir = remap_debug_filename (getpwd ());
|
||||
+
|
||||
size = strlen (dir) + 1;
|
||||
cp = frag_more (size);
|
||||
memcpy (cp, dir, size);
|
||||
@@ -2089,8 +2100,14 @@ out_dir_and_file_list (void)
|
||||
|
||||
if (files[i].filename == NULL)
|
||||
{
|
||||
- /* Prevent a crash later, particularly for file 1. */
|
||||
- files[i].filename = "";
|
||||
+ /* Prevent a crash later, particularly for file 1. DWARF5
|
||||
+ uses slot zero, but that is only set explicitly using a
|
||||
+ .file 0 directive. If that isn't used, but file 1 is,
|
||||
+ then use that as main file name. */
|
||||
+ if (DWARF2_LINE_VERSION >= 5 && i == 0 && files_in_use >= 1)
|
||||
+ files[0].filename = files[1].filename;
|
||||
+ else
|
||||
+ files[i].filename = "";
|
||||
if (DWARF2_LINE_VERSION < 5 || i != 0)
|
||||
{
|
||||
as_bad (_("unassigned file number %ld"), (long) i);
|
||||
@@ -2427,8 +2444,7 @@ out_debug_abbrev (segT abbrev_seg,
|
||||
if (DWARF2_VERSION < 4)
|
||||
out_abbrev (DW_AT_high_pc, DW_FORM_addr);
|
||||
else
|
||||
- out_abbrev (DW_AT_high_pc, (sizeof_address == 4
|
||||
- ? DW_FORM_data4 : DW_FORM_data8));
|
||||
+ out_abbrev (DW_AT_high_pc, DW_FORM_udata);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2464,12 +2480,26 @@ out_debug_info (segT info_seg, segT abbr
|
||||
/* DWARF version. */
|
||||
out_two (DWARF2_VERSION);
|
||||
|
||||
- /* .debug_abbrev offset */
|
||||
- TC_DWARF2_EMIT_OFFSET (section_symbol (abbrev_seg), sizeof_offset);
|
||||
+ if (DWARF2_VERSION < 5)
|
||||
+ {
|
||||
+ /* .debug_abbrev offset */
|
||||
+ TC_DWARF2_EMIT_OFFSET (section_symbol (abbrev_seg), sizeof_offset);
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ /* unit (header) type */
|
||||
+ out_byte (DW_UT_compile);
|
||||
+ }
|
||||
|
||||
/* Target address size. */
|
||||
out_byte (sizeof_address);
|
||||
|
||||
+ if (DWARF2_VERSION >= 5)
|
||||
+ {
|
||||
+ /* .debug_abbrev offset */
|
||||
+ TC_DWARF2_EMIT_OFFSET (section_symbol (abbrev_seg), sizeof_offset);
|
||||
+ }
|
||||
+
|
||||
/* DW_TAG_compile_unit DIE abbrev */
|
||||
out_uleb128 (1);
|
||||
|
||||
@@ -2497,7 +2527,10 @@ out_debug_info (segT info_seg, segT abbr
|
||||
}
|
||||
exp.X_add_symbol = all_segs->text_end;
|
||||
exp.X_add_number = 0;
|
||||
- emit_expr (&exp, sizeof_address);
|
||||
+ if (DWARF2_VERSION < 4)
|
||||
+ emit_expr (&exp, sizeof_address);
|
||||
+ else
|
||||
+ emit_leb128_expr (&exp, 0);
|
||||
}
|
||||
else
|
||||
{
|
||||
diff -rup binutils.orig/gas/read.c binutils-2.35/gas/read.c
|
||||
--- binutils.orig/gas/read.c 2020-08-25 15:40:47.251222391 +0100
|
||||
+++ binutils-2.35/gas/read.c 2020-08-25 15:41:44.776859141 +0100
|
||||
@@ -5138,7 +5138,7 @@ output_big_leb128 (char *p, LITTLENUM_TY
|
||||
/* Generate the appropriate fragments for a given expression to emit a
|
||||
leb128 value. SIGN is 1 for sleb, 0 for uleb. */
|
||||
|
||||
-static void
|
||||
+void
|
||||
emit_leb128_expr (expressionS *exp, int sign)
|
||||
{
|
||||
operatorT op = exp->X_op;
|
||||
diff -rup binutils.orig/gas/read.h binutils-2.35/gas/read.h
|
||||
--- binutils.orig/gas/read.h 2020-08-25 15:40:47.618220074 +0100
|
||||
+++ binutils-2.35/gas/read.h 2020-08-25 15:41:44.776859141 +0100
|
||||
@@ -132,6 +132,7 @@ extern void emit_expr_with_reloc (expres
|
||||
TC_PARSE_CONS_RETURN_TYPE);
|
||||
extern void emit_expr_fix (expressionS *, unsigned int, fragS *, char *,
|
||||
TC_PARSE_CONS_RETURN_TYPE);
|
||||
+extern void emit_leb128_expr (expressionS *, int);
|
||||
extern void equals (char *, int);
|
||||
extern void float_cons (int);
|
||||
extern void ignore_rest_of_line (void);
|
||||
diff -rup binutils.orig/gas/testsuite/gas/elf/elf.exp binutils-2.35/gas/testsuite/gas/elf/elf.exp
|
||||
--- binutils.orig/gas/testsuite/gas/elf/elf.exp 2020-08-25 15:40:47.343221810 +0100
|
||||
+++ binutils-2.35/gas/testsuite/gas/elf/elf.exp 2020-08-25 15:41:25.841978707 +0100
|
||||
@@ -274,6 +274,8 @@ if { [is_elf_format] } then {
|
||||
run_dump_test "dwarf2-18" $dump_opts
|
||||
run_dump_test "dwarf2-19" $dump_opts
|
||||
run_dump_test "dwarf-5-file0" $dump_opts
|
||||
+ run_dump_test "dwarf-4-cu" $dump_opts
|
||||
+ run_dump_test "dwarf-5-cu" $dump_opts
|
||||
run_dump_test "pr25917"
|
||||
run_dump_test "bss"
|
||||
run_dump_test "bad-bss"
|
||||
--- /dev/null 2020-08-25 08:24:40.895324651 +0100
|
||||
+++ binutils-2.35/gas/testsuite/gas/elf/dwarf-4-cu.s 2020-08-25 15:41:25.841978707 +0100
|
||||
@@ -0,0 +1,14 @@
|
||||
+ .text
|
||||
+ .file 1 "foo/bar.s"
|
||||
+ .loc_mark_labels 1
|
||||
+ .globl foobar
|
||||
+ .type foobar, %function
|
||||
+foobar:
|
||||
+ .quad 0x1
|
||||
+ .size foobar, .-foobar
|
||||
+
|
||||
+ .globl baz
|
||||
+ .type baz, %function
|
||||
+baz:
|
||||
+ .quad 0x1
|
||||
+ .size baz, .-baz
|
||||
--- /dev/null 2020-08-25 08:24:40.895324651 +0100
|
||||
+++ binutils-2.35/gas/testsuite/gas/elf/dwarf-4-cu.d 2020-08-25 15:41:25.841978707 +0100
|
||||
@@ -0,0 +1,11 @@
|
||||
+#as: --gdwarf-4
|
||||
+#name: DWARF4 CU
|
||||
+#readelf: -wi
|
||||
+
|
||||
+#...
|
||||
+ Compilation Unit @ offset 0x0:
|
||||
+ Length: 0x.*
|
||||
+ Version: 4
|
||||
+ Abbrev Offset: 0x0
|
||||
+ Pointer Size: .
|
||||
+#pass
|
||||
--- /dev/null 2020-08-25 08:24:40.895324651 +0100
|
||||
+++ binutils-2.35/gas/testsuite/gas/elf/dwarf-5-cu.d 2020-08-25 15:41:25.841978707 +0100
|
||||
@@ -0,0 +1,11 @@
|
||||
+#as: --gdwarf-5
|
||||
+#name: DWARF5 CU
|
||||
+#readelf: -wi
|
||||
+
|
||||
+#...
|
||||
+ Compilation Unit @ offset 0x0:
|
||||
+ Length: 0x.*
|
||||
+ Version: 5
|
||||
+ Abbrev Offset: 0x0
|
||||
+ Pointer Size: .
|
||||
+#pass
|
||||
--- /dev/null 2020-08-25 08:24:40.895324651 +0100
|
||||
+++ binutils-2.35/gas/testsuite/gas/elf/dwarf-5-cu.s 2020-08-25 15:41:25.841978707 +0100
|
||||
@@ -0,0 +1,14 @@
|
||||
+ .text
|
||||
+ .file 1 "foo/bar.s"
|
||||
+ .loc_mark_labels 1
|
||||
+ .globl foobar
|
||||
+ .type foobar, %function
|
||||
+foobar:
|
||||
+ .quad 0x1
|
||||
+ .size foobar, .-foobar
|
||||
+
|
||||
+ .globl baz
|
||||
+ .type baz, %function
|
||||
+baz:
|
||||
+ .quad 0x1
|
||||
+ .size baz, .-baz
|
@ -1,11 +0,0 @@
|
||||
--- binutils.orig/gas/as.c 2020-07-30 08:41:25.034236441 +0100
|
||||
+++ binutils-2.35/gas/as.c 2020-07-30 08:41:52.197058041 +0100
|
||||
@@ -103,7 +103,7 @@ int verbose = 0;
|
||||
int flag_dwarf_cie_version = -1;
|
||||
|
||||
/* The maximum level of DWARF DEBUG information we should manufacture. */
|
||||
-unsigned int dwarf_level = 0;
|
||||
+unsigned int dwarf_level = 3;
|
||||
|
||||
#if defined OBJ_ELF || defined OBJ_MAYBE_ELF
|
||||
int flag_use_elf_stt_common = DEFAULT_GENERATE_ELF_STT_COMMON;
|
@ -1,32 +0,0 @@
|
||||
diff -rup binutils.orig/gas/testsuite/gas/ppc/vsx4.d binutils-2.35/gas/testsuite/gas/ppc/vsx4.d
|
||||
--- binutils.orig/gas/testsuite/gas/ppc/vsx4.d 2020-08-24 13:52:14.230454823 +0100
|
||||
+++ binutils-2.35/gas/testsuite/gas/ppc/vsx4.d 2020-08-24 13:54:15.331718297 +0100
|
||||
@@ -7,6 +7,6 @@
|
||||
Disassembly of section \.text:
|
||||
|
||||
0+0 <vsx4>:
|
||||
-.*: (f0 50 6f 6f|6f 6f 50 f0) xvcvbf16sp vs34,vs45
|
||||
+.*: (f0 50 6f 6f|6f 6f 50 f0) xvcvbf16spn vs34,vs45
|
||||
.*: (f1 f1 27 6f|6f 27 f1 f1) xvcvspbf16 vs47,vs36
|
||||
#pass
|
||||
diff -rup binutils.orig/gas/testsuite/gas/ppc/vsx4.s binutils-2.35/gas/testsuite/gas/ppc/vsx4.s
|
||||
--- binutils.orig/gas/testsuite/gas/ppc/vsx4.s 2020-08-24 13:52:14.230454823 +0100
|
||||
+++ binutils-2.35/gas/testsuite/gas/ppc/vsx4.s 2020-08-24 13:54:27.779642594 +0100
|
||||
@@ -1,4 +1,4 @@
|
||||
.text
|
||||
vsx4:
|
||||
- xvcvbf16sp 34,45
|
||||
+ xvcvbf16spn 34,45
|
||||
xvcvspbf16 47,36
|
||||
diff -rup binutils.orig/opcodes/ppc-opc.c binutils-2.35/opcodes/ppc-opc.c
|
||||
--- binutils.orig/opcodes/ppc-opc.c 2020-08-24 13:52:13.709457991 +0100
|
||||
+++ binutils-2.35/opcodes/ppc-opc.c 2020-08-24 13:53:46.810891761 +0100
|
||||
@@ -8306,7 +8306,7 @@ const struct powerpc_opcode powerpc_opco
|
||||
{"xvxexpsp", XX2VA(60,475,8),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
|
||||
{"xvxsigsp", XX2VA(60,475,9),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
|
||||
{"xxbrw", XX2VA(60,475,15),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
|
||||
-{"xvcvbf16sp", XX2VA(60,475,16),XX2_MASK, PPCVSX4, PPCVLE, {XT6, XB6}},
|
||||
+{"xvcvbf16spn", XX2VA(60,475,16),XX2_MASK, PPCVSX4, PPCVLE, {XT6, XB6}},
|
||||
{"xvcvspbf16", XX2VA(60,475,17),XX2_MASK, PPCVSX4, PPCVLE, {XT6, XB6}},
|
||||
{"xxbrd", XX2VA(60,475,23),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
|
||||
{"xvcvhpsp", XX2VA(60,475,24),XX2_MASK, PPCVSX3, PPCVLE, {XT6, XB6}},
|
@ -1,8 +1,8 @@
|
||||
|
||||
Summary: A GNU collection of binary utilities
|
||||
Name: %{?cross}binutils%{?_with_debug:-debug}
|
||||
Version: 2.35
|
||||
Release: 14%{?dist}
|
||||
Version: 2.35.1
|
||||
Release: 1%{?dist}
|
||||
License: GPLv3+
|
||||
URL: https://sourceware.org/binutils
|
||||
|
||||
@ -224,34 +224,18 @@ Patch21: binutils-warnings.patch
|
||||
# Lifetime: Should be fixed in 2.36.
|
||||
Patch22: binutils-gcc-10-fixes.patch
|
||||
|
||||
# Purpose: Default to DWARF level 3 in the assembler.
|
||||
# Lifetime: Fixed in 2.36.
|
||||
Patch23: binutils-gas-dwarf-level-4.patch
|
||||
|
||||
# Purpose: Set the sh_entsize of the AArch64's PLT section to 0.
|
||||
# Lifetime: Fixed in 2.36.
|
||||
Patch24: binutils-aarch64-plt-sh_entsize.patch
|
||||
|
||||
# Purpose: Fixes for linking LTO objects.
|
||||
# Lifetime: Fixed in 2.36
|
||||
Patch25: binutils-add-sym-cache-to-elf-link-hash.patch
|
||||
Patch26: binutils-elf-add-objects.patch
|
||||
|
||||
# Purpose: Rename the PPC xvcvbf16sp instruction to xvcvbf16spn
|
||||
# Lifetime: Fixed in 2.36
|
||||
Patch27: binutils-ppc-rename-xvcvbf16sp-to-xvcvbf16spn.patch
|
||||
|
||||
# Purpose: Fixes for handling DWARF-5 debug information.
|
||||
# Lifetime: Fixed in 2.36
|
||||
Patch28: binutils-dwarf-5-fixes.patch
|
||||
Patch23: binutils-add-sym-cache-to-elf-link-hash.patch
|
||||
Patch24: binutils-elf-add-objects.patch
|
||||
|
||||
# Purpose: Fix handling of relocations for AArch64 conditional branches.
|
||||
# Lifetime: Fixed in 2.36
|
||||
Patch29: binutils-aarch64-condbranch-relocs.patch
|
||||
Patch25: binutils-aarch64-condbranch-relocs.patch
|
||||
|
||||
# Purpose: Fix the PowerPC disassembler so that it ignores annobin symbols.
|
||||
# Lifetime: Fixed in 2.36
|
||||
Patch30: binutils-ppc-annobin-disassembly.patch
|
||||
Patch26: binutils-ppc-annobin-disassembly.patch
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
|
||||
@ -826,6 +810,13 @@ exit 0
|
||||
|
||||
#----------------------------------------------------------------------------
|
||||
%changelog
|
||||
* Mon Sep 21 2020 Nick Clifton <nickc@redhat.com> - 2.35.1-1
|
||||
- Rebase to GNU Binutils 2.35.1 release.
|
||||
- Retire: binutils-gas-dwarf-level-4.patch
|
||||
- Retire: binutils-aarch64-plt-sh_entsize.patch
|
||||
- Retire: binutils-ppc-rename-xvcvbf16sp-to-xvcvbf16spn.patch
|
||||
- Retire: binutils-dwarf-5-fixes.patch
|
||||
|
||||
* Fri Sep 11 2020 Nick Clifton <nickc@redhat.com> - 2.35-14
|
||||
- Fix the PowerPC disassembler so that it ignores annobin symbols.
|
||||
|
||||
|
2
sources
2
sources
@ -1,2 +1,2 @@
|
||||
SHA512 (binutils-2.35.tar.xz) = 9f222e4ab6720036402d03904fb11b73ab87714b85cd84997f7d357f405c7e10581d70202f9165a1ee0c70538632db27ecc9dfe627dddb1e6bc7edb1537cf786
|
||||
SHA512 (binutils-2.35.1.tar.xz) = 94ff72708403413b70b247f3af4099ebaa882b6659249869f1ed9941a0f1912e313f08357d470f9fd2359e7f5e5b0eb86285e5eaf883fa8187789d6b1bd304eb
|
||||
SHA512 (binutils-2.19.50.0.1-output-format.sed) = 2f8686b0c8af13c98cda056824c2820416f6e2d003f70b78ccf5314525b9ee3684d421dfa83e638a2d42d06ea4d4bdaf5226b64d6ec26f7ff59c44ffb2a23dd2
|
||||
|
Loading…
Reference in New Issue
Block a user