From: David Lamparter Date: Tue, 16 Aug 2016 15:48:44 +0000 (+0200) Subject: vtysh: work around gcc bug #69981 X-Git-Tag: frr-2.0-rc1~286 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=896af92e5b7f65de317b281acf469ccb9d713bb1;p=mirror%2Ffrr.git vtysh: work around gcc bug #69981 The memtypes changes break gcc -O0 build (none of the other optimisation levels are affected, *any* of -Og, -Os, -O1, etc. make this go away). Unfortunately, the option supposed to control this doesn't actually work (-fno-keep-static-const; that not working is the actual gcc bug). The workaround is to avoid DECLARE_MTYPE statements when their paired DEFINE_MTYPE isn't linked in. Thankfully, that's only a problem in a single place in vtysh where bgp_memory.h gets chain-included. (vtysh.c -> bgp_vty.h -> bgpd.h -> bgp_memory.h) So, this just breaks the chain at bgp_vty.h. No other compiler (clang & icc tested) has exhibited this problem. Signed-off-by: David Lamparter --- diff --git a/bgpd/bgp_vty.h b/bgpd/bgp_vty.h index ba520af067..573e8c7072 100644 --- a/bgpd/bgp_vty.h +++ b/bgpd/bgp_vty.h @@ -21,7 +21,7 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA #ifndef _QUAGGA_BGP_VTY_H #define _QUAGGA_BGP_VTY_H -#include "bgpd/bgpd.h" +struct bgp; #define CMD_AS_RANGE "<1-4294967295>" #define DYNAMIC_NEIGHBOR_LIMIT_RANGE "<1-5000>"