sdnfv / openNetVM

A high performance container-based NFV platform from GW and UCR.
http://sdnfv.github.io/onvm/
Other
262 stars 136 forks source link

installation error #246

Closed mishal23 closed 4 years ago

mishal23 commented 4 years ago

Bug Report

Steps to reproduce compiling dpdk using the install script

cd scripts
./install.sh

Environment

Error log

/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_vfio.c: In function ‘rte_vfio_setup_device’:
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_vfio.c:580:27: error: taking address of packed member of ‘struct rte_mem_config’ may result in an unaligned pointer value [-Werror=address-of-packed-member]
  580 |  rte_rwlock_t *mem_lock = &mcfg->memory_hotplug_lock;
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_vfio.c: In function ‘rte_vfio_release_device’:
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_vfio.c:785:27: error: taking address of packed member of ‘struct rte_mem_config’ may result in an unaligned pointer value [-Werror=address-of-packed-member]
  785 |  rte_rwlock_t *mem_lock = &mcfg->memory_hotplug_lock;
      |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memalloc.c: In function ‘alloc_seg_walk’:
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memalloc.c:884:12: error: taking address of packed member of ‘struct rte_mem_config’ may result in an unaligned pointer value [-Werror=address-of-packed-member]
  884 |  cur_msl = &mcfg->memsegs[msl_idx];
      |            ^~~~~~~~~~~~~~~~~~~~~~~
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memalloc.c: In function ‘free_seg_walk’:
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memalloc.c:996:14: error: taking address of packed member of ‘struct rte_mem_config’ may result in an unaligned pointer value [-Werror=address-of-packed-member]
  996 |  found_msl = &mcfg->memsegs[msl_idx];
      |              ^~~~~~~~~~~~~~~~~~~~~~~
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memalloc.c: In function ‘sync_walk’:
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memalloc.c:1412:16: error: taking address of packed member of ‘struct rte_mem_config’ may result in an unaligned pointer value [-Werror=address-of-packed-member]
 1412 |  primary_msl = &mcfg->memsegs[msl_idx];
      |                ^~~~~~~~~~~~~~~~~~~~~~~
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memalloc.c: In function ‘secondary_msl_create_walk’:
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memalloc.c:1463:16: error: taking address of packed member of ‘struct rte_mem_config’ may result in an unaligned pointer value [-Werror=address-of-packed-member]
 1463 |  primary_msl = &mcfg->memsegs[msl_idx];
      |                ^~~~~~~~~~~~~~~~~~~~~~~
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c: In function ‘remap_segment’:
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c:680:9: error: taking address of packed member of ‘struct rte_mem_config’ may result in an unaligned pointer value [-Werror=address-of-packed-member]
  680 |   msl = &mcfg->memsegs[msl_idx];
      |         ^~~~~~~~~~~~~~~~~~~~~~~
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c: In function ‘prealloc_segments’:
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c:998:11: error: taking address of packed member of ‘struct rte_mem_config’ may result in an unaligned pointer value [-Werror=address-of-packed-member]
  998 |     msl = &mcfg->memsegs[msl_idx];
      |           ^~~~~~~~~~~~~~~~~~~~~~~
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c: In function ‘eal_legacy_hugepage_init’:
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c:1351:9: error: taking address of packed member of ‘struct rte_mem_config’ may result in an unaligned pointer value [-Werror=address-of-packed-member]
 1351 |   msl = &mcfg->memsegs[0];
      |         ^~~~~~~~~~~~~~~~~
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c:1622:33: error: taking address of packed member of ‘struct rte_mem_config’ may result in an unaligned pointer value [-Werror=address-of-packed-member]
 1622 |   struct rte_memseg_list *msl = &mcfg->memsegs[i];
      |                                 ^~~~~~~~~~~~~~~~~
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c: In function ‘memseg_primary_init_32’:
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c:2104:11: error: taking address of packed member of ‘struct rte_mem_config’ may result in an unaligned pointer value [-Werror=address-of-packed-member]
 2104 |     msl = &mcfg->memsegs[msl_idx];
      |           ^~~~~~~~~~~~~~~~~~~~~~~
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c: In function ‘memseg_primary_init’:
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c:2311:10: error: taking address of packed member of ‘struct rte_mem_config’ may result in an unaligned pointer value [-Werror=address-of-packed-member]
 2311 |    msl = &mcfg->memsegs[msl_idx++];
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c: In function ‘memseg_secondary_init’:
/home/student/openNetVM/dpdk/lib/librte_eal/linuxapp/eal/eal_memory.c:2339:9: error: taking address of packed member of ‘struct rte_mem_config’ may result in an unaligned pointer value [-Werror=address-of-packed-member]
 2339 |   msl = &mcfg->memsegs[msl_idx];
      |         ^~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[5]: *** [/home/student/openNetVM/dpdk/mk/internal/rte.compile-pre.mk:116: eal_memalloc.o] Error 1
make[5]: *** Waiting for unfinished jobs....
cc1: all warnings being treated as errors
make[5]: *** [/home/student/openNetVM/dpdk/mk/internal/rte.compile-pre.mk:116: eal_vfio.o] Error 1
cc1: all warnings being treated as errors
make[5]: *** [/home/student/openNetVM/dpdk/mk/internal/rte.compile-pre.mk:116: eal_memory.o] Error 1
make[4]: *** [/home/student/openNetVM/dpdk/mk/rte.subdir.mk:37: eal] Error 2
make[3]: *** [/home/student/openNetVM/dpdk/mk/rte.subdir.mk:37: linuxapp] Error 2
make[2]: *** [/home/student/openNetVM/dpdk/mk/rte.subdir.mk:37: librte_eal] Error 2
make[1]: *** [/home/student/openNetVM/dpdk/mk/rte.sdkbuild.mk:51: lib] Error 2
make: *** [/home/student/openNetVM/dpdk/mk/rte.sdkroot.mk:101: all] Error 2

@rohit-mp

twood02 commented 4 years ago

We are in the process of making some updates so ONVM will compile correctly on Ubuntu 20.04 and will release those changes this month.

In the meantime, @sreya519 may be able to give you some tips or point you to her fork with working code.

sreyanalla commented 4 years ago

Hi Mishal,

It seems that -Werror=address-of-packed-member is a new warning that's enabled by default by GCC 9.3. I'm currently working on replicating your errors to see where they originate. I'll get back to you soon regarding that.

In the meantime, I may be able to present an alternative. We recently had contributions that updated the DPDK version ONVM uses from 18.11 to 20.04. My dpdk-vsn-update branch holds the latest version of ONVM with DPDK 20.04 and is successfully able to install and run on Ubuntu 20.04. Using this branch that I've linked might be a quick/easier solution if DPDK 20 works for you.

mishal23 commented 4 years ago

In the meantime, I may be able to present an alternative. We recently had contributions that updated the DPDK version ONVM uses from 18.11 to 20.04. My dpdk-vsn-update branch holds the latest version of ONVM with DPDK 20.04 and is successfully able to install and run on Ubuntu 20.04. Using this branch that I've linked might be a quick/easier solution if DPDK 20 works for you.

Thanks for this alternative, yes DPDK 20 works for us, we tried, it compiles properly without any errors.