2
0
mirror of https://github.com/openvswitch/ovs synced 2025-08-22 01:51:26 +00:00

compiler.h: Don't use asm and typeof with non-GNU compilers.

'asm' is a GNU extension.  Compilers without GNU extensions do not
understand it:

  dpif-netdev-perf.h:225:5: error: use of undeclared identifier 'asm'
      asm volatile("rdtsc" : "=a" (l), "=d" (h));

Redefining asm as __asm__ for non-C++ compilers that do not have it
defined.  While at it, also add typeof definition.  It doesn't need
a check for C++, because it's not a keyword in C++.

Acked-by: Eelco Chaudron <echaudro@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
This commit is contained in:
Ilya Maximets 2023-08-22 12:35:38 +02:00
parent e3d5616706
commit be2cd24b12

View File

@ -37,6 +37,16 @@
#define OVS_NO_RETURN
#endif
#ifndef typeof
#define typeof __typeof__
#endif
#ifndef __cplusplus
#ifndef asm
#define asm __asm__
#endif
#endif
#if __GNUC__ && !__CHECKER__
#define OVS_UNUSED __attribute__((__unused__))
#define OVS_PRINTF_FORMAT(FMT, ARG1) __attribute__((__format__(printf, FMT, ARG1)))