diff --git a/reactos/Makefile b/reactos/Makefile index d702845c1a5..c97582c697c 100644 --- a/reactos/Makefile +++ b/reactos/Makefile @@ -35,7 +35,6 @@ # # ROS_RBUILDFLAGS # Pass parameters to rbuild. -# .PHONY: all .PHONY: clean diff --git a/reactos/drivers/dd/null/null.xml b/reactos/drivers/dd/null/null.xml index 6a0dc172893..310cdbd4e96 100644 --- a/reactos/drivers/dd/null/null.xml +++ b/reactos/drivers/dd/null/null.xml @@ -1,9 +1,9 @@ . + pseh ntoskrnl hal - pseh null.c null.rc diff --git a/reactos/drivers/fs/vfat/vfatfs.xml b/reactos/drivers/fs/vfat/vfatfs.xml index 97bfb26a424..12aef38f53d 100644 --- a/reactos/drivers/fs/vfat/vfatfs.xml +++ b/reactos/drivers/fs/vfat/vfatfs.xml @@ -2,6 +2,7 @@ . + -lgcc ntoskrnl hal blockdev.c diff --git a/reactos/drivers/lib/bzip2/bzip2.xml b/reactos/drivers/lib/bzip2/bzip2.xml index 4e7936b12c5..fbec0f4210d 100644 --- a/reactos/drivers/lib/bzip2/bzip2.xml +++ b/reactos/drivers/lib/bzip2/bzip2.xml @@ -3,6 +3,7 @@ + -lgcc ntoskrnl hal bzlib.c diff --git a/reactos/drivers/net/afd/afd.xml b/reactos/drivers/net/afd/afd.xml index a76d846a06b..629e93d291a 100644 --- a/reactos/drivers/net/afd/afd.xml +++ b/reactos/drivers/net/afd/afd.xml @@ -2,11 +2,11 @@ include include/afd + pseh ntoskrnl hal - pseh - afd.h + afd.h bind.c diff --git a/reactos/drivers/storage/disk/disk.xml b/reactos/drivers/storage/disk/disk.xml index 5cf36f359ed..285d009688a 100644 --- a/reactos/drivers/storage/disk/disk.xml +++ b/reactos/drivers/storage/disk/disk.xml @@ -1,5 +1,6 @@ + -lgcc ntoskrnl hal class2 diff --git a/reactos/subsys/win32k/win32k.xml b/reactos/subsys/win32k/win32k.xml index 89f227d61f7..c0523debaa4 100644 --- a/reactos/subsys/win32k/win32k.xml +++ b/reactos/subsys/win32k/win32k.xml @@ -9,10 +9,10 @@ 0x0501 0x600 + pseh rosrtl ntoskrnl hal - pseh freetype w32k.h diff --git a/reactos/tools/rbuild/backend/mingw/modulehandler.cpp b/reactos/tools/rbuild/backend/mingw/modulehandler.cpp index 0f14cd8c447..11e9bb07722 100644 --- a/reactos/tools/rbuild/backend/mingw/modulehandler.cpp +++ b/reactos/tools/rbuild/backend/mingw/modulehandler.cpp @@ -1511,6 +1511,15 @@ MingwModuleHandler::GenerateOtherMacros () nasmflags.c_str () ); } + string linkerflags = TypeSpecificLinkerFlags(); + if ( linkerflags.size() > 0 ) + { + fprintf ( fMakefile, + "%s += %s\n\n", + linkerflagsMacro.c_str (), + linkerflags.c_str () ); + } + fprintf ( fMakefile, "\n\n" ); // future references to the macros will be to get their values diff --git a/reactos/tools/rbuild/backend/mingw/modulehandler.h b/reactos/tools/rbuild/backend/mingw/modulehandler.h index fe80ae71cc6..35b1ee6c721 100644 --- a/reactos/tools/rbuild/backend/mingw/modulehandler.h +++ b/reactos/tools/rbuild/backend/mingw/modulehandler.h @@ -49,6 +49,7 @@ public: virtual void Process () = 0; virtual std::string TypeSpecificCFlags() { return ""; } virtual std::string TypeSpecificNasmFlags() { return ""; } + virtual std::string TypeSpecificLinkerFlags() { return ""; } void GenerateInvocations () const; void GenerateCleanTarget () const; static bool ReferenceObjects ( const Module& module ); @@ -196,6 +197,7 @@ public: MingwKernelModuleHandler ( const Module& module ); virtual HostType DefaultHost() { return HostFalse; } virtual void Process (); + std::string TypeSpecificCFlags() { return "-D_SEH_NO_NATIVE_NLG"; } private: void GenerateKernelModuleTarget (); }; @@ -229,6 +231,8 @@ public: MingwKernelModeDLLModuleHandler ( const Module& module ); virtual HostType DefaultHost() { return HostFalse; } virtual void Process (); + std::string TypeSpecificCFlags() { return "-D_SEH_NO_NATIVE_NLG"; } + std::string TypeSpecificLinkerFlags() { return "-nostartfiles -nostdlib"; } private: void GenerateKernelModeDLLModuleTarget (); }; @@ -240,7 +244,8 @@ public: MingwKernelModeDriverModuleHandler ( const Module& module ); virtual HostType DefaultHost() { return HostFalse; } virtual void Process (); - std::string TypeSpecificCFlags() { return "-D__NTDRIVER__"; } + std::string TypeSpecificCFlags() { return "-D__NTDRIVER__ -D_SEH_NO_NATIVE_NLG"; } + std::string TypeSpecificLinkerFlags() { return "-nostartfiles -nostdlib"; } private: void GenerateKernelModeDriverModuleTarget (); }; @@ -252,6 +257,8 @@ public: MingwNativeDLLModuleHandler ( const Module& module ); virtual HostType DefaultHost() { return HostFalse; } virtual void Process (); + std::string TypeSpecificCFlags() { return "-D_SEH_NO_NATIVE_NLG"; } + std::string TypeSpecificLinkerFlags() { return "-nostartfiles -nostdlib"; } private: void GenerateNativeDLLModuleTarget (); }; @@ -263,7 +270,8 @@ public: MingwNativeCUIModuleHandler ( const Module& module ); virtual HostType DefaultHost() { return HostFalse; } virtual void Process (); - std::string TypeSpecificCFlags() { return "-D__NTAPP__"; } + std::string TypeSpecificCFlags() { return "-D__NTAPP__ -D_SEH_NO_NATIVE_NLG"; } + std::string TypeSpecificLinkerFlags() { return "-nostartfiles -nostdlib"; } private: void GenerateNativeCUIModuleTarget (); }; @@ -309,6 +317,7 @@ public: MingwBootLoaderModuleHandler ( const Module& module ); virtual HostType DefaultHost() { return HostFalse; } virtual void Process (); + std::string TypeSpecificLinkerFlags() { return "-nostartfiles -nostdlib"; } private: void GenerateBootLoaderModuleTarget (); };