ports/176718: patches for firefox to compile on powerpc.
Alfred Perlstein
alfred at FreeBSD.org
Thu Mar 7 06:00:03 UTC 2013
>Number: 176718
>Category: ports
>Synopsis: patches for firefox to compile on powerpc.
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: update
>Submitter-Id: current-users
>Arrival-Date: Thu Mar 07 06:00:03 UTC 2013
>Closed-Date:
>Last-Modified:
>Originator: Alfred Perlstein
>Release: freebsd 9.1 ppc
>Organization:
iXsystems.
>Environment:
FreeBSD g4 9.1-STABLE FreeBSD 9.1-STABLE #0 r247580: Fri Mar 1 17:23:58 PST 2013 root at g4:/usr/obj/usr/src/sys/GENERIC powerpc
>Description:
I have a few patches to make firefox build and run on powerpc FreeBSD.
>How-To-Repeat:
>Fix:
Patch attached with submission follows:
diff --git a/www/firefox/Makefile b/www/firefox/Makefile
index ed6efee..dc36ede 100644
--- a/www/firefox/Makefile
+++ b/www/firefox/Makefile
@@ -57,6 +57,10 @@ OPTIONS_DEFAULT:=${OPTIONS_DEFAULT:S/OSS/ALSA/}
WRKSRC:= ${WRKDIR}/mozilla-release
+.if ! ${MACHINE_CPU:Msse2}
+GYP_DEFINES+= disable_sse2=1
+.endif
+
.if ${ARCH} == amd64
CONFIGURE_TARGET=x86_64-portbld-freebsd${OSREL}
.elif ${ARCH} == powerpc64
@@ -68,6 +72,11 @@ CFLAGS+= -mminimal-toc
.endif
.endif
+CFLAGS+= -D__STDC_CONSTANT_MACROS=1 -D__STDC_LIMIT_MACROS=1
+
+
+USE_GCC= yes
+
.if ${PORT_OPTIONS:MPGO}
USE_GCC?= yes
USE_DISPLAY= yes
diff --git a/www/firefox/files/patch-media-webrtc-shared_libs.mk b/www/firefox/files/patch-media-webrtc-shared_libs.mk
new file mode 100644
index 0000000..15e3235
--- /dev/null
+++ b/www/firefox/files/patch-media-webrtc-shared_libs.mk
@@ -0,0 +1,31 @@
+--- media/webrtc/shared_libs.mk~
++++ media/webrtc/shared_libs.mk
+@@ -28,13 +28,11 @@
+ $(call EXPAND_LIBNAME_PATH,bitrate_controller,$(DEPTH)/media/webrtc/trunk/src/modules/modules_bitrate_controller) \
+ $(call EXPAND_LIBNAME_PATH,remote_bitrate_estimator,$(DEPTH)/media/webrtc/trunk/src/modules/modules_remote_bitrate_estimator) \
+ $(call EXPAND_LIBNAME_PATH,video_processing,$(DEPTH)/media/webrtc/trunk/src/modules/modules_video_processing) \
+- $(call EXPAND_LIBNAME_PATH,video_processing_sse2,$(DEPTH)/media/webrtc/trunk/src/modules/modules_video_processing_sse2) \
+ $(call EXPAND_LIBNAME_PATH,voice_engine_core,$(DEPTH)/media/webrtc/trunk/src/voice_engine/voice_engine_voice_engine_core) \
+ $(call EXPAND_LIBNAME_PATH,audio_conference_mixer,$(DEPTH)/media/webrtc/trunk/src/modules/modules_audio_conference_mixer) \
+ $(call EXPAND_LIBNAME_PATH,audio_device,$(DEPTH)/media/webrtc/trunk/src/modules/modules_audio_device) \
+ $(call EXPAND_LIBNAME_PATH,audio_processing,$(DEPTH)/media/webrtc/trunk/src/modules/modules_audio_processing) \
+ $(call EXPAND_LIBNAME_PATH,aec,$(DEPTH)/media/webrtc/trunk/src/modules/modules_aec) \
+- $(call EXPAND_LIBNAME_PATH,aec_sse2,$(DEPTH)/media/webrtc/trunk/src/modules/modules_aec_sse2) \
+ $(call EXPAND_LIBNAME_PATH,apm_util,$(DEPTH)/media/webrtc/trunk/src/modules/modules_apm_util) \
+ $(call EXPAND_LIBNAME_PATH,aecm,$(DEPTH)/media/webrtc/trunk/src/modules/modules_aecm) \
+ $(call EXPAND_LIBNAME_PATH,agc,$(DEPTH)/media/webrtc/trunk/src/modules/modules_agc) \
+@@ -45,6 +43,14 @@
+ $(call EXPAND_LIBNAME_PATH,nrappkit,$(DEPTH)/media/mtransport/third_party/nrappkit/nrappkit_nrappkit) \
+ $(NULL)
+
++# if we're on an intel arch, we want SSE2 optimizations
++ifneq (,$(INTEL_ARCHITECTURE))
++WEBRTC_LIBS += \
++ $(call EXPAND_LIBNAME_PATH,video_processing_sse2,$(DEPTH)/media/webrtc/trunk/src/modules/modules_video_processing_sse2) \
++ $(call EXPAND_LIBNAME_PATH,aec_sse2,$(DEPTH)/media/webrtc/trunk/src/modules/modules_aec_sse2) \
++ $(NULL)
++endif
++
+ # If you enable one of these codecs in webrtc_config.gypi, you'll need to re-add the
+ # relevant library from this list:
+ #
diff --git a/www/firefox/files/patch-media-webrtc-trunk-src-build-common.gypi b/www/firefox/files/patch-media-webrtc-trunk-src-build-common.gypi
new file mode 100644
index 0000000..8eaaedf
--- /dev/null
+++ b/www/firefox/files/patch-media-webrtc-trunk-src-build-common.gypi
@@ -0,0 +1,11 @@
+--- media/webrtc/trunk/src/build/common.gypi~
++++ media/webrtc/trunk/src/build/common.gypi
+@@ -118,7 +118,7 @@
+ 'target_defaults': {
+ 'include_dirs': [
+ # TODO(andrew): we should be able to just use <(webrtc_root) here.
+- '..','../..',
++ '..','../..','../common_audio/signal_processing/include',
+ ],
+ 'defines': [
+ # TODO(leozwang): Run this as a gclient hook rather than at build-time:
diff --git a/www/firefox/files/patch-media-webrtc-trunk-src-typedefs.h b/www/firefox/files/patch-media-webrtc-trunk-src-typedefs.h
new file mode 100644
index 0000000..25a0e64
--- /dev/null
+++ b/www/firefox/files/patch-media-webrtc-trunk-src-typedefs.h
@@ -0,0 +1,15 @@
+--- media/webrtc/trunk/src/typedefs.h~
++++ media/webrtc/trunk/src/typedefs.h
+@@ -57,7 +57,11 @@
+ #define WEBRTC_ARCH_32_BITS
+ #define WEBRTC_ARCH_LITTLE_ENDIAN
+ #define WEBRTC_LITTLE_ENDIAN
+-#else
++#elif defined(__PPC__)
++#define WEBRTC_ARCH_32_BITS
++#define WEBRTC_ARCH_BIG_ENDIAN
++#define WEBRTC_BIG_ENDIAN
++#else
+ #error Please add support for your architecture in typedefs.h
+ #endif
+
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list