#define MAP_SHARED     0x01            /* Share changes */
 #define MAP_PRIVATE    0x02            /* Changes are private */
 
+/* File perms */
+#ifndef S_IRGRP
+# define S_IRGRP 0
+#endif
+#ifndef S_IWGRP
+# define S_IWGRP 0
+#endif
+
 /* Windows 64-bit access macros */
 #define LODWORD(x) ((DWORD)((DWORDLONG)(x)))
 #define HIDWORD(x) ((DWORD)(((DWORDLONG)(x) >> 32) & 0xffffffff))
 
 
 #define CRC_SIZE sizeof(uint32_t)
 
-#ifdef __MINGW32__
-#define FILE_PERM              (S_IRUSR | S_IWUSR)
-#else
-#define FILE_PERM              (S_IRUSR | S_IWUSR | S_IRGRP |\
-                                            S_IWGRP)
-#endif
-
 static void usage(const char *exec_name)
 {
        fprintf(stderr, "%s [-h] [-r] [-b] [-p <byte>] -s <environment partition size> -o <output> <input file>\n"
        if (!bin_filename || strcmp(bin_filename, "-") == 0) {
                bin_fd = STDOUT_FILENO;
        } else {
-               bin_fd = creat(bin_filename, FILE_PERM);
+               bin_fd = creat(bin_filename, S_IRUSR | S_IWUSR | S_IRGRP |
+                                            S_IWGRP);
                if (bin_fd == -1) {
                        fprintf(stderr, "Can't open output file \"%s\": %s\n",
                                        bin_filename, strerror(errno));