[OE-core] [PATCH 3/3] apr: fix cross compiling failed

Hongxu Jia hongxu.jia at windriver.com
Wed Jun 4 03:27:27 UTC 2014


The do_compile failed:
| tools/gen_test_char > include/private/apr_escape_test_char.h
| /bin/sh: tools/gen_test_char: No such file or directory
| make[1]: *** [include/private/apr_escape_test_char.h] Error 127

The tools/gen_test_char was invoked at build time, and it didn't
work for the cross compiling, so we built it with $BUILD_CC.

To make sure there was no side effect on the change, not adding this
patch, I did the test:

1. Built the native tools/gen_test_char on x86-64 host, and invoke
   it on that host;

2. Built the target tools/gen_test_char which arch was arm, and invoke
   it on the qemuarm;

3. Comparing the results, they were total the same;
...
/* this file is automatically generated by gen_test_char, do not edit. "make include/private/apr_escape_test_char.h" to regenerate. */

static const unsigned char test_char_table[256] = {
    32,30,30,30,30,30,30,30,30,30,31,30,30,30,30,30,30,30,30,30,
    30,30,30,30,30,30,30,30,30,30,30,30,6,16,63,22,17,22,49,17,
    17,17,1,16,16,0,0,18,0,0,0,0,0,0,0,0,0,0,16,23,
    55,16,55,23,16,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    0,0,0,0,0,0,0,0,0,0,0,23,31,23,23,0,23,0,0,0,
    0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
    0,0,0,23,23,23,17,30,30,30,30,30,30,30,30,30,30,30,30,30,
    30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,
    30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,
    30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,
    30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,
    30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,
    30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30
};
...

The do_install failed:
| DEBUG: Executing shell function do_install
| NOTE: make -j 16 DESTDIR=tmp/work/x86_64-linux/apr-native/1.5.1-r0/image
 install
| tmp/work/x86_64-linux/apr-native/1.5.1-r0/apr-1.5.1/build/mkdir.sh tools
| gcc  -isystem/home/pokybuild/yocto-autobuilder/yocto-slave/build-appliance/
build/build/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe
tools/gen_test_char.c -o tools/gen_test_char
| make[1]: Entering directory `tmp/work/x86_64-linux/apr-native/1.5.1-r0/
apr-1.5.1'
| tmp/work/x86_64-linux/apr-native/1.5.1-r0/apr-1.5.1/build/mkdir.sh tools
| gcc  -isystem/home/pokybuild/yocto-autobuilder/yocto-slave/build-appliance/
build/build/tmp/sysroots/x86_64-linux/usr/include -O2 -pipe
tools/gen_test_char.c -o tools/gen_test_char
| tmp/work/x86_64-linux/apr-native/1.5.1-r0/apr-1.5.1/build/mkdir.sh
include/private
| tools/gen_test_char > include/private/apr_escape_test_char.h
| /bin/sh: tools/gen_test_char: Permission denied

Remove the 'tools' dir creation, it always existed. And it caused
gen_test_char unexpected rebuilt at do_install time.

Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
---
 meta/recipes-support/apr/apr/upgrade-and-fix.patch | 48 ++++++++++++++++++++++
 meta/recipes-support/apr/apr_1.5.1.bb              |  1 +
 2 files changed, 49 insertions(+)
 create mode 100644 meta/recipes-support/apr/apr/upgrade-and-fix.patch

diff --git a/meta/recipes-support/apr/apr/upgrade-and-fix.patch b/meta/recipes-support/apr/apr/upgrade-and-fix.patch
new file mode 100644
index 0000000..4bca384
--- /dev/null
+++ b/meta/recipes-support/apr/apr/upgrade-and-fix.patch
@@ -0,0 +1,48 @@
+Makefile.in: fix cross compiling failed
+
+The tools/gen_test_char was invoked at build time,
+and it didn't work for the cross compiling, so we
+compile it with $BUILD_CC.
+
+Remove the 'tools' dir creation, it always existed.
+And it caused gen_test_char unexpected rebuilt at
+do_install time.
+
+Upstream-Status: inappropriate [oe specific]
+
+Signed-off-by: Hongxu Jia <hongxu.jia at windriver.com>
+---
+ Makefile.in | 10 ++--------
+ 1 file changed, 2 insertions(+), 8 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 6f99733..5fe028f 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -46,7 +46,6 @@ LT_VERSION = @LT_VERSION@
+ 
+ CLEAN_TARGETS = apr-config.out apr.exp exports.c export_vars.c .make.dirs \
+ 	build/apr_rules.out tools/gen_test_char at EXEEXT@ \
+-	tools/gen_test_char.o tools/gen_test_char.lo \
+ 	include/private/apr_escape_test_char.h
+ DISTCLEAN_TARGETS = config.cache config.log config.status \
+ 	include/apr.h include/arch/unix/apr_private.h \
+@@ -129,13 +128,8 @@ check: $(TARGET_LIB)
+ etags:
+ 	etags `find . -name '*.[ch]'`
+ 
+-make_tools_dir:
+-	$(APR_MKDIR) tools
+-
+-OBJECTS_gen_test_char = tools/gen_test_char.lo $(LOCAL_LIBS)
+-tools/gen_test_char.lo: make_tools_dir
+-tools/gen_test_char at EXEEXT@: $(OBJECTS_gen_test_char)
+-	$(LINK_PROG) $(OBJECTS_gen_test_char) $(ALL_LIBS)
++tools/gen_test_char at EXEEXT@: tools/gen_test_char.c
++	$(BUILD_CC) $(CFLAGS_FOR_BUILD) $< -o $@
+ 
+ include/private/apr_escape_test_char.h: tools/gen_test_char at EXEEXT@
+ 	$(APR_MKDIR) include/private
+-- 
+1.8.1.2
+
diff --git a/meta/recipes-support/apr/apr_1.5.1.bb b/meta/recipes-support/apr/apr_1.5.1.bb
index 7f2d2ca..8c77af2 100644
--- a/meta/recipes-support/apr/apr_1.5.1.bb
+++ b/meta/recipes-support/apr/apr_1.5.1.bb
@@ -14,6 +14,7 @@ SRC_URI = "${APACHE_MIRROR}/apr/${BPN}-${PV}.tar.bz2 \
            file://cleanup.patch \
            file://configfix.patch \
            file://run-ptest \
+           file://upgrade-and-fix.patch \
 "
 
 SRC_URI[md5sum] = "5486180ec5a23efb5cae6d4292b300ab"
-- 
1.8.1.2




More information about the Openembedded-core mailing list