From 40242e030fe76b9ead06358d9deb331f38c9bf18 Mon Sep 17 00:00:00 2001 From: Casper Hornstrup Date: Wed, 20 Apr 2005 17:57:26 +0000 Subject: [PATCH] Don't link kernel-mode modules to kernel32.dll svn path=/branches/xmlbuildsystem/; revision=14716 --- reactos/Makefile | 1 - reactos/drivers/dd/null/null.xml | 2 +- reactos/drivers/fs/vfat/vfatfs.xml | 1 + reactos/drivers/lib/bzip2/bzip2.xml | 1 + reactos/drivers/net/afd/afd.xml | 4 ++-- reactos/drivers/storage/disk/disk.xml | 1 + reactos/subsys/win32k/win32k.xml | 2 +- .../tools/rbuild/backend/mingw/modulehandler.cpp | 9 +++++++++ reactos/tools/rbuild/backend/mingw/modulehandler.h | 13 +++++++++++-- 9 files changed, 27 insertions(+), 7 deletions(-) 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 (); };