| Commit message (Collapse) | Author | Age | Files | Lines |
|\
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
| |
| |
| |
| |
| |
| | |
Conform to 8.3 filenames for essential files.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| | |
Set the sonames of shared libraries to the filename, so we don't end
up with full pathnames embedded in the files.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some Makefiles were still referring to libutil_com.a, even though we
stopped producing that file with commit 74518b8b691c ("elflink: Make
ELF the default object format"). Delete all references to avoid the
following install error,
install: cannot stat `libutil_com.a': No such file or directory
Remove the install target from com32/elflink as we no longer build any
of the test modules, and so don't need to install them.
Also, we need to add ldlinux.c32 to the list of modules that *must* be
installed for all targets, since it is required for Syslinux to
function correctly.
Reported-by: Dag Wieers <dag@wieers.com>
Reported-by: Michael D. Setzer II <mikes@kuentos.guam.net>
Signed-off-by: Matt Fleming <matt.fleming@intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
ldlinux currently requires the get_key() symbol, which means it has a
dependency on libutil_com.c32. ldlinux.c32 really should be a
standalone module so let's move get_key.c into ldlinux/.
However, moving get_key.c creates a new problem - native linux
applications such as com32/samples/keytest.c require the get_key()
symbol which is currently exported by libutil_lnx.a. To fix this, we
create a new native linux library that exports any required symbols
from ldlinux. With this change we need to update com32/Makefile so
that we build com32/elfink/ldlinux before com32/samples, and seeing as
ldlinux now has no dependencies, we may as well move it to the front
of $SUBDIRS.
Also, update elf_gen_dep.sh to skip ldlinux.c32 and not search for
dependencies for any of its unresolved symbols. This way, if anyone
inadvertently introduces a dependency that cannot be resolved by the
core, ldlinux.c32 will fail to load at runtime (which guarantees that
the newly introduced dependency won't go unnoticed).
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
com32/elflink/modules was originally created to house ELF modules and
keep them separate from the COM32 modules as the elflink branch was
being developed. However, this has inadvertently created a maintenance
nightmare because code was copied from elsewhere in the tree into
com32/elflink/modules, resulting in duplication. Bug fixes have been
going into the original code but have not been merged onto the elflink
branch, leaving the duplicate code in com32/elflink/modules buggy.
So let's delete this directory. There really is no reason to keep ELF
and COM32 modules separate because there's no reason to need both
COM32 and ELF modules to coexist. ELF is a far superior object file
format and all modules are not emitted as ELF objects.
Now that we're outputting ELF modules we can use dynamic memory
instead of the cs_bounce bounce buffer.
This commit requires a certain amount of shuffling for some
files. quicksort.c isn't a module and belongs as part of the util
library. cli.h belongs in com32/include so that other modules can make
use of the cli code in ldlinux.c32.
All libraries are now ELF shared libraries which are only loaded to
fixup unresolved symbols for executable modules and renamed from *.a
to *.c32. This reduces the runtime memory footprint because libraries
are only loaded when needed and because every executable no longer
gets its own copy of code/data (as it would if linking with a static
library). Also, remove MINLIBOBJS from libcom32.c32 because it is
already part of libcom32min.a and we don't want to have any duplicate
symbols between the core (which links with libcom32min.a) and
libcom32.c32.
Welcome to the New World Order of ELF modules!
Signed-off-by: Matt Fleming <matt.fleming@linux.intel.com>
|
|\
| |
| |
| |
| |
| |
| |
| | |
Resolved Conflicts:
com32/hdt/Makefile
com32/sysdump/Makefile
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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>
|
|/
|
|
|
|
|
| |
Use "menu hiddenkey" together with "menu hidden" for a one-keystroke
action.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
|
| |
Fix duplicate spotless target in com32/libutil/Makefile.
Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
| |
"make clean" must NOT remove stuff that "make installer" should not
rebuild. This is a somewhat unfortunate choice of naming, but that's
the way it is.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
| |
Cleanup and centralize the Makefile system even more.
Fix a gcc 4.3 incompatibility in memdisk (definition of strlen).
|
|
|
|
|
|
|
| |
Compile with -std=gnu99, this allows us to define initializers inside
for() loops, which makes certain kinds of ugly macros easier to write.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
| |
Begin the process of centralizing configurables.
Improve "make install" and "make netinstall"; add "make
extbootinstall".
|
|
|
|
|
|
|
|
| |
Move source files out of the root directory; the root is a mess and
has become virtually unmaintainable. The Syslinux core now lives in
core/; the Linux and generic utilities has moved into utils/, and
copybs.com has moved into dos/; it had to go somewhere, and it seemed
as good a place as any.
|
|
|
|
| |
-fstack-protector flag enabled by default.
|
|
|
|
|
| |
Use $(CC) in gcc_ok macro, not plain gcc. This seems to work, iff the
gcc_ok macro is declared with =, not :=
|
| |
|
|
|
|
|
| |
Use "-nostdinc -iwithprefix include" to prevent the inclusion of
system header files, but still permitting *compiler* header files.
|
|
|
|
|
| |
We need _GNU_SOURCE when compiling for Linux in enough places. Just
move it to the LNXCFLAGS definition in the Makefiles.
|
| |
|
|
|
|
|
|
| |
Add support for sha256crypt and sha512crypt to the library. Not yet
included in the menu system, need to decide if it's worth 10K or if
the code can be realistically compacted.
|
|
|
|
|
| |
Create NASMOPT variable, defaulting to -O9999. Mostly there to test
beta versions of NASM.
|
| |
|
|
|
|
|
|
| |
Compiling as root is highly discouraged, but some people do it anyway.
gcc_ok, however, can clobber /dev/null due to "-o /dev/null"; this is
bad. Instead, write a temporary file and delete it.
|
|
|
|
|
|
| |
Move <syslinux.h> to <syslinux/idle.h> since that was all that was there;
do_idle() in libutil can simply be a macro for syslinux_idle() or
sched_yield() as appropriate.
|
|
|
|
|
|
| |
Library support for constructing initramfs. This version is *not*
complete, as it doesn't take into account alignment requirements
properly.
|
|
|
|
|
| |
- Move the loadfile() routine into <syslinux/loadfile.h>.
- Actually use the loadfile() routine.
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
decoder work (necessary to handle encrypted passwords.) Simple
SHA-1 password generator in Perl.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|