kumquat-buildroot/package/ripgrep/ripgrep.mk
James Hilliard 4b2be770b8 package/ripgrep: add workaround for cargo bug #3349
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>
2021-08-03 17:56:47 +02:00

43 lines
1.1 KiB
Makefile

################################################################################
#
# ripgrep
#
################################################################################
RIPGREP_VERSION = 0.8.1
RIPGREP_SITE = $(call github,burntsushi,ripgrep,$(RIPGREP_VERSION))
RIPGREP_LICENSE = MIT
RIPGREP_LICENSE_FILES = LICENSE-MIT
RIPGREP_CPE_ID_VENDOR = ripgrep_project
RIPGREP_DEPENDENCIES = host-rustc
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
ifeq ($(BR2_ENABLE_RUNTIME_DEBUG),y)
RIPGREP_CARGO_BIN_SUBDIR = debug
else
RIPGREP_CARGO_OPTS += --release
RIPGREP_CARGO_BIN_SUBDIR = release
endif
define RIPGREP_BUILD_CMDS
$(TARGET_MAKE_ENV) $(RIPGREP_CARGO_ENV) \
cargo build $(RIPGREP_CARGO_OPTS)
endef
define RIPGREP_INSTALL_TARGET_CMDS
$(INSTALL) -D -m 0755 $(@D)/$(RIPGREP_BIN_DIR)/rg \
$(TARGET_DIR)/usr/bin/rg
endef
$(eval $(generic-package))