AR# 72561

|

2019.1 Zynq UltraScale+ MPSoC: Why does the OpenAMP libmetal C++ application not build?

描述

In the 2019.1 OpenAMP release, the libmetal C++ application does not build for Zynq UltraScale+ MPSoC or RFSoC architecture, and is returning the following errors:

DEBUG: Executing shell function do_compile
NOTE: make -j 12
aarch64-xilinx-linux-g++  -fstack-protector-strong  -D_FORTIFY_SOURCE=2 -Wformat -Wformat-security -Werror=format-security --sysroot=/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot  -O2 -pipe -g -feliminate-unused-debug-types -fdebug-prefix-map=/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0=/usr/src/debug/testapp/1.0-r0 -fdebug-prefix-map=/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot= -fdebug-prefix-map=/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot-native=  -fvisibility-inlines-hidden   -c -o testapp.o testapp.cpp
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:42:5: error: 'memory_order' has not been declared
     memory_order order,
     ^~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:47:6: error: 'memory_order' has not been declared
      memory_order order,
      ^~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:52:5: error: 'memory_order' has not been declared
     memory_order order,
     ^~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:57:6: error: 'memory_order' has not been declared
      memory_order order,
      ^~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:62:6: error: 'memory_order' has not been declared
      memory_order order,
      ^~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:235:8: error: 'memory_order' has not been declared
        memory_order order, int width)
        ^~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h: In function 'uint64_t metal_io_read(metal_io_region*, long unsigned int, int, int)':
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:241:25: error: 'atomic_uchar' was not declared in this scope
  else if (ptr && sizeof(atomic_uchar) == width)
                         ^~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:241:25: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:877:34: note:   'std::atomic_uchar'
   typedef atomic<unsigned char>  atomic_uchar;
                                  ^~~~~~~~~~~~
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:242:46: error: expected primary-expression before ')' token
   return atomic_load_explicit((atomic_uchar *)ptr, order);
                                              ^
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:242:10: error: 'atomic_load_explicit' was not declared in this scope
   return atomic_load_explicit((atomic_uchar *)ptr, order);
          ^~~~~~~~~~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:242:10: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:1089:5: note:   'std::atomic_load_explicit'
     atomic_load_explicit(const volatile atomic<_ITp>* __a,
     ^~~~~~~~~~~~~~~~~~~~
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:243:25: error: 'atomic_ushort' was not declared in this scope
  else if (ptr && sizeof(atomic_ushort) == width)
                         ^~~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:243:25: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:883:34: note:   'std::atomic_ushort'
   typedef atomic<unsigned short> atomic_ushort;
                                  ^~~~~~~~~~~~~
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:244:47: error: expected primary-expression before ')' token
   return atomic_load_explicit((atomic_ushort *)ptr, order);
                                               ^
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:244:10: error: 'atomic_load_explicit' was not declared in this scope
   return atomic_load_explicit((atomic_ushort *)ptr, order);
          ^~~~~~~~~~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:244:10: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:1089:5: note:   'std::atomic_load_explicit'
     atomic_load_explicit(const volatile atomic<_ITp>* __a,
     ^~~~~~~~~~~~~~~~~~~~
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:245:25: error: 'atomic_uint' was not declared in this scope
  else if (ptr && sizeof(atomic_uint) == width)
                         ^~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:245:25: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:889:33: note:   'std::atomic_uint'
   typedef atomic<unsigned int>  atomic_uint;
                                 ^~~~~~~~~~~
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:246:45: error: expected primary-expression before ')' token
   return atomic_load_explicit((atomic_uint *)ptr, order);
                                             ^
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:246:10: error: 'atomic_load_explicit' was not declared in this scope
   return atomic_load_explicit((atomic_uint *)ptr, order);
          ^~~~~~~~~~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:246:10: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:1089:5: note:   'std::atomic_load_explicit'
     atomic_load_explicit(const volatile atomic<_ITp>* __a,
     ^~~~~~~~~~~~~~~~~~~~
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:247:25: error: 'atomic_ulong' was not declared in this scope
  else if (ptr && sizeof(atomic_ulong) == width)
                         ^~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:247:25: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:895:34: note:   'std::atomic_ulong'
   typedef atomic<unsigned long>  atomic_ulong;
                                  ^~~~~~~~~~~~
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:248:46: error: expected primary-expression before ')' token
   return atomic_load_explicit((atomic_ulong *)ptr, order);
                                              ^
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:248:10: error: 'atomic_load_explicit' was not declared in this scope
   return atomic_load_explicit((atomic_ulong *)ptr, order);
          ^~~~~~~~~~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:248:10: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:1089:5: note:   'std::atomic_load_explicit'
     atomic_load_explicit(const volatile atomic<_ITp>* __a,
     ^~~~~~~~~~~~~~~~~~~~
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:250:25: error: 'atomic_ullong' was not declared in this scope
  else if (ptr && sizeof(atomic_ullong) == width)
                         ^~~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:250:25: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:901:38: note:   'std::atomic_ullong'
   typedef atomic<unsigned long long> atomic_ullong;
                                      ^~~~~~~~~~~~~
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:251:47: error: expected primary-expression before ')' token
   return atomic_load_explicit((atomic_ullong *)ptr, order);
                                               ^
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:251:10: error: 'atomic_load_explicit' was not declared in this scope
   return atomic_load_explicit((atomic_ullong *)ptr, order);
          ^~~~~~~~~~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:251:10: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:1089:5: note:   'std::atomic_load_explicit'
     atomic_load_explicit(const volatile atomic<_ITp>* __a,
     ^~~~~~~~~~~~~~~~~~~~
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h: At global scope:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:269:25: error: 'memory_order' has not been declared
         uint64_t value, memory_order order, int width)
                         ^~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h: In function 'void metal_io_write(metal_io_region*, long unsigned int, uint64_t, int, int)':
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:274:25: error: 'atomic_uchar' was not declared in this scope
  else if (ptr && sizeof(atomic_uchar) == width)
                         ^~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:274:25: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:877:34: note:   'std::atomic_uchar'
   typedef atomic<unsigned char>  atomic_uchar;
                                  ^~~~~~~~~~~~
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:275:40: error: expected primary-expression before ')' token
   atomic_store_explicit((atomic_uchar *)ptr, value, order);
                                        ^
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:275:3: error: 'atomic_store_explicit' was not declared in this scope
   atomic_store_explicit((atomic_uchar *)ptr, value, order);
   ^~~~~~~~~~~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:275:3: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:1078:5: note:   'std::atomic_store_explicit'
     atomic_store_explicit(volatile atomic<_ITp>* __a, _ITp __i,
     ^~~~~~~~~~~~~~~~~~~~~
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:276:25: error: 'atomic_ushort' was not declared in this scope
  else if (ptr && sizeof(atomic_ushort) == width)
                         ^~~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:276:25: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:883:34: note:   'std::atomic_ushort'
   typedef atomic<unsigned short> atomic_ushort;
                                  ^~~~~~~~~~~~~
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:277:41: error: expected primary-expression before ')' token
   atomic_store_explicit((atomic_ushort *)ptr, value, order);
                                         ^
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:277:3: error: 'atomic_store_explicit' was not declared in this scope
   atomic_store_explicit((atomic_ushort *)ptr, value, order);
   ^~~~~~~~~~~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:277:3: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:1078:5: note:   'std::atomic_store_explicit'
     atomic_store_explicit(volatile atomic<_ITp>* __a, _ITp __i,
     ^~~~~~~~~~~~~~~~~~~~~
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:278:25: error: 'atomic_uint' was not declared in this scope
  else if (ptr && sizeof(atomic_uint) == width)
                         ^~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:278:25: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:889:33: note:   'std::atomic_uint'
   typedef atomic<unsigned int>  atomic_uint;
                                 ^~~~~~~~~~~
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:279:39: error: expected primary-expression before ')' token
   atomic_store_explicit((atomic_uint *)ptr, value, order);
                                       ^
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:279:3: error: 'atomic_store_explicit' was not declared in this scope
   atomic_store_explicit((atomic_uint *)ptr, value, order);
   ^~~~~~~~~~~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:279:3: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:1078:5: note:   'std::atomic_store_explicit'
     atomic_store_explicit(volatile atomic<_ITp>* __a, _ITp __i,
     ^~~~~~~~~~~~~~~~~~~~~
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:280:25: error: 'atomic_ulong' was not declared in this scope
  else if (ptr && sizeof(atomic_ulong) == width)
                         ^~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:280:25: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:895:34: note:   'std::atomic_ulong'
   typedef atomic<unsigned long>  atomic_ulong;
                                  ^~~~~~~~~~~~
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:281:40: error: expected primary-expression before ')' token
   atomic_store_explicit((atomic_ulong *)ptr, value, order);
                                        ^
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:281:3: error: 'atomic_store_explicit' was not declared in this scope
   atomic_store_explicit((atomic_ulong *)ptr, value, order);
   ^~~~~~~~~~~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:281:3: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:1078:5: note:   'std::atomic_store_explicit'
     atomic_store_explicit(volatile atomic<_ITp>* __a, _ITp __i,
     ^~~~~~~~~~~~~~~~~~~~~
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:283:25: error: 'atomic_ullong' was not declared in this scope
  else if (ptr && sizeof(atomic_ullong) == width)
                         ^~~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:283:25: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:901:38: note:   'std::atomic_ullong'
   typedef atomic<unsigned long long> atomic_ullong;
                                      ^~~~~~~~~~~~~
In file included from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:284:41: error: expected primary-expression before ')' token
   atomic_store_explicit((atomic_ullong *)ptr, value, order);
                                         ^
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:284:3: error: 'atomic_store_explicit' was not declared in this scope
   atomic_store_explicit((atomic_ullong *)ptr, value, order);
   ^~~~~~~~~~~~~~~~~~~~~
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:284:3: note: suggested alternative:
In file included from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/atomic.h:21,
                 from /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/metal/io.h:21,
                 from testapp.cpp:33:
/tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/recipe-sysroot/usr/include/c++/8.2.0/atomic:1078:5: note:   'std::atomic_store_explicit'
     atomic_store_explicit(volatile atomic<_ITp>* __a, _ITp __i,
     ^~~~~~~~~~~~~~~~~~~~~
make: *** [<builtin>: testapp.o] Error 1
ERROR: oe_runmake failed
WARNING: /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/temp/run.do_compile.14770:1 exit 1 from 'exit 1'
ERROR: Function failed: do_compile (log file is located at /tmp/sandeepg/plnx/2019.1/xilinx-zcu111-2019.1/work/aarch64-xilinx-linux/testapp/1.0-r0/temp/log.do_compile.14770)

解决方案

This is a known issue in the 2019.1 OpenAMP release and will be fixed in the 2019.2 release.

To work around this issue, apply the attached patch to libmetal source using the below steps.

1) Create the libmetal directory in the meta-user layer as follows:

 

mkdir -p <plnx-proj-root>/project-spec/meta-user/recipes-openamp/libmetal/files

 

2) Copy the attached patch to the <plnx-proj-root>/project-spec/meta-user/recipes-openamp/libmetal/files directory:

cp 0001-lib-atomic-revert-c-compilation-issue.patch <plnx-proj-root>/project-spec/meta-user/recipes-openamp/libmetal/files

3) Create a libmetal_git.bbappend file and bitbake recipe variables to apply the patch:

vim <plnx-proj-root>/project-spec/meta-user/recipes-openamp/libmetal/libmetal_git.bbappend
 
# libmetal_git.bbappend content
SRC_URI_append = " \
file://0001-lib-atomic-revert-c-compilation-issue.patch \
"
 
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"

 

4) Clean the libmetal build artifacts and rebuild the libmetal recipes:

petalinux-build -c libmetal -x cleansstate
petalinux-build -c libmetal

附件

文件名 文件大小 File Type
0001-lib-atomic-revert-c-compilation-issue.patch 815 Bytes PATCH
AR# 72561
日期 07/22/2019
状态 Active
Type 综合文章
器件
Tools
Boards & Kits
People Also Viewed