From: Jerin Jacob <jer...@marvell.com> baremetal execution environments may have a different method to enable RTE_INIT instead of using compiler constructor and/or OS specific linker scheme. Allow an option to override RTE_INIT* macros using rte_os.h or appropriate header file.
Signed-off-by: Jerin Jacob <jer...@marvell.com> --- v2: - Leverage the rte_os.h created by Windows port to override RTE_INIT* macro if needed. - Removed the exec environment specific librte_eal/<OS>/eal/include/exec-env/rte_exec-env.h file creation - Removed the duplication of RTE_INIT_* definition on each rte_exec-env.h file as it is common for Linux,FreeBSD and Windows port --- lib/librte_eal/common/include/rte_common.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h index 1d3c33021..f2691b4e1 100644 --- a/lib/librte_eal/common/include/rte_common.h +++ b/lib/librte_eal/common/include/rte_common.h @@ -106,8 +106,10 @@ typedef uint16_t unaligned_uint16_t; * Priority number must be above 100. * Lowest number is the first to run. */ +#ifndef RTE_INIT_PRIO /* Allow to override from eal */ #define RTE_INIT_PRIO(func, prio) \ static void __attribute__((constructor(RTE_PRIO(prio)), used)) func(void) +#endif /** * Run function before main() with low priority. @@ -129,8 +131,10 @@ static void __attribute__((constructor(RTE_PRIO(prio)), used)) func(void) * Priority number must be above 100. * Lowest number is the last to run. */ +#ifndef RTE_FINI_PRIO /* Allow to override from eal */ #define RTE_FINI_PRIO(func, prio) \ static void __attribute__((destructor(RTE_PRIO(prio)), used)) func(void) +#endif /** * Run after main() with high priority. -- 2.21.0