• Rong Tao's avatar
    tools/virtio: Fix arm64 ringtest compilation error · 57380fd1
    Rong Tao authored
    Add cpu_relax() for arm64 instead of directly assert(), and add assert.h
    header file. Also, add smp_wmb and smp_mb for arm64.
    
    Compilation error as follows, avoid __always_inline undefined.
    
        $ make
        cc -Wall -pthread -O2 -ggdb -flto -fwhole-program -c -o ring.o ring.c
        In file included from ring.c:10:
        main.h: In function ‘busy_wait’:
        main.h:99:21: warning: implicit declaration of function ‘assert’
        [-Wimplicit-function-declaration]
        99 | #define cpu_relax() assert(0)
            |                     ^~~~~~
        main.h:107:17: note: in expansion of macro ‘cpu_relax’
        107 |                 cpu_relax();
            |                 ^~~~~~~~~
        main.h:12:1: note: ‘assert’ is defined in header ‘<assert.h>’; did you
        forget to ‘#include <assert.h>’?
        11 | #include <stdbool.h>
        +++ |+#include <assert.h>
        12 |
        main.h: At top level:
        main.h:143:23: error: expected ‘;’ before ‘void’
        143 | static __always_inline
            |                       ^
            |                       ;
        144 | void __read_once_size(const volatile void *p, void *res, int
        size)
            | ~~~~
        main.h:158:23: error: expected ‘;’ before ‘void’
        158 | static __always_inline void __write_once_size(volatile void *p,
        void *res, int size)
            |                       ^~~~~
            |                       ;
        make: *** [<builtin>: ring.o] Error 1
    Signed-off-by: default avatarRong Tao <rongtao@cestc.cn>
    Message-Id: <tencent_F53E159DD7925174445D830DA19FACF44B07@qq.com>
    Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
    57380fd1
main.h 4.68 KB