if test x$(TARGET_APPLE_LINKER) = x1; then \
$(MACHO2IMG) $< $@; \
else \
- $(TARGET_OBJCOPY) $(""" + cname(defn) + """_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .hash -R .dynsym -R .dynstr -R .rel.text $< $@; \
+ $(TARGET_OBJCOPY) $(""" + cname(defn) + """_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version $< $@; \
fi
""")
static void *initrd_mem;
static grub_addr_t initrd_mem_target;
static grub_size_t prot_init_space;
+static grub_uint32_t initrd_pages;
static struct grub_relocator *relocator = NULL;
static void *efi_mmap_buf;
static grub_size_t maximal_cmdline_size;
grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
int argc, char *argv[])
{
- grub_size_t size = 0, aligned_size = 0;
+ grub_size_t size = 0;
grub_addr_t addr_min, addr_max;
grub_addr_t addr;
grub_err_t err;
goto fail;
size = grub_get_initrd_size (&initrd_ctx);
- aligned_size = ALIGN_UP (size, 4096);
+
+ initrd_pages = (page_align (size) >> 12);
/* Get the highest address available for the initrd. */
if (grub_le_to_cpu16 (linux_params.version) >= 0x0203)
addr_min = (grub_addr_t) prot_mode_target + prot_init_space;
/* Put the initrd as high as possible, 4KiB aligned. */
- addr = (addr_max - aligned_size) & ~0xFFF;
+ addr = (addr_max - size) & ~0xFFF;
if (addr < addr_min)
{
{
grub_relocator_chunk_t ch;
err = grub_relocator_alloc_chunk_align (relocator, &ch,
- addr_min, addr, aligned_size,
- 0x1000,
+ addr_min, addr, size, 0x1000,
GRUB_RELOCATOR_PREFERENCE_HIGH,
1);
if (err)
initrd_ctx->nfiles++;
initrd_ctx->components[i].size
= grub_file_size (initrd_ctx->components[i].file);
- if (argc != 1)
- initrd_ctx->size += ALIGN_UP (initrd_ctx->components[i].size, 4);
+ initrd_ctx->size += ALIGN_UP (initrd_ctx->components[i].size, 4);
}
if (newc)