Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] Error linking against target architecture while building new package
@ 2023-09-14 10:15 Sourabh Hegde
  2023-09-14 13:14 ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 5+ messages in thread
From: Sourabh Hegde @ 2023-09-14 10:15 UTC (permalink / raw)
  To: buildroot


[-- Attachment #1.1: Type: text/plain, Size: 3289 bytes --]

Hello,

I am trying to build a new Buildroot package for i.MX Neural Networks
Accelerator Plugin <https://github.com/nxp-imx/nn-imx/tree/imx_1.3.0> . The
imx-nn-accelerator.mk :
#############################################################
#
# i.MX Neural Networks Accelerator Plugin
#
#############################################################

IMX_NN_ACCELERATOR_VERSION = lf-5.15.71-2.2.1
IMX_NN_ACCELERATOR_SOURCE = $(IMX_NN_ACCELERATOR_VERSION).tar.gz
IMX_NN_ACCELERATOR_SITE =
https://github.com/nxp-imx/nn-imx/archive/refs/tags
IMX_NN_ACCELERATOR_LICENSE = MIT
IMX_NN_ACCELERATOR_LICENSE_FILES = LICENSE
IMX_NN_ACCELERATOR_DEPENDENCIES = imx-gpu-viv

PKG_NAME = imx-nn-accelerator
PKG_VERSION = lf-5.15.71-2.2.1

define IMX_NN_ACCELERATOR_BUILD_CMDS
    $(MAKE) LDFLAGS="$(TARGET_LDFLAGS)" -C $(@D) \
        SDKTARGETSYSROOT=$(STAGING_DIR) \
        AQROOT=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
endef

define IMX_NN_ACCELERATOR_INSTALL_TARGET_CMDS
    $(INSTALL) -D -m 0644 $(@D)/libneuralnetworks*.so*
$(TARGET_DIR)/usr/lib/
    $(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/include/OVXLIB
    $(INSTALL) -d -m 0755 $(TARGET_DIR)/usr/include/nnrt
    cp -r $(@D)/include/OVXLIB/* $(TARGET_DIR)/usr/include/OVXLIB/
    cp -r $(@D)/include/nnrt/* $(TARGET_DIR)/usr/include/nnrt/
endef

$(eval $(generic-package))

This is already integrated in Yocto nn-imx_1.3.0.bb
<https://github.com/nxp-imx/meta-imx/blob/64a864ab77de06a557afcb01e6dd4d21606e6948/meta-ml/recipes-libraries/nn-imx/nn-imx_1.3.0.bb>
and I am trying to replicate the same in Buildroot. But while building this
is giving the error:

/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

It looks like it is failing to link against the target architecture..
(LDFLAGS variable is empty)

Can anyone please let me know what is missing in makefile and how to
resolve this?

Thanks in advance

[-- Attachment #1.2: Type: text/html, Size: 3808 bytes --]

[-- Attachment #2: Type: text/plain, Size: 150 bytes --]

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Buildroot] Error linking against target architecture while building new package
  2023-09-14 10:15 [Buildroot] Error linking against target architecture while building new package Sourabh Hegde
@ 2023-09-14 13:14 ` Thomas Petazzoni via buildroot
  2023-09-14 15:25   ` Sourabh Hegde
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-09-14 13:14 UTC (permalink / raw)
  To: Sourabh Hegde; +Cc: buildroot

On Thu, 14 Sep 2023 12:15:27 +0200
Sourabh Hegde <hrsourabh011@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
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Buildroot] Error linking against target architecture while building new package
  2023-09-14 13:14 ` Thomas Petazzoni via buildroot
@ 2023-09-14 15:25   ` Sourabh Hegde
  2023-09-14 19:47     ` Thomas Petazzoni via buildroot
  0 siblings, 1 reply; 5+ messages in thread
From: Sourabh Hegde @ 2023-09-14 15:25 UTC (permalink / raw)
  To: Thomas Petazzoni; +Cc: buildroot


[-- Attachment #1.1: Type: text/plain, Size: 8260 bytes --]

Hello Thomas,

Thanks for the update.

After changing the makefile to

define IMX_NN_ACCELERATOR_BUILD_CMDS
    $(MAKE) $(TARGET_CONFIGURE_OPTS) -C $(@D) \
        SDKTARGETSYSROOT=$(STAGING_DIR) \
        AQROOT= $(@D)
indeed

I am having below errors:

/usr/bin/make -j17
PATH="/.../per-package/imx-nn-accelerator/host/bin:/.../per-package/imx-nn-accelerator/host/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
AR="/.../per-package/imx-nn-accelerator/host/bin/aarch64-linux-gcc-ar"
AS="/.../per-package/imx-nn-accelerator/host/bin/aarch64-linux-as"
LD="/.../per-package/imx-nn-accelerator/host/bin/aarch64-linux-ld"
NM="/.../per-package/imx-nn-accelerator/host/bin/aarch64-linux-gcc-nm"
CC="/.../per-package/imx-nn-accelerator/host/bin/aarch64-linux-gcc"
GCC="/.../per-package/imx-nn-accelerator/host/bin/aarch64-linux-gcc"
CPP="/.../per-package/imx-nn-accelerator/host/bin/aarch64-linux-cpp"
CXX="/.../per-package/imx-nn-accelerator/host/bin/aarch64-linux-g++"
FC="/.../per-package/imx-nn-accelerator/host/bin/aarch64-linux-gfortran"
F77="/.../per-package/imx-nn-accelerator/host/bin/aarch64-linux-gfortran"
RANLIB="/.../per-package/imx-nn-accelerator/host/bin/aarch64-linux-gcc-ranlib"
READELF="/.../per-package/imx-nn-accelerator/host/bin/aarch64-linux-readelf"
STRIP="/.../per-package/imx-nn-accelerator/host/bin/aarch64-linux-strip"
OBJCOPY="/.../per-package/imx-nn-accelerator/host/bin/aarch64-linux-objcopy"
OBJDUMP="/.../per-package/imx-nn-accelerator/host/bin/aarch64-linux-objdump"
AR_FOR_BUILD="/usr/bin/ar" AS_FOR_BUILD="/usr/bin/as"
CC_FOR_BUILD="/.../per-package/imx-nn-accelerator/host/bin/ccache
/usr/bin/gcc"
GCC_FOR_BUILD="/.../per-package/imx-nn-accelerator/host/bin/ccache
/usr/bin/gcc"
CXX_FOR_BUILD="/.../per-package/imx-nn-accelerator/host/bin/ccache
/usr/bin/g++" LD_FOR_BUILD="/usr/bin/ld"
CPPFLAGS_FOR_BUILD="-I/.../per-package/imx-nn-accelerator/host/include"
CFLAGS_FOR_BUILD="-O2 -I/.../per-package/imx-nn-accelerator/host/include"
CXXFLAGS_FOR_BUILD="-O2 -I/.../per-package/imx-nn-accelerator/host/include"
LDFLAGS_FOR_BUILD="-L/.../per-package/imx-nn-accelerator/host/lib
-Wl,-rpath,/.../per-package/imx-nn-accelerator/host/lib"
FCFLAGS_FOR_BUILD=""
DEFAULT_ASSEMBLER="/.../per-package/imx-nn-accelerator/host/bin/aarch64-linux-as"
DEFAULT_LINKER="/.../per-package/imx-nn-accelerator/host/bin/aarch64-linux-ld"
CPPFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64"
CFLAGS="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
 -O3 -g0 -D_FORTIFY_SOURCE=2" CXXFLAGS="-D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64  -O3 -g0 -D_FORTIFY_SOURCE=2"
LDFLAGS="" FCFLAGS=" -O3 -g0" FFLAGS=" -O3 -g0"
PKG_CONFIG="/.../per-package/imx-nn-accelerator/host/bin/pkg-config"
STAGING_DIR="/.../per-package/imx-nn-accelerator/host/aarch64-buildroot-linux-gnu/sysroot"
INTLTOOL_PERL=/usr/bin/perl -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
  COMPILE
/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/src/vsi_nn_context.c
  COMPILE
/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/src/vsi_nn_client_op.c
  COMPILE
/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/src/vsi_nn_graph.c
  COMPILE
/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/src/vsi_nn_node_attr_template.c
  COMPILE
/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/src/vsi_nn_node.c
  COMPILE
/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/src/vsi_nn_ops.c
  COMPILE
/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/src/vsi_nn_daemon.c
  COMPILE
/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/src/vsi_nn_tensor.c
  COMPILE
/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/src/vsi_nn_version.c
  COMPILE
/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/src/vsi_nn_rnn.c
  COMPILE
/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/src/vsi_nn_rnn_helper.c
  COMPILE
/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/src/vsi_nn_internal_node.c
  COMPILE
/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/src/vsi_nn_log.c
  COMPILE
/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/src/vsi_nn_graph_optimization.c
  COMPILE
/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/src/vsi_nn_pre_post_process.c
  COMPILE
/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/src/utils/vsi_nn_code_generator.c
  COMPILE
/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/src/utils/vsi_nn_binary_tree.c
vsi_nn_daemon.c:25:10: fatal error: vsi_nn_daemon.h: No such file or
directory
   25 | #include "vsi_nn_daemon.h"
      |          ^~~~~~~~~~~~~~~~~
compilation terminated.
make[4]: ***
[/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/common.target:101:
bin_r/vsi_nn_daemon.o] Error 1
make[4]: *** Waiting for unfinished jobs....
vsi_nn_ops.c:25:10: fatal error: vsi_nn_ops.h: No such file or directory
   25 | #include "vsi_nn_ops.h"
      |          ^~~~~~~~~~~~~~
compilation terminated.
make[4]: ***
[/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/common.target:101:
bin_r/vsi_nn_ops.o] Error 1
vsi_nn_node_attr_template.c:26:10: fatal error: vsi_nn_node.h: No such file
or directory
   26 | #include "vsi_nn_node.h"
      |          ^~~~~~~~~~~~~~~
compilation terminated.

However, "vsi_nn_daemon." header file is available in
/build/imx-nn-accelerator-lf-5.15.71-2.2.1/include/OVXLIB/vsi_nn_daemon.h
and
/build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/include/vsi_nn_daemon.h
Also as you can see in above log, LDFLAGS=""...

On Thu, 14 Sept 2023 at 15:14, Thomas Petazzoni <
thomas.petazzoni@bootlin.com> wrote:

> On Thu, 14 Sep 2023 12:15:27 +0200
> Sourabh Hegde <hrsourabh011@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
>

[-- Attachment #1.2: Type: text/html, Size: 9740 bytes --]

[-- Attachment #2: Type: text/plain, Size: 150 bytes --]

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Buildroot] Error linking against target architecture while building new package
  2023-09-14 15:25   ` Sourabh Hegde
@ 2023-09-14 19:47     ` Thomas Petazzoni via buildroot
  2023-09-14 21:11       ` Sourabh Hegde
  0 siblings, 1 reply; 5+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-09-14 19:47 UTC (permalink / raw)
  To: Sourabh Hegde; +Cc: buildroot

On Thu, 14 Sep 2023 17:25:37 +0200
Sourabh Hegde <hrsourabh011@gmail.com> wrote:

> vsi_nn_daemon.c:25:10: fatal error: vsi_nn_daemon.h: No such file or
> directory
>    25 | #include "vsi_nn_daemon.h"
>       |          ^~~~~~~~~~~~~~~~~
> compilation terminated.
> make[4]: ***
> [/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/common.target:101:
> bin_r/vsi_nn_daemon.o] Error 1
> make[4]: *** Waiting for unfinished jobs....
> vsi_nn_ops.c:25:10: fatal error: vsi_nn_ops.h: No such file or directory
>    25 | #include "vsi_nn_ops.h"
>       |          ^~~~~~~~~~~~~~
> compilation terminated.
> make[4]: ***
> [/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/common.target:101:
> bin_r/vsi_nn_ops.o] Error 1
> vsi_nn_node_attr_template.c:26:10: fatal error: vsi_nn_node.h: No such file
> or directory
>    26 | #include "vsi_nn_node.h"
>       |          ^~~~~~~~~~~~~~~
> compilation terminated.
> 
> However, "vsi_nn_daemon." header file is available in
> /build/imx-nn-accelerator-lf-5.15.71-2.2.1/include/OVXLIB/vsi_nn_daemon.h
> and
> /build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/include/vsi_nn_daemon.h
> Also as you can see in above log, LDFLAGS=""...

If those headers are part of the imx-nn-accelerator code, it probably
means that the fact we're passing CFLAGS="..." overrides some CFLAGS
defined by the package Makefile, while it should append to the CFLAGS
passed in the environment. Sometimes it requires tweaking the Makefile
of the package, sometimes it means CFLAGS need to be passed in the
environment of make (by Buildroot) instead of as argument:

	$(TARGET_MAKE_ENV) \
		$(TARGET_CONFIGURE_OPTS) \
		...
		$(MAKE) -C $(@D)

This really requires a package-specific investigation.

Best regards,

Thomas
-- 
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Buildroot] Error linking against target architecture while building new package
  2023-09-14 19:47     ` Thomas Petazzoni via buildroot
@ 2023-09-14 21:11       ` Sourabh Hegde
  0 siblings, 0 replies; 5+ messages in thread
From: Sourabh Hegde @ 2023-09-14 21:11 UTC (permalink / raw)
  To: Thomas Petazzoni; +Cc: buildroot


[-- Attachment #1.1: Type: text/plain, Size: 2307 bytes --]

Hi Thomas,

Thanks for the update.

Can you please let me know any packages that had similar issues? Maybe I
can use them as reference to properly set CFLAGS in the makefile or
environment of make...
This would be helpful.

On Thu, Sep 14, 2023, 21:47 Thomas Petazzoni <thomas.petazzoni@bootlin.com>
wrote:

> On Thu, 14 Sep 2023 17:25:37 +0200
> Sourabh Hegde <hrsourabh011@gmail.com> wrote:
>
> > vsi_nn_daemon.c:25:10: fatal error: vsi_nn_daemon.h: No such file or
> > directory
> >    25 | #include "vsi_nn_daemon.h"
> >       |          ^~~~~~~~~~~~~~~~~
> > compilation terminated.
> > make[4]: ***
> > [/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/common.target:101:
> > bin_r/vsi_nn_daemon.o] Error 1
> > make[4]: *** Waiting for unfinished jobs....
> > vsi_nn_ops.c:25:10: fatal error: vsi_nn_ops.h: No such file or directory
> >    25 | #include "vsi_nn_ops.h"
> >       |          ^~~~~~~~~~~~~~
> > compilation terminated.
> > make[4]: ***
> > [/.../build/imx-nn-accelerator-lf-5.15.71-2.2.1/common.target:101:
> > bin_r/vsi_nn_ops.o] Error 1
> > vsi_nn_node_attr_template.c:26:10: fatal error: vsi_nn_node.h: No such
> file
> > or directory
> >    26 | #include "vsi_nn_node.h"
> >       |          ^~~~~~~~~~~~~~~
> > compilation terminated.
> >
> > However, "vsi_nn_daemon." header file is available in
> > /build/imx-nn-accelerator-lf-5.15.71-2.2.1/include/OVXLIB/vsi_nn_daemon.h
> > and
> > /build/imx-nn-accelerator-lf-5.15.71-2.2.1/ovxlib/include/vsi_nn_daemon.h
> > Also as you can see in above log, LDFLAGS=""...
>
> If those headers are part of the imx-nn-accelerator code, it probably
> means that the fact we're passing CFLAGS="..." overrides some CFLAGS
> defined by the package Makefile, while it should append to the CFLAGS
> passed in the environment. Sometimes it requires tweaking the Makefile
> of the package, sometimes it means CFLAGS need to be passed in the
> environment of make (by Buildroot) instead of as argument:
>
>         $(TARGET_MAKE_ENV) \
>                 $(TARGET_CONFIGURE_OPTS) \
>                 ...
>                 $(MAKE) -C $(@D)
>
> This really requires a package-specific investigation.
>
> Best regards,
>
> Thomas
> --
> Thomas Petazzoni, co-owner and CEO, Bootlin
> Embedded Linux and Kernel engineering and training
> https://bootlin.com
>

[-- Attachment #1.2: Type: text/html, Size: 3243 bytes --]

[-- Attachment #2: Type: text/plain, Size: 150 bytes --]

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2023-09-14 21:11 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-09-14 10:15 [Buildroot] Error linking against target architecture while building new package Sourabh Hegde
2023-09-14 13:14 ` Thomas Petazzoni via buildroot
2023-09-14 15:25   ` Sourabh Hegde
2023-09-14 19:47     ` Thomas Petazzoni via buildroot
2023-09-14 21:11       ` Sourabh Hegde

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox