aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Object
diff options
context:
space:
mode:
authorRui Ueyama <ruiu@google.com>2013-10-15 22:45:38 +0000
committerRui Ueyama <ruiu@google.com>2013-10-15 22:45:38 +0000
commitb32b0376d4ac04fc2401e70aa0bdd2f6ce5a8968 (patch)
treef8585756a6c75981e5454e65418ed202fd309804 /lib/Object
parent72be32c6332ff9dd38b989d5a0dd80f40996dd10 (diff)
downloadexternal_llvm-b32b0376d4ac04fc2401e70aa0bdd2f6ce5a8968.zip
external_llvm-b32b0376d4ac04fc2401e70aa0bdd2f6ce5a8968.tar.gz
external_llvm-b32b0376d4ac04fc2401e70aa0bdd2f6ce5a8968.tar.bz2
Path: Recognize Windows compiled resource file.
Some background: One can pass compiled resource files (.res files) directly to the linker on Windows. If a resource file is given, the linker will run "cvtres" command in background to convert the resource file to a COFF file to link it. What I'm trying to do with this patch is to make the linker to recognize the resource file by file magic, so that it can run cvtres command. Differential Revision: http://llvm-reviews.chandlerc.com/D1943 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192742 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Object')
-rw-r--r--lib/Object/Binary.cpp3
-rw-r--r--lib/Object/ObjectFile.cpp1
2 files changed, 3 insertions, 1 deletions
diff --git a/lib/Object/Binary.cpp b/lib/Object/Binary.cpp
index fd9d3b4..d0a7009 100644
--- a/lib/Object/Binary.cpp
+++ b/lib/Object/Binary.cpp
@@ -100,7 +100,8 @@ error_code object::createBinary(MemoryBuffer *Source,
return object_error::success;
}
case sys::fs::file_magic::unknown:
- case sys::fs::file_magic::bitcode: {
+ case sys::fs::file_magic::bitcode:
+ case sys::fs::file_magic::windows_resource: {
// Unrecognized object file format.
return object_error::invalid_file_type;
}
diff --git a/lib/Object/ObjectFile.cpp b/lib/Object/ObjectFile.cpp
index 1d1dafd..59395c6 100644
--- a/lib/Object/ObjectFile.cpp
+++ b/lib/Object/ObjectFile.cpp
@@ -49,6 +49,7 @@ ObjectFile *ObjectFile::createObjectFile(MemoryBuffer *Object) {
case sys::fs::file_magic::bitcode:
case sys::fs::file_magic::archive:
case sys::fs::file_magic::macho_universal_binary:
+ case sys::fs::file_magic::windows_resource:
delete Object;
return 0;
case sys::fs::file_magic::elf_relocatable: