* emultempl/elf32.em (gld${EMULATION_NAME}_stat_needed):

If st.st_ino is zero, do not treat the library as a duplicate.
This commit is contained in:
Zack Weinberg 2005-02-11 23:52:03 +00:00
parent 0e68218d25
commit 9eabd47532
2 changed files with 18 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2005-02-11 Zack Weinberg <zack@codesourcery.com>
* emultempl/elf32.em (gld${EMULATION_NAME}_stat_needed):
If st.st_ino is zero, do not treat the library as a duplicate.
2005-02-10 Jakub Jelinek <jakub@redhat.com> 2005-02-10 Jakub Jelinek <jakub@redhat.com>
* emultempl/hppaelf.em (hppaelf_create_output_section_statements): * emultempl/hppaelf.em (hppaelf_create_output_section_statements):

View File

@ -231,8 +231,16 @@ gld${EMULATION_NAME}_stat_needed (lang_input_statement_type *s)
return; return;
} }
/* Some operating systems, e.g. Windows, do not provide a meaningful
st_ino; they always set it to zero. (Windows does provide a
meaningful st_dev.) Do not indicate a duplicate library in that
case. While there is no guarantee that a system that provides
meaningful inode numbers will never set st_ino to zero, this is
merely an optimization, so we do not need to worry about false
negatives. */
if (st.st_dev == global_stat.st_dev if (st.st_dev == global_stat.st_dev
&& st.st_ino == global_stat.st_ino) && st.st_ino == global_stat.st_ino
&& st.st_ino != 0)
{ {
global_found = TRUE; global_found = TRUE;
return; return;