ftp.nice.ch/pub/next/developer/languages/lisp/AKCL.1.599.s.tar.gz#/akcl-1-599/V/ild/ild.c

This is ild.c in view mode; [Download] [Up]


@s[	if (relocation_info.r_type != R_DIR32S) {
		fprintf(stderr, "%d: unsupported relocation type.",
			relocation_info.r_type);
		exit(1);
	}
	/*
	Assuming R_DIR32S.
	*/
	p = (char *)(&value);
	p[3] = where[0];
	p[2] = where[1];
	p[1] = where[2];
	p[0] = where[3];
	value += symbol_table[relocation_info.r_symndx].n_value;
	where[0] = p[3];
	where[1] = p[2];
	where[2] = p[1];
	where[3] = p[0];
}
@s|switch(relocation_info.r_type){ int *q;

#ifdef MP386
 case    	R_DIR32:

        *(int *)where= *((int *)where) + 
        	 symbol_table[relocation_info.r_symndx].n_value;
	break;
 case		R_PCRLONG:
       *(int *)where= *((int *)where)  - (int)start_address
                      + symbol_table[relocation_info.r_symndx].n_value;
	break;
#else
case	R_DIR32S:
		p = (char *)(&value);
	p[3] = where[0];
	p[2] = where[1];
	p[1] = where[2];
	p[0] = where[3];
	value += symbol_table[relocation_info.r_symndx].n_value;
	where[0] = p[3];
	where[1] = p[2];
	where[2] = p[1];
	where[3] = p[0];
	break;
#endif
      default:
		fprintf(stderr, "%d: unsupported relocation type.",
			relocation_info.r_type);
		exit(1);
      }
}
@s]


These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.