Line 1964... |
Line 1964... |
{
|
{
|
default:
|
default:
|
return FALSE;
|
return FALSE;
|
|
|
case 124: /* Linux/ARM elf_prpsinfo. */
|
case 124: /* Linux/ARM elf_prpsinfo. */
|
|
elf_tdata (abfd)->core_pid
|
|
= bfd_get_32 (abfd, note->descdata + 12);
|
elf_tdata (abfd)->core_program
|
elf_tdata (abfd)->core_program
|
= _bfd_elfcore_strndup (abfd, note->descdata + 28, 16);
|
= _bfd_elfcore_strndup (abfd, note->descdata + 28, 16);
|
elf_tdata (abfd)->core_command
|
elf_tdata (abfd)->core_command
|
= _bfd_elfcore_strndup (abfd, note->descdata + 44, 80);
|
= _bfd_elfcore_strndup (abfd, note->descdata + 44, 80);
|
}
|
}
|
Line 1984... |
Line 1986... |
}
|
}
|
|
|
return TRUE;
|
return TRUE;
|
}
|
}
|
|
|
|
static char *
|
|
elf32_arm_nabi_write_core_note (bfd *abfd, char *buf, int *bufsiz,
|
|
int note_type, ...)
|
|
{
|
|
switch (note_type)
|
|
{
|
|
default:
|
|
return NULL;
|
|
|
|
case NT_PRPSINFO:
|
|
{
|
|
char data[124];
|
|
va_list ap;
|
|
|
|
va_start (ap, note_type);
|
|
memset (data, 0, sizeof (data));
|
|
strncpy (data + 28, va_arg (ap, const char *), 16);
|
|
strncpy (data + 44, va_arg (ap, const char *), 80);
|
|
va_end (ap);
|
|
|
|
return elfcore_write_note (abfd, buf, bufsiz,
|
|
"CORE", note_type, data, sizeof (data));
|
|
}
|
|
|
|
case NT_PRSTATUS:
|
|
{
|
|
char data[148];
|
|
va_list ap;
|
|
long pid;
|
|
int cursig;
|
|
const void *greg;
|
|
|
|
va_start (ap, note_type);
|
|
memset (data, 0, sizeof (data));
|
|
pid = va_arg (ap, long);
|
|
bfd_put_32 (abfd, pid, data + 24);
|
|
cursig = va_arg (ap, int);
|
|
bfd_put_16 (abfd, cursig, data + 12);
|
|
greg = va_arg (ap, const void *);
|
|
memcpy (data + 72, greg, 72);
|
|
va_end (ap);
|
|
|
|
return elfcore_write_note (abfd, buf, bufsiz,
|
|
"CORE", note_type, data, sizeof (data));
|
|
}
|
|
}
|
|
}
|
|
|
#define TARGET_LITTLE_SYM bfd_elf32_littlearm_vec
|
#define TARGET_LITTLE_SYM bfd_elf32_littlearm_vec
|
#define TARGET_LITTLE_NAME "elf32-littlearm"
|
#define TARGET_LITTLE_NAME "elf32-littlearm"
|
#define TARGET_BIG_SYM bfd_elf32_bigarm_vec
|
#define TARGET_BIG_SYM bfd_elf32_bigarm_vec
|
#define TARGET_BIG_NAME "elf32-bigarm"
|
#define TARGET_BIG_NAME "elf32-bigarm"
|
|
|
#define elf_backend_grok_prstatus elf32_arm_nabi_grok_prstatus
|
#define elf_backend_grok_prstatus elf32_arm_nabi_grok_prstatus
|
#define elf_backend_grok_psinfo elf32_arm_nabi_grok_psinfo
|
#define elf_backend_grok_psinfo elf32_arm_nabi_grok_psinfo
|
|
#define elf_backend_write_core_note elf32_arm_nabi_write_core_note
|
|
|
typedef unsigned long int insn32;
|
typedef unsigned long int insn32;
|
typedef unsigned short int insn16;
|
typedef unsigned short int insn16;
|
|
|
/* In lieu of proper flags, assume all EABIv4 or later objects are
|
/* In lieu of proper flags, assume all EABIv4 or later objects are
|
Line 6929... |
Line 6980... |
&& sym_sec->owner != NULL
|
&& sym_sec->owner != NULL
|
&& !INTERWORK_FLAG (sym_sec->owner))
|
&& !INTERWORK_FLAG (sym_sec->owner))
|
{
|
{
|
(*_bfd_error_handler)
|
(*_bfd_error_handler)
|
(_("%B(%s): warning: interworking not enabled.\n"
|
(_("%B(%s): warning: interworking not enabled.\n"
|
" first occurrence: %B: thumb call to arm"),
|
" first occurrence: %B: Thumb call to ARM"),
|
sym_sec->owner, input_bfd, name);
|
sym_sec->owner, input_bfd, name);
|
|
|
return FALSE;
|
return FALSE;
|
}
|
}
|
|
|