mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
Fix firmware build for cross-compilation.
Signed-off-by: Keir Fraser <keir@xensource.com>
This commit is contained in:
1 parent
c7a76688b9
commit
f95154b372
2 files changed
+43
-49
No files matched your search
@@ -16,44 +16,38 @@
|
||||
*
|
||||
*/
|
||||
#include "acpi2_0.h"
|
||||
#include "stdio.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
/*
|
||||
* Generate acpi table
|
||||
* write acpi table to binary: acpitable.bin
|
||||
*
|
||||
*/
|
||||
|
||||
#define USAGE "Usage: acpi_gen filename \n" \
|
||||
" generage acpitable and write to the binary \n" \
|
||||
" filename - the binary name\n"
|
||||
#define USAGE "Usage: acpi_gen filename \n" \
|
||||
" generage acpitable and write to the binary \n" \
|
||||
" filename - the binary name\n"
|
||||
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
char *filename;
|
||||
char buf[ACPI_TABLE_SIZE] = { 0 };
|
||||
FILE *f;
|
||||
|
||||
int main(int argc, char** argv){
|
||||
char* filename;
|
||||
char buf[ACPI_TABLE_SIZE];
|
||||
FILE* f=NULL;
|
||||
int i;
|
||||
if (argc < 2) {
|
||||
fprintf(stderr,"%s",USAGE);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
for (i=0; i<ACPI_TABLE_SIZE; i++){
|
||||
buf[i]=0;
|
||||
}
|
||||
|
||||
if (argc<2){
|
||||
fprintf(stderr,"%s",USAGE);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
filename = argv[1];
|
||||
filename = argv[1];
|
||||
|
||||
if(!(f=fopen(filename, "w+"))){
|
||||
fprintf(stderr,"Can not open %s",filename);
|
||||
exit(1);
|
||||
}
|
||||
AcpiBuildTable(buf);
|
||||
if (fwrite(buf, ACPI_TABLE_SIZE, 1, f)<1){
|
||||
fprintf(stderr,"Can not write to %s\n",filename);
|
||||
exit(1);
|
||||
}
|
||||
return 0;
|
||||
if ((f = fopen(filename, "w+")) == NULL) {
|
||||
fprintf(stderr,"Can not open %s", filename);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
AcpiBuildTable((uint8_t *)buf);
|
||||
|
||||
if (fwrite(buf, ACPI_TABLE_SIZE, 1, f) < 1) {
|
||||
fprintf(stderr,"Can not write to %s\n", filename);
|
||||
exit(1);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -24,14 +24,14 @@ include $(XEN_ROOT)/tools/Rules.mk
|
||||
# The emulator code lives in ROM space
|
||||
TEXTADDR=0x000D0000
|
||||
|
||||
DEFINES=-DDEBUG -DTEXTADDR=${TEXTADDR}
|
||||
DEFINES=-DDEBUG -DTEXTADDR=$(TEXTADDR)
|
||||
XENINC=-I$(XEN_ROOT)/tools/libxc
|
||||
|
||||
LD = ld
|
||||
CC = gcc
|
||||
CPP = cpp -P
|
||||
OBJCOPY = objcopy -p -O binary -R .note -R .comment -R .bss -S --gap-fill=0
|
||||
CFLAGS = ${DEFINES} -I. $(XENINC) -Wall -fno-builtin -O2 -msoft-float
|
||||
CFLAGS = $(DEFINES) -I. $(XENINC) -Wall -fno-builtin -O2 -msoft-float
|
||||
CFLAGS += -m32 -march=i686
|
||||
LDFLAGS = -m elf_i386
|
||||
|
||||
@@ -40,33 +40,33 @@ OBJECTS = head.o trap.o vm86.o setup.o util.o
|
||||
all: vmxloader
|
||||
|
||||
vmxloader: roms.h vmxloader.c acpi.h acpi_madt.c
|
||||
${CC} ${CFLAGS} ${DEFINES} -c vmxloader.c -c acpi_madt.c
|
||||
$(CC) $(CFLAGS) $(DEFINES) -c vmxloader.c -c acpi_madt.c
|
||||
$(CC) -o vmxloader.tmp -m32 -nostdlib -Wl,-N -Wl,-Ttext -Wl,0x100000 vmxloader.o acpi_madt.o
|
||||
objcopy vmxloader.tmp vmxloader
|
||||
rm -f vmxloader.tmp
|
||||
|
||||
vmxassist.bin: vmxassist.ld ${OBJECTS}
|
||||
${CPP} ${DEFINES} vmxassist.ld > vmxassist.tmp
|
||||
${LD} -o vmxassist ${LDFLAGS} -nostdlib --fatal-warnings -N -T vmxassist.tmp ${OBJECTS}
|
||||
vmxassist.bin: vmxassist.ld $(OBJECTS)
|
||||
$(CPP) $(DEFINES) vmxassist.ld > vmxassist.tmp
|
||||
$(LD) -o vmxassist $(LDFLAGS) -nostdlib --fatal-warnings -N -T vmxassist.tmp $(OBJECTS)
|
||||
nm -n vmxassist > vmxassist.sym
|
||||
${OBJCOPY} vmxassist vmxassist.tmp
|
||||
$(OBJCOPY) vmxassist vmxassist.tmp
|
||||
dd if=vmxassist.tmp of=vmxassist.bin ibs=512 conv=sync
|
||||
rm -f vmxassist.tmp
|
||||
|
||||
head.o: machine.h head.S
|
||||
${CC} ${CFLAGS} -D__ASSEMBLY__ ${DEFINES} -c head.S
|
||||
$(CC) $(CFLAGS) -D__ASSEMBLY__ $(DEFINES) -c head.S
|
||||
|
||||
trap.o: machine.h offsets.h trap.S
|
||||
${CC} ${CFLAGS} -D__ASSEMBLY__ ${DEFINES} -c trap.S
|
||||
$(CC) $(CFLAGS) -D__ASSEMBLY__ $(DEFINES) -c trap.S
|
||||
|
||||
vm86.o: machine.h vm86.c
|
||||
${CC} ${CFLAGS} -c vm86.c
|
||||
$(CC) $(CFLAGS) -c vm86.c
|
||||
|
||||
setup.o: machine.h setup.c
|
||||
${CC} ${CFLAGS} -c setup.c
|
||||
$(CC) $(CFLAGS) -c setup.c
|
||||
|
||||
util.o: machine.h util.c
|
||||
${CC} ${CFLAGS} -c util.c
|
||||
$(CC) $(CFLAGS) -c util.c
|
||||
|
||||
roms.h: ../rombios/BIOS-bochs-latest ../vgabios/VGABIOS-lgpl-latest.bin ../vgabios/VGABIOS-lgpl-latest.cirrus.bin vmxassist.bin
|
||||
./mkhex rombios ../rombios/BIOS-bochs-latest > roms.h
|
||||
@@ -81,10 +81,10 @@ offsets.h: gen
|
||||
./gen > offsets.h
|
||||
|
||||
gen: gen.c
|
||||
${CC} ${CFLAGS} -o gen gen.c
|
||||
$(HOSTCC) $(HOSTCFLAGS) -I. $(XENINC) -o gen gen.c
|
||||
|
||||
clean:
|
||||
rm -f vmxassist vmxassist.tmp vmxassist.bin vmxassist.run vmxassist.sym head.s roms.h acpi.h
|
||||
rm -f vmxloader vmxloader.tmp vmxloader.o ${OBJECTS}
|
||||
rm -f vmxloader vmxloader.tmp vmxloader.o $(OBJECTS)
|
||||
rm -f gen gen.o offsets.h
|
||||
|
||||