[dpdk-dev] clang compilation error in librte_table

Marc Sune marc.sune at bisdn.de
Wed Oct 22 09:57:32 CEST 2014


Hello,

There seems to be compilation issues with clang(3.0-6.2) and current 
HEAD (0c6bc8e) within librte_table:

== Build lib/librte_table
   CC rte_table_lpm.o
   CC rte_table_lpm_ipv6.o
   CC rte_table_hash_key8.o
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:212:4: error: 
implicit declaration of function '_mm_minpos_epu16' is invalid in C99
       [-Werror,-Wimplicit-function-declaration]
                         lru_update(bucket, i);
                         ^
/home/marc/dpdk/lib/librte_table/rte_lru.h:157:14: note: expanded from:
         __m128i d = _mm_minpos_epu16(c);                                \
                     ^
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:212:4: error: 
initializing '__m128i' with an expression of incompatible type 'int';
                         lru_update(bucket, i);
                         ^~~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_lru.h:157:10: note: expanded from:
         __m128i d = _mm_minpos_epu16(c);                                \
                 ^   ~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:229:4: error: 
initializing '__m128i' with an expression of incompatible type 'int';
                         lru_update(bucket, i);
                         ^~~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_lru.h:157:10: note: expanded from:
         __m128i d = _mm_minpos_epu16(c);                                \
                 ^   ~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:241:2: error: 
initializing '__m128i' with an expression of incompatible type 'int';
         lru_update(bucket, pos);
         ^~~~~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_lru.h:157:10: note: expanded from:
         __m128i d = _mm_minpos_epu16(c);                                \
                 ^   ~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:858:4: error: 
