Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jemalloc-sys fails to build within docker #167

Open
Firstyear opened this issue Feb 17, 2021 · 1 comment
Open

Jemalloc-sys fails to build within docker #167

Firstyear opened this issue Feb 17, 2021 · 1 comment

Comments

@Firstyear
Copy link

When building inside a docker environment, jemalloc-sys fails to build. I'm not 100% sure if this is an issue in jemalloc-sys or jemalloc itself.

Proof of concept: https://github.com/Firstyear/jemallocator_build_docker

docker build .

Sending build context to Docker daemon   10.5MB
Step 1/6 : FROM opensuse/tumbleweed:latest
 ---> 4924d7532ace
Step 2/6 : RUN zypper -vv ref && 	zypper dup -y && 	zypper install -y 		cargo 		rust 		gcc 		bash
 ---> Using cache
 ---> 59b26627f325
Step 3/6 : COPY . /usr/src/demo
 ---> 29bbb73eb100
Step 4/6 : WORKDIR /usr/src/demo
 ---> Running in 5b8f4ec381ba
Removing intermediate container 5b8f4ec381ba
 ---> 709fc2dab885
Step 5/6 : RUN cargo build --release
 ---> Running in 7247482af628
   Compiling fs_extra v1.2.0
   Compiling cc v1.0.66
   Compiling libc v0.2.86
   Compiling jemalloc-sys v0.3.2
error: failed to run custom build command for `jemalloc-sys v0.3.2`

Caused by:
  process didn't exit successfully: `/usr/src/demo/target/release/build/jemalloc-sys-df3486eb4be3f3de/build-script-build` (exit code: 101)
  --- stdout
  TARGET=x86_64-unknown-linux-gnu
  HOST=x86_64-unknown-linux-gnu
  NUM_JOBS=8
  OUT_DIR="/usr/src/demo/target/release/build/jemalloc-sys-aa4a5c2372fb2439/out"
  BUILD_DIR="/usr/src/demo/target/release/build/jemalloc-sys-aa4a5c2372fb2439/out/build"
  SRC_DIR="/usr/src/demo/vendor/jemalloc-sys"
  OPT_LEVEL = Some("3")
  TARGET = Some("x86_64-unknown-linux-gnu")
  HOST = Some("x86_64-unknown-linux-gnu")
  CC_x86_64-unknown-linux-gnu = None
  CC_x86_64_unknown_linux_gnu = None
  HOST_CC = None
  CC = None
  CFLAGS_x86_64-unknown-linux-gnu = None
  CFLAGS_x86_64_unknown_linux_gnu = None
  HOST_CFLAGS = None
  CFLAGS = None
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some("false")
  CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
  CC="cc"
  CFLAGS="-O3 -ffunction-sections -fdata-sections -fPIC -m64 -Wall"
  JEMALLOC_REPO_DIR="jemalloc"
  JEMALLOC_SRC_DIR="/usr/src/demo/target/release/build/jemalloc-sys-aa4a5c2372fb2439/out/jemalloc"
  cargo:rustc-cfg=prefixed
  --with-jemalloc-prefix=_rjem_
  running: "sh" "/usr/src/demo/target/release/build/jemalloc-sys-aa4a5c2372fb2439/out/jemalloc/configure" "--disable-cxx" "--with-jemalloc-prefix=_rjem_" "--with-private-namespace=_rjem_" "--host=x86_64-unknown-linux-gnu" "--build=x86_64-unknown-linux-gnu" "--prefix=/usr/src/demo/target/release/build/jemalloc-sys-aa4a5c2372fb2439/out"
  /usr/src/demo/target/release/build/jemalloc-sys-aa4a5c2372fb2439/out/jemalloc/configure: This script requires a shell more modern than all
  /usr/src/demo/target/release/build/jemalloc-sys-aa4a5c2372fb2439/out/jemalloc/configure: the shells that I found on your system.
  /usr/src/demo/target/release/build/jemalloc-sys-aa4a5c2372fb2439/out/jemalloc/configure: Please tell [email protected] about your system,
  /usr/src/demo/target/release/build/jemalloc-sys-aa4a5c2372fb2439/out/jemalloc/configure: including any error possibly output before this
  /usr/src/demo/target/release/build/jemalloc-sys-aa4a5c2372fb2439/out/jemalloc/configure: message. Then install a modern shell, or manually run
  /usr/src/demo/target/release/build/jemalloc-sys-aa4a5c2372fb2439/out/jemalloc/configure: the script under such a shell if you do have one.

  --- stderr
  thread 'main' panicked at 'command did not execute successfully: "sh" "/usr/src/demo/target/release/build/jemalloc-sys-aa4a5c2372fb2439/out/jemalloc/configure" "--disable-cxx" "--with-jemalloc-prefix=_rjem_" "--with-private-namespace=_rjem_" "--host=x86_64-unknown-linux-gnu" "--build=x86_64-unknown-linux-gnu" "--prefix=/usr/src/demo/target/release/build/jemalloc-sys-aa4a5c2372fb2439/out"
  expected success, got: exit code: 1', /usr/src/demo/vendor/jemalloc-sys/build.rs:392:9
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
The command '/bin/sh -c cargo build --release' returned a non-zero code: 101

It it worth noting that if the dockerfile steps are taken manually (IE docker run -i -t opensuse/tumbleweed:latest) then you install the components and do the build it succeeds. It appears that something about the lack of interactivity may be causing the sh checker to fail.

cargo/rust version 1.49.0, jemalloc-sys 0.3.2

@webmaster128
Copy link

This is coming from autoconf (the ./configure script):

This script requires a shell more modern than all
the shells that I found on your system.

What's your /bin/sh? You might need to install a mondern shell frist.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants