package/ripgrep: add workaround for cargo bug #3349
authorJames Hilliard <james.hilliard1@gmail.com>
Sun, 1 Aug 2021 22:59:28 +0000 (16:59 -0600)
committerArnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Tue, 3 Aug 2021 15:56:47 +0000 (17:56 +0200)
To fix this bug we have to use an undocumented test variable to enable
the nightly target-applies-to-host feature so that the target linker
doesn't get used for host binaries like the build-script.

Fixes:
error: failed to run custom build command for `ripgrep v0.8.1 (/home/buildroot/buildroot/output/build/ripgrep-0.8.1)`

Caused by:
  process didn't exit successfully: `/home/buildroot/buildroot/output/build/ripgrep-0.8.1/target/release/build/ripgrep-59eeb7069534e1ef/build-script-build` (exit status: 1)
  --- stderr
  /home/buildroot/buildroot/output/build/ripgrep-0.8.1/target/release/build/ripgrep-59eeb7069534e1ef/build-script-build: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by /home/buildroot/buildroot/output/build/ripgrep-0.8.1/target/release/build/ripgrep-59eeb7069534e1ef/build-script-build)

Details:
https://github.com/rust-lang/cargo/issues/3349
https://github.com/rust-lang/cargo/pull/9322

Signed-off-by: James Hilliard <james.hilliard1@gmail.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
package/ripgrep/ripgrep.mk

index 2cc578383dc5cfc0a1eeabf774ba457ccc4b609c..450bb020e3f47ae97cd65ca542b6724d944a8909 100644 (file)
@@ -11,11 +11,14 @@ RIPGREP_LICENSE_FILES = LICENSE-MIT
 RIPGREP_CPE_ID_VENDOR = ripgrep_project
 
 RIPGREP_DEPENDENCIES = host-rustc
-RIPGREP_CARGO_ENV = CARGO_HOME=$(HOST_DIR)/share/cargo
+RIPGREP_CARGO_ENV = CARGO_HOME=$(HOST_DIR)/share/cargo \
+       __CARGO_TEST_CHANNEL_OVERRIDE_DO_NOT_USE_THIS="nightly" \
+       CARGO_TARGET_APPLIES_TO_HOST="false"
 
 RIPGREP_BIN_DIR = target/$(RUSTC_TARGET_NAME)/$(RIPGREP_CARGO_BIN_SUBDIR)
 
 RIPGREP_CARGO_OPTS = \
+       -Z target-applies-to-host \
        --target=$(RUSTC_TARGET_NAME) \
        --manifest-path=$(@D)/Cargo.toml