Kaydet (Commit) a1a05946 authored tarafından Stephan Bergmann's avatar Stephan Bergmann

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.
üst e34c87ce
...@@ -95,7 +95,8 @@ PATCH_FILES = \ ...@@ -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 ...@@ -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)
......
...@@ -63,3 +63,18 @@ Description ...@@ -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.
--- 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
--- /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 @@ ...@@ -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
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment