summaryrefslogtreecommitdiff
path: root/external/nss/nss_macosx.patch
blob: 7c099bca2740d0a4c8bb4c0011b73d43ad8dd7bd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
diff -ru a/nspr/configure b/nspr/configure
--- a/a/nspr/configure	2014-09-29 16:50:33.907375937 +0100
+++ b/b/nspr/configure	2014-09-29 16:51:59.213931947 +0100
@@ -6577,7 +6579,7 @@
 
 
     DSO_CFLAGS=-fPIC
-    DSO_LDOPTS='-dynamiclib -compatibility_version 1 -current_version 1 -all_load -install_name @executable_path/$@ -headerpad_max_install_names'
+    DSO_LDOPTS='-dynamiclib -compatibility_version 1 -current_version 1 -all_load -install_name @__________________________________________________OOO/$@ -headerpad_max_install_names'
     _OPTIMIZE_FLAGS=-O2
     MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
     STRIP="$STRIP -x -S"
diff -ru a/nss/coreconf/Darwin.mk b/nss/coreconf/Darwin.mk
--- a/a/nss/coreconf/Darwin.mk	2014-09-29 16:50:22.992304799 +0100
+++ b/b/nss/coreconf/Darwin.mk	2014-09-29 16:51:59.214931953 +0100
@@ -7,8 +7,12 @@
 
 DEFAULT_COMPILER = gcc
 
-CC		= gcc
-CCC		= g++
+# CC is taken from environment automatically.
+#CC		= cc
+# Use CCC from environment.
+#CCC		= c++
+CCC		= $(CXX)
+
 RANLIB		= ranlib
 
 ifndef CPU_ARCH
@@ -57,19 +57,25 @@
 
 ifeq (,$(filter-out i%86,$(CPU_ARCH)))
 ifdef USE_64
+ifeq (,$(findstring -arch ,$(CC)))
 CC              += -arch x86_64
+endif
 override CPU_ARCH	= x86_64
 else
 OS_REL_CFLAGS	= -Di386
+ifeq (,$(findstring -arch ,$(CC)))
 CC              += -arch i386
+endif
 override CPU_ARCH	= x86
 endif
 else
 ifeq (arm,$(CPU_ARCH))
 # Nothing set for arm currently.
 else
 OS_REL_CFLAGS	= -Dppc
+ifeq (,$(findstring -arch ,$(CC)))
 CC              += -arch ppc
+endif
 endif
 endif
 
@@ -64,12 +64,16 @@
 endif
 
 ifneq (,$(MACOS_SDK_DIR))
+    CLANG_VERSION_FULL := $(shell $(CC) -v 2>&1 | grep "clang version" | sed -e "s/^.*clang version[  ]*//" | awk '{ print $$1 }')
     GCC_VERSION_FULL := $(shell $(CC) -dumpversion)
     GCC_VERSION_MAJOR := $(shell echo $(GCC_VERSION_FULL) | awk -F. '{ print $$1 }')
     GCC_VERSION_MINOR := $(shell echo $(GCC_VERSION_FULL) | awk -F. '{ print $$2 }')
     GCC_VERSION = $(GCC_VERSION_MAJOR).$(GCC_VERSION_MINOR)
+    ifneq (,$(CLANG_VERSION_FULL))
+        DARWIN_SDK_CFLAGS = -isysroot $(MACOS_SDK_DIR)
+        DARWIN_SDK_SHLIBFLAGS = -isysroot $(MACOS_SDK_DIR)
 
-    ifeq (,$(filter-out 2 3,$(GCC_VERSION_MAJOR)))
+    else ifeq (,$(filter-out 2 3,$(GCC_VERSION_MAJOR)))
         # GCC <= 3
         DARWIN_SDK_FRAMEWORKS = -F$(MACOS_SDK_DIR)/System/Library/Frameworks
         ifneq (,$(shell find $(MACOS_SDK_DIR)/Library/Frameworks -maxdepth 0))
@@ -150,7 +150,7 @@
 # May override this with different compatibility and current version numbers.
 DARWIN_DYLIB_VERSIONS = -compatibility_version 1 -current_version 1
 # May override this with -bundle to create a loadable module.
-DSO_LDOPTS	= -dynamiclib $(DARWIN_DYLIB_VERSIONS) -install_name @executable_path/$(notdir $@) -headerpad_max_install_names
+DSO_LDOPTS	= -dynamiclib $(DARWIN_DYLIB_VERSIONS) -install_name @__________________________________________________OOO/$(notdir $@) -headerpad_max_install_names
 
 MKSHLIB		= $(CC) $(DSO_LDOPTS) $(DARWIN_SDK_SHLIBFLAGS)
 DLL_SUFFIX	= dylib
diff -ru a/nss/Makefile b/nss/Makefile
--- a/a/nss/Makefile	2014-09-29 16:50:22.990304789 +0100
+++ b/b/nss/Makefile	2014-09-29 16:51:59.207931908 +0100
@@ -72,6 +72,9 @@
 ifeq ($(OS_TARGET),WIN95)
 NSPR_CONFIGURE_OPTS += --enable-win32-target=WIN95
 endif
+ifdef MACOS_SDK_DIR
+NSPR_CONFIGURE_OPTS += --with-macos-sdk=$(MACOS_SDK_DIR)
+endif
 ifdef USE_DEBUG_RTL
 NSPR_CONFIGURE_OPTS += --enable-debug-rtl
 endif