tikv / jemallocator

Rust allocator using jemalloc as a backend
Other
364 stars 62 forks source link

error: Variably modified ‘root’ at file scope #66

Closed hanvo closed 1 year ago

hanvo commented 1 year ago

Hi,

I am not sure if this an issue that can be assisted here or not. But recently I tried to build my project in a Docker image with centos using colima on a mac. I am getting this issue while building

  include/jemalloc/internal/rtree.h:106:19: error: variably modified ‘root’ at file scope
    rtree_leaf_elm_t root[1U << (RTREE_NSB/RTREE_HEIGHT)];

I was able to cross reference this with an issue that looks similar to mine here: https://github.com/jemalloc/jemalloc/issues/2318#issuecomment-1214832157

Is this something that could be applied as a workaround here in tikv-jemallocator?

I am unsure if anyone else has run into a similar issue. Below are detailed stderr output

Env: Gcc Version 7.3.1 Docker image: Centos

error: failed to run custom build command for `tikv-jemalloc-sys v0.5.4+5.3.0-patched` Caused by: process didn't exit successfully: `/home/developer/rust-workspace/target/release/build/tikv-jemalloc-sys-5d5e5a537495a3e9/build-script-build` (exit status: 101) --- stdout TARGET=x86_64-unknown-linux-gnu HOST=x86_64-unknown-linux-gnu NUM_JOBS=4 OUT_DIR="/home/developer/rust-workspace/target/release/build/tikv-jemalloc-sys-b9801c1c6cae743d/out" BUILD_DIR="/home/developer/rust-workspace/target/release/build/tikv-jemalloc-sys-b9801c1c6cae743d/out/build" SRC_DIR="/home/developer/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tikv-jemalloc-sys-0.5.4+5.3.0-patched" cargo:rustc-cfg=prefixed cargo:rerun-if-env-changed=JEMALLOC_OVERRIDE OPT_LEVEL = Some("3") TARGET = Some("x86_64-unknown-linux-gnu") HOST = Some("x86_64-unknown-linux-gnu") cargo:rerun-if-env-changed=CC_x86_64-unknown-linux-gnu CC_x86_64-unknown-linux-gnu = None cargo:rerun-if-env-changed=CC_x86_64_unknown_linux_gnu CC_x86_64_unknown_linux_gnu = None cargo:rerun-if-env-changed=HOST_CC HOST_CC = None cargo:rerun-if-env-changed=CC CC = None cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS CRATE_CC_NO_DEFAULTS = None DEBUG = Some("false") CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2") cargo:rerun-if-env-changed=CFLAGS_x86_64-unknown-linux-gnu CFLAGS_x86_64-unknown-linux-gnu = None cargo:rerun-if-env-changed=CFLAGS_x86_64_unknown_linux_gnu CFLAGS_x86_64_unknown_linux_gnu = None cargo:rerun-if-env-changed=HOST_CFLAGS HOST_CFLAGS = None cargo:rerun-if-env-changed=CFLAGS CFLAGS = None CC="cc" CFLAGS="-O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall" JEMALLOC_REPO_DIR="jemalloc" cargo:rerun-if-env-changed=JEMALLOC_SYS_WITH_MALLOC_CONF cargo:rerun-if-env-changed=JEMALLOC_SYS_WITH_LG_PAGE cargo:rerun-if-env-changed=JEMALLOC_SYS_WITH_LG_HUGEPAGE cargo:rerun-if-env-changed=JEMALLOC_SYS_WITH_LG_QUANTUM cargo:rerun-if-env-changed=JEMALLOC_SYS_WITH_LG_VADDR --with-jemalloc-prefix=_rjem_ running: cd "/home/developer/rust-workspace/target/release/build/tikv-jemalloc-sys-b9801c1c6cae743d/out/build" && CC="cc" CFLAGS="-O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall" CPPFLAGS="-O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall" LDFLAGS="-O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall" "sh" "/home/developer/rust-workspace/target/release/build/tikv-jemalloc-sys-b9801c1c6cae743d/out/build/configure" "--disable-cxx" "--enable-doc=no" "--enable-shared=no" "--with-jemalloc-prefix=_rjem_" "--with-private-namespace=_rjem_" "--host=x86_64-unknown-linux-gnu" "--build=x86_64-unknown-linux-gnu" "--prefix=/home/developer/rust-workspace/target/release/build/tikv-jemalloc-sys-b9801c1c6cae743d/out" checking for xsltproc... /usr/bin/xsltproc checking for x86_64-unknown-linux-gnu-gcc... cc checking whether the C compiler works... yes checking for C compiler default output file name... a.out checking for suffix of executables... checking whether we are cross compiling... no checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether cc accepts -g... yes checking for cc option to accept ISO C89... none needed checking whether compiler is cray... no checking whether compiler supports -std=gnu11... yes checking whether compiler supports -Werror=unknown-warning-option... no checking whether compiler supports -Wall... yes checking whether compiler supports -Wextra... yes checking whether compiler supports -Wshorten-64-to-32... no checking whether compiler supports -Wsign-compare... yes checking whether compiler supports -Wundef... yes checking whether compiler supports -Wno-format-zero-length... yes checking whether compiler supports -Wpointer-arith... yes checking whether compiler supports -Wno-missing-braces... yes checking whether compiler supports -Wno-missing-field-initializers... yes checking whether compiler supports -Wno-missing-attributes... yes checking whether compiler supports -pipe... yes checking whether compiler supports -g3... yes checking how to run the C preprocessor... cc -E checking for grep that handles long lines and -e... /usr/bin/grep checking for egrep... /usr/bin/grep -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking whether byte ordering is bigendian... no checking size of void *... 8 checking size of int... 4 checking size of long... 8 checking size of long long... 8 checking size of intmax_t... 8 checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking whether pause instruction is compilable... yes checking number of significant virtual address bits... 0 checking for x86_64-unknown-linux-gnu-ar... no checking for ar... ar checking for x86_64-unknown-linux-gnu-nm... no checking for nm... nm checking for gawk... gawk checking malloc.h usability... yes checking malloc.h presence... yes checking for malloc.h... yes checking whether malloc_usable_size definition can use const argument... no checking for library containing log... -lm checking whether __attribute__ syntax is compilable... yes checking whether compiler supports -fvisibility=hidden... yes checking whether compiler supports -fvisibility=hidden... no checking whether compiler supports -Werror... yes checking whether compiler supports -herror_on_warning... no checking whether tls_model attribute is compilable... yes checking whether compiler supports -Werror... yes checking whether compiler supports -herror_on_warning... no checking whether alloc_size attribute is compilable... yes checking whether compiler supports -Werror... yes checking whether compiler supports -herror_on_warning... no checking whether format(gnu_printf, ...) attribute is compilable... yes checking whether compiler supports -Werror... yes checking whether compiler supports -herror_on_warning... no checking whether format(printf, ...) attribute is compilable... yes checking whether compiler supports -Werror... yes checking whether compiler supports -herror_on_warning... no checking whether format(printf, ...) attribute is compilable... yes checking whether compiler supports -Wimplicit-fallthrough... yes checking whether fallthrough attribute is compilable... yes checking whether compiler supports -Wimplicit-fallthrough... yes checking whether compiler supports -Wimplicit-fallthrough... no checking whether compiler supports -Werror... yes checking whether compiler supports -herror_on_warning... no checking whether cold attribute is compilable... yes checking whether vm_make_tag is compilable... no checking for a BSD-compatible install... /usr/bin/install -c checking for x86_64-unknown-linux-gnu-ranlib... no checking for ranlib... ranlib checking for ld... /opt/rh/devtoolset-7/root/usr/bin/ld checking for autoconf... /usr/bin/autoconf checking for memalign... yes checking for valloc... yes checking for malloc_size... no checking whether compiler supports -O3... yes checking whether compiler supports -O3... no checking whether compiler supports -funroll-loops... yes checking configured backtracing method... N/A checking for sbrk... yes checking whether utrace(2) is compilable... no checking whether utrace(2) with label is compilable... no checking whether a program using __builtin_unreachable is compilable... yes checking whether a program using __builtin_ffsl is compilable... yes checking whether a program using __builtin_popcountl is compilable... yes checking LG_PAGE... 12 checking pthread.h usability... yes checking pthread.h presence... yes checking for pthread.h... yes checking for pthread_create in -lpthread... yes checking dlfcn.h usability... yes checking dlfcn.h presence... yes checking for dlfcn.h... yes checking for dlsym... no checking for dlsym in -ldl... yes checking whether pthread_atfork(3) is compilable... yes checking whether pthread_setname_np(3) is compilable... yes checking whether pthread_getname_np(3) is compilable... yes checking whether pthread_get_name_np(3) is compilable... no checking for library containing clock_gettime... none required checking whether clock_gettime(CLOCK_MONOTONIC_COARSE, ...) is compilable... yes checking whether clock_gettime(CLOCK_MONOTONIC, ...) is compilable... yes checking whether mach_absolute_time() is compilable... no checking whether clock_gettime(CLOCK_REALTIME, ...) is compilable... yes checking whether compiler supports -Werror... yes checking whether syscall(2) is compilable... yes checking for secure_getenv... yes checking for sched_getcpu... yes checking for sched_setaffinity... yes checking for issetugid... no checking for _malloc_thread_cleanup... no checking for _pthread_mutex_init_calloc_cb... no checking for memcntl... no checking for TLS... yes checking whether C11 atomics is compilable... yes checking whether GCC __atomic atomics is compilable... yes checking whether GCC 8-bit __atomic atomics is compilable... yes checking whether GCC __sync atomics is compilable... yes checking whether GCC 8-bit __sync atomics is compilable... yes checking whether Darwin OSAtomic*() is compilable... no checking whether madvise(2) is compilable... yes checking whether madvise(..., MADV_FREE) is compilable... no checking whether madvise(..., MADV_DONTNEED) is compilable... yes checking whether madvise(..., MADV_DO[NT]DUMP) is compilable... yes checking whether madvise(..., MADV_[NO]HUGEPAGE) is compilable... yes checking whether madvise(..., MADV_[NO]CORE) is compilable... no checking whether mprotect(2) is compilable... yes checking for __builtin_clz... yes checking whether Darwin os_unfair_lock_*() is compilable... no checking whether glibc malloc hook is compilable... yes checking whether glibc memalign hook is compilable... yes checking whether pthreads adaptive mutexes is compilable... yes checking whether compiler supports -D_GNU_SOURCE... yes checking whether compiler supports -Werror... yes checking whether compiler supports -herror_on_warning... no checking whether strerror_r returns char with gnu source is compilable... yes checking for stdbool.h that conforms to C99... yes checking for _Bool... yes configure: creating ./config.status config.status: creating Makefile config.status: creating jemalloc.pc config.status: creating doc/html.xsl config.status: creating doc/manpages.xsl config.status: creating doc/jemalloc.xml config.status: creating include/jemalloc/jemalloc_macros.h config.status: creating include/jemalloc/jemalloc_protos.h config.status: creating include/jemalloc/jemalloc_typedefs.h config.status: creating include/jemalloc/internal/jemalloc_preamble.h config.status: creating test/test.sh config.status: creating test/include/test/jemalloc_test.h config.status: creating config.stamp config.status: creating bin/jemalloc-config config.status: creating bin/jemalloc.sh config.status: creating bin/jeprof config.status: creating include/jemalloc/jemalloc_defs.h config.status: creating include/jemalloc/internal/jemalloc_internal_defs.h config.status: creating test/include/test/jemalloc_test_defs.h config.status: executing include/jemalloc/internal/public_symbols.txt commands config.status: executing include/jemalloc/internal/private_symbols.awk commands config.status: executing include/jemalloc/internal/private_symbols_jet.awk commands config.status: executing include/jemalloc/internal/public_namespace.h commands config.status: executing include/jemalloc/internal/public_unnamespace.h commands config.status: executing include/jemalloc/jemalloc_protos_jet.h commands config.status: executing include/jemalloc/jemalloc_rename.h commands config.status: executing include/jemalloc/jemalloc_mangle.h commands config.status: executing include/jemalloc/jemalloc_mangle_jet.h commands config.status: executing include/jemalloc/jemalloc.h commands jemalloc version : 5.3.0-0-g54eaed1d8b56b1aa528be3bdd1877e59c56fa90c library revision : 2 CONFIG : --disable-cxx --enable-doc=no --enable-shared=no --with-jemalloc-prefix=_rjem_ --with-private-namespace=_rjem_ --host=x86_64-unknown-linux-gnu --build=x86_64-unknown-linux-gnu --prefix=/home/developer/rust-workspace/target/release/build/tikv-jemalloc-sys-b9801c1c6cae743d/out build_alias=x86_64-unknown-linux-gnu host_alias=x86_64-unknown-linux-gnu CC=cc 'CFLAGS=-O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall' 'LDFLAGS=-O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall' 'CPPFLAGS=-O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall' CC : cc CONFIGURE_CFLAGS : -std=gnu11 -Wall -Wextra -Wsign-compare -Wundef -Wno-format-zero-length -Wpointer-arith -Wno-missing-braces -Wno-missing-field-initializers -Wno-missing-attributes -pipe -g3 -fvisibility=hidden -Wimplicit-fallthrough -O3 -funroll-loops SPECIFIED_CFLAGS : -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall EXTRA_CFLAGS : CPPFLAGS : -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT CXX : CONFIGURE_CXXFLAGS : SPECIFIED_CXXFLAGS : EXTRA_CXXFLAGS : LDFLAGS : -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall EXTRA_LDFLAGS : DSO_LDFLAGS : -shared -Wl,-soname,$(@F) LIBS : -lm -pthread -ldl RPATH_EXTRA : XSLTPROC : /usr/bin/xsltproc XSLROOT : PREFIX : /home/developer/rust-workspace/target/release/build/tikv-jemalloc-sys-b9801c1c6cae743d/out BINDIR : /home/developer/rust-workspace/target/release/build/tikv-jemalloc-sys-b9801c1c6cae743d/out/bin DATADIR : /home/developer/rust-workspace/target/release/build/tikv-jemalloc-sys-b9801c1c6cae743d/out/share INCLUDEDIR : /home/developer/rust-workspace/target/release/build/tikv-jemalloc-sys-b9801c1c6cae743d/out/include LIBDIR : /home/developer/rust-workspace/target/release/build/tikv-jemalloc-sys-b9801c1c6cae743d/out/lib MANDIR : /home/developer/rust-workspace/target/release/build/tikv-jemalloc-sys-b9801c1c6cae743d/out/share/man srcroot : abs_srcroot : /home/developer/rust-workspace/target/release/build/tikv-jemalloc-sys-b9801c1c6cae743d/out/build/ objroot : abs_objroot : /home/developer/rust-workspace/target/release/build/tikv-jemalloc-sys-b9801c1c6cae743d/out/build/ JEMALLOC_PREFIX : _rjem_ JEMALLOC_PRIVATE_NAMESPACE : _rjem_je_ install_suffix : malloc_conf : documentation : 0 shared libs : 0 static libs : 1 autogen : 0 debug : 0 stats : 1 experimental_smallocx : 0 prof : 0 prof-libunwind : 0 prof-libgcc : 0 prof-gcc : 0 fill : 1 utrace : 0 xmalloc : 0 log : 0 lazy_lock : 0 cache-oblivious : 1 cxx : 0 running: cd "/home/developer/rust-workspace/target/release/build/tikv-jemalloc-sys-b9801c1c6cae743d/out/build" && "make" "-j" "4" cc -std=gnu11 -Wall -Wextra -Wsign-compare -Wundef -Wno-format-zero-length -Wpointer-arith -Wno-missing-braces -Wno-missing-field-initializers -Wno-missing-attributes -pipe -g3 -fvisibility=hidden -Wimplicit-fallthrough -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/jemalloc.sym.o src/jemalloc.c cc -std=gnu11 -Wall -Wextra -Wsign-compare -Wundef -Wno-format-zero-length -Wpointer-arith -Wno-missing-braces -Wno-missing-field-initializers -Wno-missing-attributes -pipe -g3 -fvisibility=hidden -Wimplicit-fallthrough -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/arena.sym.o src/arena.c cc -std=gnu11 -Wall -Wextra -Wsign-compare -Wundef -Wno-format-zero-length -Wpointer-arith -Wno-missing-braces -Wno-missing-field-initializers -Wno-missing-attributes -pipe -g3 -fvisibility=hidden -Wimplicit-fallthrough -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/background_thread.sym.o src/background_thread.c cc -std=gnu11 -Wall -Wextra -Wsign-compare -Wundef -Wno-format-zero-length -Wpointer-arith -Wno-missing-braces -Wno-missing-field-initializers -Wno-missing-attributes -pipe -g3 -fvisibility=hidden -Wimplicit-fallthrough -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -Iinclude -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/base.sym.o src/base.c --- stderr In file included from include/jemalloc/internal/emap.h:5:0, from include/jemalloc/internal/san.h:5, from include/jemalloc/internal/ecache.h:5, from include/jemalloc/internal/pa.h:6, from include/jemalloc/internal/arena_stats.h:8, from include/jemalloc/internal/arena_structs.h:4, from include/jemalloc/internal/jemalloc_internal_includes.h:52, from src/base.c:2: include/jemalloc/internal/rtree.h:106:27: warning: left shift count is negative [-Wshift-count-negative] rtree_leaf_elm_t root[1U << (RTREE_NSB/RTREE_HEIGHT)]; ^~ include/jemalloc/internal/rtree.h:106:19: error: variably modified ‘root’ at file scope rtree_leaf_elm_t root[1U << (RTREE_NSB/RTREE_HEIGHT)]; ^~~~ include/jemalloc/internal/rtree.h: In function ‘rtree_leaf_elm_bits_decode’: include/jemalloc/internal/rtree.h:229:59: warning: left shift count >= width of type [-Wshift-count-overflow] contents.edata = (edata_t *)((uintptr_t)((intptr_t)(bits << RTREE_NHIB) ^~ include/jemalloc/internal/rtree.h:230:6: warning: right shift count >= width of type [-Wshift-count-overflow] >> RTREE_NHIB) & low_bit_mask); ^~ In file included from include/jemalloc/internal/emap.h:5:0, from include/jemalloc/internal/san.h:5, from include/jemalloc/internal/ecache.h:5, from include/jemalloc/internal/pa.h:6, from include/jemalloc/internal/arena_stats.h:8, from include/jemalloc/internal/arena_structs.h:4, from include/jemalloc/internal/jemalloc_internal_includes.h:52, from src/jemalloc.c:3: include/jemalloc/internal/rtree.h:106:27: warning: left shift count is negative [-Wshift-count-negative] rtree_leaf_elm_t root[1U << (RTREE_NSB/RTREE_HEIGHT)]; ^~ In file included from include/jemalloc/internal/emap.h:5:0, from include/jemalloc/internal/san.h:5, from include/jemalloc/internal/ecache.h:5, from include/jemalloc/internal/pa.h:6, from include/jemalloc/internal/arena_stats.h:8, from include/jemalloc/internal/arena_structs.h:4, from include/jemalloc/internal/jemalloc_internal_includes.h:52, from src/arena.c:2: include/jemalloc/internal/rtree.h:106:27: warning: left shift count is negative [-Wshift-count-negative] rtree_leaf_elm_t root[1U << (RTREE_NSB/RTREE_HEIGHT)]; ^~ include/jemalloc/internal/rtree.h:106:19: error: variably modified ‘root’ at file scope rtree_leaf_elm_t root[1U << (RTREE_NSB/RTREE_HEIGHT)]; ^~~~ include/jemalloc/internal/rtree.h: In function ‘rtree_leaf_elm_bits_decode’: include/jemalloc/internal/rtree.h:229:59: warning: left shift count >= width of type [-Wshift-count-overflow] contents.edata = (edata_t *)((uintptr_t)((intptr_t)(bits << RTREE_NHIB) ^~ include/jemalloc/internal/rtree.h:230:6: warning: right shift count >= width of type [-Wshift-count-overflow] >> RTREE_NHIB) & low_bit_mask); ^~ include/jemalloc/internal/rtree.h:106:19: error: variably modified ‘root’ at file scope rtree_leaf_elm_t root[1U << (RTREE_NSB/RTREE_HEIGHT)]; ^~~~ include/jemalloc/internal/rtree.h: In function ‘rtree_leaf_elm_bits_decode’: include/jemalloc/internal/rtree.h:229:59: warning: left shift count >= width of type [-Wshift-count-overflow] contents.edata = (edata_t *)((uintptr_t)((intptr_t)(bits << RTREE_NHIB) ^~ include/jemalloc/internal/rtree.h:230:6: warning: right shift count >= width of type [-Wshift-count-overflow] >> RTREE_NHIB) & low_bit_mask); ^~ In file included from include/jemalloc/internal/emap.h:5:0, from include/jemalloc/internal/san.h:5, from include/jemalloc/internal/ecache.h:5, from include/jemalloc/internal/pa.h:6, from include/jemalloc/internal/arena_stats.h:8, from include/jemalloc/internal/arena_structs.h:4, from include/jemalloc/internal/jemalloc_internal_includes.h:52, from src/background_thread.c:2: include/jemalloc/internal/rtree.h:106:27: warning: left shift count is negative [-Wshift-count-negative] rtree_leaf_elm_t root[1U << (RTREE_NSB/RTREE_HEIGHT)]; ^~ include/jemalloc/internal/rtree.h:106:19: error: variably modified ‘root’ at file scope rtree_leaf_elm_t root[1U << (RTREE_NSB/RTREE_HEIGHT)]; ^~~~ include/jemalloc/internal/rtree.h: In function ‘rtree_leaf_elm_bits_decode’: include/jemalloc/internal/rtree.h:229:59: warning: left shift count >= width of type [-Wshift-count-overflow] contents.edata = (edata_t *)((uintptr_t)((intptr_t)(bits << RTREE_NHIB) ^~ include/jemalloc/internal/rtree.h:230:6: warning: right shift count >= width of type [-Wshift-count-overflow] >> RTREE_NHIB) & low_bit_mask); ^~ src/base.c: At top level: cc1: warning: unrecognized command line option ‘-Wno-missing-attributes’ make: *** [Makefile:478: src/base.sym.o] Error 1 make: *** Waiting for unfinished jobs.... src/background_thread.c: At top level: src/arena.c: At top level: cc1: warning: unrecognized command line option ‘-Wno-missing-attributes’ make: *** [Makefile:478: src/background_thread.sym.o] Error 1 cc1: warning: unrecognized command line option ‘-Wno-missing-attributes’ make: *** [Makefile:478: src/arena.sym.o] Error 1 src/jemalloc.c: At top level: cc1: warning: unrecognized command line option ‘-Wno-missing-attributes’ make: *** [Makefile:478: src/jemalloc.sym.o] Error 1 thread 'main' panicked at /home/developer/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tikv-jemalloc-sys-0.5.4+5.3.0-patched/build.rs:351:9: command did not execute successfully: cd "/home/developer/rust-workspace/target/release/build/tikv-jemalloc-sys-b9801c1c6cae743d/out/build" && "make" "-j" "4" expected success, got: exit status: 2 note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace warning: build failed, waiting for other jobs to finish...

Thanks in advanced!

BusyJay commented 1 year ago

Yes, just run env JEMALLOC_SYS_WITH_LG_VADDR=<whatever_you_want> cargo build.

hanvo commented 1 year ago

@BusyJay -- Thank you for the advise! That seemed to do the trick. But as for the value that is set is a bit mysterious to me. Do you have an idea the methodology on how to select a number? I've dug through a few github issue threads and it seems like the 2-3 posts I've seen suggest 48. But I can't pinpoint where that value came from. Thanks again for the time!

BusyJay commented 1 year ago

On x86_64 (and aarch64), not all addresses are used. Typically, on x86_64, only 48 bits out of 64bits for addressing. Also check https://en.wikipedia.org/wiki/X86-64.

hanvo commented 1 year ago

Thank you for your reply and explanation! Closing.