{
                  /* The target is out of reach, so redirect the
                     branch to the local stub for this function.  */
-
                  stub_entry = elf32_arm_get_stub_entry (input_section,
                                                         sym_sec, h,
                                                         rel, globals,
                                                         stub_type);
-                 if (stub_entry != NULL)
-                   value = (stub_entry->stub_offset
-                            + stub_entry->stub_sec->output_offset
-                            + stub_entry->stub_sec->output_section->vma);
+                 {
+                   if (stub_entry != NULL)
+                     value = (stub_entry->stub_offset
+                              + stub_entry->stub_sec->output_offset
+                              + stub_entry->stub_sec->output_section->vma);
+
+                   if (plt_offset != (bfd_vma) -1)
+                     *unresolved_reloc_p = FALSE;
+                 }
                }
              else
                {
                                                       rel, globals,
                                                       stub_type);
                if (stub_entry != NULL)
-                 value = (stub_entry->stub_offset
-                          + stub_entry->stub_sec->output_offset
-                          + stub_entry->stub_sec->output_section->vma);
+                 {
+                   value = (stub_entry->stub_offset
+                            + stub_entry->stub_sec->output_offset
+                            + stub_entry->stub_sec->output_section->vma);
+
+                   if (plt_offset != (bfd_vma) -1)
+                     *unresolved_reloc_p = FALSE;
+                 }
 
                /* If this call becomes a call to Arm, force BLX.  */
                if (globals->use_blx && (r_type == R_ARM_THM_CALL))