1. 04 Mar, 2015 1 commit
    • Vladimir Serbinenko's avatar
      Remove libgcc dependency. · 064360e6
      Vladimir Serbinenko authored
      libgcc for boot environment isn't always present and compatible.
      libgcc is often absent if endianness or bit-size at boot is different
      from running OS.
      libgcc may use optimised opcodes that aren't available on boot time.
      So instead of relying on libgcc shipped with the compiler, supply
      the functions in GRUB directly.
      Tests are present to ensure that those replacement functions behave the
      way compiler expects them to.
      064360e6
  2. 09 Dec, 2013 1 commit
  3. 06 Dec, 2013 1 commit
  4. 22 Nov, 2013 1 commit
  5. 08 Nov, 2013 1 commit
  6. 16 Jul, 2013 1 commit
  7. 19 Jun, 2012 1 commit
  8. 22 May, 2012 1 commit
  9. 26 Feb, 2012 1 commit
  10. 08 Feb, 2012 1 commit
  11. 18 Jan, 2012 1 commit
  12. 08 Nov, 2011 1 commit
    • Vladimir 'phcoder' Serbinenko's avatar
      Support trampoline jumps on powerpc. · ed64e9e2
      Vladimir 'phcoder' Serbinenko authored
      	* grub-core/kern/dl.c (grub_dl_load_segments) [__powerpc__]: Follow
      	__ia64__ path.
      	(grub_dl_load_segments): Set mod->sz.
      	(grub_dl_flush_cache): Flush whole space occupied by module, not just
      	segments.
      	* grub-core/kern/ia64/dl.c (nopm): Make const while on it.
      	(jump): Likewise.
      	* grub-core/kern/powerpc/dl.c (grub_arch_dl_get_tramp_got_size): New
      	function.
      	(trampoline): New struct.
      	(trampoline_template): New const.
      	(grub_arch_dl_relocate_symbols): Create trampolines on overflow.
      	* include/grub/dl.h (grub_dl): Add sz element.
      	[__powerpc__]: Follow __ia64__.
      	(GRUB_ARCH_DL_TRAMP_ALIGN): Define on ppc.
      	(GRUB_ARCH_DL_GOT_ALIGN): Likewise.
      	(GRUB_ARCH_DL_TRAMP_SIZE): Likewise.
      	(grub_arch_dl_get_tramp_got_size) [__powerpc__]: New proto.
      ed64e9e2
  13. 18 Oct, 2011 1 commit
    • Vladimir 'phcoder' Serbinenko's avatar
      Make grub_prefix into module to fix the arbitrary limit and save · a97501d2
      Vladimir 'phcoder' Serbinenko authored
      	some space.
      
      	* grub-core/kern/emu/main.c (grub_prefix): Removed.
      	* grub-core/kern/i386/coreboot/startup.S (grub_prefix): Likewise.
      	* grub-core/kern/i386/efi/startup.S (grub_prefix): Likewise.
      	* grub-core/kern/i386/ieee1275/startup.S (grub_prefix): Likewise.
      	* grub-core/kern/i386/pc/startup.S (grub_prefix): Likewise.
      	* grub-core/kern/i386/qemu/startup.S (grub_prefix): Likewise.
      	* grub-core/kern/ia64/efi/startup.S (grub_prefix): Likewise.
      	* grub-core/kern/mips/startup.S (grub_prefix): Likewise.
      	* grub-core/kern/powerpc/ieee1275/startup.S (grub_prefix): Likewise.
      	* grub-core/kern/sparc64/ieee1275/crt0.S (grub_prefix): Likewise.
      	* grub-core/kern/x86_64/efi/startup.S (grub_prefix): Likewise.
      	* include/grub/ia64/efi/kernel.h: Removed.
      	* include/grub/kernel.h: New module type OBJ_TYPE_PREFIX.
      	(grub_prefix): Removed.
      	* include/grub/offsets.h (GRUB_KERNEL_I386_PC_PREFIX): Removed.
      	(GRUB_KERNEL_I386_PC_PREFIX_END): Likewise.
      	(GRUB_KERNEL_I386_QEMU_PREFIX): Likewise.
      	(GRUB_KERNEL_I386_QEMU_PREFIX_END): Likewise.
      	(GRUB_KERNEL_SPARC64_IEEE1275_PREFIX): Likewise.
      	(GRUB_KERNEL_SPARC64_IEEE1275_PREFIX_END): Likewise.
      	(GRUB_KERNEL_POWERPC_IEEE1275_PREFIX): Likewise.
      	(GRUB_KERNEL_POWERPC_IEEE1275_PREFIX_END): Likewise.
      	(GRUB_KERNEL_MIPS_LOONGSON_PREFIX): Likewise.
      	(GRUB_KERNEL_MIPS_LOONGSON_PREFIX_END): Likewise.
      	(GRUB_KERNEL_MIPS_QEMU_MIPS_PREFIX): Likewise.
      	(GRUB_KERNEL_MIPS_QEMU_MIPS_PREFIX_END): Likewise.
      	(GRUB_KERNEL_MIPS_ARC_PREFIX): Likewise.
      	(GRUB_KERNEL_MIPS_ARC_PREFIX_END): Likewise.
      	(GRUB_KERNEL_I386_EFI_PREFIX): Likewise.
      	(GRUB_KERNEL_I386_EFI_PREFIX_END): Likewise.
      	(GRUB_KERNEL_IA64_EFI_PREFIX): Likewise.
      	(GRUB_KERNEL_IA64_EFI_PREFIX_END): Likewise.
      	(GRUB_KERNEL_X86_64_EFI_PREFIX): Likewise.
      	(GRUB_KERNEL_X86_64_EFI_PREFIX_END): Likewise.
      	(GRUB_KERNEL_I386_COREBOOT_PREFIX): Likewise.
      	(GRUB_KERNEL_I386_COREBOOT_PREFIX_END): Likewise.
      	(GRUB_KERNEL_I386_MULTIBOOT_PREFIX): Likewise.
      	(GRUB_KERNEL_I386_MULTIBOOT_PREFIX_END): Likewise.
      	(GRUB_KERNEL_I386_IEEE1275_PREFIX): Likewise.
      	(GRUB_KERNEL_I386_IEEE1275_PREFIX_END): Likewise.
      	(GRUB_KERNEL_MACHINE_PREFIX): Likewise.
      	(GRUB_KERNEL_MACHINE_PREFIX_END): Likewise.
      	* grub-core/kern/main.c (grub_set_prefix_and_root): Retrieve grub_prefix
      	from module.
      	* util/grub-mkimage.c (image_target_desc): Removed prefix and
      	prefix_end.
      	(image_targets): Likewise.
      	(generate_image): Put prefix as a module.
      a97501d2
  14. 03 Sep, 2010 1 commit
    • Vladimir 'phcoder' Serbinenko's avatar
      Compress grub_prefix. · c8e7bf5f
      Vladimir 'phcoder' Serbinenko authored
      	* grub-core/boot/i386/pc/lnxboot.S: Use
      	GRUB_KERNEL_I386_PC_MULTIBOOT_SIGNATURE.
      	* grub-core/kern/i386/pc/startup.S: Move grub_prefix to compressed part.
      	* include/grub/offsets.h: Rename GRUB_MACHINE_DATA_END to
      	GRUB_MACHINE_PREFIX_END. All users updated.
      	(GRUB_KERNEL_I386_PC_PREFIX): Set to GRUB_KERNEL_I386_PC_RAW_SIZE.
      	(GRUB_KERNEL_I386_PC_PREFIX_END): Set to GRUB_KERNEL_I386_PC_PREFIX
      	+ 0x40.
      	(GRUB_KERNEL_I386_PC_RAW_SIZE): Decrease.
      	* util/grub-mkimage.c (image_target_desc): Change data_end to
      	prefix_end. All users updated.
      c8e7bf5f
  15. 06 May, 2010 1 commit