aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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__