5 /* Written to run on SUN, and generate code for SUN */
7 extern long B_base_address[];
11 register struct outrelo *rp;
13 /* print( "n relocation records %d\n", relo - reloc_info); */
15 B_base_address[SEGTXT] = 0;
16 B_base_address[SEGCON] = text - text_area;
17 B_base_address[SEGBSS] = B_base_address[SEGCON] + data - data_area;
18 for ( rp = reloc_info; rp < relo; rp++) {
19 register struct outname *np = &symbol_table[rp->or_nami];
21 if ( np->on_valu != -1 && ! (np->on_type & S_COM)) {
24 switch( rp->or_sect - S_MIN) {
33 "do_local_relo(): bad section %d\n",
37 if ( rp->or_type & RELO4)
38 *((long *)(sect+rp->or_addr)) +=
40 B_base_address[(np->on_type&S_TYP)-S_MIN];
43 "do_relo() : bad relocation size\n");