[dpdk-dev] [PATCH] ixgbe: fix compile error with gcc4.4 (used RHEL 6)
Tested-by: Haifeng Tang This patch just includes one file, and has been tested by Intel. Please see the detail information from the attachment. -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Bruce Richardson Sent: Thursday, September 18, 2014 6:56 PM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH] ixgbe: fix compile error with gcc4.4 (used RHEL 6) The refcnt field is contained within an anonymous union within the mbuf data structure, and gcc 4.4 gives an error about an unknown field unless the initialiser for the field is contained within extra braces. Signed-off-by: Bruce Richardson --- lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c b/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c index a6f7fdf..203ddf7 100644 --- a/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c +++ b/lib/librte_pmd_ixgbe/ixgbe_rxtx_vec.c @@ -723,7 +723,7 @@ ixgbe_rxq_vec_setup(struct igb_rx_queue *rxq) .nb_segs = 1, .data_off = RTE_PKTMBUF_HEADROOM, #ifdef RTE_MBUF_REFCNT - .refcnt = 1, + { .refcnt = 1, } #endif }; -- 1.9.3
[dpdk-dev] [PATCH] x32 ABI support, first iteration
Tested-by: Haifeng Tang - Tested Commit: bfca21f8a0defa7173895ba00e30f685b3209b81 - OS&Kernel: Ubuntu 14.04 LTS 3.13.0-24-generic - GCC: gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) - CPUIntel(R) Xeon(R) CPU E5-2680 0 @ 2.70GHz - NIC: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection [8086:10fb] - Default x86_x32-native-linuxapp-gcc configuration - Regression test result Total 74 cases, 74 passed, 0 failed pmd checksum_checking PASSED packet_checking PASSED ipfrag ipfrag_fragment PASSED ipfrag_nofragment PASSED ipfrag_normalfwdPASSED cmdline cmdline_sample_commands PASSED hello_world hello_world_all_cores PASSED hello_world_single_core PASSED timer timer_callbacks_verify PASSED fdirfdir_filter_masks PASSED fdir_flexbytes_filteringPASSED fdir_matching PASSED fdir_perfect_matching PASSED fdir_signatures PASSED fdir_space PASSED fdir_vlanfiltering PASSED dynamic_config dynamic_config_default_mode PASSED dynamic_config_disable_promiscuous PASSED dynamic_config_enable_promiscuous PASSED jumboframes jumboframes_bigger_jumboPASSED jumboframes_jumbo_jumbo PASSED jumboframes_jumbo_nojumbo PASSED jumboframes_normal_jumboPASSED jumboframes_normal_nojumbo PASSED scatter scatter_mbuf_1024 PASSED ieee1588ieee1588_disable PASSED ieee1588_enable PASSED l2fwd port_testingPASSED checksum_offloadchecksum_offload_372664 PASSED checksum_offload_372762 PASSED checksum_offload_disablePASSED checksum_offload_enable PASSED link_flowctrl flowctrl_off_pause_fwd_off PASSED flowctrl_off_pause_fwd_on PASSED flowctrl_on_pause_fwd_off PASSED flowctrl_on_pause_fwd_onPASSED whitelist whitelist_add_remove_mac_addressPASSED whitelist_invalid_addresses PASSED blacklist bl_allbutoneportblacklisted PASSED bl_noblacklistedPASSED bl_oneportblacklisted PASSED shutdown_apichange_linkspeedPASSED change_numberrxdtxd PASSED change_numberrxdtxdaftercycle PASSED change_thresholds PASSED enable_disablejumbo PASSED enable_disablerss PASSED link_stats PASSED reconfigure_ports PASSED reset_queuesPASSED set_promiscuousmode PASSED stop_restartPASSED stress_test PASSED dual_vlan vlan_filter_config PASSED vlan_filter_table PASSED vlan_insert_config PASSED vlan_random_testPASSED vlan_strip_config PASSED vlan_stripq_config PASSED vlan_synthetic_test PASSED vlan_tpid_configPASSED l2fwd_fork floating PASSED portsPASSED respawn PASSED stress_respawn PASSED ipv4_reassembly only_maxflows_packets_are_forwarded PASSED packets_are_forwarded_after_ttl_timeout PASSED send_1K_frames_split_in_4_and_1K_maxflows PASSED send_2K_frames_split_in_4_and_1K_maxflows PASSED send_4K_frames_split_in_7_and_4K_maxflows PASSED send_delayed_fragment_packet_is_forwarded PASSED send_jumbo_frames PASSED send_jumbo_frames_with_wrong_arguments PASSED send_more_fragments_than_supported PASSED
[dpdk-dev] [PATCH v3] librte_eal/common: Fix cast from pointer to integer of different size
Tested-by: haifeng.tang Patch name: [dpdk-dev] [PATCH v3] librte_eal/common: Fix cast from pointer to integer of different size Test Env : Fedora 18 , 3.6.10-4 ,4.7.2 ,14.0.0 Fedora20 ,3.11.0,4.8.2,14.0.0 Fedora21,3.17.4-302,4.9.2,15.0.0 Ubuntu 14.04, 3.13.0-30, 4.8.2, 14.0.0 Test Result: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] problem fixed now -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Michael Qiu Sent: Thursday, March 05, 2015 3:47 PM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v3] librte_eal/common: Fix cast from pointer to integer of different size ./i686-native-linuxapp-gcc/include/rte_memcpy.h:592:23: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] dstofss = 16 - (int)((long long)(void *)dst & 0x0F) + 16; Type 'long long' is 64-bit in i686 platform while 'void *' is 32-bit. Signed-off-by: Michael Qiu --- v3 --> v2: make dstofss and srcofs to be type size_t casting type use uintptr_t v2 --> v1: Remove unnecessary casting (void *) lib/librte_eal/common/include/arch/x86/rte_memcpy.h | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h index 7b2d382..aa433e4 100644 --- a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h +++ b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h @@ -493,8 +493,8 @@ rte_memcpy(void *dst, const void *src, size_t n) { __m128i xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8; void *ret = dst; - int dstofss; - int srcofs; + size_t dstofss; + size_t srcofs; /** * Copy less than 16 bytes @@ -589,12 +589,12 @@ COPY_BLOCK_64_BACK15: * unaligned copy functions require up to 15 bytes * backwards access. */ - dstofss = 16 - (int)((long long)(void *)dst & 0x0F) + 16; + dstofss = 16 - ((uintptr_t)dst & 0x0F) + 16; n -= dstofss; rte_mov32((uint8_t *)dst, (const uint8_t *)src); src = (const uint8_t *)src + dstofss; dst = (uint8_t *)dst + dstofss; - srcofs = (int)((long long)(const void *)src & 0x0F); + srcofs = (uintptr_t)src & 0x0F; /** * For aligned copy -- 1.9.3
[dpdk-dev] [PATCH v3] librte_eal/common: Fix cast from pointer to integer of different size
Hi Thomas and all : I686 gcc and icc targets both have the below build issue: For GCC(after apply the patch :[dpdk-dev] [PATCH v3] librte_eal/common: Fix cast from pointer to integer of different size) == Build lib/librte_hash CC rte_hash.o /jenkins/workspace/DPDK_AUTO_IDT_VM_FC18_32_BUILD2/DPDK/lib/librte_hash/rte_hash_crc.h: Assembler messages: /jenkins/workspace/DPDK_AUTO_IDT_VM_FC18_32_BUILD2/DPDK/lib/librte_hash/rte_hash_crc.h:380: Error: unsupported instruction `crc32' /jenkins/workspace/DPDK_AUTO_IDT_VM_FC18_32_BUILD2/DPDK/lib/librte_hash/rte_hash_crc.h:380: Error: unsupported instruction `crc32' gmake[5]: *** [rte_hash.o] Error 1 gmake[4]: *** [librte_hash] Error 2 gmake[3]: *** [lib] Error 2 gmake[2]: *** [all] Error 2 gmake[1]: *** [i686-native-linuxapp-gcc_install] Error 2 gmake: *** [install] Error 2 For ICC : == Build lib/librte_hash CC rte_hash.o /tmp/iccOsnsZzas_.s: Assembler messages: /tmp/iccOsnsZzas_.s:49: Error: unsupported instruction `crc32' /tmp/iccOsnsZzas_.s:133: Error: unsupported instruction `crc32' make[5]: *** [rte_hash.o] Error 1 make[4]: *** [librte_hash] Error 2 make[3]: *** [lib] Error 2 make[2]: *** [all] Error 2 make[1]: *** [i686-native-linuxapp-icc_install] Error 2 make: *** [install] Error 2 Can anyone can help to check the assemble code . thanks -Original Message- From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Michael Qiu Sent: Thursday, March 05, 2015 3:47 PM To: dev at dpdk.org Subject: [dpdk-dev] [PATCH v3] librte_eal/common: Fix cast from pointer to integer of different size ./i686-native-linuxapp-gcc/include/rte_memcpy.h:592:23: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] dstofss = 16 - (int)((long long)(void *)dst & 0x0F) + 16; Type 'long long' is 64-bit in i686 platform while 'void *' is 32-bit. Signed-off-by: Michael Qiu --- v3 --> v2: make dstofss and srcofs to be type size_t casting type use uintptr_t v2 --> v1: Remove unnecessary casting (void *) lib/librte_eal/common/include/arch/x86/rte_memcpy.h | 8 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h index 7b2d382..aa433e4 100644 --- a/lib/librte_eal/common/include/arch/x86/rte_memcpy.h +++ b/lib/librte_eal/common/include/arch/x86/rte_memcpy.h @@ -493,8 +493,8 @@ rte_memcpy(void *dst, const void *src, size_t n) { __m128i xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8; void *ret = dst; - int dstofss; - int srcofs; + size_t dstofss; + size_t srcofs; /** * Copy less than 16 bytes @@ -589,12 +589,12 @@ COPY_BLOCK_64_BACK15: * unaligned copy functions require up to 15 bytes * backwards access. */ - dstofss = 16 - (int)((long long)(void *)dst & 0x0F) + 16; + dstofss = 16 - ((uintptr_t)dst & 0x0F) + 16; n -= dstofss; rte_mov32((uint8_t *)dst, (const uint8_t *)src); src = (const uint8_t *)src + dstofss; dst = (uint8_t *)dst + dstofss; - srcofs = (int)((long long)(const void *)src & 0x0F); + srcofs = (uintptr_t)src & 0x0F; /** * For aligned copy -- 1.9.3