summaryrefslogtreecommitdiff
path: root/www/firefox/patches/patch-xf
blob: 52a6ca971bdbf76414b8996b369d01d27b5b08bb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
$NetBSD: patch-xf,v 1.5 2014/02/20 13:19:03 ryoon Exp $

NetBSD/m68k xptcall support code. From pkgsrc/www/firefox/patch-ae.

--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_netbsd_m68k.cpp.orig	2013-01-04 23:44:47.000000000 +0000
+++ xpcom/reflect/xptcall/src/md/unix/xptcstubs_netbsd_m68k.cpp
@@ -91,17 +91,27 @@ extern "C" {
     }
 }
 
+/*
+ * Beware: use % instead of %% for register identifiers in a preprocessor macro
+ * SYMBOL PREFIX must be "_" for aout and "" for ELF 
+ */
+#ifndef	__ELF__
+#define	SYMBOLPREFIX	"_"
+#else
+#define	SYMBOLPREFIX
+#endif
+
 #define STUB_ENTRY(n)							\
 __asm__(								\
-    ".global	_Stub"#n"__14nsXPTCStubBase\n\t"			\
-"_Stub"#n"__14nsXPTCStubBase:\n\t"					\
-    "link  a6,#0			\n\t"				\
-    "lea   a6@(12), a0			\n\t"	/* pointer to args */	\
-    "movl  a0, sp@-			\n\t"				\
-    "movl  #"#n", sp@-			\n\t"	/* method index */	\
-    "movl  a6@(8), sp@-			\n\t"	/* this */		\
-    "jbsr  _PrepareAndDispatch		\n\t"				\
-    "unlk  a6				\n\t"				\
+    ".global   "SYMBOLPREFIX"Stub"#n"__14nsXPTCStubBase\n\t"           \
+SYMBOLPREFIX"Stub"#n"__14nsXPTCStubBase:\n\t"                          \
+    "link  %a6,#0                      \n\t"                           \
+    "lea   %a6@(12), %a0               \n\t"   /* pointer to args */   \
+    "movl  %a0, %sp@-                  \n\t"                           \
+    "movl  #"#n", %sp@-                        \n\t"   /* method index */      \
+    "movl  %a6@(8), %sp@-              \n\t"   /* this */              \
+    "jbsr  "SYMBOLPREFIX"PrepareAndDispatch\n\t"                       \
+    "unlk  %a6                         \n\t"                           \
     "rts				\n\t"				\
 );