summaryrefslogtreecommitdiff
path: root/gpxe
Commit message (Collapse)AuthorAgeFilesLines
* Add gpxe/ to clean-up targetsGene Cumm2015-09-271-3/+1
| | | | | | | | 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>
* build: sort sources to build in a more deterministic wayPhilippe Coval2015-01-051-6/+6
| | | | | | | | | | | | | | | | | 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>
* Add per-firmware object directory supportMatt Fleming2012-10-161-8/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* The make files have undergone changes to support both i386 and x86_64 platforms.chandramouli narayanan2012-06-251-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* gpxe: Inhibit parallel makesyslinux-4.04-pre15H. Peter Anvin2011-04-011-1/+3
| | | | | | Don't parallel make the gpxe directory. Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
* gpxe: Make the build parallel-safesyslinux-4.04-pre14H. Peter Anvin2011-03-171-6/+9
| | | | | | | Make sure we don't have multiple build processes wrecking havoc in the gpxe directory. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* gpxelinux: Add new gpxelinuxk.0 target and pxelinuxk.gpxe scriptGene Cumm2011-02-142-1/+13
|
* gPXE: change heap size to 512KH. Peter Anvin2010-02-052-2/+18
| | | | | | Change heap size from 128K to 512K to accommodate larger TCP windows. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* gPXE: bump the window size to 64KH. Peter Anvin2010-02-042-2/+17
| | | | | | | | 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>
* gPXE: suppress the Ctrl+B bannersyslinux-3.85-pre5H. Peter Anvin2010-02-033-1/+31
| | | | | | | | 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>
* gpxelinux: use the cached DHCP packetH. Peter Anvin2010-02-021-0/+1
| | | | | | | 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>
* Update gPXE to version 1.0.0H. Peter Anvin2010-02-02683-9709/+64099
|
* gpxe: Don't use "lret $2" to return from an interruptH. Peter Anvin2009-04-143-13/+26
| | | | | | | | | | | | 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; add Intel notices where appropriateH. Peter Anvin2009-04-041-0/+1
| | | | | | | 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.7syslinux-3.74-pre3H. Peter Anvin2009-03-1166-16773/+772
|
* gPXE: remove obsolete and useless fileH. Peter Anvin2009-02-251-410/+0
|
* Update gPXE to version 0.9.6+ 277b84c6e7d49f3cf01c855007f591de8c7cb75fH. Peter Anvin2009-02-17430-13535/+45138
| | | | | | | | | 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.
* gPXE: build with NO_WERROR=1H. Peter Anvin2008-10-091-1/+1
| | | | | | | | -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>
* gPXE: merge gPXE 0.9.5H. Peter Anvin2008-10-0111-94/+209
| | | | | | | | | Merge gPXE 0.9.5 gpxe 8c3e95ce420c21e612dbed58fd74dbb01025643f gpxe-for-syslinux 1982e507d0159d83a542224d4203e964bbd16f7d Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* Update gPXE to version 0.9.4H. Peter Anvin2008-09-265-4/+7
| | | | | | | | | | 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>
* gPXE: remove the gPXE contrib directoryH. Peter Anvin2008-09-25152-20354/+0
| | | | | | | 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 gPXEsyslinux-3.72-pre8H. Peter Anvin2008-09-2520-97/+479
| | | | | | | | | Update gPXE to: gpxe-for-syslinux 0a1f463e8b3218803b42cd3940e90a7678de0b3e gpxe upstream 3392cfa7df58a5662417f25226cf75dedabeb750 Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* gPXE: enable NFS, FTP, HTTPSH. Peter Anvin2008-09-071-3/+3
| | | | | | | Enable the NFS, FTP, and HTTPS protocols in the gpxelinux.0 configuration. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* gPXE: update gPXE to current gitH. Peter Anvin2008-09-07102-982/+3803
| | | | | | | Update gPXE to current git. gpxe-for-syslinux e3ef2094cfa26f874c5f8dbd687eb311830efcf0 gpxe main tree 8223084afc206000312611a3fcfa30a28500d1a3
* Merge updated version of the gPXE codeH. Peter Anvin2008-08-1211-0/+4352
| | | | | | | Merge gPXE up to upstream git version gpxe-0.9.3-release-197-gff2b6a5 (ff2b6a512d7a4f351e48dc9a042099a1010342a3). Signed-off-by: H. Peter Anvin <hpa@zytor.com>
* gPXE: Missing files from gPXE syncsyslinux-3.70-pre30syslinux-3.70H. Peter Anvin2008-06-3010-0/+688
| | | | Files that should have been added before...
* gPXE: update gPXE to get rid of gpxe/src/ConfigH. Peter Anvin2008-06-3014-503/+335
| | | | | | 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.
* gpxe/Makefile: don't remove gpxelinux.0 for "make dist"H. Peter Anvin2008-06-271-1/+1
| | | | | After all, "make dist" is about producing the wrapped binaries for release.
* Fix "make clean", "make installer"H. Peter Anvin2008-06-271-1/+1
| | | | | | | | | | - "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.
* Update gPXE to current gitsyslinux-3.70-pre28H. Peter Anvin2008-06-2710-43/+72
| | | | | There are some build fixes which may be relevant, so pull in the latest gPXE git.
* gpxe: Separate rules for undionly.kpxe and gpxelinux.0H. Peter Anvin2008-06-271-3/+5
| | | | | To avoid confusion during subdirectory make, make the undionly.kpxe -> gpxelinux.0 conversion an explicit rule.
* gPXE: [a20] Send a null command to the KBC after changing A20syslinux-3.70-pre27H. Peter Anvin2008-06-271-0/+3
| | | | | | | | | | | | 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: update gpxe to latest gitH. Peter Anvin2008-06-1325-856/+1053
|
* Update gPXE from gPXE gitH. Peter Anvin2008-06-0463-743/+3156
|
* Shut up gpxe Makefiles when making spotlessH. Peter Anvin2008-05-291-1/+1
| | | | gpxe Makefiles are just way too loud, especially when just cleaning up.
* We're explicitly setting EMBEDDED_IMAGE, so leave src/Config unchangedH. Peter Anvin2008-05-291-5/+0
| | | | | Since we're explicitly setting EMBEDDED_IMAGE in gpxe/Makefile, no need to set src/Config.
* Move files out of root into core, dos, and utilsH. Peter Anvin2008-05-292-1/+38
| | | | | | | | 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-syslinuxH. Peter Anvin2008-03-3115-520/+970
| | | | | | Merge gpxe-for-syslinux up to commit 71c509be409820a12efeebf31f486e144c9efdae; upstream commit b107637008d15e00a4d95cdb5c8f5c11fda490f7.
* Add gPXE into the source tree; build unified imagesyslinux-3.70-pre7H. Peter Anvin2008-03-26771-0/+218901