From: George Koehler Date: Sat, 3 Dec 2016 22:52:24 +0000 (-0500) Subject: Create Mach-o files with mode 0777 to allow executing them. X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=969e98b82de338ea54c7490dee5171415f54148c;p=ack.git Create Mach-o files with mode 0777 to allow executing them. Until now, I was always doing chmod +x before running my files on the Mac. Now files get created +x. There's no change when overwriting an existing file. I needed to gmake clean my build to remove the example programs without +x, so cvmach can create them with +x. --- diff --git a/plat/osx/cvmach/cvmach.c b/plat/osx/cvmach/cvmach.c index 0b5b6bf80..5f8315ddd 100644 --- a/plat/osx/cvmach/cvmach.c +++ b/plat/osx/cvmach/cvmach.c @@ -12,6 +12,7 @@ * libobject is pinched from the Xenix i386 cv (mach/i386/cv/cv.c). */ +#include #include #include #include @@ -470,7 +471,7 @@ int main(int argc, char *argv[]) { uint32_t end, pad[3], sz, sz_load_cmds; - int cpu_subtype, mflag = 0; + int cpu_subtype, fd, mflag = 0; /* General housecleaning and setup. */ output = stdout; @@ -520,7 +521,11 @@ main(int argc, char *argv[]) break; case 3: /* Both input and output files specified. */ - output = fopen(argv[2], "w"); + /* Use mode 0777 to allow executing the output file. */ + fd = open(argv[2], O_CREAT | O_TRUNC | O_WRONLY, 0777); + if (fd < 0) + fatal("unable to open output file."); + output = fdopen(fd, "w"); if (!output) fatal("unable to open output file."); outputfile = argv[2];