ezrosent / frawk

an efficient awk-like language
Apache License 2.0
1.26k stars 35 forks source link

Is it possilbe to build frawk with musl? #33

Open ghuls opened 3 years ago

ghuls commented 3 years ago

Is it possilbe to build frawk with musl?

cargo +nightly build --release --target x86_64-unknown-linux-musl

I always run in to problems with jemalloc.

I just want to have a static version so I can run frawk on a cluster on which I can't install LLVM. It has an older version of glibc than my laptop, so the default build won't work.

   Compiling libc v0.2.80
   Compiling proc-macro2 v1.0.24
   Compiling memchr v2.3.4
   Compiling rand_core v0.4.2
   Compiling autocfg v1.0.1
   Compiling unicode-xid v0.2.1
   Compiling autocfg v0.1.7
   Compiling byteorder v1.3.4
   Compiling cfg-if v0.1.10
   Compiling lazy_static v1.4.0
   Compiling syn v1.0.48
   Compiling log v0.4.11
   Compiling typenum v1.12.0
   Compiling siphasher v0.2.3
   Compiling serde_derive v1.0.117
   Compiling cc v1.0.62
   Compiling regex-syntax v0.6.21
   Compiling maybe-uninit v2.0.0
   Compiling version_check v0.9.2
   Compiling string_cache_shared v0.3.0
   Compiling serde v1.0.117
   Compiling byte-tools v0.3.1
   Compiling getrandom v0.1.15
   Compiling semver-parser v0.7.0
   Compiling either v1.6.1
   Compiling precomputed-hash v0.1.1
   Compiling opaque-debug v0.2.3
   Compiling fixedbitset v0.1.9
   Compiling strsim v0.9.3
   Compiling fake-simd v0.1.2
   Compiling fs_extra v1.2.0
   Compiling ordermap v0.3.5
   Compiling bit-vec v0.6.2
   Compiling new_debug_unreachable v1.0.4
   Compiling scopeguard v1.1.0
   Compiling unicode-segmentation v1.7.0
   Compiling lalrpop-util v0.17.2
   Compiling bitflags v1.2.1
   Compiling diff v0.1.12
   Compiling unicode-xid v0.1.0
   Compiling ppv-lite86 v0.2.10
   Compiling fnv v1.0.7
   Compiling unicode-width v0.1.8
   Compiling ryu v1.0.5
   Compiling hashbrown v0.9.1
   Compiling termcolor v1.1.0
   Compiling os_str_bytes v2.4.0
   Compiling stable_deref_trait v1.2.0
   Compiling strsim v0.10.0
   Compiling same-file v1.0.6
   Compiling vec_map v0.8.2
   Compiling hashbrown v0.3.1
   Compiling rand_core v0.3.1
   Compiling rand_jitter v0.1.4
   Compiling crossbeam-utils v0.7.2
   Compiling memoffset v0.5.6
   Compiling crossbeam-epoch v0.8.2
   Compiling indexmap v1.6.0
   Compiling rand_pcg v0.1.2
   Compiling rand_chacha v0.1.1
   Compiling rand v0.6.5
   Compiling phf_shared v0.7.24
   Compiling thread_local v1.0.1
   Compiling proc-macro-error-attr v1.0.4
   Compiling proc-macro-error v1.0.4
   Compiling block-padding v0.1.5
   Compiling semver v0.9.0
   Compiling itertools v0.8.2
   Compiling bit-set v0.5.2
   Compiling jemalloc-sys v0.3.2
   Compiling petgraph v0.4.13
   Compiling heck v0.3.1
   Compiling textwrap v0.12.1
   Compiling itertools v0.9.0
   Compiling elsa v1.3.2
   Compiling rand_hc v0.1.0
   Compiling rand_xorshift v0.1.1
   Compiling rand_isaac v0.1.1
   Compiling rand_os v0.1.3
   Compiling dirs v1.0.5
   Compiling atty v0.2.14
   Compiling aho-corasick v0.7.15
   Compiling quote v1.0.7
   Compiling num_cpus v1.13.0
   Compiling regex-automata v0.1.9
   Compiling ena v0.13.1
   Compiling smallvec v0.6.13
   Compiling generic-array v0.12.3
   Compiling term v0.5.2
   Compiling regex v1.4.2
   Compiling rand_core v0.5.1
   Compiling crossbeam-channel v0.4.4
   Compiling crossbeam-queue v0.2.3
   Compiling bstr v0.2.14
   Compiling ascii-canvas v2.0.0
   Compiling llvm-sys v100.2.0
   Compiling block-buffer v0.7.3
   Compiling digest v0.8.1
   Compiling rand_chacha v0.2.2
   Compiling crossbeam-deque v0.7.3
   Compiling globset v0.4.6
   Compiling phf_generator v0.7.24
   Compiling sha2 v0.8.2
