Multiarch handling in different constructor macros
This significantly reduces need for ... in multiarch code. Simply constructor macros will jost create static unused entry if CLIB_MARCH_VARIANT is defined and that will be optimized out by compiler. Change-Id: I17d1c4ac0c903adcfadaa4a07de1b854c7ab14ac Signed-off-by: Damjan Marion <damarion@cisco.com>
This commit is contained in:

committed by
Damjan Marion

parent
3bf6c2bfe5
commit
6e36351faf
@ -151,6 +151,7 @@ typedef struct
|
||||
vlib_cli_command_t *cli_command_registrations;
|
||||
} vlib_cli_main_t;
|
||||
|
||||
#ifndef CLIB_MARCH_VARIANT
|
||||
#define VLIB_CLI_COMMAND(x,...) \
|
||||
__VA_ARGS__ vlib_cli_command_t x; \
|
||||
static void __vlib_cli_command_registration_##x (void) \
|
||||
@ -172,6 +173,13 @@ static void __vlib_cli_command_unregistration_##x (void) \
|
||||
next_cli_command); \
|
||||
} \
|
||||
__VA_ARGS__ vlib_cli_command_t x
|
||||
#else
|
||||
/* create unused pointer to silence compiler warnings and get whole
|
||||
function optimized out */
|
||||
#define VLIB_CLI_COMMAND(x,...) \
|
||||
static __clib_unused vlib_cli_command_t __clib_unused_##x
|
||||
#endif
|
||||
|
||||
#define VLIB_CLI_PARSE_RULE(x) \
|
||||
vlib_cli_parse_rule_t x
|
||||
/* Output to current CLI connection. */
|
||||
|
Reference in New Issue
Block a user