summaryrefslogtreecommitdiff
path: root/mld
diff options
context:
space:
mode:
authorFreya Murphy <freya@freyacat.org>2024-09-22 16:54:14 -0400
committerFreya Murphy <freya@freyacat.org>2024-09-22 16:54:14 -0400
commitfff0444f6c9f666e5956dd9a7f7f2443d6d3d58f (patch)
tree4f6680dae0b2e7ab5c2bb430afa4846266a48dfe /mld
parentupdate readme (diff)
downloadmips-fff0444f6c9f666e5956dd9a7f7f2443d6d3d58f.tar.gz
mips-fff0444f6c9f666e5956dd9a7f7f2443d6d3d58f.tar.bz2
mips-fff0444f6c9f666e5956dd9a7f7f2443d6d3d58f.zip
make mld file executable
Diffstat (limited to 'mld')
-rw-r--r--mld/link.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/mld/link.c b/mld/link.c
index 5696973..5a8e151 100644
--- a/mld/link.c
+++ b/mld/link.c
@@ -7,6 +7,7 @@
#include <string.h>
#include <sys/stat.h>
#include <melf.h>
+#include <fcntl.h>
#include "link.h"
#include "mips.h"
@@ -573,7 +574,13 @@ static int write_file(struct linker *linker)
extern char *current_file;
current_file = linker->args->out_file;
- FILE *out = fopen(linker->args->out_file, "w");
+ int fd = open(linker->args->out_file, O_RDWR | O_CREAT, 0711);
+ if (fd < 0) {
+ PERROR("cannot write");
+ return M_ERROR;
+ }
+
+ FILE *out = fdopen(fd, "w");
if (out == NULL) {
PERROR("cannot write");
return M_ERROR;