Skip to content

Commit bbd875b

Browse files
committed
Support ELF files of unknown type.
llvm-svn: 222208
1 parent ea50863 commit bbd875b

File tree

5 files changed

+7
-0
lines changed

5 files changed

+7
-0
lines changed

llvm/include/llvm/Support/FileSystem.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,7 @@ struct file_magic {
226226
unknown = 0, ///< Unrecognized file
227227
bitcode, ///< Bitcode file
228228
archive, ///< ar style archive file
229+
elf, ///< ELF Unknown type
229230
elf_relocatable, ///< ELF Relocatable object file
230231
elf_executable, ///< ELF Executable image
231232
elf_shared_object, ///< ELF dynamically linked shared lib

llvm/lib/Object/Binary.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ ErrorOr<std::unique_ptr<Binary>> object::createBinary(MemoryBufferRef Buffer,
4343
switch (Type) {
4444
case sys::fs::file_magic::archive:
4545
return Archive::create(Buffer);
46+
case sys::fs::file_magic::elf:
4647
case sys::fs::file_magic::elf_relocatable:
4748
case sys::fs::file_magic::elf_executable:
4849
case sys::fs::file_magic::elf_shared_object:

llvm/lib/Object/ObjectFile.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ ObjectFile::createObjectFile(MemoryBufferRef Object, sys::fs::file_magic Type) {
6060
case sys::fs::file_magic::macho_universal_binary:
6161
case sys::fs::file_magic::windows_resource:
6262
return object_error::invalid_file_type;
63+
case sys::fs::file_magic::elf:
6364
case sys::fs::file_magic::elf_relocatable:
6465
case sys::fs::file_magic::elf_executable:
6566
case sys::fs::file_magic::elf_shared_object:

llvm/lib/Object/SymbolicFile.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ ErrorOr<std::unique_ptr<SymbolicFile>> SymbolicFile::createSymbolicFile(
4040
case sys::fs::file_magic::macho_universal_binary:
4141
case sys::fs::file_magic::windows_resource:
4242
return object_error::invalid_file_type;
43+
case sys::fs::file_magic::elf:
4344
case sys::fs::file_magic::elf_executable:
4445
case sys::fs::file_magic::elf_shared_object:
4546
case sys::fs::file_magic::elf_core:

llvm/lib/Support/Path.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -958,6 +958,9 @@ file_magic identify_magic(StringRef Magic) {
958958
case 3: return file_magic::elf_shared_object;
959959
case 4: return file_magic::elf_core;
960960
}
961+
else
962+
// It's still some type of ELF file.
963+
return file_magic::elf;
961964
}
962965
break;
963966

0 commit comments

Comments
 (0)