Skip to contentSkip to conversation

Red Hat 6.5 compilation failure

DISCUSSION Nélio Laranjeiro 3 participants 3 messages Oct 31, 2016

lore
Share & tools
lore
#0 lore raw

Hi all,

Am facing an issue with compilation on redhat 6.5 of DPDK v16.11-rc2, compilation fails with:

cc1: warnings being treated as errors
/root/dpdk/drivers/net/i40e/i40e_ethdev_vf.c: In function ‘i40evf_dev_interrupt_handler’:
/root/dpdk/drivers/net/i40e/i40e_ethdev_vf.c:1391: error: dereferencing pointer ‘v_msg’ does break strict-aliasing rules /root/dpdk/drivers/net/i40e/i40e_ethdev_vf.c:1397: error: dereferencing pointer ‘v_msg’ does break strict-aliasing rules /root/dpdk/drivers/net/i40e/i40e_ethdev_vf.c:1398: error: dereferencing pointer ‘v_msg’ does break strict-aliasing rules /root/dpdk/drivers/net/i40e/i40e_ethdev_vf.c:1376: note: initialized from here

cc1: warnings being treated as errors
/root/dpdk/drivers/net/bnxt/bnxt_hwrm.c: In function ‘bnxt_hwrm_func_driver_unregister’:
/root/dpdk/drivers/net/bnxt/bnxt_hwrm.c:105: error: dereferencing pointer ‘req’ does break strict-aliasing rules /root/dpdk/drivers/net/bnxt/bnxt_hwrm.c:66: note: initialized from here

cc1: warnings being treated as errors /root/dpdk/drivers/net/qede/base/ecore_mcp.c: In function ‘ecore_mcp_nvm_rd_cmd’:
/root/dpdk/build/include/rte_memcpy.h:740: error: array subscript is above array bounds /root/dpdk/drivers/net/qede/base/ecore_mcp.c: In function ‘ecore_mcp_nvm_wr_cmd’:
/root/dpdk/build/include/rte_memcpy.h:740: error: array subscript is above array bounds At top level:
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"

In doc/guides/rel_notes/supported_os.rst we still support "Red Hat Enterprise Linux 6.5".

Do we still want to support it, or should we update the documentation to remove it?

Regards,

Signature · 2 lines
Nélio Laranjeiro
6WIND
#1 lore raw

2016-10-31 11:43, Nélio Laranjeiro:

Quoted 3 lines

Hi all,

Am facing an issue with compilation on redhat 6.5 of DPDK v16.11-rc2,

Thanks Nelio for raising the issue.

Quoted 1 line

compilation fails with:

[...]

Quoted 5 lines

In doc/guides/rel_notes/supported_os.rst we still support "Red Hat Enterprise Linux 6.5".

Do we still want to support it, or should we update the documentation to remove it?

I vote for dropping RHEL6 support in DPDK 16.11.

Any other comment in the community?
Please give your voice, whether you agree or disagree.

#2 lore raw
In reply to Nélio Laranjeiro
Quoted 40 lines · Nélio Laranjeiro

Hi all,

Am facing an issue with compilation on redhat 6.5 of DPDK v16.11-rc2, compilation fails with:

cc1: warnings being treated as errors
/root/dpdk/drivers/net/i40e/i40e_ethdev_vf.c: In function ‘i40evf_dev_interrupt_handler’:
/root/dpdk/drivers/net/i40e/i40e_ethdev_vf.c:1391: error: dereferencing pointer ‘v_msg’ does break strict-aliasing rules /root/dpdk/drivers/net/i40e/i40e_ethdev_vf.c:1397: error: dereferencing pointer ‘v_msg’ does break strict-aliasing rules /root/dpdk/drivers/net/i40e/i40e_ethdev_vf.c:1398: error: dereferencing pointer ‘v_msg’ does break strict-aliasing rules /root/dpdk/drivers/net/i40e/i40e_ethdev_vf.c:1376: note: initialized from here

cc1: warnings being treated as errors
/root/dpdk/drivers/net/bnxt/bnxt_hwrm.c: In function ‘bnxt_hwrm_func_driver_unregister’:
/root/dpdk/drivers/net/bnxt/bnxt_hwrm.c:105: error: dereferencing pointer ‘req’ does break strict-aliasing rules /root/dpdk/drivers/net/bnxt/bnxt_hwrm.c:66: note: initialized from here

cc1: warnings being treated as errors /root/dpdk/drivers/net/qede/base/ecore_mcp.c: In function ‘ecore_mcp_nvm_rd_cmd’:
/root/dpdk/build/include/rte_memcpy.h:740: error: array subscript is above array bounds /root/dpdk/drivers/net/qede/base/ecore_mcp.c: In function ‘ecore_mcp_nvm_wr_cmd’:
/root/dpdk/build/include/rte_memcpy.h:740: error: array subscript is above array bounds At top level:
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"
cc1: error: unrecognized command line option "-Wno-maybe-uninitialized"

Quoted 3 lines

In doc/guides/rel_notes/supported_os.rst we still support "Red Hat Enterprise Linux 6.5".

Most of these errors stems from the fact that in i40e there is alot of casting from structs which lay out data in typed members to structs which have flat memory buffers, which can cause problems if the alignment of the former isn't what you expect. You can disable strict aliasing if you want, but its a much better idea to fix it properly.

The subscript above array options is pretty straightforward. rte_memcpy has a case statement that blocks memory copies to be more efficient. I would presume that there is a call site for a ecore read operation where the buffer array is smaller than the number of bytes copied, and the compiler noticed.

Quoted 3 lines

Do we still want to support it, or should we update the documentation to remove it?

I think support probably doesn't matter, but regardless of that decision, you should likely look a bit more closely at these errors.

Neil

Quoted 6 lines

Regards,

Signature · 2 lines
Nélio Laranjeiro
6WIND