Commit Graph
100 Commits
Author SHA1 Message Date
Vladimir Serbinenko 080603f0b0 Decrease stack usage in lexer.
We have only 92K of stack and using over 4K per frame is wasteful

	* grub-core/script/yylex.l (yyalloc), (yyfree), (yyrealloc): Declare
	as macros so that compiler would remove useless structure on stack.
	Better solution would be to fix flex not to put this structure on
	the stack but flex is external program.
2013-11-16 16:37:59 +01:00
Vladimir Serbinenko 4f84ae0ec8 Decrease stack usage in signature verification.
We have only 92K of stack and using over 4K per frame is wasteful

	* grub-core/commands/verify.c (grub_load_public_key): Allocate on heap
	rather than stack.
	(grub_verify_signature_real): Likewise.
2013-11-16 16:34:51 +01:00
Vladimir Serbinenko ab4366fd49 Merge branch 'master' of git.sv.gnu.org:/srv/git/grub
Conflicts:
	ChangeLog
2013-11-16 16:17:46 +01:00
Vladimir Serbinenko e6a6182d95 Decrease stack usage in mdraid 0.9x.
We have only 92K of stack and using over 4K per frame is wasteful

	* grub-core/disk/mdraid_linux.c (grub_mdraid_detect): Allocate on heap
	rather than stack.
2013-11-16 16:16:48 +01:00
Vladimir Serbinenko 1a454efe89 Decrease stack usage in BtrFS.
We have only 92K of stack and using over 4K per frame is wasteful

	* grub-core/fs/btrfs.c (grub_btrfs_lzo_decompress): Allocate on heap
	rather than stack.
2013-11-16 16:15:26 +01:00
Vladimir Serbinenko deaa7052c5 Decrease stack usage in BtrFS.
We have only 92K of stack and using over 4K per frame is wasteful

	* grub-core/fs/btrfs.c (grub_btrfs_lzo_decompress): Allocate on heap
	rather than stack.
2013-11-16 16:03:28 +01:00
Vladimir Serbinenko 7b5d51d837 Decrease stack usage in JFS.
We have only 92K of stack and using over 4K per frame is wasteful

	* grub-core/fs/jfs.c (getblk): Allocate on heap rather than on
	stack. Note: this function is recursive.
	(grub_jfs_read_inode): Read only part we care about.
2013-11-16 16:00:42 +01:00
Vladimir Serbinenko 6fcec43954 Replace libgcc version of ctz with our own.
On upcoming arm64 port libgcc ctz* are not usable in standalone
	environment. Since we need ctz* for this case and implementation is
	in C we may as well use it on all concerned platforms.
2013-11-15 03:28:34 +01:00
Vladimir Serbinenko a9f25a0819 * configure.ac: Probe for linking format rather than guessing it based
on target_os.
2013-11-14 23:17:18 +01:00
Vladimir Serbinenko c7995256e4 * grub-core/disk/xen/xendisk.c (grub_xendisk_fini): Set state to
"1" prior to handoff.

	Reported by: M A Young.
2013-11-14 22:42:54 +01:00
Vladimir Serbinenko e1aa5b6620 * grub-core/kern/xen/init.c (grub_xenstore_write_file): Don't add
\0 to all files.

	Reported by: M A Young.
2013-11-14 22:40:50 +01:00
Vladimir Serbinenko da5ed5cf6b * grub-core/osdep/bsd/hostdisk.c (grub_util_get_fd_size_os): Fix
compilation on NetBSD.
2013-11-14 22:38:36 +01:00
Vladimir Serbinenko 5757a93e01 * acinclude.m4: Don't add -P on initial nm test.
Note: even though this patch postdates Andrey's it bears 14 Nov as
	date due to timezone difference.
2013-11-14 22:37:20 +01:00
Vladimir Serbinenko deca601915 Merge branch 'master' of git.sv.gnu.org:/srv/git/grub 2013-11-14 22:28:03 +01:00
Vladimir Serbinenko da45f43ce3 * Makefile.am (default_payload.elf): Add uhci, ohci and usb_keyboard. 2013-11-14 18:41:41 +01:00
Vladimir Serbinenko 20aea9492f * configure.ac: Move nm checks to the end.
Call grub_PROG_NM_WORKS.
	* acinclude.m4: New check grub_PROG_NM_WORKS.
	Use $TARGET_CFLAGS -c when compiling test binary.
