+ cp = (char *)(ADDR_LC);
+ codesiz = ((struct pxhdr *)(cp))->objsize + sizeof(struct pxhdr);
+ symtabsiz = ((struct pxhdr *)(cp))->symtabsize;
+ if (argc > MAXARGS - 3)
+ error(2, "Too many arguments.\n");
+ if (symtabsiz != 0) {
+ largv[0] = "pxhdr";
+ largv[1] = "/tmp/px00000";
+ cp = &largv[1][11];
+ for (i = getpid(); i > 0; i /= 10)
+ *cp-- = '0' + i % 10;
+ fd = creat(largv[1], 0444);
+ if (fd < 0)
+ error(3, "Cannot create /tmp file\n");
+ for (i = 0; i < argc; i++)
+ largv[i + 2] = argv[i];
+ largv[argc + 2] = 0;
+ writeobj(fd, codesiz, symtabsiz);
+ run(PX_DEBUG, largv);
+ /* no return */