On 2017/12/19 18:53, Johannes Thumshirn wrote:
Xiao Yang<yangx.jy@xxxxxxxxxxxxxx> writes:
[root@RHEL6U9GA_Intel64 blktests]# make
make -C src all
make[1]: Entering directory `/root/blktests/src'
cc -Wall -o sg/syzkaller1 -O2 sg/syzkaller1.c
sg/syzkaller1.c: In function ‘segv_handler’:
sg/syzkaller1.c:118: warning: implicit declaration of function
‘__atomic_load_n’
sg/syzkaller1.c:118: error: ‘__ATOMIC_RELAXED’ undeclared (first use
in this function)
sg/syzkaller1.c:118: error: (Each undeclared identifier is reported
only once
sg/syzkaller1.c:118: error: for each function it appears in.)
sg/syzkaller1.c: In function ‘syz_open_dev’:
sg/syzkaller1.c:204: warning: implicit declaration of function
‘__atomic_fetch_add’
sg/syzkaller1.c:204: error: ‘__ATOMIC_SEQ_CST’ undeclared (first use
in this function)
sg/syzkaller1.c:204: warning: implicit declaration of function
‘__atomic_fetch_sub’
sg/syzkaller1.c: In function ‘test’:
sg/syzkaller1.c:406: error: ‘__ATOMIC_SEQ_CST’ undeclared (first use
in this function)
make[1]: *** [sg/syzkaller1] Error 1
make[1]: Leaving directory `/root/blktests/src'
make: *** [all] Error 2
-----------------------------------------------------------------------------------------------------------------------
It seems that __atomic_* functions are not available, and could you
tell me how to fix
the compiler error?
It seems like gcc 4.4 is too old to handle __ATOMIC_*. The oldest
version of gcc I tried was 4.8 which could handle this code perfectly
fine.
I think we need hacks in the makefile to see which compiler version we
have and conditionally compile the code.
Hi Johannes,
Thanks for your quick reply. i will try to fix it as you suggested.
Thanks,
Xiao Yang
Byte,
Johannes