Add -fno-common compile option 54/17554/4
authorBenoît Ganne <bganne@cisco.com>
Tue, 12 Feb 2019 12:35:08 +0000 (13:35 +0100)
committerDamjan Marion <dmarion@me.com>
Thu, 14 Feb 2019 17:18:36 +0000 (17:18 +0000)
commit47727c02df4c79c21c6ceffaff65222c32cf6996
treeff56da0094b29da6d07746b08574dfb194ed9113
parent8f6c1dda355b6e4d00dc4e41e65a25e1fd1507ee
Add -fno-common compile option

-fno-common makes sure we do not have multiple declarations of the same
global symbol across compilation units. It helps debug nasty linkage
bugs by guaranteeing that all reference to a global symbol use the same
underlying object.
It also helps avoiding benign mistakes such as declaring enum as global
objects instead of types in headers (hence the minor fixes scattered
across the source).

Change-Id: I55c16406dc54ff8a6860238b90ca990fa6b179f1
Signed-off-by: Benoît Ganne <bganne@cisco.com>
27 files changed:
src/cmake/cpu.cmake
src/cmake/library.cmake
src/plugins/acl/fa_node.h
src/plugins/avf/avf.h
src/plugins/memif/private.h
src/vcl/vcl_private.h
src/vnet/bfd/bfd_main.h
src/vnet/bier/bier_fmask.h
src/vnet/bonding/node.c
src/vnet/bonding/node.h
src/vnet/devices/pipe/pipe_api.c
src/vnet/devices/virtio/vhost_user_input.c
src/vnet/devices/virtio/vhost_user_output.c
src/vnet/dpo/dvr_dpo.c
src/vnet/dpo/dvr_dpo.h
src/vnet/dpo/interface_rx_dpo.c
src/vnet/dpo/interface_rx_dpo.h
src/vnet/dpo/l3_proxy_dpo.h
src/vnet/dpo/receive_dpo.h
src/vnet/ip/ip4_forward.c
src/vnet/ip/ip6_forward.c
src/vnet/ipsec/esp_encrypt.c
src/vnet/l2/l2_learn.h
src/vnet/l2/l2_patch.c
src/vnet/lldp/lldp_node.h
src/vnet/mpls/mpls_lookup.h
src/vnet/session/session_lookup.h