+ return frvfdpic_relocs_info_find (ht, abfd, &entry, insert);
+}
+
+/* Merge fields set by check_relocs() of two entries that end up being
+ mapped to the same (presumably global) symbol. */
+
+inline static void
+frvfdpic_pic_merge_early_relocs_info (struct frvfdpic_relocs_info *e2,
+ struct frvfdpic_relocs_info const *e1)
+{
+ e2->got12 |= e1->got12;
+ e2->gotlos |= e1->gotlos;
+ e2->gothilo |= e1->gothilo;
+ e2->fd |= e1->fd;
+ e2->fdgot12 |= e1->fdgot12;
+ e2->fdgotlos |= e1->fdgotlos;
+ e2->fdgothilo |= e1->fdgothilo;
+ e2->fdgoff12 |= e1->fdgoff12;
+ e2->fdgofflos |= e1->fdgofflos;
+ e2->fdgoffhilo |= e1->fdgoffhilo;
+ e2->gotoff |= e1->gotoff;
+ e2->call |= e1->call;
+ e2->sym |= e1->sym;
+
+#if 0
+ /* These are set in _frvfdpic_count_got_plt_entries() or later, and this
+ function is only called in _frvfdpic_resolve_final_relocs_info(), that
+ runs just before it, so we don't have to worry about the fields
+ below. */
+
+ e2->plt |= e1->plt;
+ e2->privfd |= e1->privfd;
+ e2->lazyplt |= e1->lazyplt;
+ e2->done |= e1->done;
+
+ e2->relocs32 += e1->relocs32;
+ e2->relocsfd += e1->relocsfd;
+ e2->relocsfdv += e1->relocsfdv;
+ e2->fixups += e1->fixups;
+ e2->dynrelocs += e1->dynrelocs;
+
+ if (abs (e1->got_entry) < abs (e2->got_entry))
+ e2->got_entry = e1->got_entry;
+ if (abs (e1->fdgot_entry) < abs (e2->fdgot_entry))
+ e2->fdgot_entry = e1->fdgot_entry;
+ if (abs (e1->fd_entry) < abs (e2->fd_entry))
+ e2->fd_entry = e1->fd_entry;
+
+ if (e1->plt_entry < e2->plt_entry)
+ e2->plt_entry = e1->plt_entry;
+ if (e1->lzplt_entry < e2->lzplt_entry)
+ e2->lzplt_entry = e1->lzplt_entry;
+#endif