grub/grub-core/kern
Andrei Borzenkov 67dba97e45 support modules without symbol table
all_video module does not have any code or data and exists solely for
.moddeps section to pull in dependencies. This makes all symbols unneeded.

While in current binutils (last released version as of this commit is 2.26)
``strip --strip-unneeded'' unintentionally adds section symbols for each
existing section, this behavior was considered a bug and changed in commit
14f2c699ddca1e2f706342dffc59a6c7e23e844c to completely strip symbol table
in this case.

Older binutils (verified with 2.17) and some other toolchains (at least
elftoolchain r3223M), both used in FreeBSD, remove symbol table in all_video
as well.

Relax run-time check and do not return error for modules without symbol table.
Add additional checks to module verifier to make sure such modules

a) have non-empty .moddeps section. Without either externally visible symbols
or .moddeps modules are completely useless and should not be built.

b) do not have any relocations.

Closes: 46986

v2: add run-time check for empty symbol table if relocations are present as
    suggested by Vladimir.
2016-02-03 20:34:55 +03:00
..
arm arm-efi: Reduce timer event frequency by 10 2016-01-07 20:54:20 +01:00
arm64 arm64: Add support for relocations needed for linaro gcc 2016-01-22 19:09:37 +01:00
efi tsc: Use alternative delay sources whenever appropriate. 2015-11-27 11:39:55 +01:00
emu Restore terminal settings on grub-emu exit. 2016-01-22 11:05:32 +01:00
generic rtc_get_time_ms.c (grub_rtc_get_time_ms): Avoid division by zero. 2015-01-21 17:42:14 +01:00
i386 i386: fix TSC calibration using PIT 2015-12-01 18:49:38 +03:00
ia64 * grub-core/kern/ia64/dl.c (grub_arch_dl_relocate_symbols): Add checks 2013-12-11 11:29:35 +01:00
ieee1275 i386-ieee1275: Increase maximum heap size to accomodate highres graphi tests 2016-01-22 10:12:43 +01:00
mips mips: Make the assembly-code N32-compatible. 2015-10-11 13:20:26 +02:00
powerpc Remove libgcc dependency. 2015-03-03 20:50:37 +01:00
sparc64 sparc64: Switch to more portable .org. 2015-02-21 20:32:03 +01:00
uboot Enable cache on ARM U-Boot port. 2013-12-23 05:01:58 +01:00
x86_64 Support grub-emu on x32 (ILP32 but with x86-64 instruction set) 2014-09-07 23:04:50 +01:00
xen Remove xen VFB. 2013-12-18 18:43:09 +01:00
acpi.c tsc: Use alternative delay sources whenever appropriate. 2015-11-27 11:39:55 +01:00
command.c Remove prio_list 2012-02-12 03:52:17 +01:00
compiler-rt.c ARM: provide __aeabi_memclr* and __aeabi_memcpy* symbols 2015-07-22 20:40:13 +02:00
corecmd.c * grub-core/kern/corecmd.c (grub_core_cmd_set): Use grub_env_get 2013-06-07 18:25:19 +02:00
device.c Remove nested functions from device iterators. 2013-01-20 15:52:15 +00:00
disk.c * grub-core/kern/disk.c: Fix potential overflow. 2013-12-21 13:23:37 +01:00
disk_common.c * grub-core/kern/disk_common.c: Clump disk size to 1EiB. 2014-08-10 11:27:36 +02:00
dl.c support modules without symbol table 2016-02-03 20:34:55 +03:00
elf.c kern/elf: Ignore cast-align warnings 2015-11-09 11:39:30 +01:00
elfXX.c kern/elf: fix unintended sign extension 2016-01-09 19:41:26 +03:00
env.c * grub-core/kern/env.c, include/grub/env.h: Change iterator through 2013-03-03 01:34:27 +01:00
err.c * grub-core/kern/misc.c (grub_abort): Make static 2013-10-27 14:13:39 +01:00
file.c Add comments to code for commit d313218 2015-11-07 13:01:23 +03:00
fs.c Remove nested functions from filesystem directory iterators. 2013-01-21 01:33:46 +00:00
list.c Remove prio_list. 2012-02-26 22:49:24 +01:00
main.c * grub-core/kern/main.c (grub_set_prefix_and_root): Set variable 2013-11-14 15:53:32 +01:00
misc.c Remove libgcc dependency. 2015-03-03 20:50:37 +01:00
mm.c * grub-core/kern/mm.c (grub_real_malloc): Decrease cut-off of moving the 2013-11-18 17:41:37 +01:00
parser.c kernel: print and reset grub_errno after each embedded config line 2015-12-16 21:20:30 +03:00
partition.c Remove nested functions from device iterators. 2013-01-20 15:52:15 +00:00
rescue_parser.c rescue_parser: restructure code to avoid Coverity false positive 2016-01-09 18:15:27 +03:00
rescue_reader.c Remove nested functions from script reading and parsing. 2013-01-15 12:03:25 +00:00
term.c Lift 255x255 erminal sie restriction to 65535x65535. Also change from 2013-10-19 23:59:32 +02:00
time.c automake commit without merge history 2010-05-06 11:34:04 +05:30
vga_init.c * grub-core/kern/vga_init.c: Fix compilation on qemu-mips. 2013-08-14 09:50:57 +02:00