2013-11-14 17:39:01 +01:00
Vladimir Serbinenko 83e9c273e5 * grub-core/kern/efi/efi.c (grub_efi_get_filename): Reset the pointer
at the start of second iteration.
2013-11-14 15:50:43 +01:00
Vladimir Serbinenko ec525c18e1 * grub-core/Makefile.am (efiemu64.o): Explicitly set link format. 2013-11-14 12:05:48 +01:00
Vladimir Serbinenko 93fcc7ad73 * Makefile.am (default_payload.elf): New target for easier coreboot
build.
2013-11-14 11:28:38 +01:00
Vladimir Serbinenko 1d912bd3c9 Merge branch 'master' of git.sv.gnu.org:/srv/git/grub
Conflicts:
	ChangeLog
2013-11-14 10:05:54 +01:00
Vladimir Serbinenko 57ffe93485 * grub-core/kern/arm/cache_armv6.S: Remove special handling for
clang (not necessarry with -no-integrated-as).
	* include/grub/symbol.h [__arm__]: Likewise.
2013-11-14 10:05:19 +01:00
Vladimir Serbinenko 2312f06c30 * configure.ac: Use -no-integrated-as on arm with clang.
* INSTALL: Mention ARM compilation with clang.
2013-11-14 08:36:35 +01:00
Vladimir Serbinenko 2416415c53 * conf/Makefile.common (CCASFLAGS_PLATFORM) [COND_arm]: Add
-mthumb-interwork.
2013-11-14 08:34:54 +01:00
Vladimir Serbinenko e6050a683c Merge branch 'master' of git.sv.gnu.org:/srv/git/grub 2013-11-14 08:33:14 +01:00
Vladimir Serbinenko 2bdd07195c * grub-core/kern/arm/cache.c (probe_caches): Move asm part to ...
* grub-core/kern/arm/cache_armv6.S: ... here. This allows this
	asm to stay in arm even if surrounding is thumb.
2013-11-13 09:58:52 +01:00
Vladimir Serbinenko 5e77d9cfc1 * grub-core/kern/arm/misc.S: Add __muldi3 and __aeabi_lmul. Those
helper functions are needed for thumb.
2013-11-13 09:52:33 +01:00
Vladimir Serbinenko 7d5116251d * grub-core/disk/diskfilter.c (grub_diskfilter_make_raid): Make
level / 3 division explicitly unsigned. Saves few bytes.
2013-11-13 09:40:16 +01:00
Vladimir Serbinenko 81023dbdbd * grub-core/fs/zfs/zfs.c (ZAP_LEAF_NUMCHUNKS): Use unsigned arithmetics. 2013-11-13 09:27:36 +01:00
Vladimir Serbinenko b2e9294fb9 * grub-core/normal/datetime.c (grub_get_weekday): Use if rather than
division.
2013-11-13 09:26:13 +01:00
Vladimir Serbinenko 16a22c3851 * grub-core/kern/uboot/init.c: Move grub_uboot_machine_type and
grub_uboot_boot_data to asm part.
2013-11-13 06:28:15 +01:00
Vladimir Serbinenko c9cd02c965 * grub-core/kern/arm/uboot/startup.S: Remove = by replacing with
literal load.
	(grub_uboot_syscall): Save/restore r9 and align stack.
2013-11-13 06:27:03 +01:00
Vladimir Serbinenko 8149861554 * grub-core/kern/arm/cache.S: Replace = with explicit litteral load. 2013-11-13 06:23:32 +01:00
Vladimir Serbinenko ea57de18f8 * include/grub/symbol.h (END) [__arm__]: New macros. Replace all .end
occurencies with END.
2013-11-13 05:19:30 +01:00
Vladimir Serbinenko c773faf05e Revert " * include/grub/symbol.h (ADDR): New macro. Replace all occurences of"
This reverts commit 286551b4eb.
2013-11-13 02:17:20 +01:00
Vladimir Serbinenko 513eeb61dd * grub-core/kern/arm/cache_armv6.S [__clang__]: Don't add .armv6 when
compiling with clang.
2013-11-13 01:08:47 +01:00
Vladimir Serbinenko bc379c1aa1 * grub-core/kern/arm/uboot/startup.S: Use .org rather than assigning
".".
2013-11-13 01:06:30 +01:00
Vladimir Serbinenko 286551b4eb * include/grub/symbol.h (ADDR): New macro. Replace all occurences of
=x with ADDR(x) in arm assembly.
	(END): New macro. Replace all .end with END.
