Add ability to query if a file is a legitimate ELF shared object.
authorMisha Brukman <brukman+llvm@gmail.com>
Mon, 24 Nov 2003 05:28:12 +0000 (05:28 +0000)
committerMisha Brukman <brukman+llvm@gmail.com>
Mon, 24 Nov 2003 05:28:12 +0000 (05:28 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10193 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Support/FileUtilities.cpp

index cde288925be3f3027ab7f9a947640faa204d1c22..02541d9e8af777701c7f3df9ef124563f13dcf16 100644 (file)
@@ -52,6 +52,16 @@ bool IsBytecode(const std::string &FN) {
   return CheckMagic (FN, "llvm");
 }
 
+/// IsSharedObject - Returns trus IFF the file named FN appears to be a shared
+/// object with an ELF header. The file named FN must exist.
+///
+bool IsSharedObject(const std::string &FN) {
+  // Inspect the beginning of the file to see if it contains the LLVM
+  // bytecode format magic string.
+  static const char elfMagic[] = { 0x7f, 'E', 'L', 'F', '\0' };
+  return CheckMagic(FN, elfMagic);
+}
+
 /// FileOpenable - Returns true IFF Filename names an existing regular
 /// file which we can successfully open.
 ///