1751 ofl_osplt->os_shdr->sh_addr;
1752 /* LINTED */
1753 sectndx = elf_ndxscn(
1754 ofl->ofl_osplt->os_scn);
1755 sdp->sd_flags &= ~FLG_SY_SPECSEC;
1756 }
1757 break;
1758 case SDAUX_ID_GOT:
1759 /*
1760 * Symbol bias for negative growing tables is
1761 * stored in symbol's value during
1762 * allocate_got().
1763 */
1764 sym->st_value += ofl->
1765 ofl_osgot->os_shdr->sh_addr;
1766 /* LINTED */
1767 sectndx = elf_ndxscn(ofl->
1768 ofl_osgot->os_scn);
1769 sdp->sd_flags &= ~FLG_SY_SPECSEC;
1770 break;
1771 default:
1772 /* NOTHING */
1773 ;
1774 }
1775 }
1776
1777 /*
1778 * If a plt index has been assigned to an undefined function,
1779 * update the symbols value to the appropriate .plt address.
1780 */
1781 if ((flags & FLG_OF_DYNAMIC) && (flags & FLG_OF_EXEC) &&
1782 (sdp->sd_file) &&
1783 (sdp->sd_file->ifl_ehdr->e_type == ET_DYN) &&
1784 (ELF_ST_TYPE(sym->st_info) == STT_FUNC) &&
1785 !(flags & FLG_OF_BFLAG)) {
1786 if (sap->sa_PLTndx)
1787 sym->st_value =
1788 (*ld_targ.t_mr.mr_calc_plt_addr)(sdp, ofl);
1789 }
1790
|
1751 ofl_osplt->os_shdr->sh_addr;
1752 /* LINTED */
1753 sectndx = elf_ndxscn(
1754 ofl->ofl_osplt->os_scn);
1755 sdp->sd_flags &= ~FLG_SY_SPECSEC;
1756 }
1757 break;
1758 case SDAUX_ID_GOT:
1759 /*
1760 * Symbol bias for negative growing tables is
1761 * stored in symbol's value during
1762 * allocate_got().
1763 */
1764 sym->st_value += ofl->
1765 ofl_osgot->os_shdr->sh_addr;
1766 /* LINTED */
1767 sectndx = elf_ndxscn(ofl->
1768 ofl_osgot->os_scn);
1769 sdp->sd_flags &= ~FLG_SY_SPECSEC;
1770 break;
1771 case SDAUX_ID_SECBOUND_START:
1772 sym->st_value = sap->sa_boundsec->
1773 os_shdr->sh_addr;
1774 sectndx = elf_ndxscn(sap->sa_boundsec->os_scn);
1775 sdp->sd_flags &= ~FLG_SY_SPECSEC;
1776 break;
1777 case SDAUX_ID_SECBOUND_STOP:
1778 sym->st_value = sap->sa_boundsec->
1779 os_shdr->sh_addr +
1780 sap->sa_boundsec->os_shdr->sh_size;
1781 sectndx = elf_ndxscn(sap->sa_boundsec->os_scn);
1782 sdp->sd_flags &= ~FLG_SY_SPECSEC;
1783 break;
1784 default:
1785 /* NOTHING */
1786 ;
1787 }
1788 }
1789
1790 /*
1791 * If a plt index has been assigned to an undefined function,
1792 * update the symbols value to the appropriate .plt address.
1793 */
1794 if ((flags & FLG_OF_DYNAMIC) && (flags & FLG_OF_EXEC) &&
1795 (sdp->sd_file) &&
1796 (sdp->sd_file->ifl_ehdr->e_type == ET_DYN) &&
1797 (ELF_ST_TYPE(sym->st_info) == STT_FUNC) &&
1798 !(flags & FLG_OF_BFLAG)) {
1799 if (sap->sa_PLTndx)
1800 sym->st_value =
1801 (*ld_targ.t_mr.mr_calc_plt_addr)(sdp, ofl);
1802 }
1803
|