Print this page
10366 ld(1) should support GNU-style linker sets
10367 ld(1) tests should be a real test suite
10368 want an ld(1) regression test for i386 LD tls transition (10267)


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