|
From: Robert C. <rob...@it...> - 2001-10-15 14:07:24
|
----- Original Message ----- From: "Robert Collins" <rob...@it...> To: <ros...@re...> Sent: Monday, October 15, 2001 9:30 PM Subject: [ros-kernel] Re: Gcc and binutils release > All I know is that on Linux, 16 bit code for bootloaders is generated > and linked by the gcc-gas-ld toolchain. I can look into their makefiles > for you guys ... if you'd like. > Side question: Can someone remind me why making ReactOS multi-boot compliant so that Grub et al can boot it was a bad thing? - Grub should build under cygwin very happily. The makefiles would need a little tweaking for use under mingw without cygwin. --- and now onto the Main issue: generating boot code from gcc + binutils. Grub is built from gcc + binutils. http://savannah.gnu.org/cgi-bin/viewcvs/grub/grub/stage1/ contains the stage1 portion of Grub, which is the assembly code. They simply use -fno-builtin -nostdinc on the commandline to gcc to prevent accidentally pulling in a library header... So I can offer the following: It *is* possible with a standard x86 targeted gcc+recent binutils (all the ReactOS ones are ok) to generate 16 bit assembly suitable for bootstrapping a bootloader. I can see several options: 1) convert freeloader to use standard gcc+binutils as Grub does. 2) make ReactOS multiboot compliant so that it can be used with Grub or other multiboot bootloaders. then phase out freeloader, or make it a multiboot compliant bootloader. 3) Start from scratch under gcc+binutils. I suspect that 1) is actually quite easy and is the way to go... However you'll need to get gcc to support Intel asm memnomics or change to AT&T as it only supports AT&T by default. I'm sure there are patchs out there to give gcc Intel support, this came up somewhere else recently I think... maybe even here:}. Rob ==================================================== = To remove yourself from this mailing list, go to = = http://www.reactos.com/home/mailing.html = ==================================================== |