If you have in your $CC from the compiler template any kind of
directive which contains a comma character it is going to cause ovs to
not build due to the macro expansion in the Makefile:

CC = $(if $(C),env REAL_CC="'"$CC"'" CHECK="$(SPARSE) -I 
$(top_srcdir)/include/sparse $(SPARSEFLAGS) $(SPARSE_EXTRA_INCLUDES) " cgcc 
$(CGCCFLAGS),'"$CC"

Put more simply:

CC = $(if $(C), CONFIGURE_CC_DEFINITION, cgcc args CONFIGURE_CC_DEFINITION)

The CONFIGURE_CC_DEFINITION for the i585-nlp definition had
"-Wa,-momit-lock-prefix=yes".  The comma there caused a strings to
"break" in the wrong place in the $(if) macro and the build of recipe
will fail with the error shown below:

/bin/sh: -c: line 1: unexpected EOF while looking for matching `"'
/bin/sh: -c: line 3: syntax error: unexpected end of file

The solution is to transform the "-Wa," -> "-Xassembler ".

Signed-off-by: Jason Wessel <[email protected]>
---
 recipes-networking/openvswitch/openvswitch.inc | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/recipes-networking/openvswitch/openvswitch.inc 
b/recipes-networking/openvswitch/openvswitch.inc
index ab5a7e4..58e0fcb 100644
--- a/recipes-networking/openvswitch/openvswitch.inc
+++ b/recipes-networking/openvswitch/openvswitch.inc
@@ -86,6 +86,12 @@ INITSCRIPT_PARAMS_${PN}-switch = "defaults 71"
 INITSCRIPT_NAME_${PN}-testcontroller = "openvswitch-testcontroller"
 INITSCRIPT_PARAMS_${PN}-testcontroller = "defaults 72"
 
+do_configure_prepend() {
+       # Work around the for Makefile CC=$(if ....) by swapping out any
+       # "-Wa," assembly directives with "-Xassembler
+       CC=`echo '${CC}' | sed 's/-Wa,/-Xassembler /g'`
+}
+
 do_install_append() {
        install -d ${D}/${sysconfdir}/default/
        install -m 660 ${WORKDIR}/openvswitch-switch-setup 
${D}/${sysconfdir}/default/openvswitch-switch
-- 
2.11.0

-- 
_______________________________________________
meta-virtualization mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/meta-virtualization

Reply via email to