From: "Roy.Li" <rongqing...@windriver.com> fix two cross-compile issue to enable termios
Signed-off-by: Roy.Li <rongqing...@windriver.com> --- .../socat/files/fix-xxx_SHIFT-autoheader.patch | 40 +++++++++ .../socat/files/fix_termios.patch | 85 ++++++++++++++++++++ meta/recipes-connectivity/socat/socat_1.7.2.1.bb | 8 +- 3 files changed, 129 insertions(+), 4 deletions(-) create mode 100644 meta/recipes-connectivity/socat/files/fix-xxx_SHIFT-autoheader.patch create mode 100644 meta/recipes-connectivity/socat/files/fix_termios.patch diff --git a/meta/recipes-connectivity/socat/files/fix-xxx_SHIFT-autoheader.patch b/meta/recipes-connectivity/socat/files/fix-xxx_SHIFT-autoheader.patch new file mode 100644 index 0000000..6f7b30b --- /dev/null +++ b/meta/recipes-connectivity/socat/files/fix-xxx_SHIFT-autoheader.patch @@ -0,0 +1,40 @@ +Subject: [PATCH] fix autoheader for *_SHIFT values. + +Upstream-Status: Inappropriate [configuration] + +autoheader would not generate C `#define' statements if +the first param of AC_DEFINE_UNQUOTED is a shell variable. +This will cause build failures while enable termios, so +expand these AC_DEFINE_UNQUOTED from the macro. + +Signed-off-by: Xin Ouyang <xin.ouy...@windriver.com> +--- + configure.in | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/configure.in b/configure.in +index c54e4c4..13bae64 100644 +--- a/configure.in ++++ b/configure.in +@@ -1335,8 +1335,6 @@ AC_CACHE_CHECK(shift offset of $1, $2, + [$2=-1] + ) + LIBS="$LIBS1"]) +-SHIFT_NAME="$1"_SHIFT +-AC_DEFINE_UNQUOTED($SHIFT_NAME, ${$2}, [foo]) + if test "$2" = -1; then + AC_MSG_WARN(please determine $1_SHIFT manually) + fi +@@ -1346,6 +1344,9 @@ AC_SHIFT_OFFSET(CRDLY, sc_cv_sys_crdly_shift) + AC_SHIFT_OFFSET(TABDLY, sc_cv_sys_tabdly_shift) + AC_SHIFT_OFFSET(CSIZE, sc_cv_sys_csize_shift) + ++AC_DEFINE_UNQUOTED(CRDLY_SHIFT, ${sc_cv_sys_crdly_shift}, [shift for CRDLY, carriage return delay]) ++AC_DEFINE_UNQUOTED(TABDLY_SHIFT, ${sc_cv_sys_tabdly_shift}, [shift for TABDLY, horizontal tab delay]) ++AC_DEFINE_UNQUOTED(CSIZE_SHIFT, ${sc_cv_sys_csize_shift}, [shift for CSIZE, character size]) + + dnl find what physical type (basic C type) is equivalent to the given type. + dnl arg1: include file(s) +-- +1.7.9.5 + diff --git a/meta/recipes-connectivity/socat/files/fix_termios.patch b/meta/recipes-connectivity/socat/files/fix_termios.patch new file mode 100644 index 0000000..c16949c --- /dev/null +++ b/meta/recipes-connectivity/socat/files/fix_termios.patch @@ -0,0 +1,85 @@ +Make sure ISPEED_OFFSET and OSPEED_OFFSET gets defined. + +Upstream-Status: Inappropriate [configuration] + +AC_TRY_RUN() can not work on a cross-compile environment, so +define them directly. + +Index: socat-1.7.2.0/configure.in +=================================================================== +--- socat-1.7.2.0.orig/configure.in ++++ socat-1.7.2.0/configure.in +@@ -893,39 +893,43 @@ + [sc_cv_termios_ispeed=no])]) + if test $sc_cv_termios_ispeed = yes; then + AC_DEFINE(HAVE_TERMIOS_ISPEED, [1], [have ispeed]) ++ if test "x$ac_cv_ispeed_offset" != "x"; then ++ AC_DEFINE_UNQUOTED(ISPEED_OFFSET, $ac_cv_ispeed_offset, [have ispeed offset]) ++ AC_DEFINE(OSPEED_OFFSET, (ISPEED_OFFSET+1) , [have ospeed offset]) ++ fi + fi + AC_MSG_RESULT($sc_cv_termios_ispeed) + +-if test $sc_cv_termios_ispeed = yes; then +-AC_MSG_CHECKING(for offset of c_ispeed in struct termios) +-LIBS1="$LIBS"; LIBS="" # avoid libwrap allow_severity undefined +-AC_CACHE_VAL(ac_cv_ispeed_offset, +- [conftestspeedoff="conftestspeedoff.out" +- AC_TRY_RUN([ +- #include <errno.h> +- #include <stdio.h> +- #include <termios.h> +- #include <string.h> +- main(){ +- struct termios t; +- FILE *f; +- if ((f=fopen("$conftestspeedoff","w"))==NULL){ +- fprintf(stderr,"\\"$conftestspeedoff\\": %s\n",strerror(errno)); exit(-1); +- } +- fprintf(f, "%d", ((char*)&t.c_ispeed-(char*)&t)/sizeof(speed_t)); +- exit(0); +- } +- ], +- [ac_cv_ispeed_offset=`cat $conftestspeedoff`], +- [ac_cv_ispeed_offset=-1], +- [ac_cv_ispeed_offset=-1] #! +-)]) +-LIBS="$LIBS1" +-AC_MSG_RESULT($ac_cv_ispeed_offset) +- if test $ac_cv_ispeed_offset -ge 0; then +- AC_DEFINE_UNQUOTED(ISPEED_OFFSET, $ac_cv_ispeed_offset, [have ispeed]) +- fi +-fi ++# if test $sc_cv_termios_ispeed = yes; then ++# AC_MSG_CHECKING(for offset of c_ispeed in struct termios) ++# LIBS1="$LIBS"; LIBS="" # avoid libwrap allow_severity undefined ++# AC_CACHE_VAL(ac_cv_ispeed_offset, ++# [conftestspeedoff="conftestspeedoff.out" ++# AC_TRY_RUN([ ++# #include <errno.h> ++# #include <stdio.h> ++# #include <termios.h> ++# #include <string.h> ++# main(){ ++# struct termios t; ++# FILE *f; ++# if ((f=fopen("$conftestspeedoff","w"))==NULL){ ++# fprintf(stderr,"\\"$conftestspeedoff\\": %s\n",strerror(errno)); exit(-1); ++# } ++# fprintf(f, "%d", ((char*)&t.c_ispeed-(char*)&t)/sizeof(speed_t)); ++# exit(0); ++# } ++# ], ++# [ac_cv_ispeed_offset=`cat $conftestspeedoff`], ++# [ac_cv_ispeed_offset=-1], ++# [ac_cv_ispeed_offset=-1] #! ++# )]) ++# LIBS="$LIBS1" ++# AC_MSG_RESULT($ac_cv_ispeed_offset) ++# if test $ac_cv_ispeed_offset -ge 0; then ++# AC_DEFINE_UNQUOTED(ISPEED_OFFSET, $ac_cv_ispeed_offset, [have ispeed]) ++# fi ++# fi + + # there is another issue with termios: OSR requires "#define _SVID3 ..." + # for reasonable termios support. We check this situation using IMAXBEL diff --git a/meta/recipes-connectivity/socat/socat_1.7.2.1.bb b/meta/recipes-connectivity/socat/socat_1.7.2.1.bb index 950e1e5..a3b5f7a 100644 --- a/meta/recipes-connectivity/socat/socat_1.7.2.1.bb +++ b/meta/recipes-connectivity/socat/socat_1.7.2.1.bb @@ -11,15 +11,15 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=b234ee4d69f5fce4486a80fdaf4a4263 \ file://README;beginline=252;endline=282;md5=79246f11a1db0b6ccec54d1fb711c01e" -PR = "r0" +PR = "r1" SRC_URI = "http://www.dest-unreach.org/socat/download/socat-${PV}.tar.bz2;name=src \ - file://compile.patch" + file://compile.patch \ + file://fix_termios.patch \ + file://fix-xxx_SHIFT-autoheader.patch" SRC_URI[src.md5sum] = "7ddfea7e9e85f868670f94d3ea08358b" SRC_URI[src.sha256sum] = "faea2ed6c63bb97a59237fd43b7c35ad248317297e8bfeb2e6f2ec1e6bc58277" -EXTRA_OECONF = " --disable-termios " - inherit autotools do_install_prepend () { -- 1.7.10.4 _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core