| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
gpxe/ has a lot of binary blobs after a spotless. Start the cleanup
measures. do-spotless-gpxe for bios target might be better in another
spot.
Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Pertinent changes are sprinkled through *.mk and Makefile in the syslinux tree.
Build architecture is specified at the command line via ARCH macro. This is to enable whether
one is building for the native platform or cross-building for a different architecture. Currently,
the only supported architectures via ARCH macro are i386 and x86_64.
There are some modules (e.g. memdump) that don't build under the EFI environment. To go forward
with efi boot support, a separate EFI_BUILD=1 macro has been added and is required to be
specified while building. This is a temporary solution for the current build environment.
example build:
On a x86_64 platform, the following cross-builds syslinux for i386
To build for i386: make EFI_BUILD=1 ARCH=i386
On a x86_64 platform, the following builds syslinux for x86_64
To build natively: make EFI_BUILD=1
Changes specific to GCC and LD options:
Architecture specific flags and include/search directories are set up for GCC and LD commands.
Internally, GCC options such as stack-boundary, PIC and machine architecture are set up
based on ARCH macro. While stack-boundary=2 is fine for i386, it does not work for x86_64
and so it is left to the default value. Using -fPIE with gcc does not work with ld on x86_64,
but -fPIC works fine. Similarly, target and elf options are set up for linking
as approrpriate for architecture.
Assumption about gnu-efi install path:
Since the EFI build supports both EFI32 and EFI64, the following assumptions
are made with regard to the installed location of gnu-efi on the build platform.
1. gnu-efi-ia32: assumed installed in /usr/local
[ EFI-32 include files in /usr/local/include/efi and gnu-efi library in /usr/local/lib/ ]
2. gnu-efi-x86_64: assumed installed in /usr
[ EFI-64 include files in /usr/include/efi and gnu-efi library in /usr/lib64/ ]
Remanants of the unused old i386-only files, if any, need to be pruned.
|
|
|
|
|
|
| |
Don't parallel make the gpxe directory.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
|
| |
Make sure we don't have multiple build processes wrecking havoc in the
gpxe directory.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| |
|
|
|
|
|
|
| |
Change heap size from 128K to 512K to accommodate larger TCP windows.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
| |
Change the window size from 4K to 64K to have at least a hope of sane
WAN performance. Retransmission cost is mostly related to timeouts,
not amount retransmitted, anyway.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
| |
Suppress the Ctrl+B banner and zero out the timeout. It's not very
useful for an integrated product, and very visually annoying on NBP
chainload.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
| |
gPXE 1.0.0 has support for using the cached DHCP packet from the
previous PXE stack, so do that rather than doing another DHCP.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Using "lret $2" to return from an interrupt causes interrupts to be
disabled in the calling program, since the INT instruction will have
disabled interrupts. Instead, patch CF on the stack and use iret to
return.
Interestingly, the original PC BIOS had this bug in at least one
place.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
| |
Update copyright notices. Per agreement with my new employer, Intel
Corporation, add Intel copyright notices where appropriate.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Update gPXE to version 0.9.6+, from commit
277b84c6e7d49f3cf01c855007f591de8c7cb75f in the main gPXE repository.
The only differences is src/config/general.h which has a few protocols
added, and src/arch/i386/prefix/boot1a.S which was called boot1a.s in
the upstream repository.
|
|
|
|
|
|
|
|
| |
-Werror is great for development, but is really bad for production
where one may encounter a number of different toolchains. This causes
diagnostic warnings to get promoted to build failures.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
| |
Merge gPXE 0.9.5
gpxe 8c3e95ce420c21e612dbed58fd74dbb01025643f
gpxe-for-syslinux 1982e507d0159d83a542224d4203e964bbd16f7d
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
|
| |
Update gPXE to release version 0.9.4.
gpxe-for-syslinux 6ef0d500df9e7c827352aca76a5e1966a5f29bfa
gpxe upstream 601d244a8e6dc742780060a9e0c48b91fa6c4524
(gpxe-0.9.4-release)
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
| |
Remove the gPXE contrib directory. We don't use it, and it causes
trouble with rpmbuild due to .spec files.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
| |
Update gPXE to:
gpxe-for-syslinux 0a1f463e8b3218803b42cd3940e90a7678de0b3e
gpxe upstream 3392cfa7df58a5662417f25226cf75dedabeb750
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
| |
Enable the NFS, FTP, and HTTPS protocols in the gpxelinux.0
configuration.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
| |
Update gPXE to current git.
gpxe-for-syslinux e3ef2094cfa26f874c5f8dbd687eb311830efcf0
gpxe main tree 8223084afc206000312611a3fcfa30a28500d1a3
|
|
|
|
|
|
|
| |
Merge gPXE up to upstream git version gpxe-0.9.3-release-197-gff2b6a5
(ff2b6a512d7a4f351e48dc9a042099a1010342a3).
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
| |
Files that should have been added before...
|
|
|
|
|
|
| |
gpxe/src/Config versus gpxe/src/config is a problem on case-deficient
filesystems; update to top of tree gPXE so we don't have that problem
anymore.
|
|
|
|
|
| |
After all, "make dist" is about producing the wrapped binaries for
release.
|
|
|
|
|
|
|
|
|
|
| |
- "make clean" should not clean up things that "make installer" cannot
regenerate.
- "make installer" should not descend into subdirectories which are
target only, e.g. com32 and sample.
The Linux platform stuff in com32 is old and bitrotted, and was only
for debugging in the first place. Just ignore it.
|
|
|
|
|
| |
There are some build fixes which may be relevant, so pull in the
latest gPXE git.
|
|
|
|
|
| |
To avoid confusion during subdirectory make, make the undionly.kpxe ->
gpxelinux.0 conversion an explicit rule.
|
|
|
|
|
|
|
|
|
|
|
|
| |
Send a null command, specifically "pulse outputs" with no outputs
selected, to the KBC after changing A20. This was apparently done by
DOS, presumably as a synchronization hack, and the authors of the UHCI
spec thought it was inherent. Therefore, there are systems out there
(e.g. HP DL360 G5) which will stop responsing to "legacy USB" unless
they see the null command, 0xFF, written to port 0x64 at the end of
the A20 toggling sequence.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| |
|
| |
|
|
|
|
| |
gpxe Makefiles are just way too loud, especially when just cleaning up.
|
|
|
|
|
| |
Since we're explicitly setting EMBEDDED_IMAGE in gpxe/Makefile, no
need to set src/Config.
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
Merge gpxe-for-syslinux up to commit
71c509be409820a12efeebf31f486e144c9efdae; upstream commit
b107637008d15e00a4d95cdb5c8f5c11fda490f7.
|
|
|