comparison src/unexfreebsd.c @ 2:ac2d302a0011 r19-15b2

Import from CVS: tag r19-15b2
author cvs
date Mon, 13 Aug 2007 08:46:35 +0200
parents 376386a54a3c
children 850242ba4a81
comparison
equal deleted inserted replaced
1:c0c6a60d29db 2:ac2d302a0011
287 caddr_t from, to; 287 caddr_t from, to;
288 288
289 /* We can get relocation sites in the bss region, for objects whose 289 /* We can get relocation sites in the bss region, for objects whose
290 contents are copied from a shared library. We don't need or want 290 contents are copied from a shared library. We don't need or want
291 to restore these at present. */ 291 to restore these at present. */
292 #ifndef sparc
292 if (ri->r_copy) 293 if (ri->r_copy)
293 return; 294 return;
295 #else
296 /* Struct relocation_info_sparc doesn't have member r_copy.
297 Instead, we use the address to check if this is run-time-copied. */
298 if (ri->r_address >= ts->bssaddr && ri->r_address < ts->endaddr)
299 return;
300 #endif
294 301
295 offset = unexec_addr_to_offset (ri->r_address, ts); 302 offset = unexec_addr_to_offset (ri->r_address, ts);
296 if (offset == -1) 303 if (offset == -1)
297 unexec_error ("bad relocation address 0x%x (0x%x)", 0, ri->r_address, 304 unexec_error ("bad relocation address 0x%x (0x%x)", 0, ri->r_address,
298 ((long *)ri)[1]); 305 ((long *)ri)[1]);
349 *target = *source; 356 *target = *source;
350 target++; 357 target++;
351 source++; 358 source++;
352 *target = *source; 359 *target = *source;
353 } 360 }
361 break;
354 default: 362 default:
355 unexec_error ("unknown reloc type %d seen during unexec()", 363 unexec_error ("unknown reloc type %d seen during unexec()",
356 0, ri->r_type); 364 0, ri->r_type);
357 break; 365 break;
358 } 366 }