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')