Fix building moz on Mac OS X.

* On Mac, nss-config must not emit -rpath-link switch.
* --with-system-nss/-nspr horribly broke in combination with the
  routine use of MOZ_ARCH and resulting MOZ_CROSS_COMPILE for Mac,
  and the latter appears to be unnecessary for a normal build, anyway,
  so is now conditional CREATE_UNIVERSAL_MAC_MOZ_ZIP, in case anybody
  still uses the code to create universal moz archives.
* This in turn revealed two issues in moz that have been addressed
  with a new macosx_build_fix.patch.
This commit is contained in:
Stephan Bergmann
2011-09-28 13:53:15 +02:00
parent e34c87ce75
commit a1a059467b
4 changed files with 46 additions and 4 deletions

View File

@@ -95,7 +95,8 @@ PATCH_FILES = \
patches/link_fontconfig.patch \ patches/link_fontconfig.patch \
patches/brokenmakefile.patch \ patches/brokenmakefile.patch \
patches/aix_build_fix.patch \ patches/aix_build_fix.patch \
patches/libpr0n_build_fix.patch patches/libpr0n_build_fix.patch \
patches/macosx_build_fix.patch
# This file is needed for the W32 build when BUILD_MOZAB is set # This file is needed for the W32 build when BUILD_MOZAB is set
# (currently only vc8/vs2005 is supported when BUILD_MOZAB is set) # (currently only vc8/vs2005 is supported when BUILD_MOZAB is set)
@@ -349,7 +350,7 @@ $(MISC)$/build$/moztools.complete : $(MISC)$/build$/moztools.unpack
zip: \ zip: \
$(MISC)$/CREATETARBALL $(MISC)$/CREATETARBALL
.IF "$(GUIBASE)"=="aqua" .IF "$(GUIBASE)"=="aqua" && "$(CREATE_UNIVERSAL_MAC_MOZ_ZIP)"!=""
MOZ_ARCH=$(eq,$(CPU),I i386 ppc) MOZ_ARCH=$(eq,$(CPU),I i386 ppc)
MOZILLA_CONFIGURE_FLAGS+=$(eq,$(CPU),I --target=i386-apple-darwin8 --target=powerpc-apple-darwin8) MOZILLA_CONFIGURE_FLAGS+=$(eq,$(CPU),I --target=i386-apple-darwin8 --target=powerpc-apple-darwin8)

View File

@@ -63,3 +63,18 @@ Description
call. call.
The patch changes the DoQuery behavior to respect the arguments of the second call. The patch changes the DoQuery behavior to respect the arguments of the second call.
====================================================================================
File name
---------
macosx_build_fix.patch.patch
Description
-----------
For one, recently introduced --with-system-nspr/--with-nspr-prefix in
moz/makefile.mk reveals that directory/c-sdk/build.mk/build.mk uses just a
hard-coded list of nspr libraries, lacking a proper -L switch (as provided by
nspr-config).
For another, disabling the routine use of MOZ_ARCH and resulting
MOZ_CROSS_COMPILE for Mac OS X in moz/makefile.mk reveals that
xpcom/build/Makefile.in wants to link against a macmorefiles_s library
without a proper -L switch.

View File

@@ -0,0 +1,23 @@
--- misc/mozilla/directory/c-sdk/build.mk 2011-09-27 14:45:02.000000000 +0200
+++ misc/build/mozilla/directory/c-sdk/build.mk 2011-09-27 14:44:18.000000000 +0200
@@ -157,8 +157,8 @@
PLDSBASE=plds$(NSPR_LIBVERSION)
NSPRBASE=nspr$(NSPR_LIBVERSION)
-DYNAMICNSPR = -l$(PLCBASE) -l$(PLDSBASE) -l$(NSPRBASE)
+DYNAMICNSPR = $(NSPR_LIBS)
PLC_LIBNAME=plc$(NSPR_LIBVERSION)
PLDS_LIBNAME=plds$(NSPR_LIBVERSION)
ifeq ($(OS_ARCH), WINNT)
--- misc/mozilla/xpcom/build/Makefile.in 2008-06-16 00:26:11.000000000 +0200
+++ misc/build/mozilla/xpcom/build/Makefile.in 2011-09-28 10:41:02.000000000 +0200
@@ -135,7 +135,7 @@
# pull in MoreFiles for MacOSX
ifneq (,$(filter mac cocoa,$(MOZ_WIDGET_TOOLKIT)))
EXTRA_DSO_LIBS = macmorefiles_s
-EXTRA_DSO_LDOPTS += $(EXTRA_DSO_LIBS)
+EXTRA_DSO_LDOPTS += -L$(DIST)/lib $(EXTRA_DSO_LIBS)
EXTRA_DEPS += $(DIST)/lib/$(LIB_PREFIX)macmorefiles_s.$(LIB_SUFFIX)
endif

View File

@@ -1,6 +1,6 @@
--- /dev/null --- /dev/null
+++ misc/build/nss-3.12.8/mozilla/security/nss/nss-config.in 2010-06-11 16:35:54.946870871 +0200 +++ misc/build/nss-3.12.8/mozilla/security/nss/nss-config.in 2010-06-11 16:35:54.946870871 +0200
@@ -0,0 +1,144 @@ @@ -0,0 +1,147 @@
+#!/bin/sh +#!/bin/sh
+ +
+prefix=@prefix@ +prefix=@prefix@
@@ -129,7 +129,10 @@
+fi +fi
+ +
+if test "$echo_libs" = "yes"; then +if test "$echo_libs" = "yes"; then
+ libdirs="-Wl,-rpath-link,$libdir -L$libdir" + libdirs="-L$libdir"
+ if test `uname` != Darwin; then
+ libdirs="-Wl,-rpath-link,$libdir $libdirs"
+ fi
+ if test -n "$lib_ssl"; then + if test -n "$lib_ssl"; then
+ libdirs="$libdirs -lssl${major_version}" + libdirs="$libdirs -lssl${major_version}"
+ fi + fi