Pass --with-lg-page=16 when building jemalloc for arm64.
jemalloc's default configuration is broken on arm64 and causes
runtime failures on machines with non-4k page sizes. See
https://github.com/jemalloc/jemalloc/issues/467
Change-Id: Ia243d6e43fcc9eaad893e51d6fa90febd7c0f344
Reviewed-on: https://gn-review.googlesource.com/c/gn/+/18300
Commit-Queue: Dirk Pranke <dpranke@google.com>
Commit-Queue: Takuto Ikuta <tikuta@google.com>
Reviewed-by: Takuto Ikuta <tikuta@google.com>
Reviewed-by: Dirk Pranke <dpranke@google.com>
diff --git a/infra/recipes/gn.expected/ci_linux.json b/infra/recipes/gn.expected/ci_linux.json
index ce645ba..bdb11fe 100644
--- a/infra/recipes/gn.expected/ci_linux.json
+++ b/infra/recipes/gn.expected/ci_linux.json
@@ -399,7 +399,8 @@
"--disable-shared",
"--enable-static",
"--disable-syscall",
- "--disable-stats"
+ "--disable-stats",
+ "--with-lg-page=16"
],
"cwd": "[START_DIR]/jemalloc/build-linux-arm64",
"env": {
diff --git a/infra/recipes/gn.expected/cipd_exists.json b/infra/recipes/gn.expected/cipd_exists.json
index bb3af5e..dc9a8cb 100644
--- a/infra/recipes/gn.expected/cipd_exists.json
+++ b/infra/recipes/gn.expected/cipd_exists.json
@@ -399,7 +399,8 @@
"--disable-shared",
"--enable-static",
"--disable-syscall",
- "--disable-stats"
+ "--disable-stats",
+ "--with-lg-page=16"
],
"cwd": "[START_DIR]/jemalloc/build-linux-arm64",
"env": {
diff --git a/infra/recipes/gn.expected/cipd_register.json b/infra/recipes/gn.expected/cipd_register.json
index 5d4cca7..3f2a6ac 100644
--- a/infra/recipes/gn.expected/cipd_register.json
+++ b/infra/recipes/gn.expected/cipd_register.json
@@ -399,7 +399,8 @@
"--disable-shared",
"--enable-static",
"--disable-syscall",
- "--disable-stats"
+ "--disable-stats",
+ "--with-lg-page=16"
],
"cwd": "[START_DIR]/jemalloc/build-linux-arm64",
"env": {
diff --git a/infra/recipes/gn.expected/cq_linux.json b/infra/recipes/gn.expected/cq_linux.json
index a25a22d..7afba99 100644
--- a/infra/recipes/gn.expected/cq_linux.json
+++ b/infra/recipes/gn.expected/cq_linux.json
@@ -450,7 +450,8 @@
"--disable-shared",
"--enable-static",
"--disable-syscall",
- "--disable-stats"
+ "--disable-stats",
+ "--with-lg-page=16"
],
"cwd": "[START_DIR]/jemalloc/build-linux-arm64",
"env": {
diff --git a/infra/recipes/gn.py b/infra/recipes/gn.py
index 91cdc2d..0d0b04b 100644
--- a/infra/recipes/gn.py
+++ b/infra/recipes/gn.py
@@ -230,17 +230,18 @@
with api.step.nest('build jemalloc-' + platform), api.context(
env=env, cwd=jemalloc_build_dir):
- api.step(
- 'configure',
- [
- '../configure',
- '--build=' + host_target.triple,
- '--host=' + target.triple,
- '--disable-shared',
- '--enable-static',
- '--disable-syscall',
- '--disable-stats',
- ])
+ configure_args = [
+ '../configure',
+ '--build=' + host_target.triple,
+ '--host=' + target.triple,
+ '--disable-shared',
+ '--enable-static',
+ '--disable-syscall',
+ '--disable-stats',
+ ]
+ if platform == 'linux-arm64':
+ configure_args.append('--with-lg-page=16')
+ api.step('configure', configure_args)
api.step('build', ['make', '-j%d' % api.platform.cpu_count, 'build_lib_static'])
jemalloc_static_lib = jemalloc_build_dir.join('lib', 'libjemalloc.a')