|
From: | Andrei Warkentin |
Subject: | Re: GRUB2 Build on Mac OS X |
Date: | Thu, 8 Dec 2005 17:06:43 -0600 |
On Dec 8, 2005, at 4:01 PM, address@hidden wrote:
The Mac OS X GCC compiler will not build GRUB2, due static linking at address 0x2000; this error can be confirmed during the configure process. If I could build GRUB2 using the Mac OS X GCC, I would be able to build GRUB2 images from Mac OS X.
The OS X ld is not the GNU linker - so sure it can't link at 0x2000, it doesn't know what -T means. You would probably use some permutation of the -segaddr option. Moreover, OS X uses the Mach-O binary format, not ELF...
The binary I attempted the build using the cross compiler tool chain powerpc-elf, would have executed on PowerPC Linux, but I would not build due to the nested function support being disabled in the Apple GCC
I don't think I understand - you can build a bootstrap GCC targetted at powerpc-linux, from the sources obtained via official GNU ftp. There would not be any restrictions there... This would allow you to build powerpc-elf binaries needed by OF.
Since the GRUB2 tools built using a Linux GCC compiler will suffice at the moment, I can see why the team is not overly concerned with this issue. If GRUB2 is going to be portable(Mac OS X), then some changes will be needed to accomplish this goal.
I think it would be an interesting idea to allow the use of different toolsets to produce the boot-time files and the system utilities. This way, the boot-time stuff can be build as powerpc-elf, while the OS X system utilities can be built as Mach-O (well, not 'can' - should, there is no other way here).
If stack execution support is disabled in future releases of other operating systems, it will become an issue of nested functions implemented with stack execution, and less of an Apple GCC compiler issue.I do agree that more arguments will be needed on function calls if nested functions are not going to be used, if the list is willing to accept patches to address this issue.As far as the GRUB2 tools, binaries executed on the PowerPC platform only need to be pure ELF. I am not sure if creating Mach-O boot binaries will yield any benefits for bringing up a kernel. If GRUB2 is to be used on the Mac OS X operating system, the tools need to be Mach-O based.Andre-----Original Message----- From: Andrei Warkentin [mailto:address@hidden Sent: Thursday, December 8, 2005 08:10 PM To: 'The development of GRUB 2' Subject: Re: GRUB2 Build on Mac OS X I understand (still had my mind on GRUB 1 :)) - then looks like two GCC installations will be required to construct GRUB2 on OS X - one to generate OS X-hosted GRUB utilities (which will be Mach-O files), and one to generate ELF files that will be used in the booting process. On Dec 8, 2005, at 2:00 PM, Marco Gerards wrote:Andrei Warkentin <address@hidden> writes: Hi Andrei,There is another issue with GRUB2 on OS X which I am not sure has been brought up yet.Right now, AFAIK (but I haven't tested it), GRUB2 (the part that runsfrom OpenFrimware) can be built with a bootstrap powerpc-elf-targetted GCC hosted on OS X. However, the local GRUB2 binary (one that can run from OS X and perform installation and some such) needs to be compiled with the OS X compiler. Why? OS X doesn't use ELF - it uses Mach-O. If you want to be able to build GRUB2 in OS X withpurely the OS X GCC, then the build procedure must take into accountthe Mach-Ooutput format. AFAIK, new OpenFirmware versions (3.x) can boot Mach-Obinaries but I haven't had a chance to experiment with this yet.You mean the utilities like grub-setup, grub-mkimage, grub-emu, etc? They should be able to run on macos, right? Of perhaps I am missing your point.If those utilities can be build in a better way so nothing breaks andit will work on macos, I am quite interested in hearing how to solve that. Mach-O binaries for booting is a different subject. We rely on ELF files, grub-mkimage even creates ELF files and uses ELF load segments. Without it GRUB just won't work, unless grub-mkimage ischanged intensively. So it seems easier just to use ELFs in any case.-- Marco _______________________________________________ Grub-devel mailing list address@hidden http://lists.gnu.org/mailman/listinfo/grub-devel_______________________________________________ Grub-devel mailing list address@hidden http://lists.gnu.org/mailman/listinfo/grub-devel_______________________________________________ Grub-devel mailing list address@hidden http://lists.gnu.org/mailman/listinfo/grub-devel
[Prev in Thread] | Current Thread | [Next in Thread] |