Author: ros-arm-bringup
Date: Sat Jul 12 20:56:20 2008
New Revision: 34444
URL:
http://svn.reactos.org/svn/reactos?rev=34444&view=rev
Log:
- Do NOT prepend _ to ARM entrypoints.
- Because of some ridiculously stupid design in LD, it seems if it cannot find a given
entrypoint, it SILENTLY ASSUMES you meant "Hi LD, please use my base address as my
entrypoint".
- As such, all our drivers were linked with the start address as the base address... for
the RAMDisk driver, this ended up being RamdiskAddDevice.
- When we started implementing RamdiskAddDevice, noticed that DriverEntry wasn't
actually getting called. Adding debug prints changed which function was called.
- Wasted a week, thanks LD.
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…
==============================================================================
--- trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp [iso-8859-1] (original)
+++ trunk/reactos/tools/rbuild/backend/mingw/modulehandler.cpp [iso-8859-1] Sat Jul 12
20:56:20 2008
@@ -2641,7 +2641,7 @@
string dependencies = linkDepsMacro + " " + objectsMacro;
string linkerParameters = ssprintf ( "-subsystem=native -entry=%s -image-base=%s
-file-alignment=0x1000 -section-alignment=0x1000 -shared",
- module.GetEntryPoint(true).c_str (),
+ module.GetEntryPoint(!(Environment::GetArch() ==
"arm")).c_str (),
module.baseaddress.c_str () );
GenerateLinkerCommand ( dependencies,
linkerParameters,
@@ -2690,7 +2690,7 @@
string dependencies = linkDepsMacro + " " + objectsMacro;
string linkerParameters = ssprintf ( "-subsystem=native -entry=%s -image-base=%s
-file-alignment=0x1000 -section-alignment=0x1000 -shared",
- module.GetEntryPoint(true).c_str (),
+ module.GetEntryPoint(!(Environment::GetArch() ==
"arm")).c_str (),
module.baseaddress.c_str () );
GenerateLinkerCommand ( dependencies,
linkerParameters,
@@ -2738,7 +2738,7 @@
string dependencies = linkDepsMacro + " " + objectsMacro;
string linkerParameters = ssprintf ( "-subsystem=native -entry=%s -image-base=%s
-file-alignment=0x1000 -section-alignment=0x1000 -shared",
- module.GetEntryPoint(true).c_str (),
+ module.GetEntryPoint(!(Environment::GetArch() ==
"arm")).c_str (),
module.baseaddress.c_str () );
GenerateLinkerCommand ( dependencies,
linkerParameters,
@@ -2786,7 +2786,7 @@
string dependencies = linkDepsMacro + " " + objectsMacro;
string linkerParameters = ssprintf ( "-subsystem=native -entry=%s -image-base=%s
-file-alignment=0x1000 -section-alignment=0x1000",
- module.GetEntryPoint(true).c_str (),
+ module.GetEntryPoint(!(Environment::GetArch() ==
"arm")).c_str (),
module.baseaddress.c_str () );
GenerateLinkerCommand ( dependencies,
linkerParameters,
@@ -2911,7 +2911,7 @@
string dependencies = linkDepsMacro + " " + objectsMacro;
string linkerParameters = ssprintf ( "-subsystem=console -entry=%s -image-base=%s
-file-alignment=0x1000 -section-alignment=0x1000 -shared",
- module.GetEntryPoint(true).c_str (),
+ module.GetEntryPoint(!(Environment::GetArch() ==
"arm")).c_str (),
module.baseaddress.c_str () );
GenerateLinkerCommand ( dependencies,
linkerParameters,
@@ -2953,7 +2953,7 @@
string dependencies = linkDepsMacro + " " + objectsMacro;
string linkerParameters = ssprintf ( "-subsystem=console -entry=%s -image-base=%s
-file-alignment=0x1000 -section-alignment=0x1000 -shared",
- module.GetEntryPoint(true).c_str (),
+ module.GetEntryPoint(!(Environment::GetArch() ==
"arm")).c_str (),
module.baseaddress.c_str () );
GenerateLinkerCommand ( dependencies,
linkerParameters,
@@ -3002,7 +3002,7 @@
string dependencies = linkDepsMacro + " " + objectsMacro;
string linkerParameters = ssprintf ( "-subsystem=console -entry=%s -image-base=%s
-file-alignment=0x1000 -section-alignment=0x1000",
- module.GetEntryPoint(true).c_str (),
+ module.GetEntryPoint(!(Environment::GetArch() ==
"arm")).c_str (),
module.baseaddress.c_str () );
GenerateLinkerCommand ( dependencies,
linkerParameters,
@@ -3051,7 +3051,7 @@
string dependencies = linkDepsMacro + " " + objectsMacro;
string linkerParameters = ssprintf ( "-subsystem=windows -entry=%s -image-base=%s
-file-alignment=0x1000 -section-alignment=0x1000",
- module.GetEntryPoint(true).c_str (),
+ module.GetEntryPoint(!(Environment::GetArch() ==
"arm")).c_str (),
module.baseaddress.c_str () );
GenerateLinkerCommand ( dependencies,
linkerParameters,
@@ -3673,7 +3673,7 @@
string dependencies = linkDepsMacro + " " + objectsMacro;
string linkerParameters = ssprintf ( "-subsystem=console -entry=%s -image-base=%s
-file-alignment=0x1000 -section-alignment=0x1000",
- module.GetEntryPoint(true).c_str (),
+ module.GetEntryPoint(!(Environment::GetArch() ==
"arm")).c_str (),
module.baseaddress.c_str () );
GenerateLinkerCommand ( dependencies,
linkerParameters,