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

Re: [Xen-devel] [PATCH for-4.8 1/3] libacpi: fix arm64 build



On Mon, Oct 17, 2016 at 03:57:06PM +0100, Steve Capper wrote:
> On Mon, Oct 17, 2016 at 11:47:00AM +0100, Wei Liu wrote:
> > On Fri, Oct 14, 2016 at 06:02:30PM +0100, Wei Liu wrote:
> > > The arm64 build for libacpi was broken due to two reasons:
> > > 
> > > 1. ACPI_BUILD_DIR was appended twice to dsdt_anycpu_arm.c.
> > > 2. The inclusion of firmware/Rules.mk overrided XEN_TARGET_ARCH, which
> > >    made CONFIG_ARM disappear.
> > > 
> > > Fix those by:
> > > 
> > > 1. Correctly generate full path for dsdt_anaycpu_arm.c.
> > > 2. Include tools/Rules.mk instead, because libacpi/Makefile doesn't rely
> > >    on settings in firmware/Rules.mk.
> > > 
> > > While at it, use CONFIG_ARM_64 instead of CONFIG_ARM as it is more
> > > accurate.
> > > 
> > > Reported-by: Julien Grall <julien.grall@xxxxxxx>
> > > Signed-off-by: Wei Liu <wei.liu2@xxxxxxxxxx>
> > > ---
> > > Cc: Julien Grall <julien.grall@xxxxxxx>
> > > Cc: Wei Chen <wei.chen@xxxxxxx>
> > > Cc: Steve Capper <steve.capper@xxxxxxx>
> > > Cc: Jan Beulich <JBeulich@xxxxxxxx>
> > > Cc: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
> > > Cc: Shannon Zhao <zhaoshenglong@xxxxxxxxxx>
> > > Cc: Stefano Stebellini <sstabellini@xxxxxxxxxx>
> > > 
> > > Please check if CONFIG_ARM_64 is correct -- IIRC ACPI is only relevant
> > > on arm64.
> > > 
> > > Would appreciate any build test report from ARM people.
> > 
> > I set up a chroot environment this morning and built arm64 Xen. It
> > worked.
> > 
> > Since Jan and Julien are both away, I've taken the liberty of applying
> > this patch with both my RM hat and tools maintainer hat on.
> > 
> > I have also applied patch #3 since it is rather trivial.
> > 
> > I will let Jan decide whether patch #2 is necessary.
> > 
> 
> Thanks Wei,
> I am trying to verify this patch, but I think I am running into another
> issue with the libxl acpi support patches.
> 
> Essentially I'm getting namespace clashes with the following:
>  * nonnull
>  * noreturn
>  * register_t
> 
> I think this is due to the following logic in the libxl/Makefile:
> libxl_arm_acpi.o: libxl_arm_acpi.c
>         $(CC) -c $(CFLAGS) -I../../xen/include/ -o $@ libxl_arm_acpi.c
> 
> When compiling libxl_arm_acpi.c, /usr/include/linux/types.h tries to pull
> in xen/include/xen/types.h (instead of /usr/include/asm/types.h), which
> then eventually pulls in xen/include/xen/compiler.h which redefines key
> information.
> 
> Which rootfs are you chrooting into for the testing?
> (I've experienced build issues on Debian Jessie and Ubuntu Xenial running
> in a Docker container).
> 

qemu-debootstrap, sid, arm64.

I saw similar errors. But they went away after I `git clean -fffddddxx`
the tree.

The fact that they went away somehow and Julien succeeded in building on
variant of this patch made me think it was due to some issues in my
environment.

