> 2010-10-28 Ian Lance Taylor <i...@google.com> > > * lto-objfile.c: New file. > * lto-elf.c: Remove file.
This has removed the support for compatible architectures present in lto-elf.c and hasn't added any replacement in libiberty, so a bunch of LTO tests fail again on 32-bit SPARC/Solaris. The old code reads: /* Return true if ELF_MACHINE is compatible with the cached value of the architecture and possibly update the latter. Return false otherwise. Note: if you want to add more EM_* cases, you'll need to provide the corresponding definitions at the beginning of the file. */ static bool is_compatible_architecture (Elf64_Half elf_machine) { if (cached_file_attrs.elf_machine == elf_machine) return true; switch (cached_file_attrs.elf_machine) { case EM_SPARC: if (elf_machine == EM_SPARC32PLUS) { cached_file_attrs.elf_machine = elf_machine; return true; } break; case EM_SPARC32PLUS: if (elf_machine == EM_SPARC) return true; break; default: break; } return false; } so it was not only accepting object files with compatible architectures in the same LTO compilation, but also updating the current architecture for later write operations. This is modelled on the linker. -- Eric Botcazou