Lines Matching full:shndx
99 static void mark_section_used (struct scninfo *scninfo, Elf32_Word shndx,
516 matching_group_comdat_scn (const XElf_Sym *sym, size_t shndx,
519 if ((shndx >= SHN_LORESERVE && shndx <= SHN_HIRESERVE)
524 size_t newgrpid = fileinfo->scninfo[shndx].grpid;
584 check_definition (const XElf_Sym *sym, size_t shndx, size_t symidx,
592 if (shndx != SHN_UNDEF
594 || (shndx != SHN_COMMON && oldp->common && ! new_in_dso)
624 else if (shndx != SHN_UNDEF
626 && matching_group_comdat_scn (sym, shndx, fileinfo, oldp))
631 else if (shndx != SHN_UNDEF
634 && shndx != SHN_COMMON
655 if (shndx < SHN_LORESERVE || (shndx > SHN_HIRESERVE && shndx < shnum))
658 SCNINFO_SHDR (fileinfo->scninfo[shndx].shdr).sh_name);
661 scnname = ebl_section_name (ld_state.ebl, shndx, 0, buf, sizeof (buf),
683 SCNINFO_SHDR (oldfile->scninfo[shndx].shdr).sh_name);
697 && shndx != SHN_UNDEF)
716 else if (oldp->common && shndx == SHN_COMMON)
745 oldp->scndx = shndx;
750 oldp->common = shndx == SHN_COMMON;
758 if (shndx != SHN_COMMON && shndx != SHN_ABS)
761 mark_section_used (&fileinfo->scninfo[shndx], shndx, &ignore);
780 else if (shndx == SHN_COMMON)
794 find_section_group (struct usedfiles *fileinfo, Elf32_Word shndx,
820 if (grpref[--cnt] == shndx)
834 SCNINFO_SHDR (fileinfo->scninfo[shndx].shdr).sh_name));
839 /* Mark all sections which belong to the same group as section SHNDX
842 mark_section_group (struct usedfiles *fileinfo, Elf32_Word shndx,
850 struct scninfo *grpscn = find_section_group (fileinfo, shndx, &data);
901 mark_section_used (struct scninfo *scninfo, Elf32_Word shndx,
948 mark_section_group (scninfo->fileinfo, shndx, grpscnp);
1396 Elf32_Word shndx;
1399 xelf_getsymshndx (symtabdata, xndxdata, cnt, sym, shndx);
1408 if (likely (shndx != SHN_XINDEX))
1409 shndx = sym->st_shndx;
1410 else if (unlikely (shndx == 0))
1418 && (shndx < SHN_LORESERVE || shndx > SHN_HIRESERVE)
1419 && ((SCNINFO_SHDR (fileinfo->scninfo[shndx].shdr).sh_flags
1431 newp->scndx = shndx;
1436 if (fileinfo->scninfo[shndx].symbols == NULL)
1437 fileinfo->scninfo[shndx].symbols = newp->next_in_scn
1442 = fileinfo->scninfo[shndx].symbols->next_in_scn;
1443 fileinfo->scninfo[shndx].symbols
1444 = fileinfo->scninfo[shndx].symbols->next_in_scn = newp;
1465 Elf32_Word shndx;
1466 xelf_getsymshndx (symtabdata, xndxdata, cnt, sym, shndx);
1476 if (likely (shndx != SHN_XINDEX))
1477 shndx = sym->st_shndx;
1478 else if (unlikely (shndx == 0))
1487 if (unlikely (shndx == SHN_ABS) && secttype == SHT_DYNSYM)
1490 if ((shndx < SHN_LORESERVE || shndx > SHN_HIRESERVE)
1491 && fileinfo->scninfo[shndx].unused_comdat)
1543 newp->scndx = shndx;
1594 else if (unlikely (check_definition (sym, shndx, cnt, fileinfo, oldp)
1605 if (shndx != SHN_UNDEF
1606 && (shndx < SHN_LORESERVE || shndx > SHN_HIRESERVE))
1613 assert (shndx < shnum);
1617 mark_section_used (&fileinfo->scninfo[shndx], shndx, &ignore);
1621 if (SCNINFO_SHDR (fileinfo->scninfo[shndx].shdr).sh_flags
1624 if (fileinfo->scninfo[shndx].symbols == NULL)
1625 fileinfo->scninfo[shndx].symbols = newp->next_in_scn
1630 = fileinfo->scninfo[shndx].symbols->next_in_scn;
1631 fileinfo->scninfo[shndx].symbols
1632 = fileinfo->scninfo[shndx].symbols->next_in_scn = newp;
6505 Elf32_Word shndx;
6507 xelf_getsymshndx (symdata, xndxdata, cnt, sym, shndx);
6511 shndx = sym->st_shndx;
6513 if ((shndx > SHN_UNDEF && shndx < SHN_LORESERVE)
6514 || shndx > SHN_HIRESERVE)
6518 sym->st_value += ld_state.allsections[shndx - 1]->addr;