diff -ruN nasm-2.16.03/nasmlib/file.c nasm-2.16.03-banan_os/nasmlib/file.c
--- nasm-2.16.03/nasmlib/file.c	2024-04-17 20:04:08.000000000 +0300
+++ nasm-2.16.03-banan_os/nasmlib/file.c	2025-01-25 23:07:51.415526537 +0200
@@ -160,30 +160,7 @@
 
     osfname = os_mangle_filename(filename);
     if (osfname) {
-        os_fopenflag fopen_flags[4];
-        memset(fopen_flags, 0, sizeof fopen_flags);
-
-        fopen_flags[0] = 'r';
-        fopen_flags[1] = (flags & NF_TEXT) ? 't' : 'b';
-
-#if defined(__GLIBC__) || defined(__linux__)
-        /*
-         * Try to open this file with memory mapping for speed, unless we are
-         * going to do it "manually" with nasm_map_file()
-         */
-        if (!(flags & NF_FORMAP))
-            fopen_flags[2] = 'm';
-#endif
-
-        while (true) {
-            f = os_fopen(osfname, fopen_flags);
-            if (f || errno != EINVAL || !fopen_flags[2])
-                break;
-
-            /* We got EINVAL but with 'm'; try again without 'm' */
-            fopen_flags[2] = '\0';
-        }
-
+		f = os_fopen(osfname, "r");
         os_free_filename(osfname);
     }
 
@@ -201,13 +178,7 @@
 
     osfname = os_mangle_filename(filename);
     if (osfname) {
-        os_fopenflag fopen_flags[3];
-
-        fopen_flags[0] = 'w';
-        fopen_flags[1] = (flags & NF_TEXT) ? 't' : 'b';
-        fopen_flags[2] = '\0';
-
-        f = os_fopen(osfname, fopen_flags);
+        f = os_fopen(osfname, "w");
         os_free_filename(osfname);
     }
 
