[dpdk-dev] mk: pass EXTRA_CFLAGS to AUTO_CPUFLAGS to enable local modifications

Message ID 20151118085350.1247f3d5@miho (mailing list archive)
State Superseded, archived
Headers

Commit Message

Simon Kagstrom Nov. 18, 2015, 7:53 a.m. UTC
  We have encountered a CPU where the AES-NI instruction set is disabled
due to export restrictions. Since the build machine and target machine
is different, using -native configs doesn't work, and on this CPU, the
application refuses to run due to the AES CPU flags being amiss.

The patch passes EXTRA_CFLAGS to the figure-out-cpu-flags helper,
which allows us to add -mno-aes to the compile flags and resolve this
problem.

Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
---
 mk/rte.cpuflags.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Olivier Matz Nov. 20, 2015, 3:33 p.m. UTC | #1
Hi Simon,

On 11/18/2015 08:53 AM, Simon Kagstrom wrote:
> We have encountered a CPU where the AES-NI instruction set is disabled
> due to export restrictions. Since the build machine and target machine
> is different, using -native configs doesn't work, and on this CPU, the
> application refuses to run due to the AES CPU flags being amiss.
> 
> The patch passes EXTRA_CFLAGS to the figure-out-cpu-flags helper,
> which allows us to add -mno-aes to the compile flags and resolve this
> problem.
> 
> Signed-off-by: Simon Kagstrom <simon.kagstrom@netinsight.net>
> ---
>  mk/rte.cpuflags.mk | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/mk/rte.cpuflags.mk b/mk/rte.cpuflags.mk
> index f595cd0..17da810 100644
> --- a/mk/rte.cpuflags.mk
> +++ b/mk/rte.cpuflags.mk
> @@ -33,7 +33,7 @@
>  # used to set the RTE_CPUFLAG_* environment variables giving details
>  # of what instruction sets the target cpu supports.
>  
> -AUTO_CPUFLAGS := $(shell $(CC) $(MACHINE_CFLAGS) -dM -E - < /dev/null)
> +AUTO_CPUFLAGS := $(shell $(CC) $(EXTRA_CFLAGS) $(MACHINE_CFLAGS) -dM -E - < /dev/null)

Wouldn't it be better to have EXTRA_CFLAGS after MACHINE_CFLAGS
so they can override the MACHINE_CFLAGS?
  

Patch

diff --git a/mk/rte.cpuflags.mk b/mk/rte.cpuflags.mk
index f595cd0..17da810 100644
--- a/mk/rte.cpuflags.mk
+++ b/mk/rte.cpuflags.mk
@@ -33,7 +33,7 @@ 
 # used to set the RTE_CPUFLAG_* environment variables giving details
 # of what instruction sets the target cpu supports.
 
-AUTO_CPUFLAGS := $(shell $(CC) $(MACHINE_CFLAGS) -dM -E - < /dev/null)
+AUTO_CPUFLAGS := $(shell $(CC) $(EXTRA_CFLAGS) $(MACHINE_CFLAGS) -dM -E - < /dev/null)
 
 # adding flags to CPUFLAGS