Index: external/gpl3/binutils/dist/bfd/elf64-mips.c =================================================================== RCS file: /cvsroot/src/external/gpl3/binutils/dist/bfd/elf64-mips.c,v retrieving revision 1.1.1.1 diff -u -p -u -r1.1.1.1 elf64-mips.c --- external/gpl3/binutils/dist/bfd/elf64-mips.c 18 Aug 2009 09:26:01 -0000 1.1.1.1 +++ external/gpl3/binutils/dist/bfd/elf64-mips.c 7 Dec 2009 07:29:51 -0000 @@ -122,6 +122,8 @@ static bfd_reloc_status_type mips_elf64_ (bfd *, asymbol *, bfd_boolean, char **, bfd_vma *); static bfd_boolean mips_elf64_object_p (bfd *); +static bfd_boolean mips_elf64_is_local_label_name + (bfd *, const char *); static irix_compat_t elf64_mips_irix_compat (bfd *); static bfd_boolean elf64_mips_grok_prstatus @@ -3025,6 +3027,20 @@ mips_elf64_object_p (bfd *abfd) bfd_default_set_arch_mach (abfd, bfd_arch_mips, mach); return TRUE; } + + +/* MIPS ELF local labels start with "$L". */ + +static bfd_boolean +mips_elf64_is_local_label_name (bfd *abfd, const char *name) +{ + if (name[0] == '$' && name[1] == 'L') + return TRUE; + + /* We accept the generic ELF local label syntax as well. */ + return _bfd_elf_is_local_label_name (abfd, name); +} + /* Depending on the target vector we generate some version of Irix executables or "normal" MIPS ELF ABI executables. */ @@ -3248,9 +3264,8 @@ const struct elf_size_info mips_elf64_si #define elf_backend_write_section _bfd_mips_elf_write_section -/* We don't set bfd_elf64_bfd_is_local_label_name because the 32-bit - MIPS-specific function only applies to IRIX5, which had no 64-bit - ABI. */ +#define bfd_elf64_bfd_is_local_label_name \ + mips_elf64_is_local_label_name #define bfd_elf64_find_nearest_line _bfd_mips_elf_find_nearest_line #define bfd_elf64_find_inliner_info _bfd_mips_elf_find_inliner_info #define bfd_elf64_new_section_hook _bfd_mips_elf_new_section_hook