summaryrefslogtreecommitdiff
path: root/www/beonex
diff options
context:
space:
mode:
authorTrevor Johnson <trevor@FreeBSD.org>2003-01-19 04:57:06 +0000
committerTrevor Johnson <trevor@FreeBSD.org>2003-01-19 04:57:06 +0000
commitc513d8234aa7cd559296031658a6b99a493a02a3 (patch)
treee83f0ef68e9aea4cfe0610dee123adb01e413092 /www/beonex
parentNew port: www/guile-www (guile modules for www interaction) (diff)
Add patches by Glen Nakamura which enable compilation with GCC 3.2.1
on the Alpha. I only tested this with FreeBSD 5.0-RC3, and the browser segfaulted immediately when I ran it. Mark as i386-only. Sponsored by: David O'Brien and Sofia Pappatheodorou
Notes
Notes: svn path=/head/; revision=73470
Diffstat (limited to 'www/beonex')
-rw-r--r--www/beonex/Makefile2
-rw-r--r--www/beonex/files/patch-xptcinvoke_linux_alpha.cpp53
-rw-r--r--www/beonex/files/patch-xptcstubs_linux_alpha.cpp110
3 files changed, 165 insertions, 0 deletions
diff --git a/www/beonex/Makefile b/www/beonex/Makefile
index c1f315f91e9c..2833aff4e3c2 100644
--- a/www/beonex/Makefile
+++ b/www/beonex/Makefile
@@ -64,6 +64,8 @@ CONFIGURE_ARGS= \
# --with-pthreads
# --enable-svg
+# compiles but segfaults on 5.0-RC3/alpha
+ONLY_FOR_ARCHS= i386
PLIST= ${WRKDIR}/pkg-plist
# LDAP is only used by mail and news so disable both together
.if defined(WITHOUT_MAILNEWS)
diff --git a/www/beonex/files/patch-xptcinvoke_linux_alpha.cpp b/www/beonex/files/patch-xptcinvoke_linux_alpha.cpp
new file mode 100644
index 000000000000..8ea665ba7119
--- /dev/null
+++ b/www/beonex/files/patch-xptcinvoke_linux_alpha.cpp
@@ -0,0 +1,53 @@
+# http://bugzilla.mozilla.org/attachment.cgi?id=84336&action=view
+# http://bugzilla.mozilla.org/show_bug.cgi?id=86446
+# patch by Glen Nakamura <glen@imodulo.com> to enable compilation with gcc 3.1 on Alpha
+
+Index: xptcinvoke_linux_alpha.cpp
+===================================================================
+RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp,v
+retrieving revision 1.3.38.1
+diff -c -3 -p -r1.3.38.1 xptcinvoke_linux_alpha.cpp
+*** xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp 10 Apr 2002 03:37:38 -0000 1.3.38.1
+--- xpcom/reflect/xptcall/src/md/unix/xptcinvoke_linux_alpha.cpp 20 May 2002 22:37:04 -0000
+***************
+*** 20,25 ****
+--- 20,26 ----
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
++ * Glen Nakamura <glen@imodulo.com>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+***************
+*** 37,44 ****
+
+ /* Platform specific code to invoke XPCOM methods on native objects */
+
+- /* contributed by Glen Nakamura <glen.nakamura@usa.net> */
+-
+ #include "xptcprivate.h"
+
+ /* Prototype specifies unmangled function name and disables unused warning */
+--- 38,43 ----
+*************** __asm__(
+*** 163,169 ****
+--- 162,172 ----
+ "bis $16,$16,$1\n\t" /* load "this" */
+ "ldq $2,16($15)\n\t" /* load "methodIndex" */
+ "ldq $1,0($1)\n\t" /* load vtable */
++ #if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
++ "s8addq $2,$31,$2\n\t" /* vtable index = "methodIndex" * 8 */
++ #else /* not G++ V3 ABI */
+ "s8addq $2,16,$2\n\t" /* vtable index = "methodIndex" * 8 + 16 */
++ #endif /* G++ V3 ABI */
+ "addq $1,$2,$1\n\t"
+ "ldq $27,0($1)\n\t" /* load address of function */
+ "jsr $26,($27),0\n\t" /* call virtual function */
+*************** __asm__(
+*** 176,179 ****
+ "ret $31,($26),1\n\t"
+ ".end XPTC_InvokeByIndex"
+ );
+-
+--- 179,181 ----
diff --git a/www/beonex/files/patch-xptcstubs_linux_alpha.cpp b/www/beonex/files/patch-xptcstubs_linux_alpha.cpp
new file mode 100644
index 000000000000..64d305c81039
--- /dev/null
+++ b/www/beonex/files/patch-xptcstubs_linux_alpha.cpp
@@ -0,0 +1,110 @@
+# http://bugzilla.mozilla.org/attachment.cgi?id=84336&action=view
+# http://bugzilla.mozilla.org/show_bug.cgi?id=86446
+# patch by Glen Nakamura <glen@imodulo.com> to enable compilation with gcc 3.1 on Alpha
+
+Index: xptcstubs_linux_alpha.cpp
+===================================================================
+RCS file: /cvsroot/mozilla/xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp,v
+retrieving revision 1.3.38.1
+diff -c -3 -p -r1.3.38.1 xptcstubs_linux_alpha.cpp
+*** xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp 10 Apr 2002 03:37:42 -0000 1.3.38.1
+--- xpcom/reflect/xptcall/src/md/unix/xptcstubs_linux_alpha.cpp 20 May 2002 22:37:04 -0000
+***************
+*** 20,25 ****
+--- 20,26 ----
+ * the Initial Developer. All Rights Reserved.
+ *
+ * Contributor(s):
++ * Glen Nakamura <glen@imodulo.com>
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 2 or later (the "GPL"), or
+***************
+*** 37,44 ****
+
+ /* Implement shared vtbl methods. */
+
+- /* contributed by Glen Nakamura <glen.nakamura@usa.net> */
+-
+ #include "xptcprivate.h"
+
+ /* Prototype specifies unmangled function name and disables unused warning */
+--- 38,43 ----
+*************** __asm__(
+*** 188,210 ****
+ * nsresult nsXPTCStubBase::Stub##n()
+ * Sets register $1 to "methodIndex" and jumps to SharedStub.
+ */
+ #define STUB_ENTRY(n) \
+ __asm__( \
+! "#### Stub"#n" ####\n" \
+! ".text\n\t" \
+! ".align 5\n\t" \
+! ".globl Stub"#n"__14nsXPTCStubBase\n\t" \
+! ".ent Stub"#n"__14nsXPTCStubBase\n" \
+! "Stub"#n"__14nsXPTCStubBase:\n\t" \
+! ".frame $30,0,$26,0\n\t" \
+! "ldgp $29,0($27)\n" \
+! "$Stub"#n"__14nsXPTCStubBase..ng:\n\t" \
+! ".prologue 1\n\t" \
+! "lda $1,"#n"\n\t" \
+! "br $31,$SharedStub..ng\n\t" \
+! ".end Stub"#n"__14nsXPTCStubBase" \
+ );
+
+ #define SENTINEL_ENTRY(n) \
+ nsresult nsXPTCStubBase::Sentinel##n() \
+ { \
+--- 187,231 ----
+ * nsresult nsXPTCStubBase::Stub##n()
+ * Sets register $1 to "methodIndex" and jumps to SharedStub.
+ */
++ #define STUB_MANGLED_ENTRY(n, symbol) \
++ "#### Stub"#n" ####" "\n\t" \
++ ".text" "\n\t" \
++ ".align 5" "\n\t" \
++ ".globl " symbol "\n\t" \
++ ".ent " symbol "\n" \
++ symbol ":" "\n\t" \
++ ".frame $30,0,$26,0" "\n\t" \
++ "ldgp $29,0($27)" "\n" \
++ "$" symbol "..ng:" "\n\t" \
++ ".prologue 1" "\n\t" \
++ "lda $1,"#n "\n\t" \
++ "br $31,$SharedStub..ng" "\n\t" \
++ ".end " symbol
++
++ #if defined(__GXX_ABI_VERSION) && __GXX_ABI_VERSION >= 100 /* G++ V3 ABI */
++
++ #define STUB_ENTRY(n) \
++ __asm__( \
++ ".if "#n" < 10" "\n\t" \
++ STUB_MANGLED_ENTRY(n, "_ZN14nsXPTCStubBase5Stub"#n"Ev") "\n\t" \
++ ".elseif "#n" < 100" "\n\t" \
++ STUB_MANGLED_ENTRY(n, "_ZN14nsXPTCStubBase6Stub"#n"Ev") "\n\t" \
++ ".elseif "#n" < 1000" "\n\t" \
++ STUB_MANGLED_ENTRY(n, "_ZN14nsXPTCStubBase7Stub"#n"Ev") "\n\t" \
++ ".else" "\n\t" \
++ ".err \"Stub"#n" >= 1000 not yet supported.\"" "\n\t" \
++ ".endif" \
++ );
++
++ #else /* not G++ V3 ABI */
++
+ #define STUB_ENTRY(n) \
+ __asm__( \
+! STUB_MANGLED_ENTRY(n, "Stub"#n"__14nsXPTCStubBase") \
+ );
+
++ #endif /* G++ V3 ABI */
++
+ #define SENTINEL_ENTRY(n) \
+ nsresult nsXPTCStubBase::Sentinel##n() \
+ { \
+*************** nsresult nsXPTCStubBase::Sentinel##n() \
+*** 213,216 ****
+ }
+
+ #include "xptcstubsdef.inc"
+-
+--- 234,236 ----