2013-11-13 01:04:56 +01:00
Vladimir Serbinenko 16057d6bbb Redirect all divisions to grub_divmod64. 2013-11-13 00:53:53 +01:00
Vladimir Serbinenko f649a6a8fd * grub-core/term/tparm.c (tparam_internal): Use unsigned divisions. 2013-11-13 00:51:06 +01:00
Vladimir Serbinenko ef28ee8bc1 Add missing includes of loader.h. 2013-11-13 00:43:03 +01:00
Vladimir Serbinenko 300f48c532 * configure.ac: Allow disabling themes. 2013-11-12 22:44:01 +01:00
Vladimir Serbinenko 0c62a5b28e * grub-core/term/at_keyboard.c: Don't poll non-functional AT controller
until it becomes operational.
2013-11-12 19:30:46 +01:00
Vladimir Serbinenko b0720b4988 * grub-core/Makefile.core.def (legacy_password_test): Disable
on platforms where no legacycfg is compiled.
	* grub-core/tests/lib/functional_test.c: Tolerate failure to
	load legacy_password_test.
2013-11-12 18:44:58 +01:00
Vladimir Serbinenko d5bab2c0e1 * grub-core/loader/i386/bsd.c: Remove variable length arrays. 2013-11-12 16:14:33 +01:00
Vladimir Serbinenko 3ea0ccb319 * grub-core/efiemu/prepare.c: Remove variable length arrays. 2013-11-12 16:12:28 +01:00
Vladimir Serbinenko 08772054e9 * grub-core/osdep/windows/hostdisk.c (grub_util_fd_strerror): Silence
strict-aliasing warning.
	(fsync): Silence cast warning.
2013-11-12 16:09:42 +01:00
Vladimir Serbinenko 1dcb27157d * grub-core/commands/verify.c: Remove variable length arrays.
Load gcry_dsa/gcry_rsa automatically.
2013-11-12 16:07:30 +01:00
Vladimir Serbinenko 61c22fdf36 * grub-core/tests/signature_test.c: New test. 2013-11-12 16:05:57 +01:00
Vladimir Serbinenko 431e57a797 * grub-core/disk/cryptodisk.c (luks_script_get): Adapt to new procfs
API.
2013-11-12 16:01:19 +01:00
Vladimir Serbinenko b521bb816d * grub-core/tests/legacy_password_test.c (vectors): Make static.
* grub-core/tests/pbkdf2_test.c (vectors): Likewise.
2013-11-12 15:59:58 +01:00
Vladimir Serbinenko 7d06b24eac * grub-core/tests/setjmp_test.c: Reset counter to 0 before starting. 2013-11-12 15:58:50 +01:00
Vladimir Serbinenko 3bbeade41d * grub-core/fs/proc.c: Allow \0 in proc files. 2013-11-12 15:57:09 +01:00
Vladimir Serbinenko ba82db7a0d * grub-core/tests/xnu_uuid_test.c: Fix assert message. 2013-11-12 14:11:34 +01:00
Vladimir Serbinenko 801564c804 * grub-core/tests/xnu_uuid_test.c: Fix copyright year. 2013-11-12 14:07:34 +01:00
Vladimir Serbinenko ac8cac1dac * grub-core/fs/ext2.c: Remove variable length arrays. 2013-11-12 03:04:19 +01:00
Vladimir Serbinenko 4b85f1228a * grub-core/lib/crypto.c (grub_crypto_cbc_decrypt): Remove variable
length arrays.
2013-11-12 02:49:17 +01:00
Vladimir Serbinenko c35fcdc0b7 * grub-core/disk/AFSplitter.c: Remove variable length arrays.
* grub-core/disk/cryptodisk.c: Likewise.
	* grub-core/disk/geli.c: Likewise.
	* grub-core/disk/luks.c: Likewise.
