[ros-diffs] [hpoussin] 31017: Do not add twice a link to crt library

hpoussin at svn.reactos.org hpoussin at svn.reactos.org
Wed Dec 5 17:53:15 CET 2007


Author: hpoussin
Date: Wed Dec  5 19:53:14 2007
New Revision: 31017

URL: http://svn.reactos.org/svn/reactos?rev=31017&view=rev
Log:
Do not add twice a link to crt library

Modified:
    trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp

Modified: trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp?rev=31017&r1=31016&r2=31017&view=diff
==============================================================================
--- trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp (original)
+++ trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp Wed Dec  5 19:53:14 2007
@@ -2887,10 +2887,23 @@
 {
 }
 
+static bool
+LinksToCrt( Module &module )
+{
+	for ( size_t i = 0; i < module.non_if_data.libraries.size (); i++ )
+	{
+		Library& library = *module.non_if_data.libraries[i];
+		if ( library.name == "libcntpr" || library.name == "crt" )
+			return true;
+	}
+	return false;
+}
+
 static void
 MingwAddImplicitLibraries( Module &module )
 {
 	Library* pLibrary;
+	bool links_to_crt;
 
 	if ( module.type != Win32DLL
 	  && module.type != Win32OCX
@@ -2902,20 +2915,21 @@
 		return;
 	}
 
-	if ( module.name == "ntdll" )
-	{
-		// no implicit libraries
-		return;
-	}
+	links_to_crt = LinksToCrt ( module );
 
 	if ( !module.isDefaultEntryPoint )
 	{
 		if ( module.GetEntryPoint(false) == "0" )
 		{
-			pLibrary = new Library ( module, "mingw_common" );
-			module.non_if_data.libraries.insert ( module.non_if_data.libraries.begin() , pLibrary );
-			pLibrary = new Library ( module, "msvcrt" );
-			module.non_if_data.libraries.push_back ( pLibrary );
+			if ( !links_to_crt )
+			{
+				pLibrary = new Library ( module, "mingw_common" );
+				module.non_if_data.libraries.insert ( module.non_if_data.libraries.begin() , pLibrary );
+
+				pLibrary = new Library ( module, "msvcrt" );
+				module.non_if_data.libraries.push_back ( pLibrary );
+				links_to_crt = true;
+			}
 		}
 		return;
 	}
@@ -2934,7 +2948,7 @@
 	pLibrary = new Library ( module, "mingw_common" );
 	module.non_if_data.libraries.insert ( module.non_if_data.libraries.begin() + 1, pLibrary );
 
-	if ( module.name != "msvcrt" )
+	if ( !links_to_crt )
 	{
 		// always link in msvcrt to get the basic routines
 		pLibrary = new Library ( module, "msvcrt" );




More information about the Ros-diffs mailing list