[OE-core] [PATCH 1/1] socat: enable termios
Saul Wold
sgw at linux.intel.com
Wed Jun 5 16:39:17 UTC 2013
On 06/05/2013 12:30 AM, rongqing.li at windriver.com wrote:
> From: "Roy.Li" <rongqing.li at windriver.com>
>
> fix two cross-compile issue to enable termios
>
> Signed-off-by: Roy.Li <rongqing.li at 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]
> +
I am wondering if this could be submitted upstream?
> +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.Ouyang at 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.
> +
No Signed-off-by: tag
Can't this be handled differently by setting these on the EXTRA_OECONF?
> +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"
No PR Bump required anymore
Sau!
> 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 () {
>
More information about the Openembedded-core
mailing list