Commit 9c5d1246c7b3da2e625a2257b9680c4d34fbc1fc

Authored by bellard
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\