numam-dpdk/lib/eal/ppc/include/rte_altivec.h

23 lines
521 B
C
Raw Normal View History

eal/ppc: fix bool type after altivec include The AltiVec header file breaks boolean type. [1] [2] Currently the workaround was located only in mlx5 device. Adding the trace module caused this issue to appear again, due to order of includes, it keeps overriding the local fix. This patch solves this issue by resetting the bool type, immediately after it is being changed. [1] https://mails.dpdk.org/archives/dev/2018-August/110281.html [2] In file included from dpdk/ppc_64-power8-linux-gcc/include/rte_mempool_trace_fp.h:18:0, from dpdk/ppc_64-power8-linux-gcc/include/rte_mempool.h:54, from dpdk/drivers/common/mlx5/mlx5_common_mr.c:7: dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point.h: In function '__rte_trace_point_fp_is_enabled': dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point.h:226:2: error: incompatible types when returning type 'int' but '__vector __bool int' was expected return false; ^ In file included from dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point.h:281:0, from dpdk/ppc_64-power8-linux-gcc/include/rte_mempool_trace_fp.h:18, from dpdk/ppc_64-power8-linux-gcc/include/rte_mempool.h:54, from dpdk/drivers/common/mlx5/mlx5_common_mr.c:7: dpdk/ppc_64-power8-linux-gcc/include/rte_mempool_trace_fp.h: In function 'rte_mempool_trace_ops_dequeue_bulk': dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point_provider.h:104:6: error: wrong type argument to unary exclamation mark if (!__rte_trace_point_fp_is_enabled()) \ ^ dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point.h:49:2: note: in expansion of macro '__rte_trace_point_emit_header_fp' __rte_trace_point_emit_header_##_mode(&__##_tp); \ ^ dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point.h:99:2: note: in expansion of macro '__RTE_TRACE_POINT' __RTE_TRACE_POINT(fp, tp, args, __VA_ARGS__) ^ dpdk/ppc_64-power8-linux-gcc/include/rte_mempool_trace_fp.h:20:1: note: in expansion of macro 'RTE_TRACE_POINT_FP' RTE_TRACE_POINT_FP( ^ dpdk/ppc_64-power8-linux-gcc/include/rte_mempool_trace_fp.h: In function 'rte_mempool_trace_ops_dequeue_contig_blocks': dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point_provider.h:104:6: error: wrong type argument to unary exclamation mark if (!__rte_trace_point_fp_is_enabled()) \ ^ dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point.h:49:2: note: in expansion of macro '__rte_trace_point_emit_header_fp' __rte_trace_point_emit_header_##_mode(&__##_tp); \ ^ dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point.h:99:2: note: in expansion of macro '__RTE_TRACE_POINT' __RTE_TRACE_POINT(fp, tp, args, __VA_ARGS__) ^ dpdk/ppc_64-power8-linux-gcc/include/rte_mempool_trace_fp.h:29:1: note: in expansion of macro 'RTE_TRACE_POINT_FP' RTE_TRACE_POINT_FP( ^ dpdk/ppc_64-power8-linux-gcc/include/rte_mempool_trace_fp.h: In function 'rte_mempool_trace_ops_enqueue_bulk': dpdk/ppc_64-power8-linux-gcc/include/rte_trace_point_provider.h:104:6: error: wrong type argument to unary exclamation mark if (!__rte_trace_point_fp_is_enabled()) \ Fixes: 725f5dd0bfb5 ("net/mlx5: fix build on PPC64") Signed-off-by: Ori Kam <orika@mellanox.com> Signed-off-by: David Christensen <drc@linux.vnet.ibm.com> Tested-by: David Christensen <drc@linux.vnet.ibm.com> Tested-by: Raslan Darawsheh <rasland@mellanox.com> Acked-by: Matan Azrad <matan@mellanox.com>
2020-04-30 14:22:14 +00:00
/*
* SPDX-License-Identifier: BSD-3-Clause
* Copyright (C) Mellanox 2020.
*/
#ifndef _RTE_ALTIVEC_H_
#define _RTE_ALTIVEC_H_
/* To include altivec.h, GCC version must be >= 4.8 */
#include <altivec.h>
/*
* Compilation workaround for PPC64 when AltiVec is fully enabled, e.g. std=c11.
* Otherwise there would be a type conflict between stdbool and altivec.
*/
#if defined(__PPC64__) && !defined(__APPLE_ALTIVEC__)
#undef bool
/* redefine as in stdbool.h */
#define bool _Bool
#endif
#endif /* _RTE_ALTIVEC_H_ */