Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 16 Aug 2009 14:01:14 +0200
From:      Andreas Tobler <andreast-list@fgznet.ch>
To:        Joe Marcus Clarke <marcus@marcuscom.com>
Cc:        gecko@freebsd.org
Subject:   Re: firefox3 under powerpc not building
Message-ID:  <4A87F50A.7000802@fgznet.ch>
In-Reply-To: <4A87F387.507@fgznet.ch>
References:  <4A7F1AB0.9040605@fgznet.ch> <4A807B1B.20605@fgznet.ch> <1250359762.23396.28.camel@shumai.marcuscom.com> <4A87F387.507@fgznet.ch>

next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format.
--------------090506080302030305080406
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Andreas Tobler wrote:
> Joe Marcus Clarke wrote:
>> On Mon, 2009-08-10 at 21:55 +0200, Andreas Tobler wrote:
>>> 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:
>> Thanks for these patches.  Can you resend them as attachments (or post
>> them) so they can be easily extracted?
> 
> Here it is, the powerpc one. It is against 3.0.13 source base. The amd64 
> I did not follow up since it does build, with or without -D_X86_ on amd64.

Forget the previous post, here is the working one. A missing endif....

Andreas

--------------090506080302030305080406
Content-Type: text/plain; x-mac-type="0"; x-mac-creator="0";
	name="patch-security-coreconf-FreeBSD.mk"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
 filename="patch-security-coreconf-FreeBSD.mk"

--- security/coreconf/FreeBSD.mk.orig	2009-07-30 17:30:28.000000000 +0200
+++ security/coreconf/FreeBSD.mk	2009-08-10 22:22:56.000000000 +0200
@@ -45,8 +45,16 @@
 ifeq ($(OS_TEST),alpha)
 CPU_ARCH		= alpha
 else
+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
 
@@ -73,7 +81,7 @@
 DLL_SUFFIX		= so.1.0
 endif
 
-MKSHLIB			= $(CC) $(DSO_LDOPTS)
+MKSHLIB			= $(CC) -Wl,-Bsymbolic -lc $(DSO_LDOPTS) -o $@
 ifdef MAPFILE
 	MKSHLIB += -Wl,--version-script,$(MAPFILE)
 endif
@@ -82,4 +90,4 @@
 
 G++INCLUDES		= -I/usr/include/g++
 
-INCLUDES		+= -I/usr/X11R6/include
+#INCLUDES		+= -I/usr/local/include

--------------090506080302030305080406--



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