summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-07-13 17:30:15 +0000
committerbellard <bellard@c046a42c-6fe2-441c-8c8c-71466251a162>2003-07-13 17:30:15 +0000
commita96fc003bd347fc85d0eff0e9bf5839e73385c7b (patch)
tree6b81eaeb087a4592560e256446fe5886b0eff317
parentd44b29c21e28ca2045c19122d69f7565544dd58b (diff)
downloadqemu-a96fc003bd347fc85d0eff0e9bf5839e73385c7b.tar.gz
sparc fix
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@325 c046a42c-6fe2-441c-8c8c-71466251a162
-rw-r--r--Makefile3
-rw-r--r--dyngen-exec.h2
2 files changed, 3 insertions, 2 deletions
diff --git a/Makefile b/Makefile
index 1db299e8c3..ab8e377f55 100644
--- a/Makefile
+++ b/Makefile
@@ -47,7 +47,8 @@ CFLAGS+=-m32 -ffixed-g1 -ffixed-g2 -ffixed-g3 -ffixed-g6
LDFLAGS+=-m32
OP_CFLAGS=$(CFLAGS) -fno-delayed-branch -ffixed-i0
HELPER_CFLAGS=$(CFLAGS) -ffixed-i0 -mflat
-LDFLAGS+=-Wl,-T,sparc.ld
+# -static is used to avoid g1/g3 usage by the dynamic linker
+LDFLAGS+=-Wl,-T,sparc.ld -static
endif
ifeq ($(ARCH),sparc64)
diff --git a/dyngen-exec.h b/dyngen-exec.h
index e5b5e5fde8..46f4042f68 100644
--- a/dyngen-exec.h
+++ b/dyngen-exec.h
@@ -172,7 +172,7 @@ extern int __op_jmp0, __op_jmp1;
#define EXIT_TB() asm volatile ("br.ret.sptk.many b0;;")
#endif
#ifdef __sparc__
-#define EXIT_TB() asm volatile ("jmpl %i0 + 8, %g0\n"
+#define EXIT_TB() asm volatile ("jmpl %i0 + 8, %g0\n" \
"nop")
#endif
#ifdef __arm__