grub/grub-core
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
..
boot mips: Make the assembly-code N32-compatible. 2015-10-11 13:20:26 +02:00
bus ahci, ehci: Fix typos 2016-01-16 20:37:15 +00:00
commands legacycfg: fix memory leaks and add NULL check 2016-01-16 20:34:02 +03:00
disk ahci, ehci: Fix typos 2016-01-16 20:37:15 +00:00
efiemu efiemu: Fix compilation failure 2016-01-22 14:10:30 +01:00
font Document intentional fallthroughs. 2015-01-27 17:17:58 +01:00
fs xfs: fix possible inode corruption in directory scan 2016-01-09 18:55:55 +03:00
gdb With Apple assembly in .macro environvemnt you have to use $$ instead 2013-11-24 07:08:18 +01:00
gettext * grub-core/gettext/gettext.c (main_context), (secondary_context): 2013-11-07 01:01:47 +01:00
gfxmenu gfxmenu: fix memory leak 2016-01-12 21:52:50 +03:00
gnulib update gnulib/argp-help.c to fix garbage in grub-mknetdir --help output 2015-03-05 20:19:47 +03:00
hello * grub-core/commands/gptsync.c: Fix typographic quoting. 2012-03-03 13:05:08 +01:00
hook * grub-core/hook/datehook.c (grub_read_hook_datetime): Small stylistic 2011-11-11 21:03:49 +01:00
io gzio: Optimize by removing division. 2015-02-26 22:10:09 +01:00
kern support modules without symbol table 2016-02-03 20:34:55 +03:00
lib Remove pragmas related to -Wunreachable-code 2016-01-20 15:56:55 +00:00
loader xen_boot: Remove obsolete module type distinctions. 2016-01-22 10:18:47 +01:00
mmap Translate UEFI persistent memory type 2015-12-15 10:25:34 +03:00
net tftp: fix memory leaks in open 2016-01-16 21:27:57 +03:00
normal normal: fix memory leak 2016-01-12 22:40:03 +03:00
osdep devmapper: check for valid device abstraction in get_grub_dev 2015-12-26 21:45:22 +03:00
partmap disk/ldm, partmap/msdos.c: fix spelling error 2015-08-22 21:22:41 +02:00
parttool * grub-core/net/http.c: Add TRANSLATORS comments. 2012-03-05 16:42:26 +01:00
script Remove pragmas related to -Wunreachable-code 2016-01-20 15:56:55 +00:00
term efi: fix warnings with recent GCC 2015-10-27 23:30:54 +03:00
tests arm: Ignore qemu clock bug 2016-01-22 10:12:43 +01:00
video jpeg: Optimise by replacing division with shifts. 2015-02-26 21:27:32 +01:00
gdb_grub.in * grub-core/gdb_grub.in: Fix overflow and wrong field. 2013-10-14 03:40:20 +02:00
genemuinit.sh use MODULE_FILES for genemuinit* instead of MOD_FILES 2014-01-18 23:15:40 +04:00
genemuinitheader.sh use MODULE_FILES for genemuinit* instead of MOD_FILES 2014-01-18 23:15:40 +04:00
genmod.sh.in Add missing BUILD_EXEEXT 2016-01-01 12:06:40 +03:00
genmoddep.awk genmoddep.awk: Add a test that we have no circular dependencies 2015-11-08 20:00:27 +01:00
gensyminfo.sh.in * grub-core/gensyminfo.sh.in: Handle the case of portable output 2013-11-11 23:05:53 +01:00
gensymlist.sh Make 'make check' work on emu. 2013-04-27 02:00:16 +02:00
gentrigtables.c * grub-core/gentrigtables.c: Make tables const. 2013-03-01 11:15:09 +01:00
gmodule.pl.in * grub-core/gmodule.pl.in: Accept newer binutils which output 2014-09-21 18:23:23 +02:00
gnulib-fix-null-deref.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
gnulib-fix-width.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
gnulib-no-abort.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
gnulib-no-gets.diff Import new gnulib. 2013-04-11 21:12:46 +02:00
Makefile.am Add missing BUILD_EXEEXT 2016-01-01 12:06:40 +03:00
Makefile.core.def tsc: Use alternative delay sources whenever appropriate. 2015-11-27 11:39:55 +01:00
modinfo.sh.in modinfo.sh.in: Add missing config variables. 2015-03-27 12:18:25 +01:00