mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-07-08 18:30:04 +00:00
Support ELF files of unknown type.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@222208 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
2c38b004d9
commit
b9f39bcc82
@ -226,6 +226,7 @@ struct file_magic {
|
|||||||
unknown = 0, ///< Unrecognized file
|
unknown = 0, ///< Unrecognized file
|
||||||
bitcode, ///< Bitcode file
|
bitcode, ///< Bitcode file
|
||||||
archive, ///< ar style archive file
|
archive, ///< ar style archive file
|
||||||
|
elf, ///< ELF Unknown type
|
||||||
elf_relocatable, ///< ELF Relocatable object file
|
elf_relocatable, ///< ELF Relocatable object file
|
||||||
elf_executable, ///< ELF Executable image
|
elf_executable, ///< ELF Executable image
|
||||||
elf_shared_object, ///< ELF dynamically linked shared lib
|
elf_shared_object, ///< ELF dynamically linked shared lib
|
||||||
|
@ -43,6 +43,7 @@ ErrorOr<std::unique_ptr<Binary>> object::createBinary(MemoryBufferRef Buffer,
|
|||||||
switch (Type) {
|
switch (Type) {
|
||||||
case sys::fs::file_magic::archive:
|
case sys::fs::file_magic::archive:
|
||||||
return Archive::create(Buffer);
|
return Archive::create(Buffer);
|
||||||
|
case sys::fs::file_magic::elf:
|
||||||
case sys::fs::file_magic::elf_relocatable:
|
case sys::fs::file_magic::elf_relocatable:
|
||||||
case sys::fs::file_magic::elf_executable:
|
case sys::fs::file_magic::elf_executable:
|
||||||
case sys::fs::file_magic::elf_shared_object:
|
case sys::fs::file_magic::elf_shared_object:
|
||||||
|
@ -60,6 +60,7 @@ ObjectFile::createObjectFile(MemoryBufferRef Object, sys::fs::file_magic Type) {
|
|||||||
case sys::fs::file_magic::macho_universal_binary:
|
case sys::fs::file_magic::macho_universal_binary:
|
||||||
case sys::fs::file_magic::windows_resource:
|
case sys::fs::file_magic::windows_resource:
|
||||||
return object_error::invalid_file_type;
|
return object_error::invalid_file_type;
|
||||||
|
case sys::fs::file_magic::elf:
|
||||||
case sys::fs::file_magic::elf_relocatable:
|
case sys::fs::file_magic::elf_relocatable:
|
||||||
case sys::fs::file_magic::elf_executable:
|
case sys::fs::file_magic::elf_executable:
|
||||||
case sys::fs::file_magic::elf_shared_object:
|
case sys::fs::file_magic::elf_shared_object:
|
||||||
|
@ -40,6 +40,7 @@ ErrorOr<std::unique_ptr<SymbolicFile>> SymbolicFile::createSymbolicFile(
|
|||||||
case sys::fs::file_magic::macho_universal_binary:
|
case sys::fs::file_magic::macho_universal_binary:
|
||||||
case sys::fs::file_magic::windows_resource:
|
case sys::fs::file_magic::windows_resource:
|
||||||
return object_error::invalid_file_type;
|
return object_error::invalid_file_type;
|
||||||
|
case sys::fs::file_magic::elf:
|
||||||
case sys::fs::file_magic::elf_executable:
|
case sys::fs::file_magic::elf_executable:
|
||||||
case sys::fs::file_magic::elf_shared_object:
|
case sys::fs::file_magic::elf_shared_object:
|
||||||
case sys::fs::file_magic::elf_core:
|
case sys::fs::file_magic::elf_core:
|
||||||
|
@ -958,6 +958,9 @@ file_magic identify_magic(StringRef Magic) {
|
|||||||
case 3: return file_magic::elf_shared_object;
|
case 3: return file_magic::elf_shared_object;
|
||||||
case 4: return file_magic::elf_core;
|
case 4: return file_magic::elf_core;
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
// It's still some type of ELF file.
|
||||||
|
return file_magic::elf;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user