On Mon, Feb 6, 2012 at 22:19, Keshav P R <[email protected]> wrote:
> On Mon, Feb 6, 2012 at 22:10, Keshav P R <[email protected]> wrote:
>> On Mon, Feb 6, 2012 at 22:08, Matthew Garrett <[email protected]> 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 | [email protected]
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
[email protected]
https://lists.gnu.org/mailman/listinfo/grub-devel