eal: move CPU flags check from constructor to init
authorFlavio Leitner <fbl@sysclose.org>
Fri, 23 Sep 2016 14:47:31 +0000 (11:47 -0300)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Mon, 3 Oct 2016 14:13:36 +0000 (16:13 +0200)
An application might be linked to DPDK but not really use it,
so move the cpu flag check to the EAL initialization instead.

Signed-off-by: Flavio Leitner <fbl@sysclose.org>
Acked-by: Aaron Conole <aconole@redhat.com>
lib/librte_eal/bsdapp/eal/eal.c
lib/librte_eal/common/eal_common_cpuflags.c
lib/librte_eal/linuxapp/eal/eal.c

index a0c8f8c..c4b22af 100644 (file)
@@ -496,6 +496,9 @@ rte_eal_init(int argc, char **argv)
        char cpuset[RTE_CPU_AFFINITY_STR_LEN];
        char thread_name[RTE_MAX_THREAD_NAME_LEN];
 
+       /* checks if the machine is adequate */
+       rte_cpu_check_supported();
+
        if (!rte_atomic32_test_and_set(&run_once))
                return -1;
 
index ecb1240..b5f76f7 100644 (file)
 /**
  * Checks if the machine is adequate for running the binary. If it is not, the
  * program exits with status 1.
- * The function attribute forces this function to be called before main(). But
- * with ICC, the check is generated by the compiler.
  */
-#ifndef __INTEL_COMPILER
-void __attribute__ ((__constructor__))
-#else
 void
-#endif
 rte_cpu_check_supported(void)
 {
        /* This is generated at compile-time by the build system */
index d5b81a3..4e88cfc 100644 (file)
@@ -740,6 +740,9 @@ rte_eal_init(int argc, char **argv)
        char cpuset[RTE_CPU_AFFINITY_STR_LEN];
        char thread_name[RTE_MAX_THREAD_NAME_LEN];
 
+       /* checks if the machine is adequate */
+       rte_cpu_check_supported();
+
        if (!rte_atomic32_test_and_set(&run_once))
                return -1;