Re: Cross-compiling target tools

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Mar 26, 2020 at 7:36 AM Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> wrote:
>
> Hi Yegor,
>
> On Wed, Mar 25, 2020 at 11:13:03PM +0100, Yegor Yefremov wrote:
> > How should one compile the target tools like bareboxenv-target etc. I
> > get the following error:
> >
> >  ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make -C debian/build
> > make: Entering directory
> > '/home/user/MyProjects/oss/bootloaders/barebox-upstream/debian/build'
> > make[3]: 'include/generated/mach-types.h' is up to date.
> >   Using /home/user/MyProjects/oss/bootloaders/barebox-upstream as
> > source for kernel
> >   GEN     /home/user/MyProjects/oss/bootloaders/barebox-upstream/debian/build/Makefile
> >   CHK     include/generated/version.h
> >   CHK     include/generated/utsrelease.h
> >   CREATE  include/config.h
> >   CC      scripts/bareboxenv-target
> > /tmp/cc0VGmDE.o: In function `file_action':
> > /home/user/MyProjects/oss/bootloaders/barebox-upstream/scripts/../common/environment.c:119:
> > undefined reference to `xzalloc'
> > /tmp/cc0VGmDE.o: In function `concat_path_file':
> > /home/user/MyProjects/oss/bootloaders/barebox-upstream/scripts/bareboxenv.c:79:
>
> bareboxenv.c includes a compiler.h file which has static inline variants
> of xmalloc and xzalloc. I just gave it a test here and it still works as
> expected. Could you verify scripts/compiler.h is included by the
> compiler? If not, what else is included which provides prototypes for
> these functions? If scripts/compiler.h is not included then I would
> expect some undeclared function warnings.

What compiler version do you use? I have gcc 7.4.0 and newer. The
problem seems to be the inline keyword in compiler.h (C99 related).

With these changes I get the tools bareboxenv-target etc. cross-compiled:

diff --git a/scripts/compiler.h b/scripts/compiler.h
index 0891c3bfa..74cd98074 100644
--- a/scripts/compiler.h
+++ b/scripts/compiler.h
@@ -113,7 +113,7 @@ typedef uint32_t __u32;
        (void) (&_min1 == &_min2);              \
        _min1 < _min2 ? _min1 : _min2; })

-inline void *xmalloc(size_t size)
+void *xmalloc(size_t size)
 {
        void *p = NULL;

@@ -125,7 +125,7 @@ inline void *xmalloc(size_t size)
        return p;
 }

-inline void *xzalloc(size_t size)
+void *xzalloc(size_t size)
 {
        void *p = xmalloc(size);
        memset(p, 0, size);

Yegor

_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox



[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux