On 12/05/2013 12:55 AM, [email protected] wrote:
From: Chen Qi <[email protected]>

Characters like '-O2' or '-Ofast' will be replaced by '-O1' when
compiling cipher. If we are cross compiling libgcrypt and sysroot
contains such characters, we would get compile errors because the
sysroot path has been modified.

Fix this by adding whitespaces before and after the original matching
pattern in the sed command.

[YOCTO #5628]

Signed-off-by: Chen Qi <[email protected]>
---
  ...fix-compile-error-with-O2-in-sysroot-path.patch |   46 ++++++++++++++++++++
  meta/recipes-support/libgcrypt/libgcrypt.inc       |    3 +-
  2 files changed, 48 insertions(+), 1 deletion(-)
  create mode 100644 
meta/recipes-support/libgcrypt/files/fix-compile-error-with-O2-in-sysroot-path.patch

diff --git 
a/meta/recipes-support/libgcrypt/files/fix-compile-error-with-O2-in-sysroot-path.patch
 
b/meta/recipes-support/libgcrypt/files/fix-compile-error-with-O2-in-sysroot-path.patch
new file mode 100644
index 0000000..6b1f119
--- /dev/null
+++ 
b/meta/recipes-support/libgcrypt/files/fix-compile-error-with-O2-in-sysroot-path.patch
@@ -0,0 +1,46 @@
+Upstream-Status: Pending
+
+libgcrypt: fix building error with '-O2' in sysroot path
+
+Characters like '-O2' or '-Ofast' will be replaced by '-O1' when compiling 
cipher.
+If we are cross compiling libgcrypt and sysroot contains such characters, we 
would
+get compile errors because the sysroot path has been modified.
+
+Fix this by adding blank spaces before and after the original matching pattern 
in the
+sed command.
+
+Signed-off-by: Chen Qi <[email protected]>
+---
+ cipher/Makefile.am |    2 +-
+ cipher/Makefile.in |    2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/cipher/Makefile.am b/cipher/Makefile.am
+index 76cdc96..9a89792 100644
+--- a/cipher/Makefile.am
++++ b/cipher/Makefile.am
+@@ -69,7 +69,7 @@ rfc2268.c \
+ camellia.c camellia.h camellia-glue.c
+
+ if ENABLE_O_FLAG_MUNGING
+-o_flag_munging = sed -e 's/-O\([2-9s][2-9s]*\)/-O1/' -e 's/-Ofast/-O1/g'
++o_flag_munging = sed -e 's/ -O\([2-9s][2-9s]*\) / -O1 /' -e 's/ -Ofast / -O1 
/g'
+ else
+ o_flag_munging = cat
+ endif
+diff --git a/cipher/Makefile.in b/cipher/Makefile.in
+index 1394d15..6080d59 100644
+--- a/cipher/Makefile.in
++++ b/cipher/Makefile.in

Why do we need to patch Makefile.in if we are already patching the Makefile.am which will re-generate the Makefile.in

Sau!

+@@ -314,7 +314,7 @@ rfc2268.c \
+ camellia.c camellia.h camellia-glue.c
+
+ @ENABLE_O_FLAG_MUNGING_FALSE@o_flag_munging = cat
+-@ENABLE_O_FLAG_MUNGING_TRUE@o_flag_munging = sed -e 
's/-O\([2-9s][2-9s]*\)/-O1/' -e 's/-Ofast/-O1/g'
++@ENABLE_O_FLAG_MUNGING_TRUE@o_flag_munging = sed -e 's/ -O\([2-9s][2-9s]*\) / 
-O1 /' -e 's/ -Ofast / -O1 /g'
+ all: all-am
+
+ .SUFFIXES:
+--
+1.7.9.5
+
diff --git a/meta/recipes-support/libgcrypt/libgcrypt.inc 
b/meta/recipes-support/libgcrypt/libgcrypt.inc
index e0dfec2..9383e17 100644
--- a/meta/recipes-support/libgcrypt/libgcrypt.inc
+++ b/meta/recipes-support/libgcrypt/libgcrypt.inc
@@ -11,7 +11,8 @@ LIC_FILES_CHKSUM = 
"file://COPYING;md5=94d55d512a9ba36caa9b7df079bae19f \
  DEPENDS = "libgpg-error libcap"

  SRC_URI = "ftp://ftp.gnupg.org/gcrypt/libgcrypt/libgcrypt-${PV}.tar.gz \
-           file://add-pkgconfig-support.patch"
+           file://add-pkgconfig-support.patch \
+           file://fix-compile-error-with-O2-in-sysroot-path.patch"

  inherit autotools binconfig pkgconfig


_______________________________________________
Openembedded-core mailing list
[email protected]
http://lists.openembedded.org/mailman/listinfo/openembedded-core

Reply via email to