Re: [PATCH] New object format

2009-08-09 Thread Bean
Hi, Update: Add support for i386-ieee1275, i386-qemu and i386-coreboot, now the x86 platform is complete, you can build either one of it in Linux/OSX/Windows: Note: grub-mkfont doesn't compile in OSX, so you should add --disable-grub-mkfont, grub-emu could also cause problem in OSX/Windows, you

Re: [PATCH] New object format

2009-08-07 Thread Bean
Hi, Update: Support 64-bit mach-o object files, now you can build i386-pc, i386-efi and x86_64-efi in OSX. Use PIC in x86_64-efi. Relocation R_X86_64_32S would cause problem in machine with 2G or more memory, the only way to get rid of it is to use large memory model, or use PIC. Large model is

Re: [PATCH] New object format

2009-08-05 Thread Bean
Hi, Update: Support mach-o object file, now you can compile grub2 in OSX using gcc 4.0 from Xcode. No other tool is needed except gcc and as. Tested ok with i386-pc and i386-efi. BTW, here are a list of issues of apple gcc 4.0: Local jumps with more that one digit (such as 10f, 10b) doesn't wo

Re: [PATCH] New object format

2009-07-31 Thread Bean
Hi, Update: Fix for i386-efi and x86_64-efi platform, now grub-mkimage works just like i386-pc, it linked the modules to form the runtime image instead of embedding them. -- Bean ___ Grub-devel mailing list Grub-devel@gnu.org http://lists.gnu.org/ma

Re: [PATCH] New object format

2009-07-30 Thread Bean
Hi, Update: Now change kernel.img to kernel.mod, and export symbol using GRUB_EXPORT instead of EXPORT_FUNC and EXPORT_VAR. grub-mkimage would link all modules files to generate core.img. The symbol list is generated by grub-mkimage, no need for symlist.c anymore. Here are some test results usin

Re: [PATCH] New object format

2009-07-28 Thread Bean
Hi, Update: Now global symbol must be defined using GRUB_EXPORT macro, otherwise it'd be removed from the module symbol list. I also add GRUB_EXPORT to modules in i386-pc platform. Some reason to define global symbols explicitly: For modules that consists of multiple files, some external functi

Re: [PATCH] New object format

2009-07-27 Thread Bean
Hi, Update: Now the attributes are stored inside mod file, for example, "fs:", "command:ls", etc. grub-symdb uses it to generate the list files automatically (fs.lst, partmap.lst, parttool.lst, command.lst, handler.lst). Don't use sed to scan source file, and eliminate the fs-*.lst, partmap-*.lst

Re: [PATCH] New object format

2009-07-25 Thread Bean
Hi, Update: New tool grub-mkrawimage, used to generate img file from object files directly, no need for ld and objcopy anymore. It inject the grub_bss_start and grub_bss_end symbol, so no need to check for them in configure.ac. Remove the memcpy alias in kern/misc.c, instead, it map memcpy to gr

Re: [PATCH] New object format

2009-07-22 Thread Bean
Hi, >> Oh, thanks for the note. In fact, we can use  GRUB_CPU_SIZEOF_LONG, >> its value is GRUB_TARGET_SIZEOF_LONG when building target, and >> SIZEOF_LONG when building utilities. > Wonderful idea. I'm researching this for a possible implementation of a > GRUB equivalent to the C99 fixed-length i

Re: [PATCH] New object format

2009-07-22 Thread Javier Martín
El mié, 22-07-2009 a las 21:34 +0800, Bean escribió: > 2009/7/22 Javier Martín : > > El mié, 22-07-2009 a las 19:12 +0800, Bean escribió: > >> Fix some wrong assumption in types.h and efi header files. For > >> example, grub_efi_uint_t is defined as unsigned long, but it should be > >> grub_uint64_

Re: [PATCH] New object format

2009-07-22 Thread Bean
2009/7/22 Javier Martín : > El mié, 22-07-2009 a las 19:12 +0800, Bean escribió: >> Fix some wrong assumption in types.h and efi header files. For >> example, grub_efi_uint_t is defined as unsigned long, but it should be >> grub_uint64_t in 64-bit EFI, this problem won't show previously as >> unsig

Re: [PATCH] New object format

2009-07-22 Thread Javier Martín
El mié, 22-07-2009 a las 19:12 +0800, Bean escribió: > Fix some wrong assumption in types.h and efi header files. For > example, grub_efi_uint_t is defined as unsigned long, but it should be > grub_uint64_t in 64-bit EFI, this problem won't show previously as > unsigned long is 64-bit in elf64 gcc,

Re: [PATCH] New object format

2009-07-22 Thread Bean
Update: Now fully support mingw-w64, the configure line is this: ./configure --with-platform=efi --target=x86_64-w64-mingw32 Compile ok in both XP64 and linux with mingw-w64 cross compiler, the generated grub.efi tested all right on macbook. Fix some wrong assumption in types.h and efi header f

Re: [PATCH] New object format

2009-07-21 Thread Bean
Update: Various bug fix Support EFI platform, i386-efi: both elf and pe are ok x86_64-efi: elf ok BTW, it's very closed to build x86_64-efi using pe64. In order to build it, you need to download mingw-w64, and link x86_64-w64-mingw32-gcc.exe to x86_64-gcc.exe, etc, then: ./configure CC=x86_64-gc

Re: [PATCH] New object format

2009-07-19 Thread Bean
On Sun, Jul 19, 2009 at 9:52 AM, Isaac Dupree wrote: > Bean wrote: >> >> Hi, >> >> This patch implement a new object format, the advantages are: >> >> Reduce size dramatically, some result: >> >> Size of all modules: >> >> original: 645575 >> new: 519093 > > [I thought I sent this message a few day

Re: [PATCH] New object format

2009-07-18 Thread Isaac Dupree
Bean wrote: Hi, This patch implement a new object format, the advantages are: Reduce size dramatically, some result: Size of all modules: original: 645575 new: 519093 [I thought I sent this message a few days ago, guess not?] What are the compressed-size comparisons? -Isaac