Print this page
10366 ld(1) should support GNU-style linker sets
10581 ld(1) should know kernel modules are a thing

*** 1766,1775 **** --- 1766,1788 ---- /* LINTED */ sectndx = elf_ndxscn(ofl-> ofl_osgot->os_scn); sdp->sd_flags &= ~FLG_SY_SPECSEC; break; + case SDAUX_ID_SECBOUND_START: + sym->st_value = sap->sa_boundsec-> + os_shdr->sh_addr; + sectndx = elf_ndxscn(sap->sa_boundsec->os_scn); + sdp->sd_flags &= ~FLG_SY_SPECSEC; + break; + case SDAUX_ID_SECBOUND_STOP: + sym->st_value = sap->sa_boundsec-> + os_shdr->sh_addr + + sap->sa_boundsec->os_shdr->sh_size; + sectndx = elf_ndxscn(sap->sa_boundsec->os_scn); + sdp->sd_flags &= ~FLG_SY_SPECSEC; + break; default: /* NOTHING */ ; } }
*** 2577,2586 **** --- 2590,2605 ---- dyn->d_tag = DT_SUNW_LDMACH; dyn->d_un.d_val = ld_sunw_ldmach(); dyn++; + if (ofl->ofl_flags & FLG_OF_KMOD) { + dyn->d_tag = DT_SUNW_KMOD; + dyn->d_un.d_val = 1; + dyn++; + } + (*ld_targ.t_mr.mr_mach_update_odynamic)(ofl, &dyn); for (cnt = 1 + DYNAMIC_EXTRA_ELTS; cnt--; dyn++) { dyn->d_tag = DT_NULL; dyn->d_un.d_val = 0;