Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 10 Aug 2009 21:55:07 +0200
From:      Andreas Tobler <andreast-list@fgznet.ch>
To:        gecko@freebsd.org
Cc:        Joe Marcus Clarke <marcus@marcuscom.com>
Subject:   Re: firefox3 under powerpc not building
Message-ID:  <4A807B1B.20605@fgznet.ch>
In-Reply-To: <4A7F1AB0.9040605@fgznet.ch>
References:  <4A7F1AB0.9040605@fgznet.ch>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi again,

replying to myself.


Andreas Tobler wrote:

> I can not build firefox3 (3.0.13 and up) under FreeBSD -CURRENT. As far 
> as I tracked down it is an issue in the firefox sources itself.
> 
> The last working build I had was 3.0.10.
> 
> Here in this area it breaks:
> 
> http://mxr.mozilla.org/mozilla1.9.1/diff?file=/security/nss/lib/freebl/Makefile&diffvar=mozilla1.8.0
> 
> The below snippet does somehow not work.
> -----
> # some code wants _X86_ defined for intel CPUs.
> # coreconf does this for windows, but not for Linux, FreeBSD, etc.
> ifeq (,$(filter-out x86 x86_64,$(CPU_ARCH)))
> ifneq (,$(filter-out WIN%,$(OS_TARGET)))
>          DEFINES += -D_X86_
> endif
> endif
> -----

It does not work on powerpc since the CPU_ARCH is set to x86 in 
security/coreconf/FreeBSD.mk, gah!

> On powerpc I get the -D_X86_ passed to the compile options, very bad. 
> But I do not understand why. Might be that the first filter-out does not 
> work as expected?
> 
> I compared with an x86 build and with an x86_64 build. On the x86 it 
> works as expected. But also under der x86_64 it does not do what I 
> expect. Under x86_64 I'd expect the -D_X86_ in the compile options, right?

The x86_64 case is also clear now, the CPU_ARCH is set to amd64, so the 
-D_X86_ is not set. We might need a patch to 
security/nss/lib/freebl/Makefile which also includes the amd64 to the 
first filter-out above? Like this one:

deuterium_fbsd# diff -u security/nss/lib/freebl/Makefile.orig 
security/nss/lib/freebl/Makefile
--- security/nss/lib/freebl/Makefile.orig	2009-08-10 21:50:15.000000000 
+0200
+++ security/nss/lib/freebl/Makefile	2009-08-10 21:50:29.000000000 +0200
@@ -79,7 +79,7 @@
  endif
  # some code wants _X86_ defined for intel CPUs.
  # coreconf does this for windows, but not for Linux, FreeBSD, etc.
-ifeq (,$(filter-out x86 x86_64,$(CPU_ARCH)))
+ifeq (,$(filter-out amd64 x86 x86_64,$(CPU_ARCH)))
  ifneq (,$(filter-out WIN%,$(OS_TARGET)))
  	DEFINES += -D_X86_
  endif


For the powerpc issue the below patch lets me build firefox3 (3.0.13), 
firefox35 is still open. It has some other issues.

wolfram# diff -u security/coreconf/FreeBSD.mk.orig 
security/coreconf/FreeBSD.mk
--- security/coreconf/FreeBSD.mk.orig	2009-08-10 21:31:08.000000000 +0200
+++ security/coreconf/FreeBSD.mk	2009-08-10 21:37:52.000000000 +0200
@@ -48,9 +48,13 @@
  ifeq ($(OS_TEST),amd64)
  CPU_ARCH		= amd64
  else
+ifeq ($(OS_TEST),powerpc)
+CPU_ARCH		= powerpc
+else
  CPU_ARCH		= x86
  endif
  endif
+endif

  OS_CFLAGS		= $(DSO_CFLAGS) -ansi -Wall -Wno-switch -DFREEBSD 
-DHAVE_STRERROR -DHAVE_BSD_FLOCK


TIA,
Andreas



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