2002-06-07 Chris Demetriou <cgd@broadcom.com>
[deliverable/binutils-gdb.git] / bfd / elf32-hppa.c
index f0fd549ed9dd35a743d584950d630d2497b562c1..684213514cda1890b4b7b2757e5f6f0290f32ce9 100644 (file)
@@ -2558,7 +2558,7 @@ elf32_hppa_size_dynamic_sections (output_bfd, info)
 
 /* Set up various things so that we can make a list of input sections
    for each output section included in the link.  Returns -1 on error,
-   0 when no stubs will be needed, and 1 on success. */
+   0 when no stubs will be needed, and 1 on success.  */
 
 int
 elf32_hppa_setup_section_lists (output_bfd, info)
@@ -2827,7 +2827,8 @@ get_local_syms (output_bfd, input_bfd, info)
             isym = local_syms, shndx = shndx_buf;
           esym < end_sy;
           esym++, isym++, shndx = (shndx ? shndx + 1 : NULL))
-       bfd_elf32_swap_symbol_in (input_bfd, esym, shndx, isym);
+       bfd_elf32_swap_symbol_in (input_bfd, (const PTR) esym,
+                                 (const PTR) shndx, isym);
 
       /* Now we can free the external symbols.  */
       free (shndx_buf);
@@ -3128,9 +3129,19 @@ elf32_hppa_size_stubs (output_bfd, stub_bfd, info, multi_subspace, group_size,
                                           + sym_sec->output_section->vma);
                        }
                      else if (hash->elf.root.type == bfd_link_hash_undefweak)
-                       ;
+                       {
+                         if (! info->shared)
+                           continue;
+                       }
                      else if (hash->elf.root.type == bfd_link_hash_undefined)
-                       ;
+                       {
+                         if (! (info->shared
+                                && !info->no_undefined
+                                && (ELF_ST_VISIBILITY (hash->elf.other)
+                                    == STV_DEFAULT)
+                                && hash->elf.type != STT_PARISC_MILLI))
+                           continue;
+                       }
                      else
                        {
                          bfd_set_error (bfd_error_bad_value);
This page took 0.024539 seconds and 4 git commands to generate.