Export functions in .def files
Deleted: branches/xmlbuildsystem/reactos/drivers/net/afd/afd.def
Modified: branches/xmlbuildsystem/reactos/drivers/net/afd/afd.xml Modified: branches/xmlbuildsystem/reactos/lib/kernel32/kernel32.def Modified: branches/xmlbuildsystem/reactos/lib/kernel32/kernel32.xml Modified: branches/xmlbuildsystem/reactos/lib/ntdll/ntdll.xml Modified: branches/xmlbuildsystem/reactos/lib/ntdll/rtl/i386/exception.c Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.cpp Modified: branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h
--- branches/xmlbuildsystem/reactos/drivers/net/afd/afd.def 2005-01-16 14:23:35 UTC (rev 13079) +++ branches/xmlbuildsystem/reactos/drivers/net/afd/afd.def 2005-01-16 16:18:52 UTC (rev 13080) @@ -1,7 +0,0 @@
-; Ancillary Function Driver - ReactOS Operating System - -LIBRARY AFDTEST.SYS - -EXPORTS - -; EOF
--- branches/xmlbuildsystem/reactos/drivers/net/afd/afd.xml 2005-01-16 14:23:35 UTC (rev 13079) +++ branches/xmlbuildsystem/reactos/drivers/net/afd/afd.xml 2005-01-16 16:18:52 UTC (rev 13080) @@ -1,5 +1,4 @@
<module name="afd" type="kernelmodedriver">
- <importlibrary definition="afd.def" />
<include base="afd">include</include> <include base="ReactOS">include/afd</include> <define name="__USE_W32API" />
--- branches/xmlbuildsystem/reactos/lib/kernel32/kernel32.def 2005-01-16 14:23:35 UTC (rev 13079) +++ branches/xmlbuildsystem/reactos/lib/kernel32/kernel32.def 2005-01-16 16:18:52 UTC (rev 13080) @@ -178,7 +178,7 @@
EnumCalendarInfoA@16 EnumCalendarInfoExA@16 EnumCalendarInfoExW@16
-EnumCalendarInfoW@16
+;EnumCalendarInfoW@16
EnumDateFormatsA@12 EnumDateFormatsExA@12 EnumDateFormatsExW@12 @@ -657,7 +657,7 @@
OpenMutexA@12 OpenMutexW@12 OpenProcess@12
-OpenProfileUserMapping@0
+;OpenProfileUserMapping@0
OpenSemaphoreA@12 OpenSemaphoreW@12 OpenThread@12 @@ -689,7 +689,7 @@
QueryPerformanceFrequency@4 QueueUserAPC@12 QueueUserWorkItem@12
-QueryWin31IniFilesMappedToRegistry@16
+;QueryWin31IniFilesMappedToRegistry@16
RaiseException@16 ReadConsoleA@20 ReadConsoleInputA@16
--- branches/xmlbuildsystem/reactos/lib/kernel32/kernel32.xml 2005-01-16 14:23:35 UTC (rev 13079) +++ branches/xmlbuildsystem/reactos/lib/kernel32/kernel32.xml 2005-01-16 16:18:52 UTC (rev 13080) @@ -9,6 +9,9 @@
<library>pseh</library> <library>rosrtl</library> <library>ntdll</library>
+ <linkerflag>-lgcc</linkerflag> + <linkerflag>-nostartfiles</linkerflag> + <linkerflag>-nostdlib</linkerflag>
<invoke module="wmc"> <input> <inputfile>kernel32.mc</inputfile>
--- branches/xmlbuildsystem/reactos/lib/ntdll/ntdll.xml 2005-01-16 14:23:35 UTC (rev 13079) +++ branches/xmlbuildsystem/reactos/lib/ntdll/ntdll.xml 2005-01-16 16:18:52 UTC (rev 13080) @@ -6,6 +6,7 @@
<library>rosrtl</library> <library>rtl</library> <library>string</library>
+ <linkerflag>-lgcc</linkerflag>
<directory name="csr"> <file>capture.c</file> <file>lpc.c</file>
--- branches/xmlbuildsystem/reactos/lib/ntdll/rtl/i386/exception.c 2005-01-16 14:23:35 UTC (rev 13079) +++ branches/xmlbuildsystem/reactos/lib/ntdll/rtl/i386/exception.c 2005-01-16 16:18:52 UTC (rev 13080) @@ -251,23 +251,6 @@
* @implemented */ VOID STDCALL
-RtlRaiseStatus(NTSTATUS Status) -{ - EXCEPTION_RECORD ExceptionRecord; - - DPRINT("RtlRaiseStatus(Status 0x%.08x)\n", Status); - - ExceptionRecord.ExceptionCode = Status; - ExceptionRecord.ExceptionRecord = NULL; - ExceptionRecord.NumberParameters = 0; - ExceptionRecord.ExceptionFlags = EXCEPTION_NONCONTINUABLE; - RtlRaiseException (& ExceptionRecord); -} - -/* - * @implemented - */ -VOID STDCALL
RtlUnwind(PEXCEPTION_REGISTRATION RegistrationFrame, PVOID ReturnAddress, PEXCEPTION_RECORD ExceptionRecord,
--- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.cpp 2005-01-16 14:23:35 UTC (rev 13079) +++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.cpp 2005-01-16 16:18:52 UTC (rev 13080) @@ -532,21 +532,60 @@
sourceFilename.c_str () ); }
-string
+void
MingwModuleHandler::GenerateLinkerCommand ( const Module& module, const string& linker, const string& linkerParameters, const string& objectFilenames ) const {
+ string targetName ( module.GetTargetName () );
string target ( FixupTargetFilename ( module.GetPath () ) ); string importLibraryDependencies = GetImportLibraryDependencies ( module );
- return ssprintf ( "%s %s -o %s %s %s %s\n", - linker.c_str (), - linkerParameters.c_str (), - target.c_str (), - objectFilenames.c_str (), - importLibraryDependencies.c_str (), - GetLinkerMacro ( module ).c_str () );
+ if ( module.importLibrary != NULL ) + { + static string ros_junk ( "$(ROS_TEMPORARY)" ); + string base_tmp = ros_junk + module.name + ".base.tmp"; + string junk_tmp = ros_junk + module.name + ".junk.tmp"; + string temp_exp = ros_junk + module.name + ".temp.exp"; + + fprintf ( fMakefile, + "\t%s %s -Wl,--base-file,%s -o %s %s %s %s\n", + linker.c_str (), + linkerParameters.c_str (), + base_tmp.c_str (), + junk_tmp.c_str (), + objectFilenames.c_str (), + importLibraryDependencies.c_str (), + GetLinkerMacro ( module ).c_str () ); + + fprintf ( fMakefile, + "\t${dlltool} --dllname %s --base-file %s --def %s --output-exp %s --kill-at\n", + targetName.c_str (), + base_tmp.c_str (), + FixupTargetFilename ( module.GetBasePath () + SSEP + module.importLibrary->definition ).c_str (), + temp_exp.c_str () ); + + fprintf ( fMakefile, + "\t%s %s %s -o %s %s %s %s\n\n", + linker.c_str (), + linkerParameters.c_str (), + temp_exp.c_str (), + target.c_str (), + objectFilenames.c_str (), + importLibraryDependencies.c_str (), + GetLinkerMacro ( module ).c_str () ); + } + else + { + fprintf ( fMakefile, + "\t%s %s -o %s %s %s %s\n\n", + linker.c_str (), + linkerParameters.c_str (), + target.c_str (), + objectFilenames.c_str (), + importLibraryDependencies.c_str (), + GetLinkerMacro ( module ).c_str () ); + }
} void @@ -1060,13 +1099,10 @@
importLibraryDependencies.c_str () ); string linkerParameters ( "-Wl,--subsystem,native -Wl,--entry,_DriverEntry@8 -Wl,--image-base,0x10000 -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -mdll" );
- string linkerCommand = GenerateLinkerCommand ( module,
- "${gcc}",
- linkerParameters,
- archiveFilename );
- fprintf ( fMakefile,
- "\t%s\n\n",
- linkerCommand.c_str () );
+ GenerateLinkerCommand ( module,
+ "${gcc}",
+ linkerParameters,
+ archiveFilename );
} else { @@ -1117,13 +1153,10 @@
importLibraryDependencies.c_str () ); string linkerParameters ( "-Wl,--subsystem,native -Wl,--entry,_DriverEntry@8 -Wl,--image-base,0x10000 -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -mdll" );
- string linkerCommand = GenerateLinkerCommand ( module,
- "${gcc}",
- linkerParameters,
- archiveFilename );
- fprintf ( fMakefile,
- "\t%s\n\n",
- linkerCommand.c_str () );
+ GenerateLinkerCommand ( module,
+ "${gcc}",
+ linkerParameters,
+ archiveFilename );
} else { @@ -1156,6 +1189,7 @@
static string ros_junk ( "$(ROS_TEMPORARY)" ); string target ( FixupTargetFilename ( module.GetPath () ) ); string workingDirectory = GetWorkingDirectory ( );
+ string objectFilenames = GetObjectFilenames ( module );
string archiveFilename = GetModuleArchiveFilename ( module ); string importLibraryDependencies = GetImportLibraryDependencies ( module ); @@ -1171,13 +1205,10 @@
importLibraryDependencies.c_str () ); string linkerParameters ( "-Wl,--subsystem,native -Wl,--entry,_DllMainCRTStartup@12 -Wl,--image-base,0x10000 -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -nostartfiles -nostdlib -mdll" );
- string linkerCommand = GenerateLinkerCommand ( module,
- "${gcc}",
- linkerParameters,
- archiveFilename );
- fprintf ( fMakefile,
- "\t%s\n\n",
- linkerCommand.c_str () );
+ GenerateLinkerCommand ( module,
+ "${gcc}",
+ linkerParameters,
+ objectFilenames );
} else { @@ -1225,13 +1256,10 @@
importLibraryDependencies.c_str () ); string linkerParameters ( "-Wl,--subsystem,console -Wl,--entry,_DllMain@12 -Wl,--image-base,0x10000 -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000 -mdll" );
- string linkerCommand = GenerateLinkerCommand ( module,
- "${gcc}",
- linkerParameters,
- archiveFilename );
- fprintf ( fMakefile,
- "\t%s\n\n",
- linkerCommand.c_str () );
+ GenerateLinkerCommand ( module,
+ "${gcc}",
+ linkerParameters,
+ archiveFilename );
} else { @@ -1279,13 +1307,10 @@
importLibraryDependencies.c_str () ); string linkerParameters ( "-Wl,--subsystem,windows -Wl,--entry,_WinMainCRTStartup -Wl,--image-base,0x00400000 -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000" );
- string linkerCommand = GenerateLinkerCommand ( module,
- "${gcc}",
- linkerParameters,
- objectFilenames );
- fprintf ( fMakefile,
- "\t%s\n\n",
- linkerCommand.c_str () );
+ GenerateLinkerCommand ( module,
+ "${gcc}",
+ linkerParameters,
+ objectFilenames );
} else {
--- branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h 2005-01-16 14:23:35 UTC (rev 13079) +++ branches/xmlbuildsystem/reactos/tools/rbuild/backend/mingw/modulehandler.h 2005-01-16 16:18:52 UTC (rev 13080) @@ -41,10 +41,10 @@
std::string GetCFlagsMacro ( const Module& module ) const; std::string GetObjectsMacro ( const Module& module ) const; std::string GetLinkerMacro ( const Module& module ) const;
- std::string GenerateLinkerCommand ( const Module& module,
- const std::string& linker,
- const std::string& linkerParameters,
- const std::string& objectFilenames ) const;
+ void GenerateLinkerCommand ( const Module& module,
+ const std::string& linker,
+ const std::string& linkerParameters,
+ const std::string& objectFilenames ) const;
void GenerateImportLibraryTargetIfNeeded ( const Module& module ) const; static FILE* fMakefile; private: