aboutsummaryrefslogtreecommitdiffstats
path: root/com32/rosh
Commit message (Collapse)AuthorAgeFilesLines
* build: sort sources to build in a more deterministic wayPhilippe Coval2015-01-051-1/+1
| | | | | | | | | | | | | | | | | It has been observed that binaries contents are depending on the order of linked objects. This order is caused by GNU make's wildcard function and the position of sources on filesystem. This change tries to prevent this kind of randomness. Also consider building using -j1 flag to make it even more reproductible. Change-Id: Ie8eee7f336e6f1fa2863c4150d967afd15519f1d Bug: http://bugzilla.syslinux.org/show_bug.cgi?id=57#related Signed-off-by: Philippe Coval <philippe.coval at open.eurogiciel.org>
* Merge tag 'syslinux-5.01' into firmwaresyslinux-6.00-pre4Matt Fleming2013-01-291-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
| * Rename libutil_com.c32 to libutil.c32H. Peter Anvin2013-01-171-1/+1
| | | | | | | | | | | | Conform to 8.3 filenames for essential files. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* | Add per-firmware object directory supportMatt Fleming2012-10-162-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now that we have multiple firmware backends it no longer makes sense to write object files to the same directory as their source. A better solution is to write the object files to a per-firmware directory under a top-level object directory. The top-level object directory can be specified on the command-line with the O= variable, e.g. make O=/tmp/obj. If no top-level object directory is specified an 'obj' directory is created in the top-level of the Syslinux source repository. All the existing make targets continue to work as before, however now they apply to all firmware backends, e.g. 'make installer' will build the BIOS, 32-bit EFI and 64-bit EFI installers and place them under $(OBJ)/bios, $(OBJ)/efi32 and $(OBJ)/efi64 respectively. Note unlike every other bit of Syslinux, the gpxe objects are still kept in the src directory, e.g. gpxe/src, since gpxe is only required by the BIOS backend. It is possible to specify a make target for a specific firmware or list of firmware with the following syntax, make [firmware[,firmware]] [target[,target]] To clean the object directory for just the BIOS firmware type, 'make bios clean' To build both the 32-bit and 64-bit EFI installers type, 'make efi32 efi64 installer' Since the Syslinux make infrastructure is now more complex a new file doc/building.txt has been created to explain how to build Syslinux. The top-level Makefile now exports some make variables for use in module Makefiles, - topdir - the top-level source directory of the Syslinux repository, e.g. /usr/src/syslinux - objdir - the top-level object directory for the firmware backend currently being built, e.g. /obj/syslinux/bios - SRC - the source directory in the Syslinux repository for the module currently being built, e.g. /usr/src/syslinux/com32/libupload - OBJ - the object directory for the module currently being built, e.g. /obj/syslinux/bios/com32/libupload Since we're rewriting the Makefile infrastructure anyway it seemed like a good idea to add parallel support. By writing subdirectories as prequisites for make targets the objects in those subdirectories can be built in parallel. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* | rosh: Update default make targetMatt Fleming2012-10-161-2/+2
|/ | | | | | Put the 'all' target first so that rosh.c32 is built by default. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* com32: Use --as-needed for LDFLAGSMatt Fleming2012-07-201-2/+2
| | | | | | | | | | | | | | | | This extends commit 4678fd92a21e ("elflink: fix dependency problem in cmenu/Makefile") and basically reverts commit fb543aa635ff ("com32: Per-object file LDFLAGS"). By using the --as-needed ld argument we can specify all the required shared libraries for a directory, even if not all of the libraries are needed by every .c32 file. --as-needed takes care of only creating DT_NEEDED entries for the shared libraries that are actually required to resolve undefined symbols in a given module. Furthermore, by using $(LIBS) we create a dependency between .c32 files and their shared libraries, which allows multiple make jobs to run in parallel. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* com32: Per-object file LDFLAGSMatt Fleming2012-06-201-0/+2
| | | | | | | | | | | | | Some object files need to link against the ELF libraries. Allow them to be specified with the following syntax in the Makefiles, LDFLAGS_$(object_file) = $(LIBS) By adding libraries in this way DT_NEEDED entries are created in the ELF modules and the required library dependencies are automatically loaded before running the module. Signed-off-by: Matt Fleming <matt.fleming@intel.com>
* Makefile: Move Makefile fragments into mk/Matt Fleming2011-04-072-28/+2
| | | | | | | | | | | | | | | | | | Move the MCONFIG files into a mk/ directory and give them more descriptive names. This is purely a cosmetic change to make the 'include' directives a bit more coherent by making it obvious exactly which MCONFIG file we're including. For example, in com32/lua/src/Makefile we exchange the line, include ../../MCONFIG for the much more comprehensible, include $(MAKEDIR)/com32.mk Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
* com32/rosh/rosh.h: remove variables set but not usedH. Peter Anvin2011-03-161-0/+1
| | | | | | gcc 4.6 warns on variables set but not used, so remove them. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* com32/rosh/rosh.c: remove variables set but not usedH. Peter Anvin2011-03-161-4/+3
| | | | | | gcc 4.6 warns on variables set but not used, so remove them. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* rosh: 2 bug fixes; more debug codeGene Cumm2011-01-312-19/+33
| | | | | This fixes two issues when doing "ls -l"; directory entries with a directory argument were not qualified; stat() checked 1, not -1
* rosh: rosh_argcat now has length. if DO_DEBUG, show startup commandGene Cumm2010-10-161-8/+16
|
* rosh: display command entered and a command unknown message when not knownGene Cumm2010-10-161-20/+24
|
* rosh: add another item in the ToDos commentGene Cumm2010-10-131-0/+2
|
* rosh: Fix rosh_ls(); fix FTBFS on rosh_more(); add ROSH_DEBUG2_ARGV_V macroGene Cumm2010-10-092-7/+31
|
* rosh: Remove unneeded cases in rosh_command() switch statementsGene Cumm2010-10-091-2/+0
|
* rosh: Clean up rosh_command to remove old stuffGene Cumm2010-10-091-4/+0
|
* rosh: code cleanupGene Cumm2010-10-091-3/+2
|
* rosh: Change rosh_ls()/rosh_dir() to use argc/argv; use getopt()Gene Cumm2010-10-092-76/+47
|
* rosh: Change rosh_more()/rosh_less() to use argc/argvGene Cumm2010-10-091-26/+18
|
* rosh: remove cmdstr from rosh_pwd()Gene Cumm2010-10-091-9/+2
|
* rosh: clear errno before possibly using it. might be set by a previous callGene Cumm2010-10-091-2/+9
|
* rosh: Add argc/argv rosh_reboot(); Allow warm rebootsGene Cumm2010-10-091-7/+27
|
* rosh: In main, use string macro directlyGene Cumm2010-10-091-1/+1
|
* rosh: Change rosh_run() to use argc/argvGene Cumm2010-10-091-14/+13
|
* rosh: Change rosh_help() to use the string passed to it directlyGene Cumm2010-10-091-9/+6
|
* rosh: ROSH_DEBUG_ARGV_V in headerGene Cumm2010-10-091-2/+2
|
* rosh: convert rosh_cat() to argc/argvGene Cumm2010-10-091-18/+9
|
* rosh: Add function header comments that were missingGene Cumm2010-10-091-3/+24
|
* rosh: Fix warning on rosh_ls_arg(); remove rosh_echo() for rosh_pr_argv()Gene Cumm2010-10-091-2/+11
|
* rosh: Rename function as it's verboseGene Cumm2010-10-091-3/+3
| | | | | rosh_pr_argv and ROSH_DEBUG_ARGV are verbose, printing the argument number and single-quoted string out.
* rosh: closedir() only if actually openedGene Cumm2010-10-091-1/+1
|
* rosh: compact previous commitGene Cumm2010-10-091-2/+1
|
* rosh: Fix rosh_ls_arg() to prevent segfault on access deniedGene Cumm2010-10-091-1/+6
|
* rosh: main, prompt and command try to use argc/argv mostlyGene Cumm2010-10-091-23/+25
| | | | | prompt still uses a string but parses it and passes the parsed argc/argv pair to command. main doesn't need a string anymore
* rosh: rosh_cd fix DEBUGGene Cumm2010-10-091-0/+3
|
* rosh: fix errors in previous commitGene Cumm2010-10-092-2/+5
|
* rosh: change rosh_cd() to use argc/argvGene Cumm2010-10-092-18/+22
|
* rosh: Use internal parser for argc/argv; use argc/argv in rosh_commandGene Cumm2010-10-091-28/+29
|
* rosh: start parse_args(); prep for use; make print_argv()Gene Cumm2010-10-091-6/+93
| | | | | | | parse_args() for parsing a string into an argv/argc pair for easier parsing and the potential use of getopt(). print_argv() for printing an argv/argc pair to show functionality
* rosh: fix commented out WS usage in linux to grab screen sizeGene Cumm2010-10-091-2/+2
|
* rosh: add echoGene Cumm2010-10-091-5/+38
|
* rosh: show environmentGene Cumm2010-07-072-5/+35
|
* rosh: more remove unneeded checkGene Cumm2010-07-071-2/+2
|
* rosh: move ioctl.h include for Linux-onlyGene Cumm2010-07-071-1/+1
|
* rosh: bump buildGene Cumm2010-07-071-1/+1
|
* rosh: more: overallocation, better feedback for debugGene Cumm2010-07-071-3/+6
|
* rosh: make getscreensize more effective and usableGene Cumm2010-07-071-5/+16
|
* rosh: move scrbuf to more's main function; malloc and free oversize buffer.Gene Cumm2010-07-071-6/+12
|
* rosh: more: if it's the first line, dump it to screen for now even if it's ↵Gene Cumm2010-07-071-2/+3
| | | | too long