[ros-kernel] ReactOS 0.3.0 Release Plans
barubary at cox.net
Sat Sep 18 00:06:36 CEST 2004
>> - *Relocatable EXEs*
> Damn, where did you get this? To my best knowledge binutils support
> relocatable executables.
I never found a way, and neither did the ReactOS team. binutils seems to
assume that EXEs are never relocatable, while DLLs always are. Both
statements are false, though a non-relocatable DLL isn't very useful.
ntoskrnl.exe must always be relocatable, because it can run from either
80010000 or C0010000, at ntldr's (or whatever ReactOS's equivalent is)
option. Microsoft's ntoskrnl.exe is a relocatable EXE. Because binutils
isn't capable of making a relocatable EXE, ReactOS's ntoskrnl.exe is
actually a DLL.
With Microsoft's link.exe, the default is for DLLs to be relocatable and
everything else not. To force being not relocatable, use /FIXED. To force
being relocatable, used /FIXED:NO. /FIXED:NO is what is probably what is
used internally at Microsoft to build ntoskrnl.exe.
It is also known that Microsoft's Xbox development kit uses /FIXED:NO when
building the EXE of an Xbox application - it is subsequently converted from
EXE to XBE by "imagebld". Conversion to XBE changes the base address from
00400000 to 00020000, so naturally, the relocation information must be
present for it to do this.
More information about the Ros-kernel