diff options
author | ed <ed@FreeBSD.org> | 2008-11-04 15:15:51 +0800 |
---|---|---|
committer | ed <ed@FreeBSD.org> | 2008-11-04 15:15:51 +0800 |
commit | 6f8a6fd27552a2305597099df06a31c619f3b932 (patch) | |
tree | 19a3b1768d348da82a08c0dff30031c71269fb76 /www | |
parent | 8055098d5f08c51462a897db467750478bc47e04 (diff) | |
download | freebsd-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/Makefile | 2 | ||||
-rw-r--r-- | www/firefox3/files/patch-xpcom_reflect_xptcall_src_md_unix_Makefile.in | 39 |
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) |