You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.3 KiB
42 lines
1.3 KiB
--- binutils.orig/binutils/objcopy.c 2021-02-18 11:35:48.062479490 +0000 |
|
+++ binutils-2.30/binutils/objcopy.c 2021-02-18 11:36:52.207071148 +0000 |
|
@@ -2224,6 +2224,11 @@ merge_gnu_build_notes (bfd * ab |
|
goto done; |
|
} |
|
|
|
+ if (start > end) |
|
+ /* This can happen with PPC64LE binaries where empty notes are |
|
+ encoded as start = end + 4. */ |
|
+ start = end; |
|
+ |
|
if (is_open_note (pnote)) |
|
{ |
|
if (start) |
|
--- binutils.orig/binutils/objcopy.c 2021-02-22 10:44:20.107263089 +0000 |
|
+++ binutils-2.35.1/binutils/objcopy.c 2021-02-22 16:07:12.134344229 +0000 |
|
@@ -2243,23 +2243,8 @@ merge_gnu_build_notes (bfd * ab |
|
break; |
|
|
|
case 8: |
|
- if (! is_64bit (abfd)) |
|
- { |
|
- start = bfd_get_32 (abfd, pnote->note.descdata); |
|
- end = bfd_get_32 (abfd, pnote->note.descdata + 4); |
|
- } |
|
- else |
|
- { |
|
- start = bfd_get_64 (abfd, pnote->note.descdata); |
|
- /* FIXME: For version 1 and 2 notes we should try to |
|
- calculate the end address by finding a symbol whose |
|
- value is START, and then adding in its size. |
|
- |
|
- For now though, since v1 and v2 was not intended to |
|
- handle gaps, we chose an artificially large end |
|
- address. */ |
|
- end = (bfd_vma) -1; |
|
- } |
|
+ start = bfd_get_32 (abfd, pnote->note.descdata); |
|
+ end = bfd_get_32 (abfd, pnote->note.descdata + 4); |
|
break; |
|
|
|
case 16:
|
|
|