I just disabled jumbo for nacl in //base because of linking problems: https://chromium-review.googlesource.com/c/chromium/src/+/725284
There are too many instances of some memory allocation functions as below:
[626/5256] LINK irt_x64/nacl_irt.nexe
FAILED: irt_x64/nacl_irt.nexe irt_x64/exe.unstripped/nacl_irt.nexe
E:/b/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe "../../build/toolchain/gcc_link_wrapper.py" --output="irt_x64/nacl_irt.nexe" --strip="../../native_client/toolchain/win_x86/pnacl_newlib/bin/x86_64-nacl-strip.exe" --unstripped-file="irt_x64/exe.unstripped/nacl_irt.nexe" -- E:/b/depot_tools/win_tools-2_7_6_bin/python/bin/python.exe ../../native_client/build/link_irt.py --tls-edit=./tls_edit --link-cmd=../../native_client/toolchain/win_x86/pnacl_newlib/bin/x86_64-nacl-clang++.exe --readelf-cmd=../../native_client/toolchain/win_x86/pnacl_newlib/bin/x86_64-nacl-readelf.exe -Wl,--fatal-warnings -m64 -Werror -Wl,--gc-sections -o "irt_x64/exe.unstripped/nacl_irt.nexe" -Wl,--start-group @"irt_x64/nacl_irt.nexe.rsp" -Wl,--end-group
E:\b\c\builder\Jumbo_Win_x64\src\native_client\toolchain\win_x86\pnacl_newlib\bin/../x86_64-nacl/lib\libnacl.a(malloc.o): In function `_calloc_r':
/mnt/data/b/build/slave/nacl-toolchain/build/native_client/src/untrusted/nacl/malloc.c:37: multiple definition of `_calloc_r'
irt_x64/obj/native_client/src/untrusted/irt/libirt_core_lib.a(irt_malloc.o):../../native_client/src/untrusted/irt/irt_malloc.c:(.text._calloc_r+0x0): first defined here
E:\b\c\builder\Jumbo_Win_x64\src\native_client\toolchain\win_x86\pnacl_newlib\bin/../x86_64-nacl/lib\libnacl.a(malloc.o): In function `_free_r':
/mnt/data/b/build/slave/nacl-toolchain/build/native_client/src/untrusted/nacl/malloc.c:46: multiple definition of `_free_r'
irt_x64/obj/native_client/src/untrusted/irt/libirt_core_lib.a(irt_malloc.o):../../native_client/src/untrusted/irt/irt_malloc.c:(.text._free_r+0x0): first defined here
E:\b\c\builder\Jumbo_Win_x64\src\native_client\toolchain\win_x86\pnacl_newlib\bin/../x86_64-nacl/lib\libnacl.a(malloc.o): In function `_malloc_r':
/mnt/data/b/build/slave/nacl-toolchain/build/native_client/src/untrusted/nacl/malloc.c:34: multiple definition of `_malloc_r'
irt_x64/obj/native_client/src/untrusted/irt/libirt_core_lib.a(irt_malloc.o):../../native_client/src/untrusted/irt/irt_malloc.c:(.text._malloc_r+0x0): first defined here
E:\b\c\builder\Jumbo_Win_x64\src\native_client\toolchain\win_x86\pnacl_newlib\bin/../x86_64-nacl/lib\libnacl.a(malloc.o): In function `_realloc_r':
/mnt/data/b/build/slave/nacl-toolchain/build/native_client/src/untrusted/nacl/malloc.c:42: multiple definition of `_realloc_r'
irt_x64/obj/native_client/src/untrusted/irt/libirt_core_lib.a(irt_malloc.o):../../native_client/src/untrusted/irt/irt_malloc.c:(.text._realloc_r+0x0): first defined here
E:\b\c\builder\Jumbo_Win_x64\src\native_client\toolchain\win_x86\pnacl_newlib\bin/../x86_64-nacl/lib\libnacl.a(malloc.o): In function `bulk_free':
/mnt/data/b/build/slave/nacl-toolchain/build/native_client/src/third_party/dlmalloc/malloc.c:5311: multiple definition of `bulk_free'
irt_x64/obj/native_client/src/untrusted/irt/libirt_core_lib.a(irt_malloc.o):../../native_client/src/untrusted/irt/irt_malloc.c:(.text.bulk_free+0x0): first defined here
E:\b\c\builder\Jumbo_Win_x64\src\native_client\toolchain\win_x86\pnacl_newlib\bin/../x86_64-nacl/lib\libnacl.a(malloc.o): In function `calloc':
/mnt/data/b/build/slave/nacl-toolchain/build/native_client/src/third_party/dlmalloc/malloc.c:4786: multiple definition of `calloc'
irt_x64/obj/native_client/src/untrusted/irt/libirt_core_lib.a(irt_malloc.o):../../native_client/src/untrusted/irt/irt_malloc.c:(.text.calloc+0x0): first defined here
E:\b\c\builder\Jumbo_Win_x64\src\native_client\toolchain\win_x86\pnacl_newlib\bin/../x86_64-nacl/lib\libnacl.a(malloc.o): In function `free':
/mnt/data/b/build/slave/nacl-toolchain/build/native_client/src/third_party/dlmalloc/malloc.c:4677: multiple definition of `free'
irt_x64/obj/native_client/src/untrusted/irt/libirt_core_lib.a(irt_malloc.o):../../native_client/src/untrusted/irt/irt_malloc.c:(.text.free+0x0): first defined here
E:\b\c\builder\Jumbo_Win_x64\src\native_client\toolchain\win_x86\pnacl_newlib\bin/../x86_64-nacl/lib\libnacl.a(malloc.o): In function `independent_calloc':
/mnt/data/b/build/slave/nacl-toolchain/build/native_client/src/third_party/dlmalloc/malloc.c:5301: multiple definition of `independent_calloc'
irt_x64/obj/native_client/src/untrusted/irt/libirt_core_lib.a(irt_malloc.o):../../native_client/src/untrusted/irt/irt_malloc.c:(.text.independent_calloc+0x0): first defined here
E:\b\c\builder\Jumbo_Win_x64\src\native_client\toolchain\win_x86\pnacl_newlib\bin/../x86_64-nacl/lib\libnacl.a(malloc.o): In function `independent_comalloc':
/mnt/data/b/build/slave/nacl-toolchain/build/native_client/src/third_party/dlmalloc/malloc.c:5307: multiple definition of `independent_comalloc'
irt_x64/obj/native_client/src/untrusted/irt/libirt_core_lib.a(irt_malloc.o):../../native_client/src/untrusted/irt/irt_malloc.c:(.text.independent_comalloc+0x0): first defined here
E:\b\c\builder\Jumbo_Win_x64\src\native_client\toolchain\win_x86\pnacl_newlib\bin/../x86_64-nacl/lib\libnacl.a(malloc.o): In function `malloc':
/mnt/data/b/build/slave/nacl-toolchain/build/native_client/src/third_party/dlmalloc/malloc.c:4539: multiple definition of `malloc'
irt_x64/obj/native_client/src/untrusted/irt/libirt_core_lib.a(irt_malloc.o):../../native_client/src/untrusted/irt/irt_malloc.c:(.text.malloc+0x0): first defined here
E:\b\c\builder\Jumbo_Win_x64\src\native_client\toolchain\win_x86\pnacl_newlib\bin/../x86_64-nacl/lib\libnacl.a(malloc.o): In function `malloc_footprint':
/mnt/data/b/build/slave/nacl-toolchain/build/native_client/src/third_party/dlmalloc/malloc.c:5340: multiple definition of `malloc_footprint'
irt_x64/obj/native_client/src/untrusted/irt/libirt_core_lib.a(irt_malloc.o):../../native_client/src/untrusted/irt/irt_malloc.c:(.text.malloc_footprint+0x0): first defined here
E:\b\c\builder\Jumbo_Win_x64\src\native_client\toolchain\win_x86\pnacl_newlib\bin/../x86_64-nacl/lib\libnacl.a(malloc.o): In function `malloc_footprint_limit':
/mnt/data/b/build/slave/nacl-toolchain/build/native_client/src/third_party/dlmalloc/malloc.c:5348: multiple definition of `malloc_footprint_limit'
irt_x64/obj/native_client/src/untrusted/irt/libirt_core_lib.a(irt_malloc.o):../../native_client/src/untrusted/irt/irt_malloc.c:(.text.malloc_footprint_limit+0x0): first defined here
from https://build.chromium.org/p/chromium.fyi/builders/Jumbo%20Win%20x64/builds/1984
(and equivalent for Linux https://build.chromium.org/p/chromium.fyi/builders/Jumbo%20Linux%20x64/builds/3559 and Mac https://build.chromium.org/p/chromium.fyi/builders/Jumbo%20Mac/builds/3377 )
This only triggers when enable_nacl = true, and there is something else that matters too because thakis could not reproduce locally. Possibly x64 vs x86?
A local tree on a Linux x64 machine where I can reproduce it has args.gn:
is_debug=true
is_clang=true
enable_nacl=true
use_sysroot=false
is_component_build=true
use_jumbo_build=true
jumbo_file_merge_limit=100
enable_ipc_fuzzer=true
It triggers from the target chrome because it depends on //ppapi/native_client:irt (if enable_nacl is true) via some cross-compilation commands.
Comment 1 by ajha@chromium.org
, Nov 3 2017Labels: TE-NeedsTriageHelp