[llvm-commits] CVS: llvm/tools/llee/ExecveHandler.c

Reid Spencer reid at x10sys.com
Tue Nov 9 12:21:36 PST 2004



Changes in directory llvm/tools/llee:

ExecveHandler.c updated: 1.9 -> 1.10
---
Log message:

Make sure llee can deal with compressed bytecode too.


---
Diffs of the changes:  (+7 -5)

Index: llvm/tools/llee/ExecveHandler.c
diff -u llvm/tools/llee/ExecveHandler.c:1.9 llvm/tools/llee/ExecveHandler.c:1.10
--- llvm/tools/llee/ExecveHandler.c:1.9	Wed Sep  1 17:55:37 2004
+++ llvm/tools/llee/ExecveHandler.c	Tue Nov  9 14:21:25 2004
@@ -21,10 +21,11 @@
 #include <string.h>
 
 /*
- * This is the expected header for all valid LLVM bytecode files.
- * The first four characters must be exactly this.
+ * These are the expected headers for all valid LLVM bytecode files.
+ * The first four characters must be one of these.
  */
-static const char llvmHeader[] = "llvm";
+static const char llvmHeaderUncompressed[] = "llvm";
+static const char llvmHeaderCompressed[] = "llvc";
 
 /*
  * This replacement execve() function first checks the file to be executed
@@ -34,7 +35,7 @@
 int execve(const char *filename, char *const argv[], char *const envp[])
 {
   /* Open the file, test to see if first four characters are "llvm" */
-  size_t headerSize = strlen(llvmHeader);
+  size_t headerSize = strlen(llvmHeaderCompressed);
   char header[headerSize];
   char* realFilename = 0;
   /* 
@@ -57,7 +58,8 @@
   ssize_t bytesRead = read(file, header, headerSize);
   close(file);
   if (bytesRead != (ssize_t)headerSize) return EIO;
-  if (!memcmp(llvmHeader, header, headerSize)) {
+  if (!memcmp(llvmHeaderCompressed, header, headerSize) || 
+      !memcmp(llvmHeaderUncompressed, header, headerSize)) {
     /* 
      * This is a bytecode file, so execute the JIT with the program and
      * parameters.






More information about the llvm-commits mailing list