[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] [MBOOTPACK] Fix building mbootpack on x86/64.
# HG changeset patch # User kaf24@xxxxxxxxxxxxxxxxxxxx # Node ID 2e58022889a5d10cf425f7400764b83fea0acd61 # Parent a72fdb6a19a1fd65415773a5b6fa1aa39efacf63 [MBOOTPACK] Fix building mbootpack on x86/64. Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> --- tools/misc/mbootpack/Makefile | 17 +++++------------ tools/misc/mbootpack/buildimage.c | 19 ++++++++++--------- tools/misc/mbootpack/mbootpack.c | 20 +++++++++----------- 3 files changed, 24 insertions(+), 32 deletions(-) diff -r a72fdb6a19a1 -r 2e58022889a5 tools/misc/mbootpack/Makefile --- a/tools/misc/mbootpack/Makefile Thu Oct 05 10:55:13 2006 +0100 +++ b/tools/misc/mbootpack/Makefile Thu Oct 05 12:08:08 2006 +0100 @@ -20,12 +20,8 @@ install: build # Tools etc. RM := rm -f -GDB := gdb INCS := -I. -I- DEFS := -LDFLAGS := -CFLAGS += -Wpointer-arith -Wcast-qual -Wno-unused -Wno-format -CFLAGS += -Wmissing-prototypes -pipe # What object files need building for the program OBJS := mbootpack.o buildimage.o @@ -35,22 +31,22 @@ DEPS = .*.d DEPS = .*.d mbootpack: $(OBJS) - $(HOSTCC) -o $@ $(filter-out %.a, $^) + $(HOSTCC) $(HOSTCFLAGS) -o $@ $(filter-out %.a, $^) .PHONY: clean clean: $(RM) mbootpack *.o $(DEPS) bootsect setup bzimage_header.c bin2c bootsect: bootsect.S - $(CC) $(CFLAGS) $(INCS) $(DEFS) -D__MB_ASM -c bootsect.S -o bootsect.o + $(CC) -m32 $(INCS) $(DEFS) -D__MB_ASM -c bootsect.S -o bootsect.o $(LD) -m elf_i386 -Ttext 0x0 -s --oformat binary bootsect.o -o $@ setup: setup.S - $(CC) $(CFLAGS) $(INCS) $(DEFS) -D__MB_ASM -c setup.S -o setup.o + $(CC) -m32 $(INCS) $(DEFS) -D__MB_ASM -c setup.S -o setup.o $(LD) -m elf_i386 -Ttext 0x0 -s --oformat binary setup.o -o $@ bin2c: bin2c.o - $(HOSTCC) -o $@ $^ + $(HOSTCC) $(HOSTCFLAGS) -o $@ $^ bzimage_header.c: bootsect setup bin2c ./bin2c -n 8 -b1 -a bzimage_bootsect bootsect > bzimage_header.c @@ -59,11 +55,8 @@ buildimage.c: bzimage_header.c buildimage.c: bzimage_header.c @ -%.o: %.S - $(HOSTCC) $(DEPFLAGS) $(CFLAGS) $(INCS) $(DEFS) -c $< -o $@ - %.o: %.c - $(HOSTCC) $(DEPFLAGS) $(CFLAGS) $(INCS) $(DEFS) -c $< -o $@ + $(HOSTCC) $(DEPFLAGS) $(HOSTCFLAGS) $(INCS) $(DEFS) -c $< -o $@ .PRECIOUS: $(OBJS) $(OBJS:.o=.c) $(DEPS) .SUFFIXES: diff -r a72fdb6a19a1 -r 2e58022889a5 tools/misc/mbootpack/buildimage.c --- a/tools/misc/mbootpack/buildimage.c Thu Oct 05 10:55:13 2006 +0100 +++ b/tools/misc/mbootpack/buildimage.c Thu Oct 05 12:08:08 2006 +0100 @@ -24,8 +24,6 @@ * $Id: buildimage.c,v 1.2 2005/03/23 10:39:19 tjd21 Exp $ * */ - - #include <assert.h> #include <stdio.h> @@ -77,20 +75,22 @@ /* Bring in the bzImage boot sector and setup code */ #include "bzimage_header.c" +#define _p(x) ((void *)(unsigned long)(x)) + address_t place_mbi(long int size) /* Find space at the top of *low* memory for the MBI and associated red tape */ { address_t start; start = 0xa000 - size; if (start < 0x9000 + sizeof(bzimage_bootsect) + sizeof(bzimage_setup)) { - printf("Fatal: command-lines too long: need %i, have %i bytes\n", + printf("Fatal: command-lines too long: need %ld, have %ld bytes\n", size, - 0x1000 - (sizeof(bzimage_bootsect) + sizeof(bzimage_setup))); - exit(1); + 0x1000L - (sizeof(bzimage_bootsect) + sizeof(bzimage_setup))); + exit(1); } if (!quiet) { printf("Placed MBI and strings (%p+%p)\n", - start, size); + _p(start), _p(size)); } return start; } @@ -108,7 +108,7 @@ void make_bzImage(section_t *sections, /* Patch the kernel and mbi addresses into the setup code */ *(address_t *)(bzimage_setup + BZ_ENTRY_OFFSET) = eswap(entry); *(address_t *)(bzimage_setup + BZ_MBI_OFFSET) = eswap(mbi); - if (!quiet) printf("Kernel entry is %p, MBI is %p.\n", entry, mbi); + if (!quiet) printf("Kernel entry is %p, MBI is %p.\n",_p(entry), _p(mbi)); /* Write out header and trampoline */ if (fseek(fp, 0, SEEK_SET) < 0) { @@ -127,8 +127,9 @@ void make_bzImage(section_t *sections, exit(1); } - if (!quiet) printf("Wrote bzImage header: %i + %i bytes.\n", - sizeof(bzimage_bootsect), sizeof(bzimage_setup)); + if (!quiet) printf("Wrote bzImage header: %ld + %ld bytes.\n", + (long)sizeof(bzimage_bootsect), + (long)sizeof(bzimage_setup)); /* Sorted list of sections below 1MB: write them out */ for (s = sections, i = 0; s; s = s->next) { diff -r a72fdb6a19a1 -r 2e58022889a5 tools/misc/mbootpack/mbootpack.c --- a/tools/misc/mbootpack/mbootpack.c Thu Oct 05 10:55:13 2006 +0100 +++ b/tools/misc/mbootpack/mbootpack.c Thu Oct 05 12:08:08 2006 +0100 @@ -128,6 +128,7 @@ static void usage(void) exit(1); } +#define _p(x) ((void *)(unsigned long)(x)) static void place_kernel_section(address_t start, long int size) /* Place the kernel in memory, checking for the memory hole. */ @@ -136,7 +137,8 @@ static void place_kernel_section(address /* Above the memory hole: easy */ next_free_space = MAX(next_free_space, start + size); if (!quiet) { - printf("Placed kernel section (%p+%p)\n", start, size); + printf("Placed kernel section (%p+%p)\n", + _p(start), _p(size)); } return; } @@ -144,14 +146,14 @@ static void place_kernel_section(address if (start >= MEM_HOLE_START) { /* In the memory hole. Not so good */ printf("Fatal: kernel load address (%p) is in the memory hole.\n", - start); + _p(start)); exit(1); } if (start + size > MEM_HOLE_START) { /* Too big for low memory */ printf("Fatal: kernel (%p+%p) runs into the memory hole.\n", - start, size); + _p(start), _p(size)); exit(1); } @@ -159,7 +161,7 @@ static void place_kernel_section(address next_free_space = MAX(next_free_space, start + size); if (!quiet) { - printf("Placed kernel section (%p+%p)\n", start, size); + printf("Placed kernel section (%p+%p)\n", _p(start), _p(size)); } } @@ -182,12 +184,10 @@ static address_t place_section(long int if (!quiet) { printf("Placed section (%p+%p), align=%p\n", - start, size, align); + _p(start), _p(size), _p(align)); } return start; } - - static address_t load_kernel(const char *filename) @@ -296,7 +296,7 @@ static address_t load_kernel(const char size = loadsize; if (loadsize > size) { - printf("Fatal: can't load %i bytes of kernel into %i bytes " + printf("Fatal: can't load %ld bytes of kernel into %ld bytes " "of memory.\n", loadsize, size); exit(1); } @@ -466,8 +466,6 @@ static address_t load_kernel(const char } - - int main(int argc, char **argv) { char *buffer, *imagename, *command_line, *p; @@ -480,7 +478,7 @@ int main(int argc, char **argv) struct mod_list *modp; address_t start, kernel_entry; long int size, mod_command_line_space, command_line_len; - int modules, opt, mbi_reloc_offset, make_multiboot; + int modules, opt, mbi_reloc_offset; static const char short_options[] = "hc:m:o:qM"; static const struct option options[] = { _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |