On 9/21/20 9:36 AM, Ken Moffat via blfs-dev wrote:
I'm now looking at js78 because firefox-78.3.0 is out. For the
moment I'm still using js68, but I can at least compare the js build
against 78.2.0.
Looking at that, we have '--disable-jemalloc' with the explanation:
This switch disables the internal memory allocator used in JS78.
jemalloc causes a conflict with glibc.
I suspect we have carried that for a long time, but I think it is
now out of date. I am in the middle of playing with blender (a maze
of nasty cmake packages, a couple of which can use jemalloc). When
I first tried blender a few months ago, I avoided jemalloc (trying
to get a build of as little as possible, for 3D rendering). At that
time I only had 16GB DRAM, less the amount used for video, and even
for 'barbershop' with only a couple of terms I was into swap so I
gave up trying to learn how to use blender.
Now I have 32GB on one machine, so I retried. One of the questions
was whether I should use jemalloc: the answer was yes, on this
machine the memory usage for barbeshop goes down dramatically. As
part of that investigation I discovered that firefox DOES use its
own local copy of jemalloc when configuring js:
0:22.50 js/src> running /scratch/working/firefox-78.3.0/configure.py
--enable-project=js --host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu
MOZILLA_OFFICIAL= MOZBUILD_STATE_PATH=/scratch/working/firefox-78.3.0/mozbuild
--disable-tests --disable-debug --without-debug-label --disable-rust-debug
MOZ_PGO= --enable-release --disable-optimize --without-ccache CCACHE_PREFIX=
RUSTC_WRAPPER= --without-toolchain-prefix --disable-debug-symbols
--disable-address-sanitizer --disable-memory-sanitizer --disable-thread-sanitizer
--disable-undefined-sanitizer --disable-signed-overflow-sanitizer
--disable-unsigned-overflow-sanitizer --enable-frame-pointers --disable-coverage
RUSTC_OPT_LEVEL=2 --enable-cargo-incremental --disable-linker AS=
--disable-clang-plugin --disable-clang-plugin-alpha --disable-mozsearch-plugin
--disable-stdcxx-compat --disable-fuzzing --disable-cpp-rtti --enable-jemalloc
--disable-replace-malloc --without-linux-headers --disable-warnings-as-errors
--disable-profile-generate --disable-profile-use --without-pgo-profile-path
--disable-lto MOZ_LD64_KNOWN_GOOD= --enable-new-pass-manager --disable-valgrind
--disable-smoosh --with-system-nspr RUSTC= CARGO= RUSTDOC= RUSTFMT=
--without-libclang-path --without-clang-path BINDGEN_CFLAGS= --disable-js-shell
--enable-jit --disable-simulator --disable-instruments --disable-callgrind
--disable-profiling --disable-vtune --disable-gc-probes --disable-gczeal
--disable-small-chunk-size --disable-trace-logging --disable-oom-breakpoint
--disable-perf --disable-jitspew --disable-masm-verbose
--disable-more-deterministic --enable-ctypes --with-system-ffi
--disable-pipeline-operator --disable-binast --disable-rust-simd
--disable-cranelift --disable-wasm-codegen-debug --disable-typed-objects
--disable-wasm-bulk-memory --disable-wasm-reftypes --disable-wasm-gc
--disable-wasm-private-reftypes --enable-wasm-multi-value --enable-shared-memory
--enable-new-regexp --disable-wasm-simd --without-qemu-exe
--with-cross-lib=/usr/x86_64-pc-linux-gnu --without-sixgill
--with-jitreport-granularity=3 --with-system-icu --with-intl-api --disable-dtrace
--enable-icf --disable-strip --enable-install-strip STRIP_FLAGS=
--with-system-zlib --prefix=/scratch/working/firefox-78.3.0/firefox-build-dir/dist
JS_STANDALONE=
and then one further reference:
12:35.42 [style 0.0.1]
cargo:rerun-if-changed=/scratch/working/firefox-78.3.0/firefox-build-dir/dist/include/mozjemalloc_types.h
I've now looked at fedora,
https://src.fedoraproject.org/rpms/mozjs78/blob/master/f/mozjs78.spec
It seems to me that they are not disabling jemalloc.
ĸen
I think dropping --disable-jemalloc is a good idea. I think that's a
holdover from when we first added it, I think js60 or js52? It was
around the time that Gjs started requiring later versions of the
Spidermonkey JS engine.
- Doug
--
http://lists.linuxfromscratch.org/listinfo/blfs-dev
FAQ: http://www.linuxfromscratch.org/blfs/faq.html
Unsubscribe: See the above information page