X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=ld%2Femultempl%2Felf32.em;h=c7ba49727302b859ac68007086e725da474cdc1a;hb=ed15ac6a0a461de02bf1d4c50762300fc05e5ca6;hp=037ac5aec9bea343fb83c8561e7d98da934e1737;hpb=71bfc0aef6964c54b8e29466e97fb246cdeb2049;p=deliverable%2Fbinutils-gdb.git diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index 037ac5aec9..c7ba497273 100644 --- a/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em @@ -1203,29 +1203,32 @@ gld${EMULATION_NAME}_place_orphan (file, s) } place->section = &snew->next; /* Save the end of this list. */ - /* We try to put the output statements in some sort of - reasonable order here, because they determine the final load - addresses of the orphan sections. */ - if (place->stmt == NULL) + if (add.head != NULL) { - /* Put the new statement list right at the head. */ - *add.tail = place->os->header.next; - place->os->header.next = add.head; - } - else - { - /* Put it after the last orphan statement we added. */ - *add.tail = *place->stmt; - *place->stmt = add.head; - } + /* We try to put the output statements in some sort of + reasonable order here, because they determine the final + load addresses of the orphan sections. */ + if (place->stmt == NULL) + { + /* Put the new statement list right at the head. */ + *add.tail = place->os->header.next; + place->os->header.next = add.head; + } + else + { + /* Put it after the last orphan statement we added. */ + *add.tail = *place->stmt; + *place->stmt = add.head; + } - /* Fix the global list pointer if we happened to tack our new - list at the tail. */ - if (*old->tail == add.head) - old->tail = add.tail; + /* Fix the global list pointer if we happened to tack our + new list at the tail. */ + if (*old->tail == add.head) + old->tail = add.tail; - /* Save the end of this list. */ - place->stmt = add.tail; + /* Save the end of this list. */ + place->stmt = add.tail; + } } return true;