(lang_leave_overlay): Don't set lma_region when load_base is specified.

This commit is contained in:
Alan Modra 2001-01-25 02:31:42 +00:00
parent 05c6581e28
commit 02aa14fb32
2 changed files with 11 additions and 2 deletions

View File

@ -1,3 +1,8 @@
2001-01-25 Jim Driftmyer <jdrift@stny.rr.com>
* ldlang.c (lang_leave_overlay): Don't set lma_region when
load_base is specified.
2001-01-24 Hans-Peter Nilsson <hp@axis.com>
* emultempl/elf32.em: Correct spelling in comments and listed

View File

@ -4782,8 +4782,12 @@ lang_leave_overlay (fill, memspec, phdrs, lma_memspec)
l->os->region = region;
/* We only set lma_region for the first overlay section, as
subsequent overlay sections will have load_base set relative
to the first section. */
if (lma_region != NULL && l->os->lma_region == NULL && l->next == NULL)
to the first section. Also, don't set lma_region if
load_base is specified. FIXME: There should really be a test
that `AT ( LDADDR )' doesn't conflict with `AT >LMA_REGION'
rather than letting LDADDR simply override LMA_REGION. */
if (lma_region != NULL && l->os->lma_region == NULL
&& l->next == NULL && l->os->load_base == NULL)
l->os->lma_region = lma_region;
if (phdrs != NULL && l->os->phdrs == NULL)
l->os->phdrs = phdrs;