diff options
author | Nick Clifton <nickc@redhat.com> | 2000-01-18 23:58:58 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2000-01-18 23:58:58 +0000 |
commit | cce4c4c5bd0cccfa17c5b7695f6199f5ce4d467b (patch) | |
tree | 5946817eb09fdc370eb19b57bddd498b8641eaef /ld/ldlang.c | |
parent | c5394b80aefdea6b2f589723a4b79bcbc1942629 (diff) | |
download | gdb-cce4c4c5bd0cccfa17c5b7695f6199f5ce4d467b.zip gdb-cce4c4c5bd0cccfa17c5b7695f6199f5ce4d467b.tar.gz gdb-cce4c4c5bd0cccfa17c5b7695f6199f5ce4d467b.tar.bz2 |
Apply H.J.'s patch to fix NOLOAD section sizes and dot updates
Diffstat (limited to 'ld/ldlang.c')
-rw-r--r-- | ld/ldlang.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/ld/ldlang.c b/ld/ldlang.c index 5e93f94..d38d837 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; |