diff options
-rw-r--r-- | ld/ChangeLog | 5 | ||||
-rw-r--r-- | ld/emultempl/elf32.em | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index f170102..6fb172a 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,8 @@ +2002-06-12 H.J. Lu <hjl@gnu.org> + + * emultempl/elf32.em (gld${EMULATION_NAME}_try_needed): Return + false if xvec doesn't match. + 2002-06-10 Richard Sandiford <rsandifo@redhat.com> * ldlang.c (lang_size_sections_1): Skip removed output sections. diff --git a/ld/emultempl/elf32.em b/ld/emultempl/elf32.em index e854c2a..cfd0409 100644 --- a/ld/emultempl/elf32.em +++ b/ld/emultempl/elf32.em @@ -281,6 +281,13 @@ gld${EMULATION_NAME}_try_needed (name, force) return false; } + /* For DT_NEEDED, they have to match. */ + if (abfd->xvec != output_bfd->xvec) + { + bfd_close (abfd); + return false; + } + /* Check whether this object would include any conflicting library versions. If FORCE is set, then we skip this check; we use this the second time around, if we couldn't find any compatible |