[Buildroot] Error linking against target architecture while building new package
Thomas Petazzoni
thomas.petazzoni at bootlin.com
Thu Sep 14 13:14:36 UTC 2023
On Thu, 14 Sep 2023 12:15:27 +0200
Sourabh Hegde <hrsourabh011 at gmail.com> wrote:
> /usr/bin/make -j17 LDFLAGS="" -C
> /.../build/imx-nn-accelerator-lf-5.15.71-2.2.1
> SDKTARGETSYSROOT=/.../per-package/imx-nn-accelerator/host/aarch64-buildroot-linux-gnu/sysroot
> AQROOT=/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1
> LINK libovxlib.so.1.1.0
> /usr/bin/ld: skipping incompatible
> /build/per-package/imx-nn-accelerator/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libOpenVX.so
> when searching for -lOpenVX
> /usr/bin/ld: skipping incompatible
> /build/per-package/imx-nn-accelerator/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libOpenVX.so
> when searching for -lOpenVX
> /usr/bin/ld: cannot find -lOpenVX
> /usr/bin/ld: skipping incompatible
> /build/per-package/imx-nn-accelerator/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libOpenVXU.so
> when searching for -lOpenVXU
> /usr/bin/ld: skipping incompatible
> /build/per-package/imx-nn-accelerator/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libOpenVXU.so
> when searching for -lOpenVXU
> /usr/bin/ld: cannot find -lOpenVXU
> /usr/bin/ld: skipping incompatible
> /build/per-package/imx-nn-accelerator/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libCLC.so
> when searching for -lCLC
> /usr/bin/ld: skipping incompatible
> /build/per-package/imx-nn-accelerator/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libCLC.so
> when searching for -lCLC
> /usr/bin/ld: cannot find -lCLC
> /usr/bin/ld: skipping incompatible
> /build/per-package/imx-nn-accelerator/host/aarch64-buildroot-linux-gnu/sysroot/usr/lib/libVSC.so
> when searching for -lVSC
You're using the host linker here (/usr/bin/ld), which of course will
not work to link binaries for the target. Replace:
define IMX_NN_ACCELERATOR_BUILD_CMDS
$(MAKE) LDFLAGS="$(TARGET_LDFLAGS)" -C $(@D) \
SDKTARGETSYSROOT=$(STAGING_DIR) \
AQROOT=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
endef
By:
define IMX_NN_ACCELERATOR_BUILD_CMDS
$(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \
SDKTARGETSYSROOT=$(STAGING_DIR) \
AQROOT=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
endef
TARGET_CONFIGURE_OPTS contains the definitions of CC, LD, CFLAGS,
LDFLAGS, and a whole bunch of other variables.
Also, AQROOT can use $(IMX_NN_ACCELERATOR_BUILD_DIR) directly.
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
More information about the buildroot
mailing list