Я решил проблему с сегфолтом MODULE под линукс.

Использовал sjasmplus-src-1.07-rc7

Вот два патча.
Первый:

Код:
--- directives.cpp.old	2008-04-02 10:21:16.000000000 +0700
+++ directives.cpp	2011-02-23 20:39:10.445291480 +0600
@@ -465,7 +465,7 @@
 
 void dirMODULE() {
 	char* n;
-	ModuleList = new CStringsList(ModuleName, ModuleList);
+	// ModuleList = new CStringsList(ModuleName, ModuleList);
 	if (ModuleName != NULL) {
 		delete[] ModuleName;
 	}
@@ -474,6 +474,9 @@
 		if (ModuleName == NULL) {
 			Error("No enough memory!", 0, FATAL);
 		}
+//
+ModuleList = new CStringsList(ModuleName, ModuleList);
+//
 	} else {
 		Error("[MODULE] Syntax error", 0, CATCHALL);
 	}
@@ -483,8 +486,14 @@
 	if (ModuleList) {
 		if (ModuleName != NULL) {
 			delete[] ModuleName;
-		}
-		if (ModuleList->string != NULL) {
+//
+ModuleName = NULL;
+//
+		}
+//
+ModuleList = ModuleList->next;
+//
+		if ( (ModuleList) && (ModuleList->string != NULL) ) {
 			ModuleName = STRDUP(ModuleList->string);
 			if (ModuleName == NULL) {
 				Error("No enough memory!", 0, FATAL);
@@ -492,7 +501,7 @@
 		} else {
 			ModuleName = NULL;
 		}
-		ModuleList = ModuleList->next;
+//		ModuleList = ModuleList->next;
 	} else {
 		Error("ENDMODULE without MODULE", 0);
 	}

И второй:

Код:
--- sjdefs.h.old	2008-04-01 17:41:58.000000000 +0700
+++ sjdefs.h	2011-02-23 19:54:45.036263394 +0600
@@ -120,6 +120,7 @@
 #include "io_snapshots.h"
 #include "io_trd.h"
 #include "sjasm.h"
+#include <stdlib.h>
 
 #endif
 //eof sjdefs.h
Прошу автора воткнуть исправления в основную ветку. Модули - штука хорошая.

---------- Post added at 21:01 ---------- Previous post was at 21:00 ----------

В догонку.
Тут уже эту проблему где-то решали, но директива ENDMODULE неправильно у меня тем способом работала.