The following warnings were emitted during compilation:

warning: "`background_threads_runtime_support` not supported for `x86_64-unknown-linux-musl`"

error: failed to run custom build command for `jemalloc-sys v0.3.2`

Caused by:
  process didn't exit successfully: `/programs/frawk/target/release/build/jemalloc-sys-5fe65c35d70d1b7d/build-script-build` (exit code: 101)
  --- stdout
  TARGET=x86_64-unknown-linux-musl
  HOST=x86_64-unknown-linux-gnu
  NUM_JOBS=4
  OUT_DIR="/programs/frawk/target/x86_64-unknown-linux-musl/release/build/jemalloc-sys-029465a0016254ff/out"
  BUILD_DIR="/programs/frawk/target/x86_64-unknown-linux-musl/release/build/jemalloc-sys-029465a0016254ff/out/build"
  SRC_DIR="~/.cargo/registry/src/github.com-1ecc6299db9ec823/jemalloc-sys-0.3.2"
  OPT_LEVEL = Some("3")
  TARGET = Some("x86_64-unknown-linux-musl")
  HOST = Some("x86_64-unknown-linux-gnu")
  CC_x86_64-unknown-linux-musl = None
  CC_x86_64_unknown_linux_musl = None
  TARGET_CC = None
  CC = None
  CROSS_COMPILE = None
  CFLAGS_x86_64-unknown-linux-musl = None
  CFLAGS_x86_64_unknown_linux_musl = None
  TARGET_CFLAGS = None
  CFLAGS = None
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some("false")
  CARGO_CFG_TARGET_FEATURE = Some("adx,aes,avx,avx2,bmi1,bmi2,cmpxchg16b,ermsb,f16c,fma,fxsr,lzcnt,movbe,pclmulqdq,popcnt,rdrand,rdseed,sse,sse2,sse3,sse4.1,sse4.2,ssse3,xsave,xsavec,xsaveopt,xsaves")
  CC="musl-gcc"
  CFLAGS="-O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall"
  JEMALLOC_REPO_DIR="jemalloc"
  JEMALLOC_SRC_DIR="/programs/frawk/target/x86_64-unknown-linux-musl/release/build/jemalloc-sys-029465a0016254ff/out/jemalloc"
  cargo:warning="`background_threads_runtime_support` not supported for `x86_64-unknown-linux-musl`"
  cargo:rustc-cfg=prefixed
  --with-jemalloc-prefix=_rjem_
  running: "sh" "/programs/frawk/target/x86_64-unknown-linux-musl/release/build/jemalloc-sys-029465a0016254ff/out/jemalloc/configure" "--disable-cxx" "--with-jemalloc-prefix=_rjem_" "--with-private-namespace=_rjem_" "--host=x86_64-unknown-linux-musl" "--build=x86_64-unknown-linux-gnu" "--prefix=/programs/frawk/target/x86_64-unknown-linux-musl/release/build/jemalloc-sys-029465a0016254ff/out"
  checking for xsltproc... ~/anaconda3/bin/xsltproc
  checking for x86_64-unknown-linux-musl-gcc... musl-gcc
  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... yes
  checking for suffix of object files... o
  checking whether we are using the GNU C compiler... yes
  checking whether musl-gcc accepts -g... yes
  checking for musl-gcc option to accept ISO C89... none needed
  checking whether compiler is cray... no
  checking whether compiler supports -std=gnu11... yes
  checking whether compiler supports -Wall... 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 -pipe... yes
  checking whether compiler supports -g3... yes
  checking how to run the C preprocessor... musl-gcc -E
  checking for grep that handles long lines and -e... /bin/grep
  checking for egrep... /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-musl
  checking whether pause instruction is compilable... yes
  checking number of significant virtual address bits... 57
  checking for x86_64-unknown-linux-musl-ar... no
  checking for ar... ar
  checking for x86_64-unknown-linux-musl-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... none required
  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 for a BSD-compatible install... ~/anaconda3/bin/install -c
  checking for x86_64-unknown-linux-musl-ranlib... no
  checking for ranlib... ranlib
  checking for ld... /usr/bin/ld
  checking for autoconf... /usr/bin/autoconf
  checking for memalign... yes
  checking for valloc... yes
  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 a program using __builtin_unreachable is compilable... yes
  checking whether a program using __builtin_ffsl is compilable... yes
  checking LG_PAGE... 12
  Missing VERSION file, and unable to generate it; creating bogus VERSION
  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... yes
  checking whether pthread_atfork(3) is compilable... yes
  checking whether pthread_setname_np(3) is compilable... yes
  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 compiler supports -Werror... yes
  checking whether syscall(2) is compilable... yes
  checking for secure_getenv... no
  checking for sched_getcpu... yes
  checking for sched_setaffinity... yes
  checking for issetugid... yes
  checking for _malloc_thread_cleanup... no
  checking for _pthread_mutex_init_calloc_cb... no
  checking for TLS... yes
  checking whether C11 atomics is compilable... yes
  checking whether GCC __atomic atomics is compilable... yes
  checking whether GCC __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... yes
  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 to force 32-bit __sync_{add,sub}_and_fetch()... no
  checking whether to force 64-bit __sync_{add,sub}_and_fetch()... no
  checking for __builtin_clz... yes
  checking whether Darwin os_unfair_lock_*() is compilable... no
  checking whether Darwin OSSpin*() is compilable... no
  checking whether glibc malloc hook is compilable... no
  checking whether glibc memalign hook is compilable... no
  checking whether pthreads adaptive mutexes is compilable... no
  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... no
  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/internal/size_classes.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   : 0.0.0-0-g0000000000000000000000000000000000000000
  library revision   : 2

  CONFIG             : --disable-cxx --with-jemalloc-prefix=_rjem_ --with-private-namespace=_rjem_ --host=x86_64-unknown-linux-musl --build=x86_64-unknown-linux-gnu --prefix=/programs/frawk/target/x86_64-unknown-linux-musl/release/build/jemalloc-sys-029465a0016254ff/out build_alias=x86_64-unknown-linux-gnu host_alias=x86_64-unknown-linux-musl CC=musl-gcc '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                 : musl-gcc
  CONFIGURE_CFLAGS   : -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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               : -lpthread
  RPATH_EXTRA        :

  XSLTPROC           : ~/anaconda3/bin/xsltproc
  XSLROOT            : /usr/share/xml/docbook/stylesheet/docbook-xsl

  PREFIX             : /programs/frawk/target/x86_64-unknown-linux-musl/release/build/jemalloc-sys-029465a0016254ff/out
  BINDIR             : /programs/frawk/target/x86_64-unknown-linux-musl/release/build/jemalloc-sys-029465a0016254ff/out/bin
  DATADIR            : /programs/frawk/target/x86_64-unknown-linux-musl/release/build/jemalloc-sys-029465a0016254ff/out/share
  INCLUDEDIR         : /programs/frawk/target/x86_64-unknown-linux-musl/release/build/jemalloc-sys-029465a0016254ff/out/include
  LIBDIR             : /programs/frawk/target/x86_64-unknown-linux-musl/release/build/jemalloc-sys-029465a0016254ff/out/lib
  MANDIR             : /programs/frawk/target/x86_64-unknown-linux-musl/release/build/jemalloc-sys-029465a0016254ff/out/share/man

  srcroot            : /programs/frawk/target/x86_64-unknown-linux-musl/release/build/jemalloc-sys-029465a0016254ff/out/jemalloc/
  abs_srcroot        : /programs/frawk/target/x86_64-unknown-linux-musl/release/build/jemalloc-sys-029465a0016254ff/out/jemalloc/
  objroot            :
  abs_objroot        : /programs/frawk/target/x86_64-unknown-linux-musl/release/build/jemalloc-sys-029465a0016254ff/out/build/

  JEMALLOC_PREFIX    : _rjem_
  JEMALLOC_PRIVATE_NAMESPACE
                     : _rjem_je_
  install_suffix     :
  malloc_conf        :
  autogen            : 0
  debug              : 0
  stats              : 1
  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: "make" "srcroot=../jemalloc/" "-j" "4"
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/jemalloc.sym.o ../jemalloc/src/jemalloc.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/background_thread.sym.o ../jemalloc/src/background_thread.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/arena.sym.o ../jemalloc/src/arena.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/base.sym.o ../jemalloc/src/base.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/bin.sym.o ../jemalloc/src/bin.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/bitmap.sym.o ../jemalloc/src/bitmap.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/ckh.sym.o ../jemalloc/src/ckh.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/ctl.sym.o ../jemalloc/src/ctl.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/div.sym.o ../jemalloc/src/div.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/extent.sym.o ../jemalloc/src/extent.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/extent_dss.sym.o ../jemalloc/src/extent_dss.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/extent_mmap.sym.o ../jemalloc/src/extent_mmap.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/hash.sym.o ../jemalloc/src/hash.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/hooks.sym.o ../jemalloc/src/hooks.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/large.sym.o ../jemalloc/src/large.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/log.sym.o ../jemalloc/src/log.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/malloc_io.sym.o ../jemalloc/src/malloc_io.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/mutex.sym.o ../jemalloc/src/mutex.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/mutex_pool.sym.o ../jemalloc/src/mutex_pool.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/nstime.sym.o ../jemalloc/src/nstime.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/pages.sym.o ../jemalloc/src/pages.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/prng.sym.o ../jemalloc/src/prng.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/prof.sym.o ../jemalloc/src/prof.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/rtree.sym.o ../jemalloc/src/rtree.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/stats.sym.o ../jemalloc/src/stats.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/sz.sym.o ../jemalloc/src/sz.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/tcache.sym.o ../jemalloc/src/tcache.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/ticker.sym.o ../jemalloc/src/ticker.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/tsd.sym.o ../jemalloc/src/tsd.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -DJEMALLOC_NO_PRIVATE_NAMESPACE -o src/witness.sym.o ../jemalloc/src/witness.c
  nm -a src/jemalloc.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/jemalloc.sym
  nm -a src/arena.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/arena.sym
  nm -a src/background_thread.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/background_thread.sym
  nm -a src/base.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/base.sym
  nm -a src/bin.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/bin.sym
  nm -a src/bitmap.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/bitmap.sym
  nm -a src/ckh.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/ckh.sym
  nm -a src/div.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/div.sym
  nm -a src/extent.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/extent.sym
  nm -a src/extent_dss.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/extent_dss.sym
  nm -a src/extent_mmap.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/extent_mmap.sym
  nm -a src/hash.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/hash.sym
  nm -a src/hooks.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/hooks.sym
  nm -a src/large.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/large.sym
  nm -a src/log.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/log.sym
  nm -a src/malloc_io.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/malloc_io.sym
  nm -a src/mutex.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/mutex.sym
  nm -a src/mutex_pool.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/mutex_pool.sym
  nm -a src/nstime.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/nstime.sym
  nm -a src/pages.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/pages.sym
  nm -a src/prng.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/prng.sym
  nm -a src/prof.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/prof.sym
  nm -a src/rtree.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/rtree.sym
  nm -a src/sz.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/sz.sym
  nm -a src/tcache.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/tcache.sym
  nm -a src/ticker.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/ticker.sym
  nm -a src/tsd.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/tsd.sym
  nm -a src/witness.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/witness.sym
  nm -a src/ctl.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/ctl.sym
  nm -a src/stats.sym.o | gawk -f include/jemalloc/internal/private_symbols.awk > src/stats.sym
  /bin/sh ../jemalloc/include/jemalloc/internal/private_namespace.sh src/jemalloc.sym src/arena.sym src/background_thread.sym src/base.sym src/bin.sym src/bitmap.sym src/ckh.sym src/ctl.sym src/div.sym src/extent.sym src/extent_dss.sym src/extent_mmap.sym src/hash.sym src/hooks.sym src/large.sym src/log.sym src/malloc_io.sym src/mutex.sym src/mutex_pool.sym src/nstime.sym src/pages.sym src/prng.sym src/prof.sym src/rtree.sym src/stats.sym src/sz.sym src/tcache.sym src/ticker.sym src/tsd.sym src/witness.sym > include/jemalloc/internal/private_namespace.gen.h
  cp include/jemalloc/internal/private_namespace.gen.h include/jemalloc/internal/private_namespace.gen.h
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/jemalloc.pic.o ../jemalloc/src/jemalloc.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/arena.pic.o ../jemalloc/src/arena.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/background_thread.pic.o ../jemalloc/src/background_thread.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/base.pic.o ../jemalloc/src/base.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/bin.pic.o ../jemalloc/src/bin.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/bitmap.pic.o ../jemalloc/src/bitmap.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/ckh.pic.o ../jemalloc/src/ckh.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/ctl.pic.o ../jemalloc/src/ctl.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/div.pic.o ../jemalloc/src/div.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/extent.pic.o ../jemalloc/src/extent.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/extent_dss.pic.o ../jemalloc/src/extent_dss.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/extent_mmap.pic.o ../jemalloc/src/extent_mmap.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/hash.pic.o ../jemalloc/src/hash.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/hooks.pic.o ../jemalloc/src/hooks.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/large.pic.o ../jemalloc/src/large.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/log.pic.o ../jemalloc/src/log.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/malloc_io.pic.o ../jemalloc/src/malloc_io.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/mutex.pic.o ../jemalloc/src/mutex.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/mutex_pool.pic.o ../jemalloc/src/mutex_pool.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/nstime.pic.o ../jemalloc/src/nstime.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/pages.pic.o ../jemalloc/src/pages.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/prng.pic.o ../jemalloc/src/prng.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/prof.pic.o ../jemalloc/src/prof.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/rtree.pic.o ../jemalloc/src/rtree.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/stats.pic.o ../jemalloc/src/stats.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/sz.pic.o ../jemalloc/src/sz.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/tcache.pic.o ../jemalloc/src/tcache.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/ticker.pic.o ../jemalloc/src/ticker.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/tsd.pic.o ../jemalloc/src/tsd.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -O3 -funroll-loops -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -fPIC -DPIC -c -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -D_GNU_SOURCE -D_REENTRANT -Iinclude -I../jemalloc/include -o src/witness.pic.o ../jemalloc/src/witness.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/jemalloc.o ../jemalloc/src/jemalloc.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/arena.o ../jemalloc/src/arena.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/background_thread.o ../jemalloc/src/background_thread.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/base.o ../jemalloc/src/base.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/bin.o ../jemalloc/src/bin.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/bitmap.o ../jemalloc/src/bitmap.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/ckh.o ../jemalloc/src/ckh.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/ctl.o ../jemalloc/src/ctl.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/div.o ../jemalloc/src/div.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/extent.o ../jemalloc/src/extent.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/extent_dss.o ../jemalloc/src/extent_dss.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/extent_mmap.o ../jemalloc/src/extent_mmap.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/hash.o ../jemalloc/src/hash.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/hooks.o ../jemalloc/src/hooks.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/large.o ../jemalloc/src/large.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/log.o ../jemalloc/src/log.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/malloc_io.o ../jemalloc/src/malloc_io.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/mutex.o ../jemalloc/src/mutex.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/mutex_pool.o ../jemalloc/src/mutex_pool.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/nstime.o ../jemalloc/src/nstime.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/pages.o ../jemalloc/src/pages.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/prng.o ../jemalloc/src/prng.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/prof.o ../jemalloc/src/prof.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/rtree.o ../jemalloc/src/rtree.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/stats.o ../jemalloc/src/stats.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/sz.o ../jemalloc/src/sz.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/tcache.o ../jemalloc/src/tcache.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/ticker.o ../jemalloc/src/ticker.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/tsd.o ../jemalloc/src/tsd.c
  musl-gcc -std=gnu11 -Wall -Wsign-compare -Wundef -Wno-format-zero-length -pipe -g3 -fvisibility=hidden -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 -I../jemalloc/include -o src/witness.o ../jemalloc/src/witness.c
  ar crus lib/libjemalloc_pic.a src/jemalloc.pic.o src/arena.pic.o src/background_thread.pic.o src/base.pic.o src/bin.pic.o src/bitmap.pic.o src/ckh.pic.o src/ctl.pic.o src/div.pic.o src/extent.pic.o src/extent_dss.pic.o src/extent_mmap.pic.o src/hash.pic.o src/hooks.pic.o src/large.pic.o src/log.pic.o src/malloc_io.pic.o src/mutex.pic.o src/mutex_pool.pic.o src/nstime.pic.o src/pages.pic.o src/prng.pic.o src/prof.pic.o src/rtree.pic.o src/stats.pic.o src/sz.pic.o src/tcache.pic.o src/ticker.pic.o src/tsd.pic.o src/witness.pic.o
  musl-gcc -shared -Wl,-soname,libjemalloc.so.2  -o lib/libjemalloc.so.2 src/jemalloc.pic.o src/arena.pic.o src/background_thread.pic.o src/base.pic.o src/bin.pic.o src/bitmap.pic.o src/ckh.pic.o src/ctl.pic.o src/div.pic.o src/extent.pic.o src/extent_dss.pic.o src/extent_mmap.pic.o src/hash.pic.o src/hooks.pic.o src/large.pic.o src/log.pic.o src/malloc_io.pic.o src/mutex.pic.o src/mutex_pool.pic.o src/nstime.pic.o src/pages.pic.o src/prng.pic.o src/prof.pic.o src/rtree.pic.o src/stats.pic.o src/sz.pic.o src/tcache.pic.o src/ticker.pic.o src/tsd.pic.o src/witness.pic.o -O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall -lpthread
  Makefile:386: recipe for target 'lib/libjemalloc.so.2' failed

  --- stderr
  configure: WARNING: using cross tools not prefixed with host triplet
  ar: `u' modifier ignored since `D' is the default (see `U')
  /usr/bin/ld: src/jemalloc.pic.o: relocation R_X86_64_32 against `.rodata.malloc_conf_init.str1.1' can not be used when making a shared object; recompile with -fPIC
  /usr/bin/ld: src/arena.pic.o: relocation R_X86_64_32S against hidden symbol `_rjem_je_h_steps' can not be used when making a shared object
  /usr/bin/ld: src/background_thread.pic.o: relocation R_X86_64_32S against hidden symbol `_rjem_je_h_steps' can not be used when making a shared object
  /usr/bin/ld: src/base.pic.o: relocation R_X86_64_32S against hidden symbol `_rjem_je_sz_size2index_tab' can not be used when making a shared object
  /usr/bin/ld: src/bin.pic.o: relocation R_X86_64_32 against `.rodata._rjem_je_bin_init.str1.1' can not be used when making a shared object; recompile with -fPIC
  /usr/bin/ld: src/ckh.pic.o: relocation R_X86_64_32S against hidden symbol `_rjem_je_sz_size2index_tab' can not be used when making a shared object
  /usr/bin/ld: src/ctl.pic.o: relocation R_X86_64_32 against `.rodata.super_arenas_bin_i_node' can not be used when making a shared object; recompile with -fPIC
  /usr/bin/ld: src/extent.pic.o: relocation R_X86_64_32 against undefined hidden symbol `_rjem_je_extents_rtree' can not be used when making a shared object
  /usr/bin/ld: src/large.pic.o: relocation R_X86_64_32S against undefined hidden symbol `_rjem_je_arenas' can not be used when making a shared object
  /usr/bin/ld: src/log.pic.o: relocation R_X86_64_32 against undefined hidden symbol `_rjem_je_log_var_names' can not be used when making a shared object
  /usr/bin/ld: src/malloc_io.pic.o: relocation R_X86_64_32S against `.rodata._rjem_je_malloc_strtoumax' can not be used when making a shared object; recompile with -fPIC
  /usr/bin/ld: src/mutex.pic.o: relocation R_X86_64_32 against `.rodata._rjem_je_malloc_mutex_postfork_child.str1.8' can not be used when making a shared object; recompile with -fPIC
  /usr/bin/ld: src/pages.pic.o: relocation R_X86_64_32 against `.rodata._rjem_je_pages_map.str1.8' can not be used when making a shared object; recompile with -fPIC
  /usr/bin/ld: src/prof.pic.o: relocation R_X86_64_32 against `.rodata.prof_dump_open_impl.str1.8' can not be used when making a shared object; recompile with -fPIC
  /usr/bin/ld: src/rtree.pic.o: relocation R_X86_64_32 against `.rodata._rjem_je_rtree_new.str1.1' can not be used when making a shared object; recompile with -fPIC
  /usr/bin/ld: src/stats.pic.o: relocation R_X86_64_32S against `.rodata.mutex_stats_init_cols.str1.1' can not be used when making a shared object; recompile with -fPIC
  /usr/bin/ld: src/tcache.pic.o: relocation R_X86_64_32S against undefined hidden symbol `_rjem_je_arenas' can not be used when making a shared object
  /usr/bin/ld: src/tsd.pic.o: relocation R_X86_64_32 against `.rodata._rjem_je_tsd_cleanup.str1.8' can not be used when making a shared object; recompile with -fPIC
  /usr/bin/ld: src/witness.pic.o: relocation R_X86_64_32 against `.rodata.witness_lock_error_impl.str1.8' can not be used when making a shared object; recompile with -fPIC
  /usr/bin/ld: final link failed: Nonrepresentable section on output
  collect2: error: ld returned 1 exit status
  make: *** [lib/libjemalloc.so.2] Error 1
  make: *** Waiting for unfinished jobs....
  thread 'main' panicked at 'command did not execute successfully: "make" "srcroot=../jemalloc/" "-j" "4"
  expected success, got: exit code: 2', ~/.cargo/registry/src/github.com-1ecc6299db9ec823/jemalloc-sys-0.3.2/build.rs:392:9
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: build failed
ezrosent commented 3 years ago

Hi! You're right about jemalloc being an issue here. You can build without it by disabling the use_jemalloc feature, e.g.

cargo +nightly build --release --target=x86_64-unknown-linux-musl --no-default-features --features llvm_backend,allow_avx2,unstable

But then I still get an error:

error: linking with `cc` failed: exit code: 1
  |
  = note: "cc" "-Wl,--as-needed" "-Wl,-z,noexecstack" "-m64" "-Wl,--eh-frame-hdr" "-nostartfiles" "/progs/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-musl/lib/self-contained/crt1.o" "/progs/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-musl/lib/self-contained/crti.o" "-L" "/progs/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-musl/lib" "-L" "/progs/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-musl/lib/self-contained" "/progs/CS/frawk/target/x86_64-unknown-linux-musl/release/deps/frawk-66d2e7b426f4103a.frawk.cco9e2id-cgu.9.rcgu.o" "-o" "/progs/CS/frawk/target/x86_64-unknown-linux-musl/release/deps/frawk-66d2e7b426f4103a" "-Wl,--gc-sections" "-static" "-Wl,-zrelro" "-Wl,-znow" "-Wl,-O1" "-nodefaultlibs" "-L" "/progs/CS/frawk/target/x86_64-unknown-linux-musl/release/deps" "-L" "/progs/CS/frawk/target/release/deps" "-L" "/progs/CS/frawk/target/x86_64-unknown-linux-musl/release/build/llvm-sys-f31ce61b9e2cd240/out" "-L" "/usr/lib/llvm-10/lib" "-L" "/progs/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-musl/lib" "-Wl,-Bstatic" "/tmp/rustcNgNZyn/libllvm_sys-32164792252f4b95.rlib" "-Wl,--start-group" "/tmp/rustcNgNZyn/libunwind-94c746280016be9c.rlib" "/tmp/rustcNgNZyn/liblibc-a6df7fa84d406b53.rlib" "-Wl,--end-group" "/progs/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-musl/lib/libcompiler_builtins-a256d4446bd09d00.rlib" "-Wl,-Bdynamic" "-lz" "-lrt" "-ldl" "-ltinfo" "-lpthread" "-lm" "-lstdc++" "-rdynamic" "/progs/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/x86_64-unknown-linux-musl/lib/self-contained/crtn.o"
  = note: /usr/bin/ld: /tmp/rustcNgNZyn/libllvm_sys-32164792252f4b95.rlib(Process.cpp.o): undefined reference to symbol mallinfo@@GLIBC_2.2.5
          //lib/x86_64-linux-gnu/libc.so.6: error adding symbols: DSO missing from command line
          collect2: error: ld returned 1 exit status

It's hard for me to interpret exactly what's going on, but it sounds to me that llvm-sys is pulling in a dependency on glibc even when using the musl target. Looking around online and it sounds like llvm might build with a glibc dependency by default (though it might be possible to build it yourself against musl).

Anyways, I wonder if disabling jemalloc moves the needle for you at all re: libc on the other cluster. If not, I can try building LLVM from source (!) and see if that fixes the issue; though that's not something I'd like to force users to do.

In the medium term, I am looking at adding an easier-to-deploy JIT backend to frawk in the next few weeks with performance between the bytecode interpreter (which I haven't optimized much at all, and I suspect isn't going to do as well as mawk or gawk on many tasks) and LLVM.

ezrosent commented 3 years ago

Just a quick update. I was able to build without LLVM but with the new Cranelift backend using musl.

cargo +nightly build --release --target=x86_64-unknown-linux-musl --no-default-features --features allow_avx2,unstable

You can check out the updated benchmarks document for a feel of frawk's relative performance with cranelift and llvm that I've seen on different workloads.

ghuls commented 3 years ago

With Cranelift I was able to build frawk on the server (did it without musl for now).

cemeyer commented 3 years ago

The mallinfo dependency seems to come from LLVM's Process::GetMallocUsage() API, with perhaps buggy cross-build detection for HAVE_MALLINFO. Musl doesn't have mallinfo, but your system glibc (apparently) did.