[llvm] r230567 - Object: Handle Mach-O kext bundle files

Rafael EspĂ­ndola rafael.espindola at gmail.com
Thu Feb 26 09:42:10 PST 2015


The lib/Object part needs a test too.

Can you add one with llvm-reabobj?

On 25 February 2015 at 17:59, Justin Bogner <mail at justinbogner.com> wrote:
> Author: bogner
> Date: Wed Feb 25 16:59:20 2015
> New Revision: 230567
>
> URL: http://llvm.org/viewvc/llvm-project?rev=230567&view=rev
> Log:
> Object: Handle Mach-O kext bundle files
>
> This particular subtype of Mach-O was missing. Add it.
>
> 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
>     llvm/trunk/unittests/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=230567&r1=230566&r2=230567&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/Support/FileSystem.h (original)
> +++ llvm/trunk/include/llvm/Support/FileSystem.h Wed Feb 25 16:59:20 2015
> @@ -241,6 +241,7 @@ struct file_magic {
>      macho_bundle,             ///< Mach-O Bundle file
>      macho_dynamically_linked_shared_lib_stub, ///< Mach-O Shared lib stub
>      macho_dsym_companion,     ///< Mach-O dSYM companion file
> +    macho_kext_bundle,        ///< Mach-O kext bundle file
>      macho_universal_binary,   ///< Mach-O universal binary
>      coff_object,              ///< COFF object file
>      coff_import_library,      ///< COFF import library
>
> Modified: llvm/trunk/lib/Object/Binary.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/Binary.cpp?rev=230567&r1=230566&r2=230567&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Object/Binary.cpp (original)
> +++ llvm/trunk/lib/Object/Binary.cpp Wed Feb 25 16:59:20 2015
> @@ -58,6 +58,7 @@ ErrorOr<std::unique_ptr<Binary>> object:
>      case sys::fs::file_magic::macho_bundle:
>      case sys::fs::file_magic::macho_dynamically_linked_shared_lib_stub:
>      case sys::fs::file_magic::macho_dsym_companion:
> +    case sys::fs::file_magic::macho_kext_bundle:
>      case sys::fs::file_magic::coff_object:
>      case sys::fs::file_magic::coff_import_library:
>      case sys::fs::file_magic::pecoff_executable:
>
> Modified: llvm/trunk/lib/Object/ObjectFile.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/ObjectFile.cpp?rev=230567&r1=230566&r2=230567&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Object/ObjectFile.cpp (original)
> +++ llvm/trunk/lib/Object/ObjectFile.cpp Wed Feb 25 16:59:20 2015
> @@ -76,6 +76,7 @@ ObjectFile::createObjectFile(MemoryBuffe
>    case sys::fs::file_magic::macho_bundle:
>    case sys::fs::file_magic::macho_dynamically_linked_shared_lib_stub:
>    case sys::fs::file_magic::macho_dsym_companion:
> +  case sys::fs::file_magic::macho_kext_bundle:
>      return createMachOObjectFile(Object);
>    case sys::fs::file_magic::coff_object:
>    case sys::fs::file_magic::coff_import_library:
>
> Modified: llvm/trunk/lib/Object/SymbolicFile.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Object/SymbolicFile.cpp?rev=230567&r1=230566&r2=230567&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Object/SymbolicFile.cpp (original)
> +++ llvm/trunk/lib/Object/SymbolicFile.cpp Wed Feb 25 16:59:20 2015
> @@ -53,6 +53,7 @@ ErrorOr<std::unique_ptr<SymbolicFile>> S
>    case sys::fs::file_magic::macho_bundle:
>    case sys::fs::file_magic::macho_dynamically_linked_shared_lib_stub:
>    case sys::fs::file_magic::macho_dsym_companion:
> +  case sys::fs::file_magic::macho_kext_bundle:
>    case sys::fs::file_magic::coff_import_library:
>    case sys::fs::file_magic::pecoff_executable:
>      return ObjectFile::createObjectFile(Object, Type);
>
> Modified: llvm/trunk/lib/Support/Path.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Support/Path.cpp?rev=230567&r1=230566&r2=230567&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Support/Path.cpp (original)
> +++ llvm/trunk/lib/Support/Path.cpp Wed Feb 25 16:59:20 2015
> @@ -1012,6 +1012,7 @@ file_magic identify_magic(StringRef Magi
>          case 8: return file_magic::macho_bundle;
>          case 9: return file_magic::macho_dynamically_linked_shared_lib_stub;
>          case 10: return file_magic::macho_dsym_companion;
> +        case 11: return file_magic::macho_kext_bundle;
>        }
>        break;
>      }
>
> Modified: llvm/trunk/unittests/Support/Path.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/Support/Path.cpp?rev=230567&r1=230566&r2=230567&view=diff
> ==============================================================================
> --- llvm/trunk/unittests/Support/Path.cpp (original)
> +++ llvm/trunk/unittests/Support/Path.cpp Wed Feb 25 16:59:20 2015
> @@ -557,6 +557,7 @@ const char macho_dynamically_linked_shar
>  const char macho_dynamic_linker[] = "\xfe\xed\xfa\xce..........\x00\x07";
>  const char macho_bundle[] = "\xfe\xed\xfa\xce..........\x00\x08";
>  const char macho_dsym_companion[] = "\xfe\xed\xfa\xce..........\x00\x0a";
> +const char macho_kext_bundle[] = "\xfe\xed\xfa\xce..........\x00\x0b";
>  const char windows_resource[] = "\x00\x00\x00\x00\x020\x00\x00\x00\xff";
>  const char macho_dynamically_linked_shared_lib_stub[] =
>      "\xfe\xed\xfa\xce..........\x00\x09";
> @@ -587,6 +588,7 @@ TEST_F(FileSystemTest, Magic) {
>      DEFINE(macho_bundle),
>      DEFINE(macho_dynamically_linked_shared_lib_stub),
>      DEFINE(macho_dsym_companion),
> +    DEFINE(macho_kext_bundle),
>      DEFINE(windows_resource)
>  #undef DEFINE
>      };
>
>
> _______________________________________________
> 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