summaryrefslogtreecommitdiffstats
path: root/external/nss/nss_macosx.patch
blob: c45c5107f094a6c0ce85ee124959b9c0ca107dda (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
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
@@ -20,13 +24,17 @@
 
 ifeq (,$(filter-out i%86,$(CPU_ARCH)))
 ifdef USE_64
+ifeq (,$(findstring -arch ,$(CC)))
 CC              += -arch x86_64
 CCC             += -arch x86_64
+endif
 override CPU_ARCH	= x86_64
 else
 OS_REL_CFLAGS	= -Di386
+ifeq (,$(findstring -arch ,$(CC)))
 CC              += -arch i386
 CCC             += -arch i386
+endif
 override CPU_ARCH	= x86
 endif
 else
@@ -40,12 +48,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))
@@ -108,7 +120,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
 
 ifdef USE_GCOV
    OS_CFLAGS += --coverage
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
--- a/a/nspr/pr/include/md/_darwin.h
+++ b/b/nspr/pr/include/md/_darwin.h
@@ -40,11 +40,7 @@
 
 #undef  HAVE_STACK_GROWING_UP
 #define HAVE_DLL
-#if defined(__x86_64__) || TARGET_OS_IPHONE
 #define USE_DLFCN
-#else
-#define USE_MACH_DYLD
-#endif
 #define _PR_HAVE_SOCKADDR_LEN
 #define _PR_STAT_HAS_ST_ATIMESPEC
 #define _PR_HAVE_LARGE_OFF_T