diff options
author | Trevor Johnson <trevor@FreeBSD.org> | 2003-01-19 04:57:06 +0000 |
---|---|---|
committer | Trevor Johnson <trevor@FreeBSD.org> | 2003-01-19 04:57:06 +0000 |
commit | c513d8234aa7cd559296031658a6b99a493a02a3 (patch) | |
tree | e83f0ef68e9aea4cfe0610dee123adb01e413092 | |
parent | New 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
-rw-r--r-- | www/beonex/Makefile | 2 | ||||
-rw-r--r-- | www/beonex/files/patch-xptcinvoke_linux_alpha.cpp | 53 | ||||
-rw-r--r-- | www/beonex/files/patch-xptcstubs_linux_alpha.cpp | 110 |
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 ---- |