initializing '__m128i' with an expression of incompatible type 'int';
                         lookup1_stage2_lru(pkt_index, mbuf, bucket,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:624:2: note: 
expanded from:
         lru_update(bucket2, pos);                               \
         ^
/home/marc/dpdk/lib/librte_table/rte_lru.h:157:10: note: expanded from:
         __m128i d = _mm_minpos_epu16(c);                                \
                 ^   ~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:912:3: error: 
initializing '__m128i' with an expression of incompatible type 'int';
                 lookup2_stage2_lru(pkt20_index, pkt21_index, mbuf20, 
mbuf21,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:793:2: note: 
expanded from:
         lru_update(bucket20, pos20);                            \
         ^
/home/marc/dpdk/lib/librte_table/rte_lru.h:157:10: note: expanded from:
         __m128i d = _mm_minpos_epu16(c);                                \
                 ^   ~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:912:3: error: 
initializing '__m128i' with an expression of incompatible type 'int';
                 lookup2_stage2_lru(pkt20_index, pkt21_index, mbuf20, 
mbuf21,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:794:2: note: 
expanded from:
         lru_update(bucket21, pos21);                            \
         ^
/home/marc/dpdk/lib/librte_table/rte_lru.h:157:10: note: expanded from:
         __m128i d = _mm_minpos_epu16(c);                                \
                 ^   ~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:936:2: error: 
initializing '__m128i' with an expression of incompatible type 'int';
         lookup2_stage2_lru(pkt20_index, pkt21_index, mbuf20, mbuf21,
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:793:2: note: 
expanded from:
         lru_update(bucket20, pos20);                            \
         ^
/home/marc/dpdk/lib/librte_table/rte_lru.h:157:10: note: expanded from:
         __m128i d = _mm_minpos_epu16(c);                                \
                 ^   ~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:936:2: error: 
initializing '__m128i' with an expression of incompatible type 'int';
         lookup2_stage2_lru(pkt20_index, pkt21_index, mbuf20, mbuf21,
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:794:2: note: 
expanded from:
         lru_update(bucket21, pos21);                            \
         ^
/home/marc/dpdk/lib/librte_table/rte_lru.h:157:10: note: expanded from:
         __m128i d = _mm_minpos_epu16(c);                                \
                 ^   ~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:948:2: error: 
initializing '__m128i' with an expression of incompatible type 'int';
         lookup2_stage2_lru(pkt20_index, pkt21_index, mbuf20, mbuf21,
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:793:2: note: 
expanded from:
         lru_update(bucket20, pos20);                            \
         ^
/home/marc/dpdk/lib/librte_table/rte_lru.h:157:10: note: expanded from:
         __m128i d = _mm_minpos_epu16(c);                                \
                 ^   ~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:948:2: error: 
initializing '__m128i' with an expression of incompatible type 'int';
         lookup2_stage2_lru(pkt20_index, pkt21_index, mbuf20, mbuf21,
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:794:2: note: 
expanded from:
         lru_update(bucket21, pos21);                            \
         ^
/home/marc/dpdk/lib/librte_table/rte_lru.h:157:10: note: expanded from:
         __m128i d = _mm_minpos_epu16(c);                                \
                 ^   ~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:979:4: error: 
initializing '__m128i' with an expression of incompatible type 'int';
                         lookup1_stage2_lru(pkt_index, mbuf, bucket,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:624:2: note: 
expanded from:
         lru_update(bucket2, pos);                               \
         ^
/home/marc/dpdk/lib/librte_table/rte_lru.h:157:10: note: expanded from:
         __m128i d = _mm_minpos_epu16(c);                                \
                 ^   ~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:1033:3: error: 
initializing '__m128i' with an expression of incompatible type 'int';
                 lookup2_stage2_lru(pkt20_index, pkt21_index, mbuf20, 
mbuf21,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:793:2: note: 
expanded from:
         lru_update(bucket20, pos20);                            \
         ^
/home/marc/dpdk/lib/librte_table/rte_lru.h:157:10: note: expanded from:
         __m128i d = _mm_minpos_epu16(c);                                \
                 ^   ~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:1033:3: error: 
initializing '__m128i' with an expression of incompatible type 'int';
                 lookup2_stage2_lru(pkt20_index, pkt21_index, mbuf20, 
mbuf21,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:794:2: note: 
expanded from:
         lru_update(bucket21, pos21);                            \
         ^
/home/marc/dpdk/lib/librte_table/rte_lru.h:157:10: note: expanded from:
         __m128i d = _mm_minpos_epu16(c);                                \
                 ^   ~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:1057:2: error: 
initializing '__m128i' with an expression of incompatible type 'int';
         lookup2_stage2_lru(pkt20_index, pkt21_index, mbuf20, mbuf21,
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:793:2: note: 
expanded from:
         lru_update(bucket20, pos20);                            \
         ^
/home/marc/dpdk/lib/librte_table/rte_lru.h:157:10: note: expanded from:
         __m128i d = _mm_minpos_epu16(c);                                \
                 ^   ~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:1057:2: error: 
initializing '__m128i' with an expression of incompatible type 'int';
         lookup2_stage2_lru(pkt20_index, pkt21_index, mbuf20, mbuf21,
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:794:2: note: 
expanded from:
         lru_update(bucket21, pos21);                            \
         ^
/home/marc/dpdk/lib/librte_table/rte_lru.h:157:10: note: expanded from:
         __m128i d = _mm_minpos_epu16(c);                                \
                 ^   ~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:1069:2: error: 
initializing '__m128i' with an expression of incompatible type 'int';
         lookup2_stage2_lru(pkt20_index, pkt21_index, mbuf20, mbuf21,
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:793:2: note: 
expanded from:
         lru_update(bucket20, pos20);                            \
         ^
/home/marc/dpdk/lib/librte_table/rte_lru.h:157:10: note: expanded from:
         __m128i d = _mm_minpos_epu16(c);                                \
                 ^   ~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:1069:2: error: 
initializing '__m128i' with an expression of incompatible type 'int';
         lookup2_stage2_lru(pkt20_index, pkt21_index, mbuf20, mbuf21,
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/marc/dpdk/lib/librte_table/rte_table_hash_key8.c:794:2: note: 
expanded from:
         lru_update(bucket21, pos21);                            \
         ^
/home/marc/dpdk/lib/librte_table/rte_lru.h:157:10: note: expanded from:
         __m128i d = _mm_minpos_epu16(c);                                \
                 ^   ~~~~~~~~~~~~~~~~~~~
18 errors generated.
make[5]: *** [rte_table_hash_key8.o] Error 1
make[4]: *** [librte_table] Error 2
make[3]: *** [lib] Error 2
make[2]: *** [all] Error 2
make[1]: *** [x86_64-native-linuxapp-clang_install] Error 2
make: *** [install] Error 2


regards
marc


More information about the dev mailing list