Print this page
10366 ld(1) should support GNU-style linker sets
10581 ld(1) should know kernel modules are a thing
@@ -1766,10 +1766,23 @@
/* 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,10 +2590,16 @@
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;