> Cheers,
> -- 
> Steve
> 
> I build Xen via:
> $ git clean -f -d -x
> $ ./configure --with-xenstored=xenstored 
> --with-system-qemu=/usr/local/bin/qemu-system-aarch64
> $ make
> 
> My builds finish like this:
> 
> gcc -c -O1 -fno-omit-frame-pointer  -DBUILD_ID -g -fno-strict-aliasing 
> -std=gnu99 -Wall -Wstrict-prototypes -Wdeclaration-after-statement 
> -Wno-unused-but-set-variable -Wno-unused-local-typedefs   -O0 -g3 
> -D__XEN_INTERFACE_VERSION__=__XEN_LATEST_INTERFACE_VERSION__ -MMD -MF 
> .libxl_arm_acpi.o.d -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE 
> -fno-optimize-sibling-calls  -Werror -Wno-format-zero-length 
> -Wmissing-declarations -Wno-declaration-after-statement -Wformat-nonliteral 
> -I. -fPIC -pthread 
> -I/home/steven/xen/tools/libxl/../../tools/libs/toollog/include 
> -I/home/steven/xen/tools/libxl/../../tools/include 
> -I/home/steven/xen/tools/libxl/../../tools/libs/evtchn/include 
> -I/home/steven/xen/tools/libxl/../../tools/include 
> -I/home/steven/xen/tools/libxl/../../tools/libxc/include 
> -I/home/steven/xen/tools/libxl/../../tools/libs/toollog/include 
> -I/home/steven/xen/tools/libxl/../../tools/include 
> -I/home/steven/xen/tools/libxl/../../tools/libs/foreignmemory/include 
> -I/home/steven/xen/tools/libxl/../../tools/include 
> -I/home/steven/xen/tools/libxl/../../tools/include -D__XEN_TOOLS__ 
> -I/home/steven/xen/tools/libxl/../../tools/libxc/include 
> -I/home/steven/xen/tools/libxl/../../tools/libs/evtchn/include 
> -I/home/steven/xen/tools/libxl/../../tools/include 
> -I/home/steven/xen/tools/libxl/../../tools/libs/foreignmemory/include 
> -I/home/steven/xen/tools/libxl/../../tools/include 
> -I/home/steven/xen/tools/libxl/../../tools/include 
> -I/home/steven/xen/tools/libxl/../../tools/xenstore/include 
> -I/home/steven/xen/tools/libxl/../../tools/include 
> -I/home/steven/xen/tools/libxl/../../tools/blktap2/control 
> -I/home/steven/xen/tools/libxl/../../tools/blktap2/include 
> -I/home/steven/xen/tools/libxl/../../tools/include  -Wshadow -include 
> /home/steven/xen/tools/libxl/../../tools/config.h -I../../xen/include/ -o 
> libxl_arm_acpi.o libxl_arm_acpi.c
> In file included from /usr/include/linux/types.h:4:0,
>                  from /usr/include/aarch64-linux-gnu/asm/sigcontext.h:19,
>                  from /usr/include/aarch64-linux-gnu/bits/sigcontext.h:27,
>                  from /usr/include/signal.h:332,
>                  from libxl_internal.h:30,
>                  from libxl_arm.h:17,
>                  from libxl_arm_acpi.c:19:
> ../../xen/include/asm/types.h:54:13: error: conflicting types for 'register_t'
>  typedef u64 register_t;
>              ^

Now that I think about this, we indeed had similar error in the past.

But I'm curious why I succeeded.

┌─[wei@zion] - [/local/work/xen-arm64.git/tools/libxl] - [Mon Oct 17, 17:53]
└─[$]> ls -l libxl_arm_acpi.o
-rw-rw-r-- 1 wei wei 535160 Oct 17 11:37 libxl_arm_acpi.o
┌─[wei@zion] - [/local/work/xen-arm64.git/tools/libxl] - [Mon Oct 17, 17:53]
└─[$]> file libxl_arm_acpi.o
libxl_arm_acpi.o: ELF 64-bit LSB relocatable, ARM aarch64, version 1 (SYSV), 
not stripped

