Modified the code so that it uses the MakeFileExecutable() method. The new
authorJohn Criswell <criswell@uiuc.edu>
Tue, 2 Sep 2003 20:17:20 +0000 (20:17 +0000)
committerJohn Criswell <criswell@uiuc.edu>
Tue, 2 Sep 2003 20:17:20 +0000 (20:17 +0000)
library code now adds all execute bits that are allowed by the umask value to
the file's current permission bits.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8325 91177308-0d34-0410-b5e6-96231b3b80d8

tools/gccld/gccld.cpp

index 4133de547d646bacf124db704fefa6ca1193b0b2..1fd1b741fac6347e4afc9b54022f23118591d43c 100644 (file)
@@ -21,6 +21,7 @@
 #include "llvm/Target/TargetData.h"
 #include "llvm/Transforms/IPO.h"
 #include "llvm/Transforms/Scalar.h"
+#include "Support/FileUtilities.h"
 #include "Support/CommandLine.h"
 #include "Support/Signals.h"
 #include <fstream>
@@ -433,9 +434,6 @@ int main(int argc, char **argv) {
   Out.close();
 
   if (!LinkAsLibrary) {
-    // Permissions masking value of the user
-    mode_t mask;
-
     // Output the script to start the program...
     std::ofstream Out2(OutputFilename.c_str());
     if (!Out2.good())
@@ -444,22 +442,11 @@ int main(int argc, char **argv) {
     Out2 << "#!/bin/sh\nlli -q -abort-on-exception $0.bc $*\n";
     Out2.close();
   
-    //
-    // Grab the umask value from the operating system.  We want to use it when
-    // changing the file's permissions.
-    //
-    // Note:
-    //  Umask() is one of those annoying system calls.  You have to call it
-    //  to get the current value and then set it back.
-    //
-    mask = umask (0);
-    umask (mask);
-
     // Make the script executable...
-    chmod(OutputFilename.c_str(), (0755 & ~mask));
+    MakeFileExecutable (OutputFilename);
 
     // Make the bytecode file directly executable in LLEE as well
-    chmod(RealBytecodeOutput.c_str(), (0755 & ~mask));
+    MakeFileExecutable (RealBytecodeOutput);
   }
 
   return 0;