Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Mar 2013 05:54:23 GMT
From:      Alfred Perlstein <alfred@FreeBSD.org>
To:        freebsd-gnats-submit@FreeBSD.org
Subject:   ports/176718: patches for firefox to compile on powerpc.
Message-ID:  <201303070554.r275sNQP011701@red.freebsd.org>
Resent-Message-ID: <201303070600.r27603VT087446@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>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@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:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201303070554.r275sNQP011701>