--- /sys/compat/pecoff/imgact_pecoff.c Thu Jan 24 01:28:01 2002 +++ imgact_pecoff.c Fri Mar 29 16:52:38 2002 @@ -551,7 +551,24 @@ return error; } +char *sscli_interpreter = "/usr/local/bin/clix"; +static int exec_pecoff_sscli(struct image_params * imgp, + struct coff_filehdr *fp,struct coff_aouthdr *ap, + int peofs) +{ + if(imgp->interpreted){ + return(ENOEXEC); + } + imgp->interpreted = 1; + interp = imgp->interpreter_name; + while ((ihp < line_endp) && (*ihp != ' ') && (*ihp != '\t')) + *interp++ = *ihp++; + *interp = '\0'; + imgp->argv0 = imgp->uap->fname; + + return(0); +} int exec_pecoff_coff_makecmds(struct image_params * imgp, struct coff_filehdr * fp, int peofs) @@ -571,7 +588,11 @@ error = exec_pecoff_coff_prep_nmagic(imgp, fp, ap, peofs); break; case COFF_ZMAGIC: - error = exec_pecoff_coff_prep_zmagic(imgp, fp, ap, peofs); + if((ap->a_vstamp&0xff) >= 0x06 && ap->a_entry == 0){ + error = exec_pecoff_sscli(imgp, fp, ap, peofs); + }else{ + error = exec_pecoff_coff_prep_zmagic(imgp, fp, ap, peofs); + } break; default: return ENOEXEC;