Commit 9c5d1246c7b3da2e625a2257b9680c4d34fbc1fc
1 parent
8dd7cb06
use -mflat for helper-i386.c on sparc - use custom ld script on sparc to free ze…
…ro memory addresses for vm86 emulation - arm support git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@224 c046a42c-6fe2-441c-8c8c-71466251a162
Showing
1 changed file
with
21 additions
and
4 deletions
Makefile
| @@ -4,6 +4,7 @@ CFLAGS=-Wall -O2 -g | @@ -4,6 +4,7 @@ CFLAGS=-Wall -O2 -g | ||
| 4 | LDFLAGS=-g | 4 | LDFLAGS=-g |
| 5 | LIBS= | 5 | LIBS= |
| 6 | DEFINES=-DHAVE_BYTESWAP_H | 6 | DEFINES=-DHAVE_BYTESWAP_H |
| 7 | +HELPER_CFLAGS=$(CFLAGS) | ||
| 7 | 8 | ||
| 8 | ifeq ($(ARCH),i386) | 9 | ifeq ($(ARCH),i386) |
| 9 | CFLAGS+=-fomit-frame-pointer | 10 | CFLAGS+=-fomit-frame-pointer |
| @@ -37,6 +38,8 @@ ifeq ($(ARCH),sparc) | @@ -37,6 +38,8 @@ ifeq ($(ARCH),sparc) | ||
| 37 | CFLAGS+=-m32 -ffixed-g1 -ffixed-g2 -ffixed-g3 -ffixed-g6 | 38 | CFLAGS+=-m32 -ffixed-g1 -ffixed-g2 -ffixed-g3 -ffixed-g6 |
| 38 | LDFLAGS+=-m32 | 39 | LDFLAGS+=-m32 |
| 39 | OP_CFLAGS=$(CFLAGS) -fno-delayed-branch -ffixed-i0 | 40 | OP_CFLAGS=$(CFLAGS) -fno-delayed-branch -ffixed-i0 |
| 41 | +HELPER_CFLAGS=$(CFLAGS) -ffixed-i0 -mflat | ||
| 42 | +LDFLAGS+=-Wl,-T,sparc.ld | ||
| 40 | endif | 43 | endif |
| 41 | 44 | ||
| 42 | ifeq ($(ARCH),sparc64) | 45 | ifeq ($(ARCH),sparc64) |
| @@ -58,6 +61,11 @@ ifeq ($(ARCH),ia64) | @@ -58,6 +61,11 @@ ifeq ($(ARCH),ia64) | ||
| 58 | OP_CFLAGS=$(CFLAGS) | 61 | OP_CFLAGS=$(CFLAGS) |
| 59 | endif | 62 | endif |
| 60 | 63 | ||
| 64 | +ifeq ($(ARCH),arm) | ||
| 65 | +OP_CFLAGS=$(CFLAGS) -mno-sched-prolog | ||
| 66 | +LDFLAGS+=-Wl,-T,arm.ld | ||
| 67 | +endif | ||
| 68 | + | ||
| 61 | ifeq ($(GCC_MAJOR),3) | 69 | ifeq ($(GCC_MAJOR),3) |
| 62 | # very important to generate a return at the end of every operation | 70 | # very important to generate a return at the end of every operation |
| 63 | OP_CFLAGS+=-fno-reorder-blocks -fno-optimize-sibling-calls | 71 | OP_CFLAGS+=-fno-reorder-blocks -fno-optimize-sibling-calls |
| @@ -81,13 +89,19 @@ OBJS+= libqemu.a | @@ -81,13 +89,19 @@ OBJS+= libqemu.a | ||
| 81 | LIBOBJS+=thunk.o translate-i386.o op-i386.o helper-i386.o exec-i386.o exec.o | 89 | LIBOBJS+=thunk.o translate-i386.o op-i386.o helper-i386.o exec-i386.o exec.o |
| 82 | 90 | ||
| 83 | # NOTE: the disassembler code is only needed for debugging | 91 | # NOTE: the disassembler code is only needed for debugging |
| 84 | -LIBOBJS+=disas.o i386-dis.o dis-buf.o | 92 | +LIBOBJS+=disas.o i386-dis.o |
| 85 | ifeq ($(ARCH),alpha) | 93 | ifeq ($(ARCH),alpha) |
| 86 | LIBOBJS+=alpha-dis.o | 94 | LIBOBJS+=alpha-dis.o |
| 87 | endif | 95 | endif |
| 88 | ifeq ($(ARCH),ppc) | 96 | ifeq ($(ARCH),ppc) |
| 89 | LIBOBJS+=ppc-dis.o | 97 | LIBOBJS+=ppc-dis.o |
| 90 | endif | 98 | endif |
| 99 | +ifeq ($(ARCH),sparc) | ||
| 100 | +LIBOBJS+=sparc-dis.o | ||
| 101 | +endif | ||
| 102 | +ifeq ($(ARCH),arm) | ||
| 103 | +LIBOBJS+=arm-dis.o | ||
| 104 | +endif | ||
| 91 | 105 | ||
| 92 | ifeq ($(ARCH),ia64) | 106 | ifeq ($(ARCH),ia64) |
| 93 | OBJS += ia64-syscall.o | 107 | OBJS += ia64-syscall.o |
| @@ -126,6 +140,9 @@ opc-i386.h: op-i386.o dyngen | @@ -126,6 +140,9 @@ opc-i386.h: op-i386.o dyngen | ||
| 126 | op-i386.o: op-i386.c opreg_template.h ops_template.h | 140 | op-i386.o: op-i386.c opreg_template.h ops_template.h |
| 127 | $(CC) $(OP_CFLAGS) $(DEFINES) -c -o $@ $< | 141 | $(CC) $(OP_CFLAGS) $(DEFINES) -c -o $@ $< |
| 128 | 142 | ||
| 143 | +helper-i386.o: helper-i386.c | ||
| 144 | + $(CC) $(HELPER_CFLAGS) $(DEFINES) -c -o $@ $< | ||
| 145 | + | ||
| 129 | %.o: %.c | 146 | %.o: %.c |
| 130 | $(CC) $(CFLAGS) $(DEFINES) -c -o $@ $< | 147 | $(CC) $(CFLAGS) $(DEFINES) -c -o $@ $< |
| 131 | 148 | ||
| @@ -152,13 +169,13 @@ qemu-doc.html: qemu-doc.texi | @@ -152,13 +169,13 @@ qemu-doc.html: qemu-doc.texi | ||
| 152 | 169 | ||
| 153 | FILES= \ | 170 | FILES= \ |
| 154 | README README.distrib COPYING COPYING.LIB TODO Changelog VERSION \ | 171 | README README.distrib COPYING COPYING.LIB TODO Changelog VERSION \ |
| 155 | -dyngen.c ioctls.h ops_template.h op_string.h syscall_types.h\ | 172 | +dyngen.c dyngen.h ioctls.h ops_template.h op_string.h syscall_types.h\ |
| 156 | Makefile elf.h thunk.c\ | 173 | Makefile elf.h thunk.c\ |
| 157 | elfload.c main.c signal.c thunk.h exec.h\ | 174 | elfload.c main.c signal.c thunk.h exec.h\ |
| 158 | cpu-i386.h qemu.h op-i386.c helper-i386.c syscall-i386.h translate-i386.c\ | 175 | cpu-i386.h qemu.h op-i386.c helper-i386.c syscall-i386.h translate-i386.c\ |
| 159 | syscall.c opreg_template.h syscall_defs.h vm86.c\ | 176 | syscall.c opreg_template.h syscall_defs.h vm86.c\ |
| 160 | -dis-asm.h dis-buf.c disas.c disas.h alpha-dis.c ppc-dis.c i386-dis.c\ | ||
| 161 | -ppc.ld alpha.ld s390.ld exec-i386.h exec-i386.c path.c exec.c mmap.c configure \ | 177 | +dis-asm.h disas.c disas.h alpha-dis.c ppc-dis.c i386-dis.c sparc-dis.c arm-dis.c\ |
| 178 | +ppc.ld alpha.ld s390.ld sparc.ld arm.ld exec-i386.h exec-i386.c path.c exec.c mmap.c configure \ | ||
| 162 | tests/Makefile\ | 179 | tests/Makefile\ |
| 163 | tests/test-i386.c tests/test-i386-shift.h tests/test-i386.h\ | 180 | tests/test-i386.c tests/test-i386-shift.h tests/test-i386.h\ |
| 164 | tests/test-i386-muldiv.h tests/test-i386-code16.S\ | 181 | tests/test-i386-muldiv.h tests/test-i386-code16.S\ |