diff --git a/src/conio/genmap.c b/src/conio/genmap.c
index 1473a1fc7b92920f24b47d5e5e8d0c8e691be226..aa0f643a024ec30090ff11bf7817662cd5f3db56 100644
--- a/src/conio/genmap.c
+++ b/src/conio/genmap.c
@@ -60,6 +60,7 @@ main(int argc, char **argv)
 	FILE *s, *h, *r, *y;
 	char path[1024];
 	char *mangle = "";
+	char *section = ".rodata";
 
 	if (argc != 3) {
 		fprintf(stderr, "Usage: %s <os> <path>\n", argv[0]);
@@ -74,18 +75,22 @@ main(int argc, char **argv)
 	sprintf(path, "%s/y2r.bin", argv[2]);
 	y = fopen(path, "wb");
 	init_r2y();
-	if (argc > 1 && strcmp(argv[1], "win32") == 0)
+	if (strcmp(argv[1], "win32") == 0)
 		mangle = "_";
+	if (strcmp(argv[1], "darwin") == 0) {
+		section = "__TEXT,__const";
+		mangle = "_";
+	}
 
 	fprintf(s,
-	    ".section .rodata\n"
+	    ".section %s\n"
 	    ".global %sr2y\n"
 	    ".global %sy2r\n"
 	    ".align  4\n"
 	    "%sr2y:\n"
 	    "	.incbin \"%s/r2y.bin\"\n"
 	    "%sy2r:\n"
-	    "	.incbin \"%s/y2r.bin\"\n", mangle, mangle, mangle, argv[2], mangle, argv[2]);
+	    "	.incbin \"%s/y2r.bin\"\n", section, mangle, mangle, mangle, argv[2], mangle, argv[2]);
 	fprintf(h,
 	    "#ifndef RGBMAP_H\n"
 	    "#define RGBMAP_H\n"