From: Nick Clifton Date: Tue, 18 Jan 2000 23:58:58 +0000 (+0000) Subject: Apply H.J.'s patch to fix NOLOAD section sizes and dot updates X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=cce4c4c5bd0cccfa17c5b7695f6199f5ce4d467b;p=binutils-gdb.git Apply H.J.'s patch to fix NOLOAD section sizes and dot updates --- diff --git a/ld/ChangeLog b/ld/ChangeLog index 4b8107f6239..0ff05f686ee 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2000-01-18 H.J. Lu + + * ldlang.c (lang_size_sections): Also update the current + address of a region if the SEC_NEVER_LOAD bit is not set. + 2000-01-10 Philip Blundell * configure.tgt (arm*-*-conix*): New target. diff --git a/ld/ldlang.c b/ld/ldlang.c index 5e93f947fb6..d38d8379140 100644 --- a/ld/ldlang.c +++ b/ld/ldlang.c @@ -2823,10 +2823,15 @@ lang_size_sections (s, output_section_statement, prev, fill, dot, relax) /* Update dot in the region ? We only do this if the section is going to be allocated, since unallocated sections do not contribute to the region's - overall size in memory. */ + + If the SEC_NEVER_LOAD bit is not set, it will affect the + addresses of sections after it. We have to update + dot. */ if (os->region != (lang_memory_region_type *) NULL - && (bfd_get_section_flags (output_bfd, os->bfd_section) - & (SEC_ALLOC | SEC_LOAD))) + && ((bfd_get_section_flags (output_bfd, os->bfd_section) + & SEC_NEVER_LOAD) == 0 + || (bfd_get_section_flags (output_bfd, os->bfd_section) + & (SEC_ALLOC | SEC_LOAD)))) { os->region->current = dot;