aboutsummaryrefslogtreecommitdiffstats
path: root/com32/elflink/ldlinux
Commit message (Collapse)AuthorAgeFilesLines
* SYSAPPEND: Fix space strippingDany St-Amant2015-01-051-1/+1
| | | | | | | | The description of SYSAPPEND for the DMI information states that the spaces are replaced by underscores, but this replacement does not occur in 6.03. Signed-off-by: Dany St-Amant <dany.ephemeral.2014@icloud.com> Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* Revert "ldlinux: Allow a held shift key to override UI as well as DEFAULT"H. Peter Anvin2014-06-101-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 7e7139788c8ac6ffbf474976ad4d1727e0677b9f. Requested by Ady <ady-sf@hotmail.com> who also requested the original patch: After some tests with MENU SHIFTKEY with different versions of Syslinux, I came to the conclusion that, at least for now, it would be better to undo commit 7e7139788c8ac6ffbf474976ad4d1727e0677b9f: "ldlinux: Allow a held shift key to override UI as well as DEFAULT" committed on Thu, 22 May 2014. Although the aforementioned commit makes the current 6.03 branch behave as version 4.xx, my tests show that the behavior is effectively inadequate and inconsistent. Although I had been previously nagging you in irc about maintaining backward compatibility of the "force-prompt" keys, I have to ask you to undo the aforementioned commit before the final release of 6.03 stable. The behavior of Syslinux 6.03 without this particular commit will slightly "break" with the prior "force-prompt" behavior as seen in 4.xx when using [vesa]menu.c32, but it will be more consistent and clean. Without this commit, the user can still avoid the automatic launch of the default label by the same means (the "escape" "shift" keys), which is the most important characteristic of MENU SHIFTKEY. Please consider this request before the release of 6.03 stable. Signed-off-by: H. Peter Anvin <hpa@zytor.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>
* ldlinux: Allow a held shift key to override UI as well as DEFAULTH. Peter Anvin2014-05-211-4/+1
| | | | | | | For compatibility with 4.xx, make a held shift escape to override UI as well as DEFAULT. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Centralize shift_is_held(), make it work to force the command linesyslinux-6.03-pre11H. Peter Anvin2014-04-201-2/+1
| | | | | | | Holding down shift is supposed to force a command line unless noescape is provided; make it behave that way. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Merge branch 'syslinux-5.xx' into master; fixes loadkeysGene Cumm2014-01-251-3/+2
|\ | | | | | | Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
| * ldlinux/readconfig.c: remove bail: from do_include()Gene Cumm2014-01-251-1/+0
| | | | | | | | Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
| * Add const qualifiers to loadleysGene Cumm2014-01-251-2/+2
| | | | | | | | Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
| * com32: Fix a bug on history of commands.Raphael S.Carvalho2013-09-301-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | Previously, even zero-length commands would be added to the history when they shoudn't, e.g: just typing enter. For example, if you type: FOO -> (ENTER) -> (ENTER), then to get FOO from the history you would have to press the UP key twice. It also saves a bit of memory. Signed-off-by: Raphael S.Carvalho <raphael.scarv@gmail.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * com32: Fix bugs on cmd_reverse_search (Triple fault dimension)Raphael S.Carvalho2013-09-301-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cmd_reverse_search has a bug that the variable cursor is updated even if a command wasn't found. If this happens, and the next key falls into the default case, memmove's size parameter would be a negative number. This bug can be reproduced by doing the following: On cmd_reverse_search (ctrl-r), type multiple keys at the same time. 'Enjoy' the triple fault and a screen of random colors. There is also a small bug that turns the task of using (ctrl-r) on the first command impossible. Previously, this command was discarded. Signed-off-by: Raphael S.Carvalho <raphael.scarv@gmail.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | com32: Fix a bug on history of commands.Raphael S.Carvalho2013-09-301-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | Previously, even zero-length commands would be added to the history when they shoudn't, e.g: just typing enter. For example, if you type: FOO -> (ENTER) -> (ENTER), then to get FOO from the history you would have to press the UP key twice. It also saves a bit of memory. Signed-off-by: Raphael S.Carvalho <raphael.scarv@gmail.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | com32: Fix bugs on cmd_reverse_search (Triple fault dimension)Raphael S.Carvalho2013-09-301-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | cmd_reverse_search has a bug that the variable cursor is updated even if a command wasn't found. If this happens, and the next key falls into the default case, memmove's size parameter would be a negative number. This bug can be reproduced by doing the following: On cmd_reverse_search (ctrl-r), type multiple keys at the same time. 'Enjoy' the triple fault and a screen of random colors. There is also a small bug that turns the task of using (ctrl-r) on the first command impossible. Previously, this command was discarded. Signed-off-by: Raphael S.Carvalho <raphael.scarv@gmail.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | video.h: we need one syslinux_force_text_mode() prototypeMatt Fleming2013-07-261-0/+1
| | | | | | | | | | | | | | | | | | Use the one from syslinux/video.h. This makes it easier to write unit tests for syslinux/load_linux.c without pulling in loads of core definitions from core/include/graphics.h. It can also be argued that syslinux_* symbols should have prototypes in syslinux/*.h files. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | Merge tag 'syslinux-5.11-pre3' into firmwaresyslinux-6.01-pre5Matt Fleming2013-06-281-23/+71
|\| | | | | | | | | | | | | syslinux-5.11-pre3 Conflicts: core/Makefile
| * ldlinux: fix INCLUDE regressionsyslinux-5.11-pre3Matt Fleming2013-06-271-22/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | We don't want to overwrite 'ConfigName' when parsing a config file via the INCLUDE directive, which commit 5447ef821 ("ldlinux: Always update ConfigName when opening a config file") failed to take into account. In the INCLUDE case we're only parsing config fragments, and not a main config file. Rename parse_one_config() to parse_main_config() to more accurately reflect when it should be invoked (i.e. not for INCLUDE). Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * core & menu: fix IPAPPEND/SYSAPPEND conversionGene Cumm2013-06-261-1/+1
| | | | | | | | | | | | Make both use the same functions. Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
* | Merge tag 'syslinux-5.11-pre2' into firmwareMatt Fleming2013-06-172-40/+47
|\| | | | | | | | | | | | | | | syslinux-5.11-pre2 Conflicts: core/elflink/load_env32.c version
| * cli: don't disable linewrap when redrawing the cmdlinesyslinux-5.11-pre2Matt Fleming2013-06-141-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It messes things up when we want to use printf(), for example when printing labels after the user has hit the TAB key. This fixes a bug where labels would be printed on a single line on the screen (with some being displayed off screen) when they should have been printed across multiple lines. I can't think of a reason to disable linerap when redrawing the command line - so let's not. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * ldlinux: fix loading of kbdmap filesMatt Fleming2013-06-131-9/+2
| | | | | | | | | | | | | | | | Use the canonical code sequence for opening the kbdmap file instead of referencing KernelName, which presumably is a remanent of the old assembly code. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * PATH: use a linked list internallysyslinux-5.11-pre1Matt Fleming2013-06-131-18/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In retrospect, choosing the colon character as the entry separator for the PATH directive was not a smart move, as that character is also used in TFTP-style paths. This conflict manifests as PXELINUX being unable to find and load files. An example dnsmasq log looks like, dnsmasq-tftp: sent /arch/boot/syslinux/lpxelinux.0 to 192.168.0.90 dnsmasq-tftp: file /arch/ldlinux.c32 not found dnsmasq-tftp: file /arch//ldlinux.c32 not found dnsmasq-tftp: file /arch//boot/isolinux/ldlinux.c32 not found dnsmasq-tftp: file /arch//isolinux/ldlinux.c32 not found dnsmasq-tftp: file /arch//boot/syslinuxldlinux.c32 not found dnsmasq-tftp: sent /arch//boot/syslinux/ldlinux.c32 to 192.168.0.90 dnsmasq-tftp: error 0 No error, file close received from 192.168.0.90 dnsmasq-tftp: failed sending /arch//boot/syslinux/ldlinux.c32 to 192.168.0.90 dnsmasq-tftp: sent /arch/boot/syslinux/archiso.cfg to 192.168.0.90 dnsmasq-tftp: sent /arch/boot/syslinux/whichsys.c32 to 192.168.0.90 dnsmasq-tftp: file /arch/libcom32.c32 not found dnsmasq-tftp: file /arch//libcom32.c32 not found dnsmasq-tftp: file /arch/libcom32.c32 not found dnsmasq-tftp: file /arch//arch//boot/syslinux/libcom32.c32 not found The last line of the log is the indication that there's a problem. Internally, Syslinux adds the location of ldlinux.c32 to PATH by querying the current working directory once ldlinux.c32 is successfully loaded. Under PXELINUX that means the initial PATH string will be, "::/arch/boot/syslinux/" The PATH parsing code doesn't know how to correctly parse the "::" string and hence, the file is searched for relative to the 210 dhcp option directory - /arch/. Implement PATH with a linked list which *greatly* simplifies the path code, and means we no longer have to parse strings backwards and forwards. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * ldlinux: fix serial port handling regressionMatt Fleming2013-06-121-1/+3
| | | | | | | | | | | | | | | | commit c4fa33189f1d ("serial: Clean up and abstract handling of serial ports") removed an assignment to 'port' in the config parsing code which is used to setup the serial ports. Restore the assignment. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * serial: Clean up and abstract handling of serial portsH. Peter Anvin2013-05-311-14/+2
| | | | | | | | | | | | | | | | | | | | | | The special handling of serial ports 0-3 meaning "look in a BIOS table" is at least officially BIOS-specific, so create an inline function and move it to bios.h. While we are at it, make the function look slightly less like converted assembly. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
| * serial: fix SERIAL directive for ports > 0Matt Fleming2013-05-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | There is a bug in the SERIAL directive parsing code that means that using a port other than the first (SERIAL 0) results in a non-working serial console. We need to use the serial port number from the config file to offset the BIOS I/O port base address, otherwise we always lookup the I/O port address for the first serial port instead of the one the user specified. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | ldlinux: use platform filename extensionMatt Fleming2013-05-162-5/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Users are starting to package all Syslinux versions on one boot medium and are running into problems because all versions of ldlinux have the same filename, ldlinux.c32. The version of ldlinux.c32 compiled for bios will not work with efi32 or efi64, and vice versa. What we need is a way for the Syslinux core to know exactly which filename to load. Use the following extensions for the corresponding platforms, .c32 - bios .e32 - efi32 .e64 - efi64 Now all ldlinux variants can be kept in the same directory without causing any conflicts. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | Merge tag 'syslinux-5.10-pre2' into for-hpa/elflink/firmwareMatt Fleming2013-03-225-40/+124
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | syslinux-5.10-pre2 Conflicts: NEWS com32/include/netinet/in.h com32/include/sys/cpu.h com32/lib/Makefile core/Makefile core/fs/diskio.c core/fs/pxe/pxe.h core/init.c core/mem/free.c core/mem/malloc.c mk/devel.mk version
| * ldlinux: Fixup lwip merge botchMatt Fleming2013-03-151-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The lwip merge changed the code for copying cmdline arguments from, strcpy(q, p); to this, do { *q++ = ch = *p++; } while (ch); which means 'p' no longer points at 'args'. Use 'args' explicitly for the case where we need to apply a filename extension, otherwise users end up seeing errors like, Failed to load COM32 file .c32 Reported-by: Mattias Schlenker <ms@mattiasschlenker.de> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * readconfig: Don't display "(null)" labels when hitting TABMatt Fleming2013-03-071-0/+3
| | | | | | | | | | | | | | | | | | It is entirely legitimate for a menu entry to have a NULL label or displayname. Since these entries are not used for execution, skip displaying them in print_labels() when hitting the TAB key. Reported-by: Bernd Blaauw <bblaauw@home.nl> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * ldlinux: Always update ConfigName when opening a config fileMatt Fleming2013-03-071-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | With the introduction of commit aa7dd29db684 ("ldlinux: Pass config filename as argv[1] to ldlinux.c32") we stopped using ConfigName to store the filename of the config file we intend to open in execute() since it interfered with the filesystem-specific open_config() implementations. But a side-effect of this change is that syslinux_config_file() no longer works if we explicitly pass a filename to parse_config_file(). The logical place to keep ConfigName in sync is in parse_config_file() since it's expected that all the filesystem-specific open_config() functions will fill out ConfigName for us. In the case where the filename is supplied by the caller, we need to fill it out ourselves. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * Merge branch 'lwip' into elflinkMatt Fleming2013-02-264-17/+72
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Welcome to Syslinux 5.10. Conflicts: NEWS com32/lib/Makefile com32/lib/sys/open.c com32/lib/syslinux/ipappend.c com32/modules/Makefile com32/modules/prdhcp.c core/Makefile core/cmdline.inc core/com32.inc core/comboot.inc core/configinit.inc core/fs/chdir.c core/fs/fs.c core/fs/pxe/dnsresolv.c core/fs/pxe/pxe.c core/fs/pxe/pxe.h core/idle.c core/include/ctype.h core/init.inc core/mem/init.c core/parseconfig.inc core/runkernel.inc core/syslinux.ld core/ui.inc doc/comboot.txt version
| * ldlinux: Don't discard cmdline arguments when executing labelsMatt Fleming2013-02-211-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | Don't throw away additional cmdline arguments when executing a label. Append them instead. Gene Cumm reports, When using the CLI and calling a LABEL "mylabel", specifying "mylabel options" does not pass "options" through to the kernel's command line. Reported-by: Gene Cumm <gene.cumm@gmail.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * ldlinux: Pass config filename as argv[1] to ldlinux.c32Matt Fleming2013-02-202-9/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of hijacking ConfigName use a more standard method of passing a config name to ldlinux.c32's main() function, via argc and argv. This allows us to actually call open_config() the first time ldlinux.c32 is executed even if the file system has already modified ConfigName. For example, pxelinux_configfile() parses the DHCP 209 option and fills out ConfigName before ldlinux.c32 is launched, but because the PXE code needs to do things with the path to the config file (such as parsing the DHCP 210 option), we need to leave the config mangling to open_config() and not try and lookup ConfigName from ldlinux. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * ldlinux: Append BOOT_IMAGE= to kernel cmdlineMatt Fleming2013-02-072-13/+6
| | | | | | | | | | | | | | | | Some users rely on the syntax of the kernel cmdline from 4.xx and this is currently different in 5.xx. Fix things to match the 4.xx syntax. Cc: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | Merge tag 'syslinux-5.01' into firmwaresyslinux-6.00-pre4Matt Fleming2013-01-298-124/+102
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: Makefile NEWS com32/cmenu/Makefile com32/elflink/ldlinux/Makefile com32/gfxboot/Makefile com32/gpllib/Makefile com32/include/sys/module.h com32/lib/Makefile com32/lib/sys/module/elf_module.c com32/menu/Makefile com32/rosh/Makefile com32/samples/Makefile core/init.c mk/elf.mk Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * ldlinux: Correct the attribute bit for foreground brightsyslinux-5.01Matt Fleming2013-01-251-1/+1
| | | | | | | | | | | | The foreground bright bit number is bit 3. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * ldlinux: Convert all UsingVGA uses with display_mask_vga()Matt Fleming2013-01-251-24/+35
| | | | | | | | | | | | | | | | | | | | Introduce display_mask_vga() which does the necessary converting of UsingVGA into a mask to be AND'd with DisplayMask. Also, apply TextAttribute when clearing the screen after we've seen a form feed. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * ldlinux: Fix serial output and delete eprintf()Matt Fleming2013-01-247-81/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tagging __syslinux_get_serial_info() with __constructor is pretty useless when the global variables it uses, such as SerialPort, etc, are assigned *after* the constructor has run. This constructor made sense when config parsing was done by the core, but parsing is now performed by ldlinux. We need to explicitly invoke the function to initialise __syslinux_serial_console_info once we've parsed any config files. eprintf.c was introduced in commit 086d698c642f ("ldlinux: Add eprintf() to print to VGA and serial") because printf() output wasn't appearing on the serial console. It turns out that the above __constructor confusion was the real bug. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * ldlinux: Don't update UsingVGA when we just want the valueMatt Fleming2013-01-241-8/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | There was a bug introduced when this code was copied from the old 4.x assembly implementation, we don't need to update UsingVGA everytime we read a character, we only need its value when comparing it against the DisplayMask. This bug caused every other character to be displayed when only writing to the text console, as well as other nasties such as making syslinux_force_text_mode() think it's in VGA mode even when it's in text mode. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * ldlinux: Dynamically allocate cmdline buffer to avoid overflowMatt Fleming2013-01-241-5/+3
| | | | | | | | | | | | | | | | Also, because we no longer pass the allocated buffer to __intcall() and friends we can use malloc() instead of lmalloc(), leaving precious low memory for other users. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * ldlinux: Clear screen on ASCII 12 (form feed) in DISPLAY fileMatt Fleming2013-01-241-0/+8
| | | | | | | | | | | | | | | | The ansi code won't handle \f the way we want, so we need to explicitly clear the screen and reset the cursor position, like the old 4.x code. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * Always strip all the modulesH. Peter Anvin2013-01-171-3/+3
| | | | | | | | | | | | | | | | Always strip the modules; they are too big unstripped. Specifically, we generate unstripped *.elf files, and then convert them to stripped *.c32 files. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
| * ldlinux: Perform chdir() before parsing configsyslinux-5.01-pre3Matt Fleming2013-01-161-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old 4.x behaviour for handling CONFIG directives of the form, CONFIG foo.cfg /bar was to lookup the absolute pathname of foo.cfg, then chdir to /bar and finally to parse foo.cfg. The 5.x behaviour reversed the chdir and parsing steps. This meant if foo.cfg's contents were simply, INCLUDE say.txt 4.x would include /bar/say.txt and 5.x would include /boot/syslinux/say.txt (assuming the current working directory was /boot/syslinux). What's even worse is that because of the way 'config_cwd' is used in 5.x we'd actually perform the chdir() operation after the first INCLUDE in foo.cfg, e.g. INCLUDE say.txt INCLUDE say.txt would include /boot/syslinux/say.txt and /bar/say.txt, respectively. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * ldlinux: Strip whitespace from LABEL directiveMatt Fleming2013-01-151-5/+11
| | | | | | | | | | | | | | Any LABEL directive arguments shouldn't include whitespace characters. If whitespace characters are needed use MENU LABEL. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | efi: Greatly simplify the EFI Scan Code handlingMatt Fleming2013-01-091-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | By adding the EFI Scan Codes to 'keycodes' in get_key.c, prefixed with the escape sequence '\0' to avoid clashes with ASCII characters, we can have all the input key decoding done in one place, allowing us to delete efi/keymap.h. Luckily there are no conflicts with the combined BIOS codes already present in 'keycodes', though if we were to add the EFI scan code for the pause key (0x48) that would conflict with the existing BIOS code for KEY_UP. Still, it shouldn't be necessary to add any more scan codes because it doesn't make sense for things like the mute key to be handled by Syslinux. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | Merge branch 'elflink' into firmwareMatt Fleming2013-01-082-24/+52
|\| | | | | | | | | | | | | | | | | | | | | Merge the changes since Syslinux-5.00. The main reason behind this merge is to pull in the following bug fix, commit 90b5864fc793 ("core/kaboom.c: Export __bad_SEG()"), which allows us to turn on debugging in mk/devel.mk without ldlinux.c32 failing to load. Conflicts: com32/elflink/ldlinux/Makefile version
| * ldlinux: Dynamically alloc memory for kernel and initrd filenamesMatt Fleming2013-01-041-19/+45
| | | | | | | | | | | | | | | | | | | | | | | | Absolutely no bounds checking is performed when copying filenames to 'cmdline_buf' and 'initrd_name' which means that sufficiently long strings will scribble over the stack. At best, the files will simply fail to load because the name is garbled. Allocate space for the cmdline at runtime to avoid these overflow problems. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * ldlinux: Don't delete ldlinux.c32 with 'make clean'Matt Fleming2013-01-041-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The documented command sequence for distributions wishing to package a Syslinux release is, make clean make installer Unfortunately, becaues ldlinux.c32 is deleted by 'make clean' the installer target fails like so, make[1]: *** No rule to make target `../com32/elflink/ldlinux/ldlinux.c32', needed by `ldlinuxc32_bin.c'. Stop. make: *** [installer] Error 2 Follow the example set by core/Makefile for ldlinux.sys, etc and add any build files that are required by the installers to $(BTARGET). $(BTARGET) only gets deleted when running 'make spotless'. Reported-by: László Házy <hazy_l@yahoo.com> Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * elflink: set the sonames of shared librariesH. Peter Anvin2013-01-031-1/+1
| | | | | | | | | | Set the sonames of shared libraries to the filename, so we don't end up with full pathnames embedded in the files.
* | Merge tag 'syslinux-5.00' into firmwaresyslinux-6.00-pre3Matt Fleming2012-12-0713-100/+332
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Delete 16-bit COMBOOT supportsyslinux-5.00Matt Fleming2012-12-062-3/+0
| | | | | | | | | | | | | | | | | | | | | | 16-bit COMBOOT files are no longer supported by Syslinux in 5.00 so delete all references and change any 32-bit COMBOOT image references to mention ELF instead. Some of the COMBOOT stuff is still used internally so we can't nuke core/comboot.inc yet, but that will disappear in a future release. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
| * Symbol export whitelistMatt Fleming2012-12-059-13/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>