> In file included from /usr/include/uuid/uuid.h:38:0,
>                  from libxl_osdeps.h:43,
>                  from libxl_internal.h:20,
>                  from libxl_arm.h:17,
>                  from libxl_arm_acpi.c:19:
> /usr/include/aarch64-linux-gnu/sys/types.h:205:13: note: previous declaration 
> of 'register_t' was here
>  typedef int register_t __attribute__ ((__mode__ (__word__)));
>              ^
> In file included from libxl_internal.h:35:0,
>                  from libxl_arm.h:17,
>                  from libxl_arm_acpi.c:19:
> /usr/include/stdlib.h:241:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __locale_t __loc) __THROW __nonnull ((1, 4));
>       ^
> /usr/include/stdlib.h:246:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 4));
>       ^
> /usr/include/stdlib.h:252:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 4));
>       ^
> /usr/include/stdlib.h:258:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 4));
>       ^
> /usr/include/stdlib.h:262:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 3));
>       ^
> /usr/include/stdlib.h:266:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 3));
>       ^
> /usr/include/stdlib.h:271:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 3));
>       ^
> /usr/include/stdlib.h:355:8: error: nonnull argument has invalid operand 
> number (argument 1)
>         int32_t *__restrict __result) __THROW __nonnull ((1, 2));
>         ^
> /usr/include/stdlib.h:363:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((2, 4));
>       ^
> /usr/include/stdlib.h:367:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/stdlib.h:424:9: error: nonnull argument has invalid operand 
> number (argument 1)
>          double *__restrict __result) __THROW __nonnull ((1, 2));
>          ^
> /usr/include/stdlib.h:427:9: error: nonnull argument has invalid operand 
> number (argument 1)
>          double *__restrict __result) __THROW __nonnull ((1, 2));
>          ^
> /usr/include/stdlib.h:432:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/stdlib.h:436:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/stdlib.h:441:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/stdlib.h:445:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/stdlib.h:452:15: error: nonnull argument has invalid operand 
> number (argument 1)
>         struct drand48_data *__buffer) __THROW __nonnull ((1, 2));
>                ^
> /usr/include/stdlib.h:456:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> In file included from libxl_internal.h:35:0,
>                  from libxl_arm.h:17,
>                  from libxl_arm_acpi.c:19:
> /usr/include/stdlib.h:757:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __nonnull ((1, 2, 5)) __wur;
>       ^
> /usr/include/stdlib.h:766:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __compar_fn_t __compar) __nonnull ((1, 4));
>       ^
> /usr/include/stdlib.h:770:3: error: nonnull argument has invalid operand 
> number (argument 1)
>    __nonnull ((1, 4));
>    ^
> /usr/include/stdlib.h:813:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       int *__restrict __sign) __THROW __nonnull ((3, 4)) __wur;
>       ^
> /usr/include/stdlib.h:819:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       int *__restrict __sign) __THROW __nonnull ((3, 4)) __wur;
>       ^
> /usr/include/stdlib.h:832:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((3, 4)) __wur;
>       ^
> /usr/include/stdlib.h:835:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((3, 4)) __wur;
>       ^
> /usr/include/stdlib.h:844:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       size_t __len) __THROW __nonnull ((3, 4, 5));
>       ^
> /usr/include/stdlib.h:847:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       size_t __len) __THROW __nonnull ((3, 4, 5));
>       ^
> /usr/include/stdlib.h:852:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((3, 4, 5));
>       ^
> /usr/include/stdlib.h:856:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((3, 4, 5));
>       ^
> /usr/include/stdlib.h:902:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2, 3)) __wur;
>       ^
> In file included from libxl_internal.h:36:0,
>                  from libxl_arm.h:17,
>                  from libxl_arm_acpi.c:19:
> /usr/include/string.h:47:8: error: nonnull argument has invalid operand 
> number (argument 1)
>         size_t __n) __THROW __nonnull ((1, 2));
>         ^
> /usr/include/string.h:51:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/string.h:60:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/string.h:70:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __attribute_pure__ __nonnull ((1, 2));
>       ^
> /usr/include/string.h:130:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/string.h:134:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/string.h:138:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/string.h:141:9: error: nonnull argument has invalid operand 
> number (argument 1)
>          size_t __n) __THROW __nonnull ((1, 2));
>          ^
> /usr/include/string.h:145:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __attribute_pure__ __nonnull ((1, 2));
>       ^
> /usr/include/string.h:148:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __attribute_pure__ __nonnull ((1, 2));
>       ^
> /usr/include/string.h:152:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __attribute_pure__ __nonnull ((1, 2));
>       ^
> /usr/include/string.h:167:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __attribute_pure__ __nonnull ((1, 2, 3));
>       ^
> /usr/include/string.h:170:5: error: nonnull argument has invalid operand 
> number (argument 1)
>      __locale_t __l) __THROW __nonnull ((2, 4));
>      ^
> /usr/include/string.h:286:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __attribute_pure__ __nonnull ((1, 2));
>       ^
> /usr/include/string.h:290:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __attribute_pure__ __nonnull ((1, 2));
>       ^
> /usr/include/string.h:316:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __attribute_pure__ __nonnull ((1, 2));
>       ^
> /usr/include/string.h:343:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __attribute_pure__ __nonnull ((1, 2));
>       ^
> /usr/include/string.h:357:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((2, 3));
>       ^
> /usr/include/string.h:361:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((2, 3));
>       ^
> /usr/include/string.h:374:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __attribute_pure__ __nonnull ((1, 2));
>       ^
> /usr/include/string.h:384:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __attribute_pure__ __nonnull ((1, 3));
>       ^
> /usr/include/string.h:390:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/string.h:393:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/string.h:456:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/string.h:463:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __attribute_pure__ __nonnull ((1, 2));
>       ^
> /usr/include/string.h:535:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __attribute_pure__ __nonnull ((1, 2));
>       ^
> /usr/include/string.h:539:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __attribute_pure__ __nonnull ((1, 2));
>       ^
> /usr/include/string.h:547:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __attribute_pure__ __nonnull ((1, 2, 3));
>       ^
> /usr/include/string.h:551:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __attribute_pure__ __nonnull ((1, 2, 4));
>       ^
> /usr/include/string.h:559:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/string.h:568:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/string.h:570:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/string.h:576:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/string.h:579:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/string.h:585:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __attribute_pure__ __nonnull ((1, 2));
>       ^
> In file included from libxl_internal.h:37:0,
>                  from libxl_arm.h:17,
>                  from libxl_arm_acpi.c:19:
> /usr/include/unistd.h:552:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       char *const __envp[]) __THROW __nonnull ((1, 2));
>       ^
> /usr/include/unistd.h:564:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/unistd.h:569:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/unistd.h:574:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/unistd.h:579:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/unistd.h:585:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/unistd.h:592:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> In file included from libxl_internal.h:37:0,
>                  from libxl_arm.h:17,
>                  from libxl_arm_acpi.c:19:
> /usr/include/unistd.h:791:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2)) __wur;
>       ^
> /usr/include/unistd.h:798:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((2, 4)) __wur;
>       ^
> /usr/include/unistd.h:804:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2)) __wur;
>       ^
> /usr/include/unistd.h:811:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2)) __wur;
>       ^
> /usr/include/unistd.h:817:9: error: nonnull argument has invalid operand 
> number (argument 1)
>          const char *__to) __THROW __nonnull ((1, 3)) __wur;
>          ^
> /usr/include/unistd.h:822:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((2, 3)) __wur;
>       ^
> In file included from libxl_internal.h:37:0,
>                  from libxl_arm.h:17,
>                  from libxl_arm_acpi.c:19:
> /usr/include/unistd.h:1121:6: error: nonnull argument has invalid operand 
> number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/unistd.h:1134:5: error: nonnull argument has invalid operand 
> number (argument 1)
>      ssize_t __n) __THROW __nonnull ((1, 2));
>      ^
> In file included from libxl_internal.h:43:0,
>                  from libxl_arm.h:17,
>                  from libxl_arm_acpi.c:19:
> /usr/include/aarch64-linux-gnu/sys/stat.h:210:11: error: nonnull argument has 
> invalid operand number (argument 1)
>     struct stat *__restrict __buf) __THROW __nonnull ((1, 2));
>            ^
> /usr/include/aarch64-linux-gnu/sys/stat.h:229:13: error: nonnull argument has 
> invalid operand number (argument 1)
>       struct stat64 *__restrict __buf) __THROW __nonnull ((1, 2));
>              ^
> /usr/include/aarch64-linux-gnu/sys/stat.h:240:6: error: nonnull argument has 
> invalid operand number (argument 1)
>       __THROW __nonnull ((2, 3));
>       ^
> /usr/include/aarch64-linux-gnu/sys/stat.h:255:6: error: nonnull argument has 
> invalid operand number (argument 1)
>       __THROW __nonnull ((2, 3));
>       ^
> /usr/include/aarch64-linux-gnu/sys/stat.h:264:12: error: nonnull argument has 
> invalid operand number (argument 1)
>      struct stat *__restrict __buf) __THROW __nonnull ((1, 2));
>             ^
> /usr/include/aarch64-linux-gnu/sys/stat.h:278:6: error: nonnull argument has 
> invalid operand number (argument 1)
>       __THROW __nonnull ((1, 2));
>       ^
> /usr/include/aarch64-linux-gnu/sys/stat.h:402:14: error: nonnull argument has 
> invalid operand number (argument 1)
>        struct stat *__stat_buf) __THROW __nonnull ((2, 3));
>               ^
> /usr/include/aarch64-linux-gnu/sys/stat.h:404:15: error: nonnull argument has 
> invalid operand number (argument 1)
>         struct stat *__stat_buf) __THROW __nonnull ((2, 3));
>                ^
> /usr/include/aarch64-linux-gnu/sys/stat.h:407:6: error: nonnull argument has 
> invalid operand number (argument 1)
>       __THROW __nonnull ((3, 4));
>       ^
> /usr/include/aarch64-linux-gnu/sys/stat.h:435:16: error: nonnull argument has 
> invalid operand number (argument 1)
>          struct stat64 *__stat_buf) __THROW __nonnull ((2, 3));
>                 ^
> /usr/include/aarch64-linux-gnu/sys/stat.h:437:17: error: nonnull argument has 
> invalid operand number (argument 1)
>           struct stat64 *__stat_buf) __THROW __nonnull ((2, 3));
>                  ^
> /usr/include/aarch64-linux-gnu/sys/stat.h:440:6: error: nonnull argument has 
> invalid operand number (argument 1)
>       __THROW __nonnull ((3, 4));
>       ^
> /usr/include/aarch64-linux-gnu/sys/stat.h:443:8: error: nonnull argument has 
> invalid operand number (argument 1)
>         __dev_t *__dev) __THROW __nonnull ((2, 4));
>         ^
> /usr/include/aarch64-linux-gnu/sys/stat.h:447:6: error: nonnull argument has 
> invalid operand number (argument 1)
>       __THROW __nonnull ((3, 5));
>       ^
> In file included from ../../xen/include/xen/config.h:13:0,
>                  from ../../xen/include/asm/types.h:6,
>                  from /usr/include/linux/types.h:4,
>                  from /usr/include/aarch64-linux-gnu/asm/sigcontext.h:19,
>                  from /usr/include/aarch64-linux-gnu/bits/sigcontext.h:27,
>                  from /usr/include/signal.h:332,
>                  from libxl_internal.h:30,
>                  from libxl_arm.h:17,
>                  from libxl_arm_acpi.c:19:
> libxl_internal.h:202:68: error: expected ')' before '__attribute__'
>                           size_t nmemb, size_t size) 
> __attribute__((noreturn));
>                                                                     ^
> In file included from libxl_arm.h:17:0,
>                  from libxl_arm_acpi.c:19:
> libxl_internal.h:202:77: error: expected ',' or ';' before ')' token
>                           size_t nmemb, size_t size) 
> __attribute__((noreturn));
>                                                                              ^
> In file included from ../../xen/include/xen/config.h:13:0,
>                  from ../../xen/include/asm/types.h:6,
>                  from /usr/include/linux/types.h:4,
>                  from /usr/include/aarch64-linux-gnu/asm/sigcontext.h:19,
>                  from /usr/include/aarch64-linux-gnu/bits/sigcontext.h:27,
>                  from /usr/include/signal.h:332,
>                  from libxl_internal.h:30,
>                  from libxl_arm.h:17,
>                  from libxl_arm_acpi.c:19:
> libxl_internal.h:1618:61: error: expected ')' before '__attribute__'
>                            char *const env[]) __attribute__((noreturn));
>                                                              ^
> In file included from libxl_arm.h:17:0,
>                  from libxl_arm_acpi.c:19:
> libxl_internal.h:1618:70: error: expected ',' or ';' before ')' token
>                            char *const env[]) __attribute__((noreturn));
>                                                                       ^
> Makefile:99: recipe for target 'libxl_arm_acpi.o' failed
> make[3]: *** [libxl_arm_acpi.o] Error 1
> make[3]: Leaving directory '/home/steven/xen/tools/libxl'
> /home/steven/xen/tools/../tools/Rules.mk:216: recipe for target 
> 'subdir-install-libxl' failed
> make[2]: *** [subdir-install-libxl] Error 2
> make[2]: Leaving directory '/home/steven/xen/tools'
> /home/steven/xen/tools/../tools/Rules.mk:211: recipe for target 
> 'subdirs-install' failed
> make[1]: *** [subdirs-install] Error 2
> make[1]: Leaving directory '/home/steven/xen/tools'
> Makefile:101: recipe for target 'install-tools' failed
> make: *** [install-tools] Error 2

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.