aboutsummaryrefslogtreecommitdiffstats
path: root/com32/elflink/ldlinux/adv.c
Commit message (Collapse)AuthorAgeFilesLines
* removing double l from auxilliaryGeert Stappers2016-06-071-1/+1
| | | | | | | This patch changes only strings, no program code. Reported-by: Ady <ady-sf@hotmail.com> Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* adv: Remove double defintionH. Peter Anvin2014-06-091-3/+1
| | | | | | | | __syslinux_adv_* symbols are now part of the core, so don't export them again elsewhere. This broke all uses of the ADV, including --once. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* Merge tag 'syslinux-5.00' into firmwaresyslinux-6.00-pre3Matt Fleming2012-12-071-2/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: Makefile com32/elflink/ldlinux/Makefile com32/lib/sys/module/elf_module.c core/cleanup.c core/comboot.inc core/conio.c core/fs/fs.c core/init.c core/mem/free.c core/mem/malloc.c core/timer.inc diag/geodsp/Makefile extlinux/main.c mk/embedded.mk modules/Makefile Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * Symbol export whitelistMatt Fleming2012-12-051-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Before modules were dynamically loaded the boundary between GPL and non-GPL code was implicit because of the separate link domains for each module. With dynamic modules we need an explicit whitelist of core symbols that non-GPL code can link against at runtime without needing to be re-licensed under the GPL. Mark such symbols with __export, so that it is explicitly clear which symbols in the core can be linked against by non-GPL code. Reduce the visibility of symbols in both the core and ldlinux.c32 with -fvisibility=hidden. __export changes the visibility to 'default'. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | Merge remote-tracking branch 'mfleming/elflink' into for-hpa/elflink/firmwareMatt Fleming2012-07-301-1/+5
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: Makefile com32/elflink/ldlinux/adv.c com32/elflink/ldlinux/kernel.c com32/elflink/ldlinux/ldlinux.c com32/include/bitsize/stddef.h com32/include/bitsize/stdint.h com32/include/stdint.h com32/include/sys/module.h com32/include/sys/x86_64/bitops.h com32/include/syslinux/linux.h com32/lib/Makefile com32/lib/sys/ansicon_write.c com32/lib/sys/module/elfutils.h com32/lib/sys/vesa/efi/fill.h com32/lib/syslinux/load_linux.c com32/lib/syslinux/serial.c com32/lib/syslinux/shuffle.c core/conio.c core/elflink/config.c core/elflink/load_env32.c core/graphics.c core/include/graphics.h core/init.c core/pxelinux.asm mk/elf.mk mk/lib.mk
| * ldlinux: Tag __syslinux_init() as __constructorMatt Fleming2012-04-171-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We don't need to have control over exactly when __syslinux_init() is executed, it just needs to be before we call syslinux_get_adv(). Let's apply the __constructor tag to __syslinux_init() so that it is executed before we enter ldlinux.c32's main(). This partially reverts commit 487b67a9ce ("ldlinux: Remove __constructor attribute") because we can now have __constructor functions in ldlinux. By not calling __syslinux_init() directly we also avoid the following build warning, ldlinux.c: In function ‘main’: ldlinux.c:131:2: warning: implicit declaration of function ‘__syslinux_init’ Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | efi: Add Auxiliary Data Vector supportChandramouli Narayanan2012-02-021-17/+2
|/ | | | | | | | | | | | Including deleting some ADV code that found its way into core/elflink. Also, move the __syslinux_adv_ptr and __syslinux_adv_size symbols out of ldlinux.c32 and into the core. Normally we don't want to move symbols into the core (as it increases the size), but we do in this case because the values for these symbols are firmware dependent. Signed-off-by: Chandramouli Narayanan <chandramouli.narayanan@intel.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* ldlinux: Remove __constructor attributeMatt Fleming2011-05-251-1/+1
| | | | | | | | | | The __constructor tag only makes sense in the core as the constructor functions are executed from load_env32(), before any modules have been loaded. Therefore, applying __constructor to code inside ldlinux is pointless as unless the functions are called explicitly, they will never be executed. Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
* ldlinux: Add support for Auxillary Data VectorMatt Fleming2011-05-251-1/+7
| | | | | | | | | | Move all the code for the ADV into ldlinux so that it doesn't have any dependencies on other modules. We also need a way to initialize the ADV from ldlinux, so add another vector to the comboot API. Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
* elflink: Move code out of core and into ldlinux.c32Matt Fleming2011-03-091-0/+49
Currently, there is a lot of code in core/elflink that is not strictly required for the core to function. There are benefits to keeping the core proper as small as possible, for example so that it can fit within a single 64K block on btrfs. So move the following pieces of code out of core/elflink and into a new ldlinux ELF module which will be automatically loaded by the core: - command line interface code - C configuration parser - refstr implementation - rest of the menu system Below are some measurements of the size of ldlinux.elf before and after this change. Before: text data bss dec hex filename 161328 10439 913468 1085235 108f33 core/ldlinux.elf After: text data bss dec hex filename 142423 10415 909500 1062338 1035c2 core/ldlinux.elf Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>