1 #ifndef CLICK_FIXCONFIG_H
2 #define CLICK_FIXCONFIG_H
3 
4 #if CLICK_LINUXMODULE && __cplusplus
5 #include <click/type_traits.hh>
6 
7 #define __builtin_types_compatible_p(a, b) \
8     (types_compatible<typeof(a), typeof(b)>::value)
9 #endif
10 
11 #if CLICK_LINUXMODULE && HAVE_LINUX_ASM_ALTERNATIVE_H
12 // The .smp_locks section and C++-style weak linkage interact badly.
13 # if CONFIG_SMP && (defined(__i386__) || defined(__x86_64__))
14 #  include <click/cxxprotect.h>
15 CLICK_CXX_PROTECT
16 #  include <asm/alternative.h>
17 #  undef LOCK_PREFIX
18 #  define LOCK_PREFIX "lock ; "
19 CLICK_CXX_UNPROTECT
20 #  include <click/cxxunprotect.h>
21 # endif
22 #endif
23 
24 #endif
25