From: H.J. Lu Date: Wed, 28 Jun 2017 18:00:13 +0000 (-0700) Subject: Change bfd_get_size/bfd_get_file_size to ufile_ptr X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=47fdcf63c04b5c220974affc8ff1d9ef8a041919;p=binutils-gdb.git Change bfd_get_size/bfd_get_file_size to ufile_ptr bfd_get_size and bfd_get_file_size should return the unsigned file size. Otherwise they return negative values for file >= 2GB with 32-bit ufile_ptr. bfd/ * bfd-in2.h: Regenerated. * bfdio.c (bfd_get_size): Change return type to ufile_ptr. (bfd_get_file_size): Likewise. binutils/ * objdump.c (dump_relocs_in_section): Cast to ufile_ptr when comparing against bfd_get_file_size return. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 3f81ea45d08..561ac1b3521 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2017-06-28 H.J. Lu + + * bfd-in2.h: Regenerated. + * bfdio.c (bfd_get_size): Change return type to ufile_ptr. + (bfd_get_file_size): Likewise. + 2017-06-28 Maciej W. Rozycki Matthew Fortune diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 971acb8e188..1343780c8ce 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -1240,9 +1240,9 @@ char *bfd_follow_build_id_debuglink (bfd *abfd, const char *dir); /* Extracted from bfdio.c. */ long bfd_get_mtime (bfd *abfd); -file_ptr bfd_get_size (bfd *abfd); +ufile_ptr bfd_get_size (bfd *abfd); -file_ptr bfd_get_file_size (bfd *abfd); +ufile_ptr bfd_get_file_size (bfd *abfd); void *bfd_mmap (bfd *abfd, void *addr, bfd_size_type len, int prot, int flags, file_ptr offset, diff --git a/bfd/bfdio.c b/bfd/bfdio.c index e3015700d72..fa7fb21c8c3 100644 --- a/bfd/bfdio.c +++ b/bfd/bfdio.c @@ -392,7 +392,7 @@ FUNCTION bfd_get_size SYNOPSIS - file_ptr bfd_get_size (bfd *abfd); + ufile_ptr bfd_get_size (bfd *abfd); DESCRIPTION Return the file size (as read from file system) for the file @@ -420,7 +420,7 @@ DESCRIPTION size reasonable?". */ -file_ptr +ufile_ptr bfd_get_size (bfd *abfd) { struct stat buf; @@ -439,7 +439,7 @@ FUNCTION bfd_get_file_size SYNOPSIS - file_ptr bfd_get_file_size (bfd *abfd); + ufile_ptr bfd_get_file_size (bfd *abfd); DESCRIPTION Return the file size (as read from file system) for the file @@ -448,7 +448,7 @@ DESCRIPTION */ -file_ptr +ufile_ptr bfd_get_file_size (bfd *abfd) { if (abfd->my_archive != NULL diff --git a/binutils/ChangeLog b/binutils/ChangeLog index c5b8f19b311..f0ecdc675db 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,8 @@ +2017-06-28 H.J. Lu + + * objdump.c (dump_relocs_in_section): Cast to ufile_ptr when + comparing against bfd_get_file_size return. + 2017-06-28 Nick Clifton * objcopy.c (merge_gnu_build_notes): Add support for version 2 notes. diff --git a/binutils/objdump.c b/binutils/objdump.c index ed8c6458977..0b72818264c 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -3388,7 +3388,7 @@ dump_relocs_in_section (bfd *abfd, } if ((bfd_get_file_flags (abfd) & (BFD_IN_MEMORY | BFD_LINKER_CREATED)) == 0 - && relsize > bfd_get_file_size (abfd)) + && (ufile_ptr) relsize > bfd_get_file_size (abfd)) { printf (" (too many: 0x%x)\n", section->reloc_count); bfd_set_error (bfd_error_file_truncated);