versionmin->has_versionmin = TRUE;
}
+void
+kxld_versionmin_init_from_build_cmd(KXLDversionmin *versionmin, struct build_version_command *src)
+{
+ check(versionmin);
+ check(src);
+ switch (src->platform) {
+ case PLATFORM_MACOS:
+ versionmin->platform = kKxldVersionMinMacOSX;
+ break;
+ case PLATFORM_IOS:
+ versionmin->platform = kKxldVersionMiniPhoneOS;
+ break;
+ case PLATFORM_TVOS:
+ versionmin->platform = kKxldVersionMinAppleTVOS;
+ break;
+ case PLATFORM_WATCHOS:
+ versionmin->platform = kKxldVersionMinWatchOS;
+ break;
+ default:
+ return;
+ }
+ versionmin->version = src->minos;
+ versionmin->has_versionmin = TRUE;
+}
+
/*******************************************************************************
*******************************************************************************/
void
/*******************************************************************************
*******************************************************************************/
u_long
-kxld_versionmin_get_macho_header_size(void)
+kxld_versionmin_get_macho_header_size(__unused const KXLDversionmin *versionmin)
{
+ /* TODO: eventually we can just use struct build_version_command */
return sizeof(struct version_min_command);
}
check(buf);
check(header_offset);
+
require_action(sizeof(*versionminhdr) <= header_size - *header_offset, finish,
rval=KERN_FAILURE);
versionminhdr = (struct version_min_command *) ((void *) (buf + *header_offset));
case kKxldVersionMinWatchOS:
versionminhdr->cmd = LC_VERSION_MIN_WATCHOS;
break;
+ default:
+ goto finish;
}
versionminhdr->cmdsize = (uint32_t) sizeof(*versionminhdr);
versionminhdr->version = versionmin->version;