Build issue reported by Mats Liljegren : CC eal.o In file included from /home/lwrt/build/dpdk/lib/librte_eal/linuxapp/eal/eal.c:55:0: /home/lwrt/build/dpdk/lib/librte_eal/linuxapp/eal/eal.c: In function ?eal_parse_base_virtaddr?: /home/lwrt/build/dpdk/i686-default-linuxapp-gcc/include/rte_common.h:133:22: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] RTE_PTR_ALIGN_FLOOR((typeof(ptr))RTE_PTR_ADD(ptr, (align) - 1), align) ^ /home/lwrt/build/dpdk/i686-default-linuxapp-gcc/include/rte_common.h:115:10: note: in definition of macro ?RTE_PTR_ALIGN_FLOOR? (typeof(ptr))rte_align_floor_int((uintptr_t)ptr, align) ^ /home/lwrt/build/dpdk/lib/librte_eal/linuxapp/eal/eal.c:566:9: note: in expansion of macro ?RTE_PTR_ALIGN_CEIL? addr = RTE_PTR_ALIGN_CEIL(addr, RTE_PGSIZE_2M); ^ /home/lwrt/build/dpdk/i686-default-linuxapp-gcc/include/rte_common.h:133:22: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] RTE_PTR_ALIGN_FLOOR((typeof(ptr))RTE_PTR_ADD(ptr, (align) - 1), align) ^ /home/lwrt/build/dpdk/i686-default-linuxapp-gcc/include/rte_common.h:115:46: note: in definition of macro ?RTE_PTR_ALIGN_FLOOR? (typeof(ptr))rte_align_floor_int((uintptr_t)ptr, align) ^ /home/lwrt/build/dpdk/lib/librte_eal/linuxapp/eal/eal.c:566:9: note: in expansion of macro ?RTE_PTR_ALIGN_CEIL? addr = RTE_PTR_ALIGN_CEIL(addr, RTE_PGSIZE_2M); ^ cc1: all warnings being treated as errors
RTE_PTR_ALIGN_CEIL return type is the same as what we give it as input. So instead of casting the returned value, cast 'addr' which should be the same as base_virtaddr. Reported-by: Mats Liljegren <mats.liljegren at enea.com> Signed-off-by: David Marchand <david.marchand at 6wind.com> --- lib/librte_eal/linuxapp/eal/eal.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c index db0e15c..72b4dd7 100644 --- a/lib/librte_eal/linuxapp/eal/eal.c +++ b/lib/librte_eal/linuxapp/eal/eal.c @@ -563,9 +563,9 @@ eal_parse_base_virtaddr(const char *arg) #endif /* align the addr on 2M boundary */ - addr = RTE_PTR_ALIGN_CEIL(addr, RTE_PGSIZE_2M); + internal_config.base_virtaddr = RTE_PTR_ALIGN_CEIL((uintptr_t)addr, + RTE_PGSIZE_2M); - internal_config.base_virtaddr = (uintptr_t) addr; return 0; } -- 1.7.10.4