Index: gas/config/obj-elf.c =================================================================== RCS file: /cvs/src/src/gas/config/obj-elf.c,v retrieving revision 1.118 diff -c -3 -p -r1.118 obj-elf.c *** gas/config/obj-elf.c 31 Jul 2009 18:14:06 -0000 1.118 --- gas/config/obj-elf.c 25 Aug 2009 09:58:10 -0000 *************** obj_elf_type (int ignore ATTRIBUTE_UNUSE *** 1691,1705 **** } else if (strcmp (typename, "gnu_unique_object") == 0) { ! const struct elf_backend_data *bed; ! bed = get_elf_backend_data (stdoutput); if (!(bed->elf_osabi == ELFOSABI_LINUX /* GNU/Linux is still using the default value 0. */ || bed->elf_osabi == ELFOSABI_NONE)) as_bad (_("symbol type \"%s\" is supported only by GNU targets"), typename); type = BSF_OBJECT | BSF_GNU_UNIQUE; } #ifdef md_elf_symbol_type else if ((type = md_elf_symbol_type (typename, sym, elfsym)) != -1) --- 1691,1707 ---- } else if (strcmp (typename, "gnu_unique_object") == 0) { ! struct elf_backend_data *bed; ! bed = (struct elf_backend_data *) get_elf_backend_data (stdoutput); if (!(bed->elf_osabi == ELFOSABI_LINUX /* GNU/Linux is still using the default value 0. */ || bed->elf_osabi == ELFOSABI_NONE)) as_bad (_("symbol type \"%s\" is supported only by GNU targets"), typename); type = BSF_OBJECT | BSF_GNU_UNIQUE; + /* PR 10549: Always set OSABI field to LINUX for objects containing unique symbols. */ + bed->elf_osabi = ELFOSABI_LINUX; } #ifdef md_elf_symbol_type else if ((type = md_elf_symbol_type (typename, sym, elfsym)) != -1)