components/desktop/firefox/patches/firefox-32-solaris_jemalloc_linkage.patch
author Petr Sumbera <petr.sumbera@oracle.com>
Mon, 14 Nov 2016 04:25:50 -0800
branchs11u3-sru
changeset 7364 1ac24a377555
parent 7035 4c2f26e9d5ab
permissions -rw-r--r--
25034529 Upgrade Firefox to version 45.5.0 ESR 25099456 problem in FIREFOX/BROWSER
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
7035
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     1
This patch makes it so jemalloc is not included in firefox. Not accepted by 
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     2
the upstream community. 
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     3
Put jemalloc inside libxul. Then need firefox to depend on libxul
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     4
and build jemalloc library.
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     5
Remove lines - do not include memory for every program
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     6
Need to create/add our own versions of the functions malloc_usable, jemalloc_stats, etc.
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     7
Remove mozalloc library
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     8
Check if we have jemalloc; if not, skip it.
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
     9
Build libxul and use flags -Wl,-z,interpose, needed to build the library.
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    10
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    11
diff --git a/config/jemalloc_solaris.map b/config/jemalloc_solaris.map
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    12
new file mode 100644
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    13
--- /dev/null
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    14
+++ b/config/jemalloc_solaris.map
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    15
@@ -0,0 +1,12 @@
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    16
+{
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    17
+    global:
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    18
+        calloc             = NODIRECT;
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    19
+        free               = NODIRECT;
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    20
+        jemalloc_stats     = NODIRECT;
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    21
+        malloc             = NODIRECT;
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    22
+        malloc_usable_size = NODIRECT;
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    23
+        memalign           = NODIRECT;
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    24
+        posix_memalign     = NODIRECT;
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    25
+        realloc            = NODIRECT;
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    26
+        valloc             = NODIRECT;
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    27
+};
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    28
diff --git a/storage/mozStorageService.cpp b/storage/mozStorageService.cpp
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    29
--- a/storage/mozStorageService.cpp
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    30
+++ b/storage/mozStorageService.cpp
7364
1ac24a377555 25034529 Upgrade Firefox to version 45.5.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents: 7035
diff changeset
    31
@@ -528,9 +528,14 @@
7035
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    32
   int rc;
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    33
 
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    34
 #ifdef MOZ_STORAGE_MEMORY
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    35
-  rc = ::sqlite3_config(SQLITE_CONFIG_MALLOC, &memMethods);
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    36
-  if (rc != SQLITE_OK)
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    37
-    return convertResultCode(rc);
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    38
+  // in case other malloc library is PRELOAD-ed
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    39
+  void *test_jemalloc = malloc(4);
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    40
+  if (::moz_malloc_usable_size(test_jemalloc)) {
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    41
+    rc = ::sqlite3_config(SQLITE_CONFIG_MALLOC, &memMethods);
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    42
+    if (rc != SQLITE_OK)
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    43
+      return convertResultCode(rc);
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    44
+  }
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    45
+  free(test_jemalloc);
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    46
 #endif
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    47
 
7364
1ac24a377555 25034529 Upgrade Firefox to version 45.5.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents: 7035
diff changeset
    48
   // TODO (bug 1191405): do not preallocate the connections caches until we
7035
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    49
diff --git a/memory/jemalloc/src/include/jemalloc/internal/jemalloc_internal.h.in b/memory/jemalloc/src/include/jemalloc/internal/jemalloc_internal.h.in
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    50
--- a/memory/jemalloc/src/include/jemalloc/internal/jemalloc_internal.h.in
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    51
+++ b/memory/jemalloc/src/include/jemalloc/internal/jemalloc_internal.h.in
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    52
@@ -184,6 +184,9 @@ static const bool config_cache_oblivious
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    53
 #include "jemalloc/internal/jemalloc_internal_macros.h"
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    54
 
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    55
 /* Size class index type. */
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    56
+#ifdef __sun
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    57
+#define index_t je_index_t
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    58
+#endif
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    59
 typedef unsigned szind_t;
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    60
 
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    61
 /*
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    62
--- a/memory/jemalloc/src/include/jemalloc/internal/jemalloc_internal.h.in	2015-09-15 13:37:17.326056000 +0800
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    63
+++ b/memory/jemalloc/src/include/jemalloc/internal/jemalloc_internal.h.in	2015-09-15 13:37:51.959830000 +0800
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    64
@@ -204,6 +204,9 @@
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    65
 #  ifdef __alpha__
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    66
 #    define LG_QUANTUM		4
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    67
 #  endif
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    68
+#  ifdef __sparc__
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    69
+#    define LG_QUANTUM		4
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    70
+#  endif
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    71
 #  ifdef __sparc64__
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    72
 #    define LG_QUANTUM		4
4c2f26e9d5ab 24361911 Upgrade Firefox to version 45.4.0 ESR
Petr Sumbera <petr.sumbera@oracle.com>
parents:
diff changeset
    73
 #  endif