Home | History | Annotate | Download | only in bfd

Lines Matching refs:hdr_info

473 bfd_elf_discard_eh_frame_entry (struct eh_frame_hdr_info *hdr_info)
476 for (i = 0; i < hdr_info->array_count; i++)
478 if (hdr_info->u.compact.entries[i]->flags & SEC_EXCLUDE)
481 for (j = i + 1; j < hdr_info->array_count; j++)
482 hdr_info->u.compact.entries[j-1] = hdr_info->u.compact.entries[j];
484 hdr_info->array_count--;
485 hdr_info->u.compact.entries[hdr_info->array_count] = NULL;
494 bfd_elf_record_eh_frame_entry (struct eh_frame_hdr_info *hdr_info,
497 if (hdr_info->array_count == hdr_info->u.compact.allocated_entries)
499 if (hdr_info->u.compact.allocated_entries == 0)
501 hdr_info->frame_hdr_is_compact = true;
502 hdr_info->u.compact.allocated_entries = 2;
503 hdr_info->u.compact.entries =
504 bfd_malloc (hdr_info->u.compact.allocated_entries
505 * sizeof (hdr_info->u.compact.entries[0]));
509 hdr_info->u.compact.allocated_entries *= 2;
510 hdr_info->u.compact.entries =
511 bfd_realloc (hdr_info->u.compact.entries,
512 hdr_info->u.compact.allocated_entries
513 * sizeof (hdr_info->u.compact.entries[0]));
516 BFD_ASSERT (hdr_info->u.compact.entries);
519 hdr_info->u.compact.entries[hdr_info->array_count++] = sec;
530 struct eh_frame_hdr_info *hdr_info;
535 hdr_info = &htab->eh_info;
570 bfd_elf_record_eh_frame_entry (hdr_info, sec);
595 struct eh_frame_hdr_info *hdr_info;
603 hdr_info = &htab->eh_info;
1059 hdr_info->u.dwarf.table = false;
1124 struct eh_frame_hdr_info *hdr_info;
1127 hdr_info = &elf_hash_table (info)->eh_info;
1130 || hdr_info->array_count == 0)
1133 bfd_elf_discard_eh_frame_entry (hdr_info);
1135 qsort (hdr_info->u.compact.entries, hdr_info->array_count,
1138 for (i = 0; i < hdr_info->array_count - 1; i++)
1140 add_eh_frame_hdr_terminator (hdr_info->u.compact.entries[i],
1141 hdr_info->u.compact.entries[i + 1]);
1145 add_eh_frame_hdr_terminator (hdr_info->u.compact.entries[i], NULL);
1202 HDR_INFO is the .eh_frame_hdr information and COOKIE describes the
1207 struct eh_frame_hdr_info *hdr_info,
1301 if (hdr_info->u.dwarf.cies == NULL)
1303 hdr_info->u.dwarf.cies = htab_try_create (1, cie_hash, cie_eq, free);
1304 if (hdr_info->u.dwarf.cies == NULL)
1307 loc = htab_find_slot_with_hash (hdr_info->u.dwarf.cies, cie,
1487 struct eh_frame_hdr_info *hdr_info;
1501 hdr_info = &elf_hash_table (info)->eh_info;
1540 hdr_info->u.dwarf.table = false;
1561 hdr_info->u.dwarf.fde_count++;
1562 ent->u.fde.cie_inf = find_merged_cie (abfd, info, sec, hdr_info,
1625 struct eh_frame_hdr_info *hdr_info;
1629 hdr_info = &htab->eh_info;
1631 if (!hdr_info->frame_hdr_is_compact && hdr_info->u.dwarf.cies != NULL)
1633 htab_delete (hdr_info->u.dwarf.cies);
1634 hdr_info->u.dwarf.cies = NULL;
1641 sec = hdr_info->hdr_sec;
1654 if (hdr_info->u.dwarf.table)
1655 sec->size += 4 + hdr_info->u.dwarf.fde_count * 8;
1714 struct eh_frame_hdr_info *hdr_info;
1719 hdr_info = &htab->eh_info;
1720 if (hdr_info->hdr_sec == NULL)
1723 if (bfd_is_abs_section (hdr_info->hdr_sec->output_section)
1730 hdr_info->hdr_sec->flags |= SEC_EXCLUDE;
1731 hdr_info->hdr_sec = NULL;
1739 hdr_info->hdr_sec, 0, NULL, false, false, &bh)))
1748 if (!hdr_info->frame_hdr_is_compact)
1749 hdr_info->u.dwarf.table = true;
1931 struct eh_frame_hdr_info *hdr_info;
1946 hdr_info = &htab->eh_info;
1948 if (hdr_info->u.dwarf.table && hdr_info->u.dwarf.array == NULL)
1950 hdr_info->frame_hdr_is_compact = false;
1951 hdr_info->u.dwarf.array = (struct eh_frame_array_ent *)
1952 bfd_malloc (hdr_info->u.dwarf.fde_count
1953 * sizeof (*hdr_info->u.dwarf.array));
1955 if (hdr_info->u.dwarf.array == NULL)
1956 hdr_info = NULL;
2141 BFD_ASSERT (hdr_info == NULL);
2188 if (hdr_info)
2195 hdr_info->u.dwarf.array[hdr_info->array_count].initial_loc
2197 hdr_info->u.dwarf.array[hdr_info->array_count].range
2199 hdr_info->u.dwarf.array[hdr_info->array_count++].fde
2302 struct eh_frame_hdr_info *hdr_info;
2307 hdr_info = &elf_hash_table (info)->eh_info;
2309 if (hdr_info->hdr_sec == NULL
2311 || hdr_info->array_count == 0)
2316 osec = hdr_info->u.compact.entries[0]->output_section;
2317 for (i = 0; i < hdr_info->array_count; i++)
2319 sec = hdr_info->u.compact.entries[i];
2363 struct eh_frame_hdr_info *hdr_info;
2371 hdr_info = &htab->eh_info;
2372 sec = hdr_info->hdr_sec;
2416 struct eh_frame_hdr_info *hdr_info;
2421 hdr_info = &htab->eh_info;
2422 sec = hdr_info->hdr_sec;
2429 if (hdr_info->u.dwarf.array
2430 && hdr_info->array_count == hdr_info->u.dwarf.fde_count)
2431 size += 4 + hdr_info->u.dwarf.fde_count * 8;
2447 if (hdr_info->u.dwarf.array
2448 && hdr_info->array_count == hdr_info->u.dwarf.fde_count)
2468 bfd_put_32 (abfd, hdr_info->u.dwarf.fde_count,
2470 qsort (hdr_info->u.dwarf.array, hdr_info->u.dwarf.fde_count,
2471 sizeof (*hdr_info->u.dwarf.array), vma_compare);
2474 for (i = 0; i < hdr_info->u.dwarf.fde_count; i++)
2478 val = hdr_info->u.dwarf.array[i].initial_loc
2482 && (hdr_info->u.dwarf.array[i].initial_loc
2486 val = hdr_info->u.dwarf.array[i].fde - sec->output_section->vma;
2489 && (hdr_info->u.dwarf.array[i].fde
2494 && (hdr_info->u.dwarf.array[i].initial_loc
2495 < (hdr_info->u.dwarf.array[i - 1].initial_loc
2496 + hdr_info->u.dwarf.array[i - 1].range)))
2517 free (hdr_info->u.dwarf.array);
2518 hdr_info->u.dwarf.array = NULL;
2530 struct eh_frame_hdr_info *hdr_info;
2534 hdr_info = &htab->eh_info;
2535 sec = hdr_info->hdr_sec;