package/cargo: pass appropriate library path to the linker
authorThomas Petazzoni <thomas.petazzoni@bootlin.com>
Fri, 28 Dec 2018 13:25:50 +0000 (14:25 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Thu, 17 Jan 2019 22:01:11 +0000 (23:01 +0100)
When linking the host cargo binary, the linker should be told to find
libraries in $(HOST_DIR)/lib, otherwise it will not work libraries
such as libhttp_parser. This was found with per-package directory
support, where the build failed with:

  = note: /usr/bin/ld: cannot find -lhttp_parser
          collect2: error: ld returned 1 exit status

In order to fix this, instead of passing -L$(HOST_DIR)/lib during the
build of Cargo, we make sure all flags in $(HOST_LDFLAGS) are passed.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/cargo/cargo.mk

index 1b1053ba41bedaf8933da31bcd506694a0be2c4e..a387281b4c10d92f2226428baefa4106ff0edb8b 100644 (file)
@@ -70,7 +70,7 @@ HOST_CARGO_SNAP_OPTS = \
        $(if $(VERBOSE),--verbose)
 
 HOST_CARGO_ENV = \
-       RUSTFLAGS="-Clink-arg=-Wl,-rpath,$(HOST_DIR)/lib" \
+       RUSTFLAGS="$(addprefix -Clink-arg=,$(HOST_LDFLAGS))" \
        CARGO_HOME=$(HOST_CARGO_HOME)
 
 define HOST_CARGO_BUILD_CMDS