aboutsummaryrefslogtreecommitdiff
path: root/src/arch
diff options
context:
space:
mode:
authorMichael Brown <mcb30@ipxe.org>2012-11-02 14:46:39 +0000
committerMichael Brown <mcb30@ipxe.org>2012-11-02 14:46:39 +0000
commit4867085c0cd334004e8d67dff7bd53996f23ade6 (patch)
tree31f92c7844273c3b495c105a4c24d98dc54917ac /src/arch
parent0932bc5156bd88f773936ee5dac5d574ff921287 (diff)
downloadipxe-4867085c0cd334004e8d67dff7bd53996f23ade6.zip
ipxe-4867085c0cd334004e8d67dff7bd53996f23ade6.tar.gz
ipxe-4867085c0cd334004e8d67dff7bd53996f23ade6.tar.bz2
[build] Include version number within only a single object file
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/arch')
-rw-r--r--src/arch/i386/image/multiboot.c5
-rw-r--r--src/arch/i386/image/nbi.c11
-rw-r--r--src/arch/i386/interface/syslinux/comboot_call.c7
3 files changed, 15 insertions, 8 deletions
diff --git a/src/arch/i386/image/multiboot.c b/src/arch/i386/image/multiboot.c
index 8b8959e..3d6d2bf 100644
--- a/src/arch/i386/image/multiboot.c
+++ b/src/arch/i386/image/multiboot.c
@@ -39,6 +39,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <ipxe/init.h>
#include <ipxe/features.h>
#include <ipxe/uri.h>
+#include <ipxe/version.h>
FEATURE ( FEATURE_IMAGE, "MBOOT", DHCP_EB_FEATURE_MULTIBOOT, 1 );
@@ -247,7 +248,7 @@ static struct multiboot_info __bss16 ( mbinfo );
#define mbinfo __use_data16 ( mbinfo )
/** The multiboot bootloader name */
-static char __data16_array ( mb_bootloader_name, [] ) = "iPXE " VERSION;
+static char __bss16_array ( mb_bootloader_name, [32] );
#define mb_bootloader_name __use_data16 ( mb_bootloader_name )
/** The multiboot memory map */
@@ -420,6 +421,8 @@ static int multiboot_exec ( struct image *image ) {
mbinfo.cmdline = multiboot_add_cmdline ( image );
mbinfo.mods_addr = virt_to_phys ( mbmodules );
mbinfo.mmap_addr = virt_to_phys ( mbmemmap );
+ snprintf ( mb_bootloader_name, sizeof ( mb_bootloader_name ),
+ "iPXE %s", product_version );
mbinfo.boot_loader_name = virt_to_phys ( mb_bootloader_name );
if ( ( rc = multiboot_add_modules ( image, max, &mbinfo, mbmodules,
( sizeof ( mbmodules ) /
diff --git a/src/arch/i386/image/nbi.c b/src/arch/i386/image/nbi.c
index c516bb2..d3e523e 100644
--- a/src/arch/i386/image/nbi.c
+++ b/src/arch/i386/image/nbi.c
@@ -10,6 +10,7 @@
#include <ipxe/fakedhcp.h>
#include <ipxe/image.h>
#include <ipxe/features.h>
+#include <ipxe/version.h>
/** @file
*
@@ -94,12 +95,6 @@ struct ebinfo {
uint16_t flags; /* Bit flags */
};
-/** Info passed to NBI image */
-static struct ebinfo loaderinfo = {
- VERSION_MAJOR, VERSION_MINOR,
- 0
-};
-
/**
* Prepare a segment for an NBI image
*
@@ -281,6 +276,10 @@ static int nbi_boot16 ( struct image *image, struct imgheader *imgheader ) {
* @ret rc Return status code, if image returns
*/
static int nbi_boot32 ( struct image *image, struct imgheader *imgheader ) {
+ struct ebinfo loaderinfo = {
+ product_major_version, product_minor_version,
+ 0
+ };
int discard_D, discard_S, discard_b;
int rc;
diff --git a/src/arch/i386/interface/syslinux/comboot_call.c b/src/arch/i386/interface/syslinux/comboot_call.c
index 3eee584..fbf605f 100644
--- a/src/arch/i386/interface/syslinux/comboot_call.c
+++ b/src/arch/i386/interface/syslinux/comboot_call.c
@@ -39,12 +39,13 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <ipxe/serial.h>
#include <ipxe/init.h>
#include <ipxe/image.h>
+#include <ipxe/version.h>
#include <usr/imgmgmt.h>
#include "config/console.h"
#include "config/serial.h"
/** The "SYSLINUX" version string */
-static char __data16_array ( syslinux_version, [] ) = "\r\niPXE " VERSION;
+static char __bss16_array ( syslinux_version, [32] );
#define syslinux_version __use_data16 ( syslinux_version )
/** The "SYSLINUX" copyright string */
@@ -326,6 +327,10 @@ static __asmcall void int22 ( struct i386_all_regs *ix86 ) {
/* SYSLINUX derivative ID */
ix86->regs.dl = BZI_LOADER_TYPE_IPXE;
+ /* SYSLINUX version */
+ snprintf ( syslinux_version, sizeof ( syslinux_version ),
+ "\r\niPXE %s", product_version );
+
/* SYSLINUX version and copyright strings */
ix86->segs.es = rm_ds;
ix86->regs.si = ( ( unsigned ) __from_data16 ( syslinux_version ) );