[ros-diffs] [ros-arm-bringup] 34671: - Remove dependency on GCC-specific extension: the kernel sets the base address of NTDLL as the first argument of the user APC.

ros-arm-bringup at svn.reactos.org ros-arm-bringup at svn.reactos.org
Tue Jul 22 11:52:45 CEST 2008


Author: ros-arm-bringup
Date: Tue Jul 22 04:52:44 2008
New Revision: 34671

URL: http://svn.reactos.org/svn/reactos?rev=34671&view=rev
Log:
- Remove dependency on GCC-specific extension: the kernel sets the base address of NTDLL as the first argument of the user APC.

Modified:
    trunk/reactos/dll/ntdll/ldr/startup.c

Modified: trunk/reactos/dll/ntdll/ldr/startup.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/ntdll/ldr/startup.c?rev=34671&r1=34670&r2=34671&view=diff
==============================================================================
--- trunk/reactos/dll/ntdll/ldr/startup.c [iso-8859-1] (original)
+++ trunk/reactos/dll/ntdll/ldr/startup.c [iso-8859-1] Tue Jul 22 04:52:44 2008
@@ -21,8 +21,6 @@
 
 /* GLOBALS *******************************************************************/
 
-
-extern unsigned int _image_base__;
 
 static RTL_CRITICAL_SECTION PebLock;
 static RTL_CRITICAL_SECTION LoaderLock;
@@ -256,6 +254,7 @@
    WCHAR FullNtDllPath[MAX_PATH];
    SYSTEM_BASIC_INFORMATION SystemInformation;
    NTSTATUS Status;
+   PVOID BaseAddress = SystemArgument1;
 
    DPRINT("LdrpInit()\n");
    DPRINT("Peb %p\n", Peb);
@@ -398,7 +397,7 @@
 	 }
        memset(NtModule, 0, sizeof(LDR_DATA_TABLE_ENTRY));
 
-       NtModule->DllBase = (PVOID)&_image_base__;
+       NtModule->DllBase = BaseAddress;
        NtModule->EntryPoint = 0; /* no entry point */
        RtlCreateUnicodeString (&NtModule->FullDllName,
                                FullNtDllPath);



More information about the Ros-diffs mailing list