On Mon, Feb 6, 2012 at 22:19, Keshav P R <the.ridikulus....@gmail.com> wrote:
> On Mon, Feb 6, 2012 at 22:10, Keshav P R <the.ridikulus....@gmail.com> wrote:
>> On Mon, Feb 6, 2012 at 22:08, Matthew Garrett <mj...@srcf.ucam.org> wrote:
>>> On Mon, Feb 06, 2012 at 10:00:30PM +0530, Keshav P R wrote:
>>>> loader/i386/pc/plan9_module-plan9.o `test -f 'loader/i386/pc/plan9.c'
>>>> || echo './'`loader/i386/pc/plan9.c
>>>> loader/i386/pc/plan9.c: In function 'grub_cmd_plan9':
>>>> loader/i386/pc/plan9.c:420:9: error: too few arguments to function
>>>> 'grub_relocator_alloc_chunk_addr'
>>>> ../include/grub/relocator.h:34:1: note: declared here
>>>> loader/i386/pc/plan9.c:451:9: error: too few arguments to function
>>>> 'grub_relocator_alloc_chunk_addr'
>>>> ../include/grub/relocator.h:34:1: note: declared here
>>>> make[3]: *** [loader/i386/pc/plan9_module-plan9.o] Error 1
>>>>
>>>>
>>>> with all the three V2 patches applied in order (didn't try V1). No
>>>> error in x86_64-efi compile.
>>>
>>> Sigh. Sorry, I missed that the plan9 loader had been added. Just add a 0
>>> as an additional argument to grub_relocator_alloc_chunk_addr() in
>>> plan9.c.
>>>
>>
>> Any other files that require this change?
>>
>
> After applying the patch, "git grep -n
> grub_relocator_alloc_chunk_addr" shows, among them the to-be-changed
> files (I think)
>
> grub-core/loader/i386/coreboot/chainloader.c:71:  err =
> grub_relocator_alloc_chunk_addr (relocator, &ch,
> grub-core/loader/i386/pc/chainloader.c:168:    err =
> grub_relocator_alloc_chunk_addr (rel, &ch, 0x7C00,
> grub-core/loader/i386/pc/chainloader.c:173:    err =
> grub_relocator_alloc_chunk_addr (rel, &ch,
> grub-core/loader/i386/pc/plan9.c:419:    err =
> grub_relocator_alloc_chunk_addr (rel, &ch, GRUB_PLAN9_CONFIG_ADDR,
> grub-core/loader/i386/pc/plan9.c:450:    err =
> grub_relocator_alloc_chunk_addr (rel, &ch, GRUB_PLAN9_TARGET,
> grub-core/loader/i386/pc/pxechainloader.c:133:    err =
> grub_relocator_alloc_chunk_addr (rel, &ch, 0x7c00, imagesize);
>
>
>>> --
>>> Matthew Garrett | mj...@srcf.ucam.org

Patch attached that fixes the remaining files (atleast i386-pc build succeeds)

- Keshav
diff --git a/grub-core/loader/i386/coreboot/chainloader.c b/grub-core/loader/i386/coreboot/chainloader.c
index 3f85aa3..2bf0c6a 100644
--- a/grub-core/loader/i386/coreboot/chainloader.c
+++ b/grub-core/loader/i386/coreboot/chainloader.c
@@ -69,7 +69,7 @@ grub_chain_elf32_hook (Elf32_Phdr * phdr, grub_addr_t * addr, int *do_load)
 
   *do_load = 1;
   err = grub_relocator_alloc_chunk_addr (relocator, &ch,
-					 phdr->p_paddr, phdr->p_memsz);
+					 phdr->p_paddr, phdr->p_memsz, 0);
   if (err)
     return err;
 
diff --git a/grub-core/loader/i386/pc/chainloader.c b/grub-core/loader/i386/pc/chainloader.c
index 30b1e8b..9da0128 100644
--- a/grub-core/loader/i386/pc/chainloader.c
+++ b/grub-core/loader/i386/pc/chainloader.c
@@ -166,13 +166,13 @@ grub_chainloader_cmd (const char *filename, grub_chainloader_flags_t flags)
     grub_err_t err;
 
     err = grub_relocator_alloc_chunk_addr (rel, &ch, 0x7C00,
-					   GRUB_DISK_SECTOR_SIZE);
+					   GRUB_DISK_SECTOR_SIZE, 0);
     if (err)
       goto fail;
     bs = get_virtual_current_address (ch);
     err = grub_relocator_alloc_chunk_addr (rel, &ch,
 					   GRUB_MEMORY_MACHINE_PART_TABLE_ADDR,
-					   64);
+					   64, 0);
     if (err)
       goto fail;
     ptable = get_virtual_current_address (ch);
diff --git a/grub-core/loader/i386/pc/plan9.c b/grub-core/loader/i386/pc/plan9.c
index 169f83a..7de8c54 100644
--- a/grub-core/loader/i386/pc/plan9.c
+++ b/grub-core/loader/i386/pc/plan9.c
@@ -417,7 +417,7 @@ grub_cmd_plan9 (grub_extcmd_context_t ctxt, int argc, char *argv[])
     grub_relocator_chunk_t ch;
     grub_err_t err;
     err = grub_relocator_alloc_chunk_addr (rel, &ch, GRUB_PLAN9_CONFIG_ADDR,
-					   configsize);
+					   configsize, 0);
     if (err)
       goto fail;
     config = get_virtual_current_address (ch);
@@ -448,7 +448,7 @@ grub_cmd_plan9 (grub_extcmd_context_t ctxt, int argc, char *argv[])
     grub_err_t err;
 
     err = grub_relocator_alloc_chunk_addr (rel, &ch, GRUB_PLAN9_TARGET,
-					   memsize);
+					   memsize, 0);
     if (err)
       goto fail;
     mem = get_virtual_current_address (ch);
diff --git a/grub-core/loader/i386/pc/pxechainloader.c b/grub-core/loader/i386/pc/pxechainloader.c
index 30a4c24..e0d8e7c 100644
--- a/grub-core/loader/i386/pc/pxechainloader.c
+++ b/grub-core/loader/i386/pc/pxechainloader.c
@@ -130,7 +130,7 @@ grub_cmd_pxechain (grub_command_t cmd __attribute__ ((unused)),
   imagesize = grub_file_size (file);
   {
     grub_relocator_chunk_t ch;
-    err = grub_relocator_alloc_chunk_addr (rel, &ch, 0x7c00, imagesize);
+    err = grub_relocator_alloc_chunk_addr (rel, &ch, 0x7c00, imagesize, 0);
     if (err)
       goto fail;
     image = get_virtual_current_address (ch);
_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to