[llvm] r222208 - Support ELF files of unknown type.

Rafael EspĂ­ndola rafael.espindola at gmail.com
Mon Nov 24 20:41:40 PST 2014


testcase?

On 17 November 2014 at 20:14, Michael J. Spencer <bigcheesegs at gmail.com> wrote:
> Author: mspencer
> Date: Mon Nov 17 19:14:25 2014
> New Revision: 222208
>
> URL: http://llvm.org/viewvc/llvm-project?rev=222208&view=rev
> Log:
> Support ELF files of unknown type.
>
> Modified:
>     llvm/trunk/include/llvm/Support/FileSystem.h
>     llvm/trunk/lib/Object/Binary.cpp
>     llvm/trunk/lib/Object/ObjectFile.cpp
>     llvm/trunk/lib/Object/SymbolicFile.cpp
>     llvm/trunk/lib/Support/Path.cpp
>
> Modified: llvm/trunk/include/llvm/Support/FileSystem.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/FileSystem.h?rev=222208&r1=222207&r2=222208&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/Support/FileSystem.h (original)
> +++ llvm/trunk/include/llvm/Support/FileSystem.h Mon Nov 17 19:14:25 2014
> @@ -226,6 +226,7 @@ struct file_magic {
>      unknown = 0,              ///< Unrecognized file
>      bitcode,                  ///< Bitcode file
>      archive,                  ///< ar style archive file
> +    elf,                      ///< ELF Unknown type
>      elf_relocatable,          ///< ELF Relocatable object file
>      elf_executable,           ///< ELF Executable image
>      elf_shared_object,        ///< ELF dynamically linked shared lib
>
> Modified: llvm/trunk/lib/Object/Binary.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/Binary.cpp?rev=222208&r1=222207&r2=222208&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Object/Binary.cpp (original)
> +++ llvm/trunk/lib/Object/Binary.cpp Mon Nov 17 19:14:25 2014
> @@ -43,6 +43,7 @@ ErrorOr<std::unique_ptr<Binary>> object:
>    switch (Type) {
>      case sys::fs::file_magic::archive:
>        return Archive::create(Buffer);
> +    case sys::fs::file_magic::elf:
>      case sys::fs::file_magic::elf_relocatable:
>      case sys::fs::file_magic::elf_executable:
>      case sys::fs::file_magic::elf_shared_object:
>
> Modified: llvm/trunk/lib/Object/ObjectFile.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/ObjectFile.cpp?rev=222208&r1=222207&r2=222208&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Object/ObjectFile.cpp (original)
> +++ llvm/trunk/lib/Object/ObjectFile.cpp Mon Nov 17 19:14:25 2014
> @@ -60,6 +60,7 @@ ObjectFile::createObjectFile(MemoryBuffe
>    case sys::fs::file_magic::macho_universal_binary:
>    case sys::fs::file_magic::windows_resource:
>      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_executable:
>    case sys::fs::file_magic::elf_shared_object:
>
> Modified: llvm/trunk/lib/Object/SymbolicFile.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/SymbolicFile.cpp?rev=222208&r1=222207&r2=222208&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Object/SymbolicFile.cpp (original)
> +++ llvm/trunk/lib/Object/SymbolicFile.cpp Mon Nov 17 19:14:25 2014
> @@ -40,6 +40,7 @@ ErrorOr<std::unique_ptr<SymbolicFile>> S
>    case sys::fs::file_magic::macho_universal_binary:
>    case sys::fs::file_magic::windows_resource:
>      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_shared_object:
>    case sys::fs::file_magic::elf_core:
>
> Modified: llvm/trunk/lib/Support/Path.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Path.cpp?rev=222208&r1=222207&r2=222208&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Support/Path.cpp (original)
> +++ llvm/trunk/lib/Support/Path.cpp Mon Nov 17 19:14:25 2014
> @@ -958,6 +958,9 @@ file_magic identify_magic(StringRef Magi
>              case 3: return file_magic::elf_shared_object;
>              case 4: return file_magic::elf_core;
>            }
> +        else
> +          // It's still some type of ELF file.
> +          return file_magic::elf;
>        }
>        break;
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits



More information about the llvm-commits mailing list