diff --git a/elf/ldconfig.c b/elf/ldconfig.c index c7b9eb9..f152a3a 100644 --- a/elf/ldconfig.c +++ b/elf/ldconfig.c @@ -959,10 +959,19 @@ search_dir (const struct dir_entry *entry) || dlib_ptr->flag == FLAG_ELF_LIBC6) && flag == FLAG_ELF) dlib_ptr->flag = flag; - else - error (0, 0, _("libraries %s and %s in directory %s have same soname but different type."), - dlib_ptr->name, direntry->d_name, - entry->path); + else { + /* binutils issue in Fedora 20, e_flags wasn't getting + * hardfloat flags set on armv7hl. + * dlib_ptr will be the old one, direntry the new one. + */ + if (dlib_ptr->flag & FLAG_ARM_LIBHF && + !(flag & FLAG_ARM_LIBHF)) + ; + else + error (0, 0, _("libraries %s and %s in directory %s have same soname but different type."), + dlib_ptr->name, direntry->d_name, + entry->path); + } } free (dlib_ptr->name); dlib_ptr->name = xstrdup (direntry->d_name);