AR# 72561

2019.1 Zynq UltraScale+ MPSoC: OpenAMP libmetal C++ アプリケーションをビルドできない

説明

2019.1 OpenAMP では、libmetal C++ アプリケーションを Zynq UltraScale+ MPSoC または RFSoC アーキテクチャに対してビルドできず、次のようなエラー メッセージが表示されます。

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)

ソリューション

これは 2019.1 OpenAMP の既知の問題で、2019.2 のリリースで修正される予定です。

この問題を回避するには、次の手順に従って添付のパッチを libmetal ソースに適用します。

1) 次に示すように、meta-user レイヤーに libmetal ディレクトリを作成します。

 

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

 

2) 添付のパッチを <plnx-proj-root>/project-spec/meta-user/recipes-openamp/libmetal/files ディレクトリにコピーします。

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

3) パッチを適用するために libmetal_git.bbappend ファイルおよび bitbake レシピ変数を作成します。

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) libmetal ビルド アーチファクトをクリーンにし、libmetal を再構築します。

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

添付ファイル

関連添付ファイル

タイトル サイズ ファイルタイプ
0001-lib-atomic-revert-c-compilation-issue.patch 815 Bytes PATCH
AR# 72561
日付 07/22/2019
ステータス アクティブ
種類 一般
デバイス
ツール
Boards & Kits