2013-11-12 02:48:02 +01:00
Vladimir Serbinenko 15decd26cc * grub-core/tests/legacy_password_test.c: New test.
* grub-core/commands/legacycfg.c: Remove variable length arrays.
2013-11-12 02:38:33 +01:00
Vladimir Serbinenko 9c6482b8d6 * grub-core/lib/pbkdf2.c: Remove variable length arrays. 2013-11-12 01:52:55 +01:00
Vladimir Serbinenko 41f26e0ebc * grub-core/tests/pbkdf2_test.c: New test. 2013-11-12 01:51:36 +01:00
Vladimir Serbinenko 2def66169e * grub-core/lib/xzembed/xz_dec_stream.c: Remove variable length arrays. 2013-11-12 01:26:56 +01:00
Vladimir Serbinenko 9e34a34e44 * grub-core/io/lzopio.c: Remove variable length arrays. 2013-11-12 01:25:03 +01:00
Vladimir Serbinenko 5ccaf90415 * include/grub/crypto.h: Add maximums on hash size and cipher block
size.
2013-11-12 01:20:45 +01:00
Vladimir Serbinenko 44a387e0ea * grub-core/commands/xnu_uuid.c: Remove variable length arrays. 2013-11-12 01:19:34 +01:00
Vladimir Serbinenko a388e25576 * grub-core/tests/xnu_uuid_test.c: New test. 2013-11-12 01:18:27 +01:00
Vladimir Serbinenko a1ef7718c9 * grub-core/commands/hashsum.c: Remove unneeded memset (zalloc already
covers it).
2013-11-12 00:58:46 +01:00
Vladimir Serbinenko 65ddb30016 * grub-core/commands/hashsum.c: Remove variable length arrays. 2013-11-12 00:52:54 +01:00
Vladimir Serbinenko 31747dd521 * grub-core/tests/gfxterm_menu.c (gfxterm_menu): Handle out-of-memory
condition.
	* tests/grub_func_test.in: Increase memory allocation.
2013-11-12 00:44:00 +01:00
Vladimir Serbinenko 6a74c4dfff * grub-core/osdep/unix/getroot.c [HAVE_STRUCT_STATFS_F_FSTYPENAME
&& HAVE_STRUCT_STATFS_F_MNTFROMNAME]: Include sys/param.h and
	sys/mount.h.
2013-11-11 23:10:30 +01:00
Vladimir Serbinenko 394c3e0ac2 * grub-core/osdep/apple/hostdisk.c (grub_util_get_fd_size): Rename to ..
(grub_util_get_fd_size_os): ...this.
	(grub_hostdisk_flush_initial_buffer): New empty function.
2013-11-11 23:08:51 +01:00
Vladimir Serbinenko 60d31116c2 * grub-core/gensyminfo.sh.in: Handle the case of portable output
without --defined-only.
2013-11-11 23:05:53 +01:00
Vladimir Serbinenko 8445b0115f * grub-core/lib/i386/relocator_common.S [__APPLE__ && __x86_64__]: Use
rip-relative addressing in prologue.
2013-11-11 23:02:51 +01:00
Vladimir Serbinenko 8506a64149 * include/grub/misc.h [__APPLE__]: Do not add regparm(0) on x86_64.
* grub-core/kern/misc.c (__bzero) [__APPLE__]: New function.
2013-11-11 22:53:30 +01:00
Vladimir Serbinenko 66acd9d64c * util/getroot.c (grub_util_biosdisk_get_grub_dev) [__APPLE__]:
Add missing semicolon.
2013-11-11 22:49:52 +01:00
Vladimir Serbinenko 348d05359c * util/grub-macho2img.c: Use plain fopen rather than grub_util_fopen. 2013-11-11 22:48:43 +01:00
Vladimir Serbinenko 0d2d30bb39 * configure.ac: Check for lzma.h for enabling liblzma and allow
manual disabling.
2013-11-11 22:47:48 +01:00
Vladimir Serbinenko 631187be8c Add missing includes of loader.h. 2013-11-11 02:30:09 +01:00
Vladimir Serbinenko 87d62d7d29 * grub-core/loader/i386/coreboot/chainloader.c (load_segment): Use
right buffer for temporary load.
2013-11-11 00:06:52 +01:00
Vladimir Serbinenko 5460cfeba8 * grub-core/loader/i386/coreboot/chainloader.c: Support tianocore. 2013-11-10 23:26:25 +01:00
Vladimir Serbinenko 8997730612 * grub-core/loader/i386/coreboot/chainloader.c: Support lzma-compressed
payload.
2013-11-10 20:53:27 +01:00
Vladimir Serbinenko 3617c59bab * include/grub/lib/LzmaDec.h: Fix to include LzmaTypes.h and
not Types.h.
	* grub-core/lib/LzmaDec.c: Fix prologue to make it compileable in GRUB
	environment.
	(LzmaDec_InitDicAndState): Make static.
