From eb8dc40360f0cfef56fb6947cc817a547d6d9bc6 Mon Sep 17 00:00:00 2001 From: Dave Cobbley Date: Tue, 14 Aug 2018 10:05:37 -0700 Subject: [Subtree] Removing import-layers directory As part of the move to subtrees, need to bring all the import layers content to the top level. Change-Id: I4a163d10898cbc6e11c27f776f60e1a470049d8f Signed-off-by: Dave Cobbley Signed-off-by: Brad Bishop --- .../recipes-support/apr/apr-util/configfix.patch | 51 +++++++++ .../apr/apr-util/configure_fixes.patch | 31 ++++++ poky/meta/recipes-support/apr/apr-util/run-ptest | 6 ++ poky/meta/recipes-support/apr/apr-util_1.6.1.bb | 93 ++++++++++++++++ ...d-buildcheck.sh-improve-libtool-detection.patch | 32 ++++++ ...workdir-path-references-from-installed-ap.patch | 74 +++++++++++++ ...e.in-configure.in-support-cross-compiling.patch | 63 +++++++++++ .../0004-Fix-packet-discards-HTTP-redirect.patch | 39 +++++++ ...n-fix-LTFLAGS-to-make-it-work-with-ccache.patch | 36 +++++++ ..._t-size-doesn-t-match-in-glibc-when-cross.patch | 78 ++++++++++++++ ...link-libapr-against-phtread-to-make-gold-.patch | 50 +++++++++ poky/meta/recipes-support/apr/apr/run-ptest | 6 ++ poky/meta/recipes-support/apr/apr_1.6.3.bb | 117 +++++++++++++++++++++ 13 files changed, 676 insertions(+) create mode 100644 poky/meta/recipes-support/apr/apr-util/configfix.patch create mode 100644 poky/meta/recipes-support/apr/apr-util/configure_fixes.patch create mode 100644 poky/meta/recipes-support/apr/apr-util/run-ptest create mode 100644 poky/meta/recipes-support/apr/apr-util_1.6.1.bb create mode 100644 poky/meta/recipes-support/apr/apr/0001-build-buildcheck.sh-improve-libtool-detection.patch create mode 100644 poky/meta/recipes-support/apr/apr/0002-apr-Remove-workdir-path-references-from-installed-ap.patch create mode 100644 poky/meta/recipes-support/apr/apr/0003-Makefile.in-configure.in-support-cross-compiling.patch create mode 100644 poky/meta/recipes-support/apr/apr/0004-Fix-packet-discards-HTTP-redirect.patch create mode 100644 poky/meta/recipes-support/apr/apr/0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch create mode 100644 poky/meta/recipes-support/apr/apr/0006-apr-fix-off_t-size-doesn-t-match-in-glibc-when-cross.patch create mode 100644 poky/meta/recipes-support/apr/apr/0007-explicitly-link-libapr-against-phtread-to-make-gold-.patch create mode 100644 poky/meta/recipes-support/apr/apr/run-ptest create mode 100644 poky/meta/recipes-support/apr/apr_1.6.3.bb (limited to 'poky/meta/recipes-support/apr') diff --git a/poky/meta/recipes-support/apr/apr-util/configfix.patch b/poky/meta/recipes-support/apr/apr-util/configfix.patch new file mode 100644 index 000000000..dbb114880 --- /dev/null +++ b/poky/meta/recipes-support/apr/apr-util/configfix.patch @@ -0,0 +1,51 @@ +Upstream-Status: Inappropriate [configuration] + +Index: apr-util-1.3.4/apu-config.in +=================================================================== +--- apr-util-1.3.4.orig/apu-config.in 2009-01-12 17:08:06.000000000 +0000 ++++ apr-util-1.3.4/apu-config.in 2009-01-12 17:09:00.000000000 +0000 +@@ -134,14 +134,7 @@ + exit 0 + ;; + --includes) +- if test "$location" = "installed"; then + flags="$flags -I$includedir $INCLUDES" +- elif test "$location" = "source"; then +- flags="$flags -I$APU_SOURCE_DIR/include $INCLUDES" +- else +- # this is for VPATH builds +- flags="$flags -I$APU_BUILD_DIR/include -I$APU_SOURCE_DIR/include $INCLUDES" +- fi + ;; + --ldflags) + flags="$flags $LDFLAGS" +@@ -155,28 +148,10 @@ + exit 0 + ;; + --link-ld) +- if test "$location" = "installed"; then +- ### avoid using -L if libdir is a "standard" location like /usr/lib + flags="$flags -L$libdir -l$APRUTIL_LIBNAME" +- else +- flags="$flags -L$APU_BUILD_DIR -l$APRUTIL_LIBNAME" +- fi + ;; + --link-libtool) +- # If the LA_FILE exists where we think it should be, use it. If we're +- # installed and the LA_FILE does not exist, assume to use -L/-l +- # (the LA_FILE may not have been installed). If we're building ourselves, +- # we'll assume that at some point the .la file be created. +- if test -f "$LA_FILE"; then +- flags="$flags $LA_FILE" +- elif test "$location" = "installed"; then +- ### avoid using -L if libdir is a "standard" location like /usr/lib +- # Since the user is specifying they are linking with libtool, we +- # *know* that -R will be recognized by libtool. +- flags="$flags -L$libdir -R$libdir -l$APRUTIL_LIBNAME" +- else +- flags="$flags $LA_FILE" +- fi ++ flags="$flags -l$APRUTIL_LIBNAME" + ;; + --apu-la-file) + if test -f "$LA_FILE"; then diff --git a/poky/meta/recipes-support/apr/apr-util/configure_fixes.patch b/poky/meta/recipes-support/apr/apr-util/configure_fixes.patch new file mode 100644 index 000000000..91e244ce2 --- /dev/null +++ b/poky/meta/recipes-support/apr/apr-util/configure_fixes.patch @@ -0,0 +1,31 @@ +Upstream-Status: Inappropriate [configuration] + +Index: apr-util-1.4.1/configure.in +=================================================================== +--- apr-util-1.4.1.orig/configure.in 2009-12-18 03:15:19.000000000 +0800 ++++ apr-util-1.4.1/configure.in 2011-12-30 13:32:07.000000000 +0800 +@@ -8,15 +8,15 @@ + AC_CONFIG_HEADER(include/private/apu_config.h) + AC_CONFIG_AUX_DIR(build) + +-sinclude(build/apu-conf.m4) +-sinclude(build/apu-iconv.m4) +-sinclude(build/apu-hints.m4) +-sinclude(build/apr_common.m4) +-sinclude(build/find_apr.m4) +-sinclude(build/crypto.m4) +-sinclude(build/dbm.m4) +-sinclude(build/dbd.m4) +-sinclude(build/dso.m4) ++#sinclude(build/apu-conf.m4) ++#sinclude(build/apu-iconv.m4) ++#sinclude(build/apu-hints.m4) ++#sinclude(build/apr_common.m4) ++#sinclude(build/find_apr.m4) ++#sinclude(build/crypto.m4) ++#sinclude(build/dbm.m4) ++#sinclude(build/dbd.m4) ++#sinclude(build/dso.m4) + + dnl Generate ./config.nice for reproducing runs of configure + dnl diff --git a/poky/meta/recipes-support/apr/apr-util/run-ptest b/poky/meta/recipes-support/apr/apr-util/run-ptest new file mode 100644 index 000000000..ae19a1d11 --- /dev/null +++ b/poky/meta/recipes-support/apr/apr-util/run-ptest @@ -0,0 +1,6 @@ +#!/bin/sh + +cd test +./testall |sed \ + -e 's|\(.*\): SUCCESS|PASS: \1|' \ + -e 's|\(.*\): FAILED|FAIL: \1|' diff --git a/poky/meta/recipes-support/apr/apr-util_1.6.1.bb b/poky/meta/recipes-support/apr/apr-util_1.6.1.bb new file mode 100644 index 000000000..88b4300f9 --- /dev/null +++ b/poky/meta/recipes-support/apr/apr-util_1.6.1.bb @@ -0,0 +1,93 @@ +SUMMARY = "Apache Portable Runtime (APR) companion library" +HOMEPAGE = "http://apr.apache.org/" +SECTION = "libs" +DEPENDS = "apr expat gdbm" + +BBCLASSEXTEND = "native nativesdk" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=158aa0b1efe0c12f23d4b007ddb9a5db \ + file://include/apu_version.h;endline=17;md5=806685a84e71f10c80144c48eb35df42" + +SRC_URI = "${APACHE_MIRROR}/apr/${BPN}-${PV}.tar.gz \ + file://configfix.patch \ + file://configure_fixes.patch \ + file://run-ptest \ +" + +SRC_URI[md5sum] = "bd502b9a8670a8012c4d90c31a84955f" +SRC_URI[sha256sum] = "b65e40713da57d004123b6319828be7f1273fbc6490e145874ee1177e112c459" + +EXTRA_OECONF = "--with-apr=${STAGING_BINDIR_CROSS}/apr-1-config \ + --without-odbc \ + --without-pgsql \ + --with-dbm=gdbm \ + --with-gdbm=${STAGING_DIR_HOST}${prefix} \ + --without-sqlite2 \ + --with-expat=${STAGING_DIR_HOST}${prefix}" + + +inherit autotools lib_package binconfig + +OE_BINCONFIG_EXTRA_MANGLE = " -e 's:location=source:location=installed:'" + +do_configure_append() { + if [ "${CLASSOVERRIDE}" = "class-target" ]; then + cp ${STAGING_DATADIR}/apr/apr_rules.mk ${B}/build/rules.mk + fi +} +do_configure_prepend_class-native() { + mkdir ${B}/build + cp ${STAGING_DATADIR_NATIVE}/apr/apr_rules.mk ${B}/build/rules.mk +} +do_configure_append_class-native() { + sed -i "s#LIBTOOL=\$(SHELL) \$(apr_builddir)#LIBTOOL=\$(SHELL) ${STAGING_BINDIR_NATIVE}#" ${B}/build/rules.mk + # sometimes there isn't SHELL + sed -i "s#LIBTOOL=\$(apr_builddir)#LIBTOOL=${STAGING_BINDIR_NATIVE}#" ${B}/build/rules.mk +} + +do_configure_prepend_class-nativesdk() { + cp ${STAGING_DATADIR}/apr/apr_rules.mk ${S}/build/rules.mk +} + +do_configure_append_class-nativesdk() { + sed -i "s#\(apr_builddir\)=.*#\1=${STAGING_DATADIR}/build-1#" ${B}/build/rules.mk + sed -i "s#\(apr_builders\)=.*#\1=${STAGING_DATADIR}/build-1#" ${B}/build/rules.mk + sed -i "s#\(top_builddir\)=.*#\1=${STAGING_DATADIR}/build-1#" ${B}/build/rules.mk + sed -i "s#\(LIBTOOL=\$(apr_builddir)\).*#\1/libtool#" ${B}/build/rules.mk +} + +do_install_append_class-target() { + sed -i -e 's,${STAGING_DIR_HOST},,g' \ + -e 's,APU_SOURCE_DIR=.*,APR_SOURCE_DIR=,g' \ + -e 's,APU_BUILD_DIR=.*,APR_BUILD_DIR=,g' ${D}${bindir}/apu-1-config +} + +PACKAGECONFIG ??= "crypto" +PACKAGECONFIG[ldap] = "--with-ldap,--without-ldap,openldap" +PACKAGECONFIG[crypto] = "--with-openssl=${STAGING_DIR_HOST}${prefix} --with-crypto,--without-crypto,openssl" +PACKAGECONFIG[sqlite3] = "--with-sqlite3=${STAGING_DIR_HOST}${prefix},--without-sqlite3,sqlite3" + +#files ${libdir}/apr-util-1/*.so are not symlinks but loadable modules thus they are packaged in ${PN} +FILES_${PN} += "${libdir}/apr-util-1/apr*${SOLIBS} ${libdir}/apr-util-1/apr*${SOLIBSDEV}" +FILES_${PN}-dev += "${libdir}/aprutil.exp ${libdir}/apr-util-1/*.la" +FILES_${PN}-staticdev += "${libdir}/apr-util-1/*.a" + +INSANE_SKIP_${PN} += "dev-so" + +inherit ptest + +RDEPENDS_${PN}-ptest_append_libc-glibc = " glibc-gconv-iso8859-1 glibc-gconv-iso8859-2 glibc-gconv-utf-7" + +do_compile_ptest() { + cd ${B}/test + oe_runmake +} + +do_install_ptest() { + t=${D}${PTEST_PATH}/test + mkdir $t + for i in testall data; do \ + cp -r ${B}/test/$i $t; \ + done +} diff --git a/poky/meta/recipes-support/apr/apr/0001-build-buildcheck.sh-improve-libtool-detection.patch b/poky/meta/recipes-support/apr/apr/0001-build-buildcheck.sh-improve-libtool-detection.patch new file mode 100644 index 000000000..097c195a1 --- /dev/null +++ b/poky/meta/recipes-support/apr/apr/0001-build-buildcheck.sh-improve-libtool-detection.patch @@ -0,0 +1,32 @@ +From 4efdc06fb17b8a00a9eca923caa176be741d1e04 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Thu, 1 Feb 2018 14:56:13 +0800 +Subject: [PATCH 1/7] build/buildcheck.sh: improve libtool detection + +Support customize libtool by variable assigning, it is helpful +for cross compileing (such as libtool=aarch64-linux-libtool) + +Upstream-Status: Submitted [https://github.com/apache/apr/pull/8] +Signed-off-by: Hongxu Jia +--- + build/buildcheck.sh | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/build/buildcheck.sh b/build/buildcheck.sh +index ab5df44..f191a41 100755 +--- a/build/buildcheck.sh ++++ b/build/buildcheck.sh +@@ -40,7 +40,9 @@ fi + # output is multiline from 1.5 onwards + + # Require libtool 1.4 or newer +-libtool=`build/PrintPath glibtool1 glibtool libtool libtool15 libtool14` ++if test -z "$libtool"; then ++ libtool=`build/PrintPath glibtool1 glibtool libtool libtool15 libtool14` ++fi + lt_pversion=`$libtool --version 2>/dev/null|sed -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'` + if test -z "$lt_pversion"; then + echo "buildconf: libtool not found." +-- +1.8.3.1 + diff --git a/poky/meta/recipes-support/apr/apr/0002-apr-Remove-workdir-path-references-from-installed-ap.patch b/poky/meta/recipes-support/apr/apr/0002-apr-Remove-workdir-path-references-from-installed-ap.patch new file mode 100644 index 000000000..72e706f96 --- /dev/null +++ b/poky/meta/recipes-support/apr/apr/0002-apr-Remove-workdir-path-references-from-installed-ap.patch @@ -0,0 +1,74 @@ +From 5925b20da8bbc34d9bf5a5dca123ef38864d43c6 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Tue, 30 Jan 2018 09:39:06 +0800 +Subject: [PATCH 2/7] apr: Remove workdir path references from installed apr + files + +Upstream-Status: Inappropriate [configuration] + +Signed-off-by: Richard Purdie + +The generated `apr-1-config' is used by other recipes at build time or +packages at target run time, the workdir path caused confusion. + +Rebase to 1.6.3 + +Signed-off-by: Hongxu Jia +--- + apr-config.in | 26 ++------------------------ + 1 file changed, 2 insertions(+), 24 deletions(-) + +diff --git a/apr-config.in b/apr-config.in +index 84b4073..bbbf651 100644 +--- a/apr-config.in ++++ b/apr-config.in +@@ -152,14 +152,7 @@ while test $# -gt 0; do + flags="$flags $LDFLAGS" + ;; + --includes) +- if test "$location" = "installed"; then + flags="$flags -I$includedir $EXTRA_INCLUDES" +- elif test "$location" = "source"; then +- flags="$flags -I$APR_SOURCE_DIR/include $EXTRA_INCLUDES" +- else +- # this is for VPATH builds +- flags="$flags -I$APR_BUILD_DIR/include -I$APR_SOURCE_DIR/include $EXTRA_INCLUDES" +- fi + ;; + --srcdir) + echo $APR_SOURCE_DIR +@@ -181,29 +174,14 @@ while test $# -gt 0; do + exit 0 + ;; + --link-ld) +- if test "$location" = "installed"; then +- ### avoid using -L if libdir is a "standard" location like /usr/lib +- flags="$flags -L$libdir -l${APR_LIBNAME}" +- else +- ### this surely can't work since the library is in .libs? +- flags="$flags -L$APR_BUILD_DIR -l${APR_LIBNAME}" +- fi ++ flags="$flags -l${APR_LIBNAME}" + ;; + --link-libtool) + # If the LA_FILE exists where we think it should be, use it. If we're + # installed and the LA_FILE does not exist, assume to use -L/-l + # (the LA_FILE may not have been installed). If we're building ourselves, + # we'll assume that at some point the .la file be created. +- if test -f "$LA_FILE"; then +- flags="$flags $LA_FILE" +- elif test "$location" = "installed"; then +- ### avoid using -L if libdir is a "standard" location like /usr/lib +- # Since the user is specifying they are linking with libtool, we +- # *know* that -R will be recognized by libtool. +- flags="$flags -L$libdir -R$libdir -l${APR_LIBNAME}" +- else +- flags="$flags $LA_FILE" +- fi ++ flags="$flags -l${APR_LIBNAME}" + ;; + --shlib-path-var) + echo "$SHLIBPATH_VAR" +-- +1.8.3.1 + diff --git a/poky/meta/recipes-support/apr/apr/0003-Makefile.in-configure.in-support-cross-compiling.patch b/poky/meta/recipes-support/apr/apr/0003-Makefile.in-configure.in-support-cross-compiling.patch new file mode 100644 index 000000000..4dd53bd8e --- /dev/null +++ b/poky/meta/recipes-support/apr/apr/0003-Makefile.in-configure.in-support-cross-compiling.patch @@ -0,0 +1,63 @@ +From d5028c10f156c224475b340cfb1ba025d6797243 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Fri, 2 Feb 2018 15:51:42 +0800 +Subject: [PATCH 3/7] Makefile.in/configure.in: support cross compiling + +While cross compiling, the tools/gen_test_char could not +be executed at build time, use AX_PROG_CC_FOR_BUILD to +build native tools/gen_test_char + +Upstream-Status: Submitted [https://github.com/apache/apr/pull/8] + +Signed-off-by: Hongxu Jia +--- + Makefile.in | 10 +++------- + configure.in | 3 +++ + 2 files changed, 6 insertions(+), 7 deletions(-) + +diff --git a/Makefile.in b/Makefile.in +index 5fb760e..8675f90 100644 +--- a/Makefile.in ++++ b/Makefile.in +@@ -46,7 +46,7 @@ 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@EXEEXT@ \ +- tools/gen_test_char.o tools/gen_test_char.lo \ ++ tools/gen_test_char.o \ + include/private/apr_escape_test_char.h + DISTCLEAN_TARGETS = config.cache config.log config.status \ + include/apr.h include/arch/unix/apr_private.h \ +@@ -131,13 +131,9 @@ check: $(TARGET_LIB) + etags: + etags `find . -name '*.[ch]'` + +-OBJECTS_gen_test_char = tools/gen_test_char.lo $(LOCAL_LIBS) +-tools/gen_test_char.lo: tools/gen_test_char.c ++tools/gen_test_char@EXEEXT@: tools/gen_test_char.c + $(APR_MKDIR) tools +- $(LT_COMPILE) +- +-tools/gen_test_char@EXEEXT@: $(OBJECTS_gen_test_char) +- $(LINK_PROG) $(OBJECTS_gen_test_char) $(ALL_LIBS) ++ $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $< -o $@ + + include/private/apr_escape_test_char.h: tools/gen_test_char@EXEEXT@ + $(APR_MKDIR) include/private +diff --git a/configure.in b/configure.in +index 719f331..361120f 100644 +--- a/configure.in ++++ b/configure.in +@@ -183,6 +183,9 @@ dnl can only be used once within a configure script, so this prevents a + dnl preload section from invoking the macro to get compiler info. + AC_PROG_CC + ++dnl Check build CC for gen_test_char compiling which is executed at build time. ++AX_PROG_CC_FOR_BUILD ++ + dnl AC_PROG_SED is only avaliable in recent autoconf versions. + dnl Use AC_CHECK_PROG instead if AC_PROG_SED is not present. + ifdef([AC_PROG_SED], +-- +1.8.3.1 + diff --git a/poky/meta/recipes-support/apr/apr/0004-Fix-packet-discards-HTTP-redirect.patch b/poky/meta/recipes-support/apr/apr/0004-Fix-packet-discards-HTTP-redirect.patch new file mode 100644 index 000000000..30fc07d4a --- /dev/null +++ b/poky/meta/recipes-support/apr/apr/0004-Fix-packet-discards-HTTP-redirect.patch @@ -0,0 +1,39 @@ +From 7925eb1766a00ccee05c6e80b1d34f163a04b7b1 Mon Sep 17 00:00:00 2001 +From: Hongxu Jia +Date: Tue, 30 Jan 2018 09:43:34 +0800 +Subject: [PATCH 4/7] Fix packet discards HTTP redirect. + +Disconnect the connection by poll() timeout. +If timeout=0 and apr_wait_for_io_or_timeout()=APR_TIMEUP then +apr_socket_recv() returns EAGAIN. + +Upstream-Status: Pending + +Signed-off-by: Noriaki Yoshitane +Signed-off-by: Li Wang + +Rebase to 1.6.3 + +Signed-off-by: Hongxu Jia +--- + network_io/unix/sendrecv.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/network_io/unix/sendrecv.c b/network_io/unix/sendrecv.c +index 4c0e0a6..1bdafba 100644 +--- a/network_io/unix/sendrecv.c ++++ b/network_io/unix/sendrecv.c +@@ -85,6 +85,10 @@ apr_status_t apr_socket_recv(apr_socket_t *sock, char *buf, apr_size_t *len) + && (sock->timeout > 0)) { + do_select: + arv = apr_wait_for_io_or_timeout(NULL, sock, 1); ++ if ((arv == APR_TIMEUP) && (sock->timeout == 0)) { ++ *len = 0; ++ return EAGAIN; ++ } + if (arv != APR_SUCCESS) { + *len = 0; + return arv; +-- +1.8.3.1 + diff --git a/poky/meta/recipes-support/apr/apr/0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch b/poky/meta/recipes-support/apr/apr/0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch new file mode 100644 index 000000000..02634e6fd --- /dev/null +++ b/poky/meta/recipes-support/apr/apr/0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch @@ -0,0 +1,36 @@ +From 2e66cece0c3adff92733332111204ddc1d730a07 Mon Sep 17 00:00:00 2001 +From: Robert Yang +Date: Thu, 19 Nov 2015 18:25:38 -0800 +Subject: [PATCH 5/7] configure.in: fix LTFLAGS to make it work with ccache + +When ccache is enabled, libtool requires --tag=CC when use ccache, +otherwise when building apr-util with ccache enabled: + +| libtool: compile: unable to infer tagged configuration +| libtool: error: specify a tag with '--tag' +| libtool: compile: unable to infer tagged configuration +| make[1]: *** [buckets/apr_buckets.lo] Error 1 + +Upstream-Status: Pending + +Signed-off-by: Robert Yang +--- + configure.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.in b/configure.in +index 361120f..3b10422 100644 +--- a/configure.in ++++ b/configure.in +@@ -249,7 +249,7 @@ case $host in + ;; + *) + if test "x$LTFLAGS" = "x"; then +- LTFLAGS='--silent' ++ LTFLAGS='--silent --tag=CC' + fi + if test "$experimental_libtool" = "yes"; then + # Use a custom-made libtool replacement +-- +1.8.3.1 + diff --git a/poky/meta/recipes-support/apr/apr/0006-apr-fix-off_t-size-doesn-t-match-in-glibc-when-cross.patch b/poky/meta/recipes-support/apr/apr/0006-apr-fix-off_t-size-doesn-t-match-in-glibc-when-cross.patch new file mode 100644 index 000000000..5f5e7eac3 --- /dev/null +++ b/poky/meta/recipes-support/apr/apr/0006-apr-fix-off_t-size-doesn-t-match-in-glibc-when-cross.patch @@ -0,0 +1,78 @@ +From f4d6e45ed5d2ccffd1af4c2ccdf7099ba0dce137 Mon Sep 17 00:00:00 2001 +From: Dengke Du +Date: Wed, 14 Dec 2016 18:13:08 +0800 +Subject: [PATCH 6/7] apr: fix off_t size doesn't match in glibc when cross + compiling + +In configure.in, it contains the following: + + APR_CHECK_SIZEOF_EXTENDED([#include ], off_t, 8) + +the macro "APR_CHECK_SIZEOF_EXTENDED" was defined in build/apr_common.m4, +it use the "AC_TRY_RUN" macro, this macro let the off_t to 8, when cross +compiling enable. + +So it was hardcoded for cross compiling, we should detect it dynamic based on +the sysroot's glibc. We change it to the following: + + AC_CHECK_SIZEOF(off_t) + +The same for the following hardcoded types for cross compiling: + + pid_t 8 + ssize_t 8 + size_t 8 + off_t 8 + +Change the above correspondingly. + +Signed-off-by: Dengke Du + +Upstream-Status: Pending +--- + configure.in | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/configure.in b/configure.in +index 3b10422..a227e72 100644 +--- a/configure.in ++++ b/configure.in +@@ -1769,7 +1769,7 @@ else + socklen_t_value="int" + fi + +-APR_CHECK_SIZEOF_EXTENDED([#include ], pid_t, 8) ++AC_CHECK_SIZEOF(pid_t) + + if test "$ac_cv_sizeof_pid_t" = "$ac_cv_sizeof_short"; then + pid_t_fmt='#define APR_PID_T_FMT "hd"' +@@ -1838,7 +1838,7 @@ APR_CHECK_TYPES_COMPATIBLE(ssize_t, long, [ssize_t_fmt="ld"]) + APR_CHECK_TYPES_COMPATIBLE(size_t, unsigned int, [size_t_fmt="u"]) + APR_CHECK_TYPES_COMPATIBLE(size_t, unsigned long, [size_t_fmt="lu"]) + +-APR_CHECK_SIZEOF_EXTENDED([#include ], ssize_t, 8) ++AC_CHECK_SIZEOF(ssize_t) + + AC_MSG_CHECKING([which format to use for apr_ssize_t]) + if test -n "$ssize_t_fmt"; then +@@ -1855,7 +1855,7 @@ fi + + ssize_t_fmt="#define APR_SSIZE_T_FMT \"$ssize_t_fmt\"" + +-APR_CHECK_SIZEOF_EXTENDED([#include ], size_t, 8) ++AC_CHECK_SIZEOF(size_t) + + AC_MSG_CHECKING([which format to use for apr_size_t]) + if test -n "$size_t_fmt"; then +@@ -1872,7 +1872,7 @@ fi + + size_t_fmt="#define APR_SIZE_T_FMT \"$size_t_fmt\"" + +-APR_CHECK_SIZEOF_EXTENDED([#include ], off_t, 8) ++AC_CHECK_SIZEOF(off_t) + + if test "${ac_cv_sizeof_off_t}${apr_cv_use_lfs64}" = "4yes"; then + # Enable LFS +-- +1.8.3.1 + diff --git a/poky/meta/recipes-support/apr/apr/0007-explicitly-link-libapr-against-phtread-to-make-gold-.patch b/poky/meta/recipes-support/apr/apr/0007-explicitly-link-libapr-against-phtread-to-make-gold-.patch new file mode 100644 index 000000000..8760b0140 --- /dev/null +++ b/poky/meta/recipes-support/apr/apr/0007-explicitly-link-libapr-against-phtread-to-make-gold-.patch @@ -0,0 +1,50 @@ +From c6afc4a4a766478cb6aa6b43a50051881b6318d7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Andreas=20M=C3=BCller?= +Date: Fri, 3 Mar 2017 22:24:17 +0100 +Subject: [PATCH 7/7] explicitly link libapr against phtread to make gold happy + on test +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +| ../.libs/libapr-1.so: error: undefined reference to 'pthread_mutexattr_init' +| ../.libs/libapr-1.so: error: undefined reference to 'pthread_mutexattr_settype' +| ../.libs/libapr-1.so: error: undefined reference to 'pthread_mutexattr_destroy' +| ../.libs/libapr-1.so: error: undefined reference to 'pthread_mutex_trylock' +| ../.libs/libapr-1.so: error: undefined reference to 'pthread_attr_setstacksize' +| ../.libs/libapr-1.so: error: undefined reference to 'pthread_create' +| ../.libs/libapr-1.so: error: undefined reference to 'pthread_join' +| ../.libs/libapr-1.so: error: undefined reference to 'pthread_detach' +| ../.libs/libapr-1.so: error: undefined reference to 'pthread_sigmask' +| ../.libs/libapr-1.so: error: undefined reference to 'pthread_once' +| ../.libs/libapr-1.so: error: undefined reference to 'pthread_key_create' +| ../.libs/libapr-1.so: error: undefined reference to 'pthread_getspecific' +| ../.libs/libapr-1.so: error: undefined reference to 'pthread_key_delete' +| ../.libs/libapr-1.so: error: undefined reference to 'pthread_setspecific' +| collect2: error: ld returned 1 exit status +| Makefile:114: recipe for target 'globalmutexchild' failed +| make[1]: *** [globalmutexchild] Error 1 +| make[1]: Leaving directory '/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/apr/1.5.2-r0/apr-1.5.2/test' + +Upstream-Status: Pending + +Signed-off-by: Andreas Müller +--- + configure.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/configure.in b/configure.in +index a227e72..cbc0f90 100644 +--- a/configure.in ++++ b/configure.in +@@ -784,6 +784,7 @@ else + APR_PTHREADS_CHECK_RESTORE ] ) + fi + if test "$pthreadh" = "1"; then ++ APR_ADDTO(LIBS,[-lpthread]) + APR_CHECK_PTHREAD_GETSPECIFIC_TWO_ARGS + APR_CHECK_PTHREAD_ATTR_GETDETACHSTATE_ONE_ARG + APR_CHECK_PTHREAD_RECURSIVE_MUTEX +-- +1.8.3.1 + diff --git a/poky/meta/recipes-support/apr/apr/run-ptest b/poky/meta/recipes-support/apr/apr/run-ptest new file mode 100644 index 000000000..ae19a1d11 --- /dev/null +++ b/poky/meta/recipes-support/apr/apr/run-ptest @@ -0,0 +1,6 @@ +#!/bin/sh + +cd test +./testall |sed \ + -e 's|\(.*\): SUCCESS|PASS: \1|' \ + -e 's|\(.*\): FAILED|FAIL: \1|' diff --git a/poky/meta/recipes-support/apr/apr_1.6.3.bb b/poky/meta/recipes-support/apr/apr_1.6.3.bb new file mode 100644 index 000000000..87b878723 --- /dev/null +++ b/poky/meta/recipes-support/apr/apr_1.6.3.bb @@ -0,0 +1,117 @@ +SUMMARY = "Apache Portable Runtime (APR) library" +HOMEPAGE = "http://apr.apache.org/" +SECTION = "libs" +DEPENDS = "util-linux" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=4dfd4cd216828c8cae5de5a12f3844c8 \ + file://include/apr_lib.h;endline=17;md5=ee42fa7575dc40580a9e01c1b75fae96" + +BBCLASSEXTEND = "native nativesdk" + +SRC_URI = "${APACHE_MIRROR}/apr/${BPN}-${PV}.tar.bz2 \ + file://run-ptest \ + file://0001-build-buildcheck.sh-improve-libtool-detection.patch \ + file://0002-apr-Remove-workdir-path-references-from-installed-ap.patch \ + file://0003-Makefile.in-configure.in-support-cross-compiling.patch \ + file://0004-Fix-packet-discards-HTTP-redirect.patch \ + file://0005-configure.in-fix-LTFLAGS-to-make-it-work-with-ccache.patch \ + file://0006-apr-fix-off_t-size-doesn-t-match-in-glibc-when-cross.patch \ + file://0007-explicitly-link-libapr-against-phtread-to-make-gold-.patch \ +" + +SRC_URI[md5sum] = "12f2a349483ad6f12db49ba01fbfdbfa" +SRC_URI[sha256sum] = "131f06d16d7aabd097fa992a33eec2b6af3962f93e6d570a9bd4d85e95993172" + +inherit autotools-brokensep lib_package binconfig multilib_header ptest + +OE_BINCONFIG_EXTRA_MANGLE = " -e 's:location=source:location=installed:'" + +# Added to fix some issues with cmake. Refer to https://github.com/bmwcarit/meta-ros/issues/68#issuecomment-19896928 +CACHED_CONFIGUREVARS += "apr_cv_mutex_recursive=yes" + +# Also suppress trying to use sctp. +# +CACHED_CONFIGUREVARS += "ac_cv_header_netinet_sctp_h=no ac_cv_header_netinet_sctp_uio_h=no" + +CACHED_CONFIGUREVARS += "ac_cv_sizeof_struct_iovec=yes" +CACHED_CONFIGUREVARS += "ac_cv_file__dev_zero=yes" + +# Otherwise libtool fails to compile apr-utils +# x86_64-linux-libtool: compile: unable to infer tagged configuration +# x86_64-linux-libtool: error: specify a tag with '--tag' +CCACHE = "" + +PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'ipv6', d)}" +PACKAGECONFIG[ipv6] = "--enable-ipv6,--disable-ipv6," + +do_configure_prepend() { + # Avoid absolute paths for grep since it causes failures + # when using sstate between different hosts with different + # install paths for grep. + export GREP="grep" + + cd ${S} + libtool='${HOST_SYS}-libtool' ./buildconf +} + +FILES_${PN}-dev += "${libdir}/apr.exp ${datadir}/build-1/*" +RDEPENDS_${PN}-dev += "bash" + +#for some reason, build/libtool.m4 handled by buildconf still be overwritten +#when autoconf, so handle it again. +do_configure_append() { + sed -i -e 's/LIBTOOL=\(.*\)top_build/LIBTOOL=\1apr_build/' ${S}/build/libtool.m4 + sed -i -e 's/LIBTOOL=\(.*\)top_build/LIBTOOL=\1apr_build/' ${S}/build/apr_rules.mk +} + +do_install_append() { + oe_multilib_header apr.h + install -d ${D}${datadir}/apr +} + +do_install_append_class-target() { + sed -i -e 's,${DEBUG_PREFIX_MAP},,g' \ + -e 's,${STAGING_DIR_HOST},,g' ${D}${datadir}/build-1/apr_rules.mk + sed -i -e 's,${STAGING_DIR_HOST},,g' \ + -e 's,APR_SOURCE_DIR=.*,APR_SOURCE_DIR=,g' \ + -e 's,APR_BUILD_DIR=.*,APR_BUILD_DIR=,g' ${D}${bindir}/apr-1-config +} + +SSTATE_SCAN_FILES += "apr_rules.mk libtool" + +SYSROOT_PREPROCESS_FUNCS += "apr_sysroot_preprocess" + +apr_sysroot_preprocess () { + d=${SYSROOT_DESTDIR}${datadir}/apr + install -d $d/ + cp ${S}/build/apr_rules.mk $d/ + sed -i s,apr_builddir=.*,apr_builddir=,g $d/apr_rules.mk + sed -i s,apr_builders=.*,apr_builders=,g $d/apr_rules.mk + sed -i s,LIBTOOL=.*,LIBTOOL=${HOST_SYS}-libtool,g $d/apr_rules.mk + sed -i s,\$\(apr_builders\),${STAGING_DATADIR}/apr/,g $d/apr_rules.mk + cp ${S}/build/mkdir.sh $d/ + cp ${S}/build/make_exports.awk $d/ + cp ${S}/build/make_var_export.awk $d/ + cp ${S}/${HOST_SYS}-libtool ${SYSROOT_DESTDIR}${datadir}/build-1/libtool +} + +do_compile_ptest() { + cd ${S}/test + oe_runmake +} + +do_install_ptest() { + t=${D}${PTEST_PATH}/test + mkdir -p $t/.libs + cp -r ${S}/test/data $t/ + cp -r ${S}/test/.libs/*.so $t/.libs/ + cp ${S}/test/proc_child $t/ + cp ${S}/test/readchild $t/ + cp ${S}/test/sockchild $t/ + cp ${S}/test/sockperf $t/ + cp ${S}/test/testall $t/ + cp ${S}/test/tryread $t/ +} + +export CONFIG_SHELL="/bin/bash" -- cgit v1.2.3