aboutsummaryrefslogtreecommitdiffstats
path: root/www
diff options
context:
space:
mode:
authored <ed@FreeBSD.org>2008-11-04 15:15:51 +0800
committered <ed@FreeBSD.org>2008-11-04 15:15:51 +0800
commit6f8a6fd27552a2305597099df06a31c619f3b932 (patch)
tree19a3b1768d348da82a08c0dff30031c71269fb76 /www
parent8055098d5f08c51462a897db467750478bc47e04 (diff)
downloadfreebsd-ports-graphics-6f8a6fd27552a2305597099df06a31c619f3b932.tar.gz
freebsd-ports-graphics-6f8a6fd27552a2305597099df06a31c619f3b932.tar.zst
freebsd-ports-graphics-6f8a6fd27552a2305597099df06a31c619f3b932.zip
Make www/firefox3 work on PowerPC.
There were two things that prevented this port from compiling properly on PowerPC: - The `pthread hack' (GECKO_PTHREAD_LIBS) tried to obtain -lpthread from the gcc dumpspecs output. It expects these compiler flags to be on the first line of output, while on PowerPC the flags are on the second line. - On FreeBSD/powerpc it needs to use the Linux xptcall wrappers. I am not entirely convinced that it works properly, though. I've seen Firefox crash inside pthread_mutex_lock during shutdown. I'm committing these patches anyway, because getting it to compile is already a step forward. Approved by: marcus
Diffstat (limited to 'www')
-rw-r--r--www/firefox3/Makefile2
-rw-r--r--www/firefox3/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in39
2 files changed, 25 insertions, 16 deletions
diff --git a/www/firefox3/Makefile b/www/firefox3/Makefile
index 723aa11aa6c..53143a29251 100644
--- a/www/firefox3/Makefile
+++ b/www/firefox3/Makefile
@@ -57,7 +57,7 @@ OPTIONS= DBUS "Enable D-BUS support" on \
.include <bsd.port.pre.mk>
-GECKO_PTHREAD_LIBS!=${CC} -dumpspecs | ${GREP} -m 1 pthread | ${SED} -e 's|^.*%{\!pg: %{pthread:|| ; s|}.*$$||' || ${TRUE}
+GECKO_PTHREAD_LIBS!=${CC} -dumpspecs | ${GREP} -m 1 '%{\!pg: %{pthread:' | ${SED} -e 's|^.*%{\!pg: %{pthread:|| ; s|}.*$$||' || ${TRUE}
.if ${HAVE_GNOME:Mlibgnomeui}!=""
USE_GNOME+= libgnomeui
diff --git a/www/firefox3/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in b/www/firefox3/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in
index cf4ffb04e51..b1aa7ce6c52 100644
--- a/www/firefox3/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in
+++ b/www/firefox3/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in
@@ -1,16 +1,16 @@
---- xpcom/reflect/xptcall/src/md/unix/Makefile.in.orig Thu Aug 14 21:00:23 2003
-+++ xpcom/reflect/xptcall/src/md/unix/Makefile.in Sun Feb 1 15:06:40 2004
-@@ -49,6 +49,9 @@
- ifeq (86,$(findstring 86,$(OS_TEST)))
- CPPSRCS := xptcinvoke_unixish_x86.cpp xptcstubs_unixish_x86.cpp
+--- xpcom/reflect/xptcall/src/md/unix/Makefile.in
++++ xpcom/reflect/xptcall/src/md/unix/Makefile.in
+@@ -70,6 +70,9 @@
+ ifeq (Darwin,$(OS_ARCH))
+ DEFINES += -DKEEP_STACK_16_BYTE_ALIGNED
endif
+ifeq (x86_64,$(OS_TEST))
+CPPSRCS := xptcinvoke_x86_64_linux.cpp xptcstubs_x86_64_linux.cpp
+endif
endif
+ endif
#
- # New code for Linux, et. al., with gcc
-@@ -60,7 +63,7 @@
+@@ -87,7 +90,7 @@
endif
endif
# IA64 Linux
@@ -19,7 +19,7 @@
ifneq (,$(findstring ia64,$(OS_TEST)))
CPPSRCS := xptcinvoke_ipf64.cpp xptcstubs_ipf64.cpp
ASFILES := xptcstubs_asm_ipf64.s xptcinvoke_asm_ipf64.s
-@@ -106,9 +109,15 @@
+@@ -150,9 +153,15 @@
ASFILES := xptcinvoke_asm_osf1_alpha.s xptcstubs_asm_osf1_alpha.s
endif
#
@@ -36,12 +36,19 @@
CPPSRCS := xptcinvoke_linux_alpha.cpp xptcstubs_linux_alpha.cpp
endif
#
-@@ -294,6 +303,15 @@
- ifeq ($(OS_ARCH)$(OS_TEST),NetBSDsparc)
- CPPSRCS := xptcinvoke_sparc_netbsd.cpp xptcstubs_sparc_netbsd.cpp
+@@ -311,7 +320,7 @@
+ #
+ # Linux/PPC
+ #
+-ifeq ($(OS_ARCH)$(OS_TEST),Linuxpowerpc)
++ifneq (,$(filter Linuxpowerpc FreeBSDpowerpc,$(OS_ARCH)$(OS_TEST)))
+ CPPSRCS := xptcinvoke_ppc_linux.cpp xptcstubs_ppc_linux.cpp
+ ASFILES := xptcinvoke_asm_ppc_linux.s xptcstubs_asm_ppc_linux.s
+ AS := $(CC) -c -x assembler-with-cpp
+@@ -389,6 +398,15 @@
ASFILES := xptcinvoke_asm_sparc_netbsd.s xptcstubs_asm_sparc_netbsd.s
-+endif
-+#
+ endif
+ #
+# FreeBSD/SPARC64
+#
+ifeq ($(OS_ARCH),FreeBSD)
@@ -49,6 +56,8 @@
+CPPSRCS := xptcinvoke_sparc64_freebsd.cpp xptcstubs_sparc64_freebsd.cpp
+ASFILES := xptcinvoke_asm_sparc64_freebsd.s xptcstubs_asm_sparcv9_solaris.s
+endif
- endif
++endif
++#
+ # OpenBSD/SPARC
#
- # Solaris/SPARC
+ ifeq ($(OS_ARCH)$(OS_TEST),OpenBSDsparc)