diff --git a/recipes/dev/rust/recipe.toml b/recipes/dev/rust/recipe.toml index e6a60bce8..93e5b6c18 100644 --- a/recipes/dev/rust/recipe.toml +++ b/recipes/dev/rust/recipe.toml @@ -29,7 +29,6 @@ else DYNAMIC_INIT # Linker flags for stage2 compiler (host -> target) ARCH="${TARGET%%-*}" -export LDFLAGS_${ARCH}_unknown_redox="${LDFLAGS}" # LLVM export CARGO_TARGET_${ARCH^^}_UNKNOWN_REDOX_RUSTFLAGS="${RUSTFLAGS}" # Rust # Hack for Rust errorneusly running `llvm-config --version` on cross compiled llvm-config cat "${COOKBOOK_ROOT}/bin/${TARGET}-llvm-config" > "${COOKBOOK_SYSROOT}/bin/llvm-config" diff --git a/src/cook/script.rs b/src/cook/script.rs index 81940cdb2..24ccff4c5 100644 --- a/src/cook/script.rs +++ b/src/cook/script.rs @@ -37,6 +37,7 @@ function DYNAMIC_INIT { export LDFLAGS="${USER_LDFLAGS}-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib -L${COOKBOOK_SYSROOT}/lib" export RUSTFLAGS="-C target-feature=-crt-static -L native=${COOKBOOK_SYSROOT}/lib -C link-arg=-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib" export COOKBOOK_DYNAMIC=1 + reexport_flags } COOKBOOK_AUTORECONF="autoreconf" @@ -102,6 +103,14 @@ export CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-I${COOKBOOK_SYSROOT}/include" USER_LDFLAGS="${LDFLAGS:+$LDFLAGS }" export LDFLAGS="${USER_LDFLAGS}-L${COOKBOOK_SYSROOT}/lib --static" +# This reexport C variables into custom build script that can be consumed by cc crate +function reexport_flags { + target=${TARGET//-/_} + export CFLAGS_${target}="${CFLAGS:+$CFLAGS }${CPPFLAGS}" + export CXXFLAGS_${target}="${CXXFLAGS:+$CXXFLAGS }${CPPFLAGS}" + export LDFLAGS_${target}="${LDFLAGS}" +} + # These ensure that pkg-config gets the right flags from the sysroot if [ "${TARGET}" != "${COOKBOOK_HOST_TARGET}" ] then @@ -131,6 +140,8 @@ build_flags+=" --offline" install_flags+=" --offline" fi +reexport_flags + # cargo template COOKBOOK_CARGO="${COOKBOOK_REDOXER}" function cookbook_cargo {