2013-11-10 20:37:01 +01:00
Vladimir Serbinenko 881c6a1049 * util/grub-mkimagexx.c (generate_elf): Fix module address on coreboot. 2013-11-10 19:34:19 +01:00
Vladimir Serbinenko 2024ade285 * grub-core/term/ieee1275/escc.c (GRUB_MOD_INIT): Fix order of channels.
Reported by: Aaro Koskinen <aaro.koskinen@iki.fi>
2013-11-10 17:53:11 +01:00
Vladimir Serbinenko 674ad4f6bc * docs/grub-dev.texi: Replace bzr references with git ones. 2013-11-10 17:48:42 +01:00
Vladimir Serbinenko 3c2304d55f * configure.ac: Make efiemu test cflags match the cflags efiemu is
compiled with.
2013-11-10 14:46:13 +01:00
Vladimir Serbinenko 33690255c5 Fix grub_machine_fini bitrot.
Reported by: Glenn Washburn.
2013-11-10 13:33:26 +01:00
Vladimir Serbinenko c61471fc8b * configure.ac: Remove leftover -fnested-funcions -Wl,-allow_execute. 2013-11-10 13:24:06 +01:00
Vladimir Serbinenko 54da019fdb * grub-core/Makefile.am (efiemu): Remove leftover -DAPPLE_CC and
-DELF.
	* grub-core/efiemu/runtime/config.h: Use __i386__ and __x86_64__
	instead of ELF*.
2013-11-10 13:13:41 +01:00
Vladimir Serbinenko 28668d808e * configure.ac: Restore CFLAGS to TARGET_CFLAGS before external tests.
Add -march=core2 when testing compile of efiemu64.

	Thanks Andrey Borzenkov for spotting this.
2013-11-10 13:10:45 +01:00
Vladimir Serbinenko 9612ebc00e Add new ports: i386-xen and x86_64-xen. This allows running GRUB in
XEN PV environment and load kernels.
2013-11-09 21:29:11 +01:00
Vladimir Serbinenko 1a46a3a4b3 * grub-core/loader/i386/multiboot_mbi.c: Handle space in command line.
* grub-core/loader/multiboot_mbi2.c: Likewise.
2013-11-09 17:32:37 +01:00
Vladimir Serbinenko 2df1255117 * grub-core/lib/cmdline.c (grub_loader_cmdline_size): Fix empty cmdline
handling.
2013-11-09 17:31:21 +01:00
Vladimir Serbinenko 3c98038174 * grub-core/commands/i386/cmostest.c: Add new command "cmosset".
Tested by: Denis 'GNUtoo' Carikli.
2013-11-09 17:27:49 +01:00
Vladimir Serbinenko 800f63d38f * grub-core/normal/datetime.c (grub_get_weekday): Use unsigned types. 2013-11-08 19:14:03 +01:00
Vladimir Serbinenko 5620eb5332 * grub-core/gfxmenu/gui_circular_progress.c (parse_angle):
Use to get rounded angle rather than truncated.
2013-11-08 19:13:15 +01:00
Vladimir Serbinenko 9f8acdaa5d * grub-core/term/serial.c: Add option for enabling/disabling
RTS/CTS flow control.
2013-11-08 18:20:20 +01:00
Vladimir Serbinenko 2dc1eb6cbf * grub-core/lib/libgcrypt/cipher/idea.c (mul_inv): Remove signed
divisions.
2013-11-08 18:10:07 +01:00
Vladimir Serbinenko b9563c9451 * grub-core/lib/libgcrypt/mpi/mpih-div.c (_gcry_mpih_divrem):
Use grub_fatal rather than divide by zero.
	* grub-core/lib/libgcrypt/mpi/mpi-pow.c (gcry_mpi_powm): Likewise.
2013-11-08 16:33:48 +01:00
Vladimir Serbinenko d6d8e9a93e * include/grub/gui.h (grub_fixed_sfs_divide): Round rather than
truncate.
	(grub_fixed_fsf_divide): Likewise.
2013-11-08 16:17:29 +01:00
Vladimir Serbinenko d06de6c871 * grub-core/gfxmenu/gui_list.c (draw_scrollbar): Avoid
division by-zero and senseless negative divisions.
2013-11-08 15:44:39 +01:00