Openembedded Core Discussions
 help / color / mirror / Atom feed
* [PATCH 1/3] dejagnu: Add recipe
@ 2013-09-06 13:38 Mihaela Sendrea
  2013-09-06 13:38 ` [PATCH 2/3] expect: " Mihaela Sendrea
  2013-09-06 13:38 ` [PATCH 3/3] gcc-runtime: Add ptest Mihaela Sendrea
  0 siblings, 2 replies; 5+ messages in thread
From: Mihaela Sendrea @ 2013-09-06 13:38 UTC (permalink / raw)
  To: openembedded-core

Nedeed for gcc-runtime tests.

Signed-off-by: Mihaela Sendrea <mihaela.sendrea@enea.com>
---
 .../dejagnu-1.5/remove-expect-tcl-dependency.patch |   34 ++++++++++++++++++++
 meta/recipes-devtools/dejagnu/dejagnu_1.5.bb       |   19 +++++++++++
 2 files changed, 53 insertions(+)
 create mode 100644 meta/recipes-devtools/dejagnu/dejagnu-1.5/remove-expect-tcl-dependency.patch
 create mode 100644 meta/recipes-devtools/dejagnu/dejagnu_1.5.bb

diff --git a/meta/recipes-devtools/dejagnu/dejagnu-1.5/remove-expect-tcl-dependency.patch b/meta/recipes-devtools/dejagnu/dejagnu-1.5/remove-expect-tcl-dependency.patch
new file mode 100644
index 0000000..9e5471a
--- /dev/null
+++ b/meta/recipes-devtools/dejagnu/dejagnu-1.5/remove-expect-tcl-dependency.patch
@@ -0,0 +1,34 @@
+Remove the build dependency on expect and tcl
+
+Upstream-Status: Pending
+
+Signed-off-by: Anders Roxell <anders.roxell@enea.com>
+---
+diff -uNr a/configure.ac b/configure.ac
+--- a/configure.ac	2013-01-17 16:05:13.715074360 +0100
++++ b/configure.ac	2013-01-17 16:25:48.678029417 +0100
+@@ -37,24 +37,5 @@
+ AC_PATH_PROG([DOCBOOK2PS], [docbook2ps], [false])
+ AC_PATH_PROG([DOCBOOK2TEXI], [docbook2x-texi], [false])
+ 
+-dnl Search for expect.
+-AC_PATH_PROG([EXPECT], [expect])
+-if test -z $ac_cv_path_EXPECT ; then
+-   AC_MSG_ERROR([unable to locate expect])
+-fi
+-
+-dnl Check the Tcl version is >= 8.3.
+-AC_MSG_CHECKING([Tcl version 8.3 or greater])
+-AC_CACHE_VAL(ac_cv_dg_tcl_modern,[
+-  ac_cv_dg_tcl_modern=`$EXPECT << EOF
+-if @<:@ expr \\${tcl_version} >= 8.3  @:>@ then { puts yes } else { puts no }
+-EOF`
+-])
+-if test x${ac_cv_dg_tcl_modern} = xyes ; then
+-  AC_MSG_RESULT(${ac_cv_dg_tcl_modern})
+-else
+-  AC_MSG_ERROR([Tcl 8.3 or greater is required])
+-fi
+-
+ AC_CONFIG_SUBDIRS([example/calc example/hello example/mathhelper])
+ AC_OUTPUT([Makefile])
diff --git a/meta/recipes-devtools/dejagnu/dejagnu_1.5.bb b/meta/recipes-devtools/dejagnu/dejagnu_1.5.bb
new file mode 100644
index 0000000..d70d4c3
--- /dev/null
+++ b/meta/recipes-devtools/dejagnu/dejagnu_1.5.bb
@@ -0,0 +1,19 @@
+DESCRIPTION = "dejagnu tests tool."
+HOMEPAGE = "http://www.gnu.org/software/dejagnu/"
+LICENSE="GPLv3+"
+SECTION = "devel"
+
+LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
+PR = "r1"
+
+RDEPENDS_${PN} = "expect"
+
+SRC_URI = "${GNU_MIRROR}/dejagnu/dejagnu-${PV}.tar.gz \
+           file://remove-expect-tcl-dependency.patch \
+          "
+
+SRC_URI[md5sum] = "3df1cbca885e751e22d3ebd1ac64dc3c"
+SRC_URI[sha256sum] = "c8b45808357a6f3e32cd56d8b56a4fdf8a1d5f3818818045c2022993e0e8a3db"
+
+inherit autotools
+
-- 
1.7.10.4



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 2/3] expect: Add recipe
  2013-09-06 13:38 [PATCH 1/3] dejagnu: Add recipe Mihaela Sendrea
@ 2013-09-06 13:38 ` Mihaela Sendrea
  2013-09-06 13:38 ` [PATCH 3/3] gcc-runtime: Add ptest Mihaela Sendrea
  1 sibling, 0 replies; 5+ messages in thread
From: Mihaela Sendrea @ 2013-09-06 13:38 UTC (permalink / raw)
  To: openembedded-core

Nedeed for gcc-runtime tests.

Signed-off-by: Mihaela Sendrea <mihaela.sendrea@enea.com>
---
 .../expect/expect/0001-configure.in.patch          |  108 ++++++++++++++++++++
 .../expect/expect/0002-tcl.m4.patch                |   17 +++
 meta/recipes-devtools/expect/expect_5.45.bb        |   53 ++++++++++
 3 files changed, 178 insertions(+)
 create mode 100644 meta/recipes-devtools/expect/expect/0001-configure.in.patch
 create mode 100644 meta/recipes-devtools/expect/expect/0002-tcl.m4.patch
 create mode 100644 meta/recipes-devtools/expect/expect_5.45.bb

diff --git a/meta/recipes-devtools/expect/expect/0001-configure.in.patch b/meta/recipes-devtools/expect/expect/0001-configure.in.patch
new file mode 100644
index 0000000..7595a25
--- /dev/null
+++ b/meta/recipes-devtools/expect/expect/0001-configure.in.patch
@@ -0,0 +1,108 @@
+Allow cross compiling.
+
+Signed-off-by: Anders Roxell <anders.roxell@enea.com>
+Upstream-Status: Pending
+---
+diff -uNr a/configure.in b/configure.in
+--- a/configure.in	2012-12-14 15:31:32.623180450 +0100
++++ b/configure.in	2012-12-14 15:53:34.518233519 +0100
+@@ -481,7 +481,7 @@
+ ,
+ 	AC_MSG_RESULT(no)
+ ,
+-	AC_MSG_ERROR([Expect can't be cross compiled])
++	AC_MSG_RESULT(no)
+ )
+ 
+ AC_MSG_CHECKING([if any value exists for WNOHANG])
+@@ -506,7 +506,9 @@
+ 	AC_MSG_RESULT(no)
+ 	AC_DEFINE(WNOHANG_BACKUP_VALUE, 1)
+ ,
+-	AC_MSG_ERROR([Expect can't be cross compiled])
++	AC_MSG_RESULT(yes)
++	AC_DEFINE_UNQUOTED(WNOHANG_BACKUP_VALUE, `cat wnohang`)
++	rm -f wnohang
+ )
+ 
+ #
+@@ -574,7 +576,8 @@
+ 	AC_DEFINE(REARM_SIG)
+ ,
+ 	AC_MSG_RESULT(no)
+-, AC_MSG_WARN([Expect can't be cross compiled])
++,
++	AC_MSG_RESULT(no)
+ )
+ 
+ # HPUX7 has trouble with the big cat so split it
+@@ -725,7 +728,9 @@
+ ,
+         AC_MSG_RESULT(no)
+ ,
+-	AC_MSG_ERROR([Expect can't be cross compiled])
++        AC_MSG_RESULT(yes)
++        AC_DEFINE(HAVE_SGTTYB)
++        PTY_TYPE=sgttyb
+ )
+ 
+ # mach systems have include files for unimplemented features
+@@ -749,7 +754,9 @@
+ ,
+         AC_MSG_RESULT(no)
+ ,
+-	AC_MSG_ERROR([Expect can't be cross compiled])
++        AC_DEFINE(HAVE_TERMIO)
++        PTY_TYPE=termios
++        AC_MSG_RESULT(yes)
+ )
+ 
+   # now check for the new style ttys (not yet posix)
+@@ -771,7 +778,9 @@
+   ,
+         AC_MSG_RESULT(no)
+   ,
+-	AC_MSG_ERROR([Expect can't be cross compiled])
++        AC_DEFINE(HAVE_TERMIOS)
++        PTY_TYPE=termios
++        AC_MSG_RESULT(yes)
+   )
+ fi
+ 
+@@ -794,7 +803,7 @@
+ ,
+ 	AC_MSG_RESULT(no)
+ ,
+-	AC_MSG_ERROR([Expect can't be cross compiled])
++	AC_MSG_RESULT(no)
+ )
+ 
+ AC_MSG_CHECKING([if TIOCGWINSZ in termios.h])
+@@ -816,7 +825,7 @@
+ ,
+ 	AC_MSG_RESULT(no)
+ ,
+-	AC_MSG_ERROR([Expect can't be cross compiled])
++	AC_MSG_RESULT(no)
+ )
+ 
+ # finally check for Cray style ttys
+@@ -837,7 +846,7 @@
+ ,
+ 	AC_MSG_RESULT(no)
+ ,
+-	AC_MSG_ERROR([Expect can't be cross compiled])
++	AC_MSG_RESULT(no)
+ )
+ 
+ #
+@@ -889,7 +898,8 @@
+ 	AC_MSG_RESULT(yes),
+ 	AC_MSG_RESULT(no)
+ ,
+-	AC_MSG_ERROR([Expect can't be cross compiled])
++	AC_DEFINE(HAVE_SV_TIMEZONE)
++	AC_MSG_RESULT(yes),
+ )
+ 
+ 
diff --git a/meta/recipes-devtools/expect/expect/0002-tcl.m4.patch b/meta/recipes-devtools/expect/expect/0002-tcl.m4.patch
new file mode 100644
index 0000000..dc4c6ba
--- /dev/null
+++ b/meta/recipes-devtools/expect/expect/0002-tcl.m4.patch
@@ -0,0 +1,17 @@
+Use proper -L path when cross compiling.
+
+Signed-off-by: Anders Roxell <anders.roxell@enea.com>
+Upstream-Status: Pending
+---
+diff -uNr a/tclconfig/tcl.m4 b/tclconfig/tcl.m4
+--- a/tclconfig/tcl.m4	2012-12-14 09:16:58.789861281 +0100
++++ b/tclconfig/tcl.m4	2012-12-14 10:55:43.542297010 +0100
+@@ -371,7 +371,7 @@
+     # of TCL_BUILD_LIB_SPEC. An extension should make use of TCL_LIB_SPEC
+     # instead of TCL_BUILD_LIB_SPEC since it will work with both an
+     # installed and uninstalled version of Tcl.
+-    if test -f "${TCL_BIN_DIR}/Makefile" ; then
++    if test -f "${TCL_BIN_DIR}/Makefile" || test "$cross_compiling" = yes; then
+         TCL_LIB_SPEC="${TCL_BUILD_LIB_SPEC}"
+         TCL_STUB_LIB_SPEC="${TCL_BUILD_STUB_LIB_SPEC}"
+         TCL_STUB_LIB_PATH="${TCL_BUILD_STUB_LIB_PATH}"
diff --git a/meta/recipes-devtools/expect/expect_5.45.bb b/meta/recipes-devtools/expect/expect_5.45.bb
new file mode 100644
index 0000000..d7c0772
--- /dev/null
+++ b/meta/recipes-devtools/expect/expect_5.45.bb
@@ -0,0 +1,53 @@
+DESCRIPTION = "expect."
+HOMEPAGE = " http://expect.nist.gov"
+LICENSE="GPLv3+"
+SECTION = "devel"
+
+LIC_FILES_CHKSUM = "file://README;md5=2862a5993e5f43b368a49cfaad5bead6"
+PR = "r1"
+DEPENDS = "tcl"
+RDEPENDS_${PN} = "tcl"
+ALLOW_EMPTY_${PN} = "1"
+
+FILESEXTRAPATHS_prepend := "${THISDIR}/expect:"
+
+S = "${WORKDIR}/${BPN}${PV}"
+
+SRC_URI = "${SOURCEFORGE_MIRROR}/expect/Expect/5.45/expect5.45.tar.gz \
+           file://0001-configure.in.patch \
+           file://0002-tcl.m4.patch \
+          "
+EXTRA_OECONF += "--includedir=${STAGING_INCDIR} \
+                 --with-tcl=${STAGING_LIBDIR} \
+                 --with-tclinclude=${STAGING_INCDIR} \
+                 --enable-shared \
+                 --enable-threads \
+                 --disable-rpath \
+                "
+EXTRA_OEMAKE_install = " 'SCRIPTS=' "
+FILES_${PN}-dbg += "${libdir}/expect5.45/.debug \
+                    ${libdir}/.debug \
+                   "
+FILES_${PN}-dev = "${libdir_native}/expect${PV}/libexpect*.so \
+                   ${STAGING_INCDIR}/expect.h \
+                   ${STAGING_INCDIR}/expect_tcl.h \
+                   ${STAGING_INCDIR}/expect_comm.h \
+                   ${STAGING_INCDIR}/tcldbg.h \
+                   ${includedir}/*.h \
+                  "
+
+FILES_${PN} += "${libdir}/libexpect${PV}.so \
+                ${libdir}/expect${PV}/* \
+               "
+
+inherit autotools
+
+do_install_append() {
+        install -m 0755 ${D}${libdir}/expect${PV}/libexpect*.so   ${D}${libdir}/
+        install -m 0755 ${S}/fixline1           ${D}${libdir_native}/expect${PV}/
+        install -m 0755 ${S}/example/*          ${D}${libdir_native}/expect${PV}/
+        rm ${D}${libdir}/expect${PV}/libexpect*.so
+}
+
+SRC_URI[md5sum] = "44e1a4f4c877e9ddc5a542dfa7ecc92b"
+SRC_URI[sha256sum] = "b28dca90428a3b30e650525cdc16255d76bb6ccd65d448be53e620d95d5cc040"
-- 
1.7.10.4



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH 3/3] gcc-runtime: Add ptest
  2013-09-06 13:38 [PATCH 1/3] dejagnu: Add recipe Mihaela Sendrea
  2013-09-06 13:38 ` [PATCH 2/3] expect: " Mihaela Sendrea
@ 2013-09-06 13:38 ` Mihaela Sendrea
  2013-09-06 14:34   ` Richard Purdie
  2013-09-06 18:22   ` Saul Wold
  1 sibling, 2 replies; 5+ messages in thread
From: Mihaela Sendrea @ 2013-09-06 13:38 UTC (permalink / raw)
  To: openembedded-core

libstdc++-v3 tests need g++ installed on the target, otherwise the
majority of the tests will fail.
The v3-build_support (initial support for objects needed for the test
suite) is built separately at build time, to be able to still run and
see the testcases and their output: PASS/FAIL/SKIP.

Signed-off-by: Mihaela Sendrea <mihaela.sendrea@enea.com>
---
 meta/recipes-devtools/gcc/gcc-4.8.inc              |    2 +
 .../gcc-4.8/add-install-ptest-to-Makefile.patch    |  162 ++++++++++++++++++++
 meta/recipes-devtools/gcc/gcc-4.8/run-ptest        |    3 +
 meta/recipes-devtools/gcc/gcc-common.inc           |    2 +-
 meta/recipes-devtools/gcc/gcc-runtime.inc          |   21 ++-
 5 files changed, 188 insertions(+), 2 deletions(-)
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.8/add-install-ptest-to-Makefile.patch
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.8/run-ptest

diff --git a/meta/recipes-devtools/gcc/gcc-4.8.inc b/meta/recipes-devtools/gcc/gcc-4.8.inc
index 0fbbc1d..9632e6f 100644
--- a/meta/recipes-devtools/gcc/gcc-4.8.inc
+++ b/meta/recipes-devtools/gcc/gcc-4.8.inc
@@ -75,6 +75,8 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
 	   file://0043-cpp.patch \
 	   file://0044-gengtypes.patch \
 	   file://0045-gcc-4.8-PR57717-PowerPC-E500v2.patch \
+	   file://add-install-ptest-to-Makefile.patch \
+	   file://run-ptest \
 	  "
 SRC_URI[md5sum] = "3b2386c114cd74185aa3754b58a79304"
 SRC_URI[sha256sum] = "545b44be3ad9f2c4e90e6880f5c9d4f0a8f0e5f67e1ffb0d45da9fa01bb05813"
diff --git a/meta/recipes-devtools/gcc/gcc-4.8/add-install-ptest-to-Makefile.patch b/meta/recipes-devtools/gcc/gcc-4.8/add-install-ptest-to-Makefile.patch
new file mode 100644
index 0000000..3dedde5
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.8/add-install-ptest-to-Makefile.patch
@@ -0,0 +1,162 @@
+Add 'install-ptest' rule.
+
+Signed-off-by: Mihaela Sendrea <mihaela.sendrea@enea.com>
+Upstream-status: Pending
+---
+diff -uNr a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in
+--- a/libstdc++-v3/Makefile.in	2013-07-01 13:01:43.659958328 +0200
++++ b/libstdc++-v3/Makefile.in	2013-08-23 13:22:41.962029555 +0200
+@@ -710,6 +710,26 @@
+ dvi:
+ install-dvi:
+ 
++spath=$(subst /,\/,$(SOURCE_DIR))
++bpath=$(subst /,\/,$(BUILD_DIR))
++rpath=$(subst /,\/,$(REPLACE_DIR))
++install-ptest:
++	mkdir -p $(DEST_DIR)/gcc/testsuite
++	mkdir -p $(DEST_DIR)/libstdc++-v3
++	mkdir -p $(DEST_DIR)/contrib
++	cp -r $(SOURCE_DIR)/libstdc++-v3/testsuite $(DEST_DIR)/libstdc++-v3
++	cp    $(SOURCE_DIR)/contrib/dg-extract-results.sh $(DEST_DIR)/contrib
++	cp    $(SOURCE_DIR)/gcc/BASE-VER $(DEST_DIR)/gcc
++	cp -r $(SOURCE_DIR)/gcc/testsuite/lib $(DEST_DIR)/gcc/testsuite
++	cp -r $(SOURCE_DIR)/libstdc++-v3/scripts $(DEST_DIR)/libstdc++-v3
++	cp $(BUILD_DIR)/libstdc++-v3/scripts/* $(DEST_DIR)/libstdc++-v3/scripts
++	cp $(BUILD_DIR)/libstdc++-v3/testsuite/Makefile	$(DEST_DIR)/libstdc++-v3/testsuite
++	cp $(BUILD_DIR)/libstdc++-v3/Makefile $(DEST_DIR)/libstdc++-v3
++	sed -i -e 's|^Makefile:|_Makefile:|' $(DEST_DIR)/libstdc++-v3/testsuite/Makefile
++	sed -i -e "s/$(spath)/$(rpath)/g" -e "s/$(bpath)/$(rpath)/g" $(DEST_DIR)/libstdc++-v3/testsuite/Makefile
++	sed -i -e "s/$(spath)/$(rpath)/g" -e "s/$(bpath)/$(rpath)/g" $(DEST_DIR)/libstdc++-v3/Makefile
++	sed -i -e 's/RUNTESTDEFAULTFLAGS.=/RUNTESTDEFAULTFLAGS =-a/g' ${DEST_DIR}/libstdc++-v3/testsuite/Makefile
++
+ # All the machinations with string instantiations messes up the
+ # automake-generated TAGS rule. Make a simple one here.
+ TAGS: tags-recursive $(LISP)
+diff -uNr a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in
+--- a/libstdc++-v3/testsuite/Makefile.in	2013-07-05 16:06:08.995480821 +0200
++++ b/libstdc++-v3/testsuite/Makefile.in	2013-08-26 08:50:04.698546942 +0200
+@@ -478,6 +478,8 @@
+ 	maintainer-clean-generic mostlyclean mostlyclean-generic \
+ 	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+ 
++buildtest-TESTS:
++	-@runtest $(AM_RUNTESTFLAGS) --tool libstdc++ $(RUNTESTFLAGS) buildtest.exp
+ 
+ # This rule generates all of the testsuite_files* lists at once.
+ ${lists_of_files}:
+@@ -545,7 +547,7 @@
+ 
+ # Run the testsuite in normal mode.
+ check-DEJAGNU $(check_DEJAGNU_normal_targets): check-DEJAGNU%: site.exp
+-	AR="$(AR)"; export AR; \
++	-@(AR="$(AR)"; export AR; \
+ 	RANLIB="$(RANLIB)"; export RANLIB; \
+ 	if [ -z "$*$(filter-out --target_board=%, $(RUNTESTFLAGS))" ] \
+ 	    && [ "$(filter -j, $(MFLAGS))" = "-j" ]; then \
+@@ -563,6 +565,7 @@
+ 	  exit 0; \
+ 	fi; \
+ 	srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \
++	$(SHELL) command -v g++ >/dev/null 2>&1 || echo "g++ is not installed on your system! Please note that most of the tests need g++."; \
+ 	EXPECT=$(EXPECT); export EXPECT; \
+ 	runtest=$(RUNTEST); \
+ 	if [ -z "$$runtest" ]; then runtest=runtest; fi; \
+@@ -606,7 +609,7 @@
+ 		    $(RUNTESTFLAGS); \
+ 	  fi; \
+ 	else echo "WARNING: could not find \`runtest'" 1>&2; :;\
+-	fi
++	fi)
+ 
+ check-am:
+ 	$(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
+diff -uNr a/libstdc++-v3/testsuite/buildtest.exp b/libstdc++-v3/testsuite/buildtest.exp
+--- a/libstdc++-v3/testsuite/buildtest.exp	1970-01-01 01:00:00.000000000 +0100
++++ b/libstdc++-v3/testsuite/buildtest.exp	2013-08-14 09:25:57.773587133 +0200
+@@ -0,0 +1,33 @@
++# Copyright (C) 2013 Free Software Foundation, Inc.
++#
++# This program is free software; you can redistribute it and/or modify
++# it under the terms of the GNU General Public License as published by
++# the Free Software Foundation; either version 3 of the License, or
++# (at your option) any later version.
++# 
++# This program is distributed in the hope that it will be useful,
++# but WITHOUT ANY WARRANTY; without even the implied warranty of
++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++# GNU General Public License for more details.
++# 
++# You should have received a copy of the GNU General Public License
++# along with this program; see the file COPYING3.  If not see
++# <http://www.gnu.org/licenses/>.
++
++# If there is no baseline file, or we can't find the library, skip
++# this test. Or, hey, if we don't support this kind of symbol
++# versioning test: don't run it.
++
++
++set baseline_subdir "[eval exec $cxx $baseline_subdir_switch]"
++
++# Build the support objects.
++v3-build_support
++
++# Build the abi_check program.
++if { [v3_target_compile "$srcdir/util/testsuite_abi_check.cc" "abi_check" \
++      "executable" [list "additional_flags=-w"]] != "" } {
++    error "could not compile testsuite_abi_check.cc"
++}
++
++
+diff -uNr a/libstdc++-v3/testsuite/libstdc++-abi/abi.exp b/libstdc++-v3/testsuite/libstdc++-abi/abi.exp
+--- a/libstdc++-v3/testsuite/libstdc++-abi/abi.exp	2013-08-09 10:02:56.769743266 +0200
++++ b/libstdc++-v3/testsuite/libstdc++-abi/abi.exp	2013-08-14 09:27:15.722299887 +0200
+@@ -24,11 +24,6 @@
+     set lib $blddir/src/.libs/libstdc++.so
+ }
+ 
+-set baseline_subdir "[eval exec $cxx $baseline_subdir_switch]"
+-
+-# Build the support objects.
+-v3-build_support
+-
+ if { (${v3-symver} == 0) || ![info exists baseline_dir] \
+ 	 || ![file exists $baseline_dir] \
+ 	 || ![file exists $lib] } {
+@@ -50,12 +45,6 @@
+ remote_exec "build" "$objdir/../scripts/extract_symvers" \
+     [list $lib "current_symbols.txt"]
+ 
+-# Build the abi_check program.
+-if { [v3_target_compile "$srcdir/util/testsuite_abi_check.cc" "abi_check" \
+-      "executable" [list "additional_flags=-w"]] != "" } {
+-    error "could not compile testsuite_abi_check.cc"
+-}
+-
+ remote_download "target" $baseline_file "baseline_symbols.txt"
+ remote_download "target" "current_symbols.txt" "current_symbols.txt"
+ set result [${tool}_load "./abi_check" \
+diff -uNr a/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp b/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp
+--- a/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp	2013-08-09 13:06:20.795174486 +0200
++++ b/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp	2013-08-23 13:25:31.290856664 +0200
+@@ -21,9 +21,6 @@
+ # Initialization.
+ dg-init
+ 
+-# Build the support objects.
+-v3-build_support
+-
+ set tests [list]
+ 
+ # If there is a "testsuite_files" file, use it.
+diff -uNr a/libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp b/libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp
+--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp	2013-08-09 13:08:17.946244225 +0200
++++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp	2013-08-09 13:31:19.812003255 +0200
+@@ -17,7 +17,6 @@
+ load_lib gdb-test.exp
+ 
+ dg-init
+-v3-build_support
+ 
+ global GDB
+ if ![info exists ::env(GUALITY_GDB_NAME)] {
diff --git a/meta/recipes-devtools/gcc/gcc-4.8/run-ptest b/meta/recipes-devtools/gcc/gcc-4.8/run-ptest
new file mode 100644
index 0000000..36eccc3
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.8/run-ptest
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+make -C libstdc++-v3/testsuite -i check | sed -e 's/ERROR/FAIL/' -e 's/XFAIL/PASS/' -e 's/XPASS/FAIL/' -e 's/UNRESOLVED/SKIP/' -e 's/UNTESTED/SKIP/' -e 's/UNSUPPORTED/SKIP/'
diff --git a/meta/recipes-devtools/gcc/gcc-common.inc b/meta/recipes-devtools/gcc/gcc-common.inc
index d20be9f..b1d87fb 100644
--- a/meta/recipes-devtools/gcc/gcc-common.inc
+++ b/meta/recipes-devtools/gcc/gcc-common.inc
@@ -5,7 +5,7 @@ LICENSE = "GPL"
 
 NATIVEDEPS = ""
 
-inherit autotools gettext
+inherit autotools gettext ptest
 
 def get_gcc_fpu_setting(bb, d):
     if d.getVar('ARMPKGSFX_EABI', True) == "hf" and d.getVar('TRANSLATED_TARGET_ARCH', True) == "arm":
diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc b/meta/recipes-devtools/gcc/gcc-runtime.inc
index b882889..69a7897 100644
--- a/meta/recipes-devtools/gcc/gcc-runtime.inc
+++ b/meta/recipes-devtools/gcc/gcc-runtime.inc
@@ -9,7 +9,8 @@ EXTRA_OECONF_PATHS = " \
 
 ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_INCDIR}"
 
-EXTRA_OECONF += "--disable-libunwind-exceptions"
+EXTRA_OECONF += "--disable-libunwind-exceptions \
+                 ${@base_contains('DISTRO_FEATURES', 'ptest', 1, 0, d)}"
 EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu"
 
 RUNTIMETARGET = "libssp libstdc++-v3 libgomp"
@@ -57,6 +58,23 @@ do_install () {
 	chown -R root:root ${D}
 }
 
+RDEPENDS_${PN}-ptest = "dejagnu make"
+
+do_configure_ptest() {
+    if [ "${PN}" = "${BPN}" ]; then
+        mkdir -p ${D}${PTEST_PATH}
+        cp ${S}/../run-ptest ${WORKDIR}
+    fi
+}
+
+do_compile_ptest() {
+    oe_runmake -C ${B}/${TARGET_SYS}/libstdc++-v3/testsuite buildtest-TESTS
+}
+
+do_install_ptest() {
+    oe_runmake -C ${B}/${TARGET_SYS}/libstdc++-v3 install-ptest DEST_DIR=${D}${PTEST_PATH} SOURCE_DIR=${S} BUILD_DIR=${B}/${TARGET_SYS} REPLACE_DIR=${PTEST_PATH}
+}
+
 INHIBIT_DEFAULT_DEPS = "1"
 DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++ libgcc"
 PROVIDES = "virtual/${TARGET_PREFIX}compilerlibs"
@@ -81,6 +99,7 @@ PACKAGES = "\
   libgomp \
   libgomp-dev \
   libgomp-staticdev \
+  ${@base_contains('DISTRO_FEATURES', 'ptest', '${PN}-ptest', '', d)} \
 "
 # The base package doesn't exist, so we clear the recommends.
 RRECOMMENDS_${PN}-dbg = ""
-- 
1.7.10.4



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 3/3] gcc-runtime: Add ptest
  2013-09-06 13:38 ` [PATCH 3/3] gcc-runtime: Add ptest Mihaela Sendrea
@ 2013-09-06 14:34   ` Richard Purdie
  2013-09-06 18:22   ` Saul Wold
  1 sibling, 0 replies; 5+ messages in thread
From: Richard Purdie @ 2013-09-06 14:34 UTC (permalink / raw)
  To: Mihaela Sendrea; +Cc: openembedded-core

On Fri, 2013-09-06 at 15:38 +0200, Mihaela Sendrea wrote:
> libstdc++-v3 tests need g++ installed on the target, otherwise the
> majority of the tests will fail.

Shouldn't that be listed in RDEPENDS then? I'm guessing the problem is
that adds the target gcc into the build and kills performance? :/

Rather tricky :(

Cheers,

Richard




^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 3/3] gcc-runtime: Add ptest
  2013-09-06 13:38 ` [PATCH 3/3] gcc-runtime: Add ptest Mihaela Sendrea
  2013-09-06 14:34   ` Richard Purdie
@ 2013-09-06 18:22   ` Saul Wold
  1 sibling, 0 replies; 5+ messages in thread
From: Saul Wold @ 2013-09-06 18:22 UTC (permalink / raw)
  To: Mihaela Sendrea; +Cc: openembedded-core

On 09/06/2013 06:38 AM, Mihaela Sendrea wrote:
> libstdc++-v3 tests need g++ installed on the target, otherwise the
> majority of the tests will fail.
> The v3-build_support (initial support for objects needed for the test
> suite) is built separately at build time, to be able to still run and
> see the testcases and their output: PASS/FAIL/SKIP.
>
> Signed-off-by: Mihaela Sendrea <mihaela.sendrea@enea.com>
> ---
>   meta/recipes-devtools/gcc/gcc-4.8.inc              |    2 +
>   .../gcc-4.8/add-install-ptest-to-Makefile.patch    |  162 ++++++++++++++++++++
>   meta/recipes-devtools/gcc/gcc-4.8/run-ptest        |    3 +
>   meta/recipes-devtools/gcc/gcc-common.inc           |    2 +-
>   meta/recipes-devtools/gcc/gcc-runtime.inc          |   21 ++-
>   5 files changed, 188 insertions(+), 2 deletions(-)
>   create mode 100644 meta/recipes-devtools/gcc/gcc-4.8/add-install-ptest-to-Makefile.patch
>   create mode 100644 meta/recipes-devtools/gcc/gcc-4.8/run-ptest
>
> diff --git a/meta/recipes-devtools/gcc/gcc-4.8.inc b/meta/recipes-devtools/gcc/gcc-4.8.inc
> index 0fbbc1d..9632e6f 100644
> --- a/meta/recipes-devtools/gcc/gcc-4.8.inc
> +++ b/meta/recipes-devtools/gcc/gcc-4.8.inc
> @@ -75,6 +75,8 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
>   	   file://0043-cpp.patch \
>   	   file://0044-gengtypes.patch \
>   	   file://0045-gcc-4.8-PR57717-PowerPC-E500v2.patch \
> +	   file://add-install-ptest-to-Makefile.patch \
> +	   file://run-ptest \
>   	  "
>   SRC_URI[md5sum] = "3b2386c114cd74185aa3754b58a79304"
>   SRC_URI[sha256sum] = "545b44be3ad9f2c4e90e6880f5c9d4f0a8f0e5f67e1ffb0d45da9fa01bb05813"
> diff --git a/meta/recipes-devtools/gcc/gcc-4.8/add-install-ptest-to-Makefile.patch b/meta/recipes-devtools/gcc/gcc-4.8/add-install-ptest-to-Makefile.patch
> new file mode 100644
> index 0000000..3dedde5
> --- /dev/null
> +++ b/meta/recipes-devtools/gcc/gcc-4.8/add-install-ptest-to-Makefile.patch
> @@ -0,0 +1,162 @@
> +Add 'install-ptest' rule.
> +
> +Signed-off-by: Mihaela Sendrea <mihaela.sendrea@enea.com>
> +Upstream-status: Pending

A small nit, status should bu Upstream-Status:

Sau!



> +---
> +diff -uNr a/libstdc++-v3/Makefile.in b/libstdc++-v3/Makefile.in
> +--- a/libstdc++-v3/Makefile.in	2013-07-01 13:01:43.659958328 +0200
> ++++ b/libstdc++-v3/Makefile.in	2013-08-23 13:22:41.962029555 +0200
> +@@ -710,6 +710,26 @@
> + dvi:
> + install-dvi:
> +
> ++spath=$(subst /,\/,$(SOURCE_DIR))
> ++bpath=$(subst /,\/,$(BUILD_DIR))
> ++rpath=$(subst /,\/,$(REPLACE_DIR))
> ++install-ptest:
> ++	mkdir -p $(DEST_DIR)/gcc/testsuite
> ++	mkdir -p $(DEST_DIR)/libstdc++-v3
> ++	mkdir -p $(DEST_DIR)/contrib
> ++	cp -r $(SOURCE_DIR)/libstdc++-v3/testsuite $(DEST_DIR)/libstdc++-v3
> ++	cp    $(SOURCE_DIR)/contrib/dg-extract-results.sh $(DEST_DIR)/contrib
> ++	cp    $(SOURCE_DIR)/gcc/BASE-VER $(DEST_DIR)/gcc
> ++	cp -r $(SOURCE_DIR)/gcc/testsuite/lib $(DEST_DIR)/gcc/testsuite
> ++	cp -r $(SOURCE_DIR)/libstdc++-v3/scripts $(DEST_DIR)/libstdc++-v3
> ++	cp $(BUILD_DIR)/libstdc++-v3/scripts/* $(DEST_DIR)/libstdc++-v3/scripts
> ++	cp $(BUILD_DIR)/libstdc++-v3/testsuite/Makefile	$(DEST_DIR)/libstdc++-v3/testsuite
> ++	cp $(BUILD_DIR)/libstdc++-v3/Makefile $(DEST_DIR)/libstdc++-v3
> ++	sed -i -e 's|^Makefile:|_Makefile:|' $(DEST_DIR)/libstdc++-v3/testsuite/Makefile
> ++	sed -i -e "s/$(spath)/$(rpath)/g" -e "s/$(bpath)/$(rpath)/g" $(DEST_DIR)/libstdc++-v3/testsuite/Makefile
> ++	sed -i -e "s/$(spath)/$(rpath)/g" -e "s/$(bpath)/$(rpath)/g" $(DEST_DIR)/libstdc++-v3/Makefile
> ++	sed -i -e 's/RUNTESTDEFAULTFLAGS.=/RUNTESTDEFAULTFLAGS =-a/g' ${DEST_DIR}/libstdc++-v3/testsuite/Makefile
> ++
> + # All the machinations with string instantiations messes up the
> + # automake-generated TAGS rule. Make a simple one here.
> + TAGS: tags-recursive $(LISP)
> +diff -uNr a/libstdc++-v3/testsuite/Makefile.in b/libstdc++-v3/testsuite/Makefile.in
> +--- a/libstdc++-v3/testsuite/Makefile.in	2013-07-05 16:06:08.995480821 +0200
> ++++ b/libstdc++-v3/testsuite/Makefile.in	2013-08-26 08:50:04.698546942 +0200
> +@@ -478,6 +478,8 @@
> + 	maintainer-clean-generic mostlyclean mostlyclean-generic \
> + 	mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
> +
> ++buildtest-TESTS:
> ++	-@runtest $(AM_RUNTESTFLAGS) --tool libstdc++ $(RUNTESTFLAGS) buildtest.exp
> +
> + # This rule generates all of the testsuite_files* lists at once.
> + ${lists_of_files}:
> +@@ -545,7 +547,7 @@
> +
> + # Run the testsuite in normal mode.
> + check-DEJAGNU $(check_DEJAGNU_normal_targets): check-DEJAGNU%: site.exp
> +-	AR="$(AR)"; export AR; \
> ++	-@(AR="$(AR)"; export AR; \
> + 	RANLIB="$(RANLIB)"; export RANLIB; \
> + 	if [ -z "$*$(filter-out --target_board=%, $(RUNTESTFLAGS))" ] \
> + 	    && [ "$(filter -j, $(MFLAGS))" = "-j" ]; then \
> +@@ -563,6 +565,7 @@
> + 	  exit 0; \
> + 	fi; \
> + 	srcdir=`$(am__cd) $(srcdir) && pwd`; export srcdir; \
> ++	$(SHELL) command -v g++ >/dev/null 2>&1 || echo "g++ is not installed on your system! Please note that most of the tests need g++."; \
> + 	EXPECT=$(EXPECT); export EXPECT; \
> + 	runtest=$(RUNTEST); \
> + 	if [ -z "$$runtest" ]; then runtest=runtest; fi; \
> +@@ -606,7 +609,7 @@
> + 		    $(RUNTESTFLAGS); \
> + 	  fi; \
> + 	else echo "WARNING: could not find \`runtest'" 1>&2; :;\
> +-	fi
> ++	fi)
> +
> + check-am:
> + 	$(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
> +diff -uNr a/libstdc++-v3/testsuite/buildtest.exp b/libstdc++-v3/testsuite/buildtest.exp
> +--- a/libstdc++-v3/testsuite/buildtest.exp	1970-01-01 01:00:00.000000000 +0100
> ++++ b/libstdc++-v3/testsuite/buildtest.exp	2013-08-14 09:25:57.773587133 +0200
> +@@ -0,0 +1,33 @@
> ++# Copyright (C) 2013 Free Software Foundation, Inc.
> ++#
> ++# This program is free software; you can redistribute it and/or modify
> ++# it under the terms of the GNU General Public License as published by
> ++# the Free Software Foundation; either version 3 of the License, or
> ++# (at your option) any later version.
> ++#
> ++# This program is distributed in the hope that it will be useful,
> ++# but WITHOUT ANY WARRANTY; without even the implied warranty of
> ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
> ++# GNU General Public License for more details.
> ++#
> ++# You should have received a copy of the GNU General Public License
> ++# along with this program; see the file COPYING3.  If not see
> ++# <http://www.gnu.org/licenses/>.
> ++
> ++# If there is no baseline file, or we can't find the library, skip
> ++# this test. Or, hey, if we don't support this kind of symbol
> ++# versioning test: don't run it.
> ++
> ++
> ++set baseline_subdir "[eval exec $cxx $baseline_subdir_switch]"
> ++
> ++# Build the support objects.
> ++v3-build_support
> ++
> ++# Build the abi_check program.
> ++if { [v3_target_compile "$srcdir/util/testsuite_abi_check.cc" "abi_check" \
> ++      "executable" [list "additional_flags=-w"]] != "" } {
> ++    error "could not compile testsuite_abi_check.cc"
> ++}
> ++
> ++
> +diff -uNr a/libstdc++-v3/testsuite/libstdc++-abi/abi.exp b/libstdc++-v3/testsuite/libstdc++-abi/abi.exp
> +--- a/libstdc++-v3/testsuite/libstdc++-abi/abi.exp	2013-08-09 10:02:56.769743266 +0200
> ++++ b/libstdc++-v3/testsuite/libstdc++-abi/abi.exp	2013-08-14 09:27:15.722299887 +0200
> +@@ -24,11 +24,6 @@
> +     set lib $blddir/src/.libs/libstdc++.so
> + }
> +
> +-set baseline_subdir "[eval exec $cxx $baseline_subdir_switch]"
> +-
> +-# Build the support objects.
> +-v3-build_support
> +-
> + if { (${v3-symver} == 0) || ![info exists baseline_dir] \
> + 	 || ![file exists $baseline_dir] \
> + 	 || ![file exists $lib] } {
> +@@ -50,12 +45,6 @@
> + remote_exec "build" "$objdir/../scripts/extract_symvers" \
> +     [list $lib "current_symbols.txt"]
> +
> +-# Build the abi_check program.
> +-if { [v3_target_compile "$srcdir/util/testsuite_abi_check.cc" "abi_check" \
> +-      "executable" [list "additional_flags=-w"]] != "" } {
> +-    error "could not compile testsuite_abi_check.cc"
> +-}
> +-
> + remote_download "target" $baseline_file "baseline_symbols.txt"
> + remote_download "target" "current_symbols.txt" "current_symbols.txt"
> + set result [${tool}_load "./abi_check" \
> +diff -uNr a/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp b/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp
> +--- a/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp	2013-08-09 13:06:20.795174486 +0200
> ++++ b/libstdc++-v3/testsuite/libstdc++-dg/conformance.exp	2013-08-23 13:25:31.290856664 +0200
> +@@ -21,9 +21,6 @@
> + # Initialization.
> + dg-init
> +
> +-# Build the support objects.
> +-v3-build_support
> +-
> + set tests [list]
> +
> + # If there is a "testsuite_files" file, use it.
> +diff -uNr a/libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp b/libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp
> +--- a/libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp	2013-08-09 13:08:17.946244225 +0200
> ++++ b/libstdc++-v3/testsuite/libstdc++-prettyprinters/prettyprinters.exp	2013-08-09 13:31:19.812003255 +0200
> +@@ -17,7 +17,6 @@
> + load_lib gdb-test.exp
> +
> + dg-init
> +-v3-build_support
> +
> + global GDB
> + if ![info exists ::env(GUALITY_GDB_NAME)] {
> diff --git a/meta/recipes-devtools/gcc/gcc-4.8/run-ptest b/meta/recipes-devtools/gcc/gcc-4.8/run-ptest
> new file mode 100644
> index 0000000..36eccc3
> --- /dev/null
> +++ b/meta/recipes-devtools/gcc/gcc-4.8/run-ptest
> @@ -0,0 +1,3 @@
> +#!/bin/sh
> +
> +make -C libstdc++-v3/testsuite -i check | sed -e 's/ERROR/FAIL/' -e 's/XFAIL/PASS/' -e 's/XPASS/FAIL/' -e 's/UNRESOLVED/SKIP/' -e 's/UNTESTED/SKIP/' -e 's/UNSUPPORTED/SKIP/'
> diff --git a/meta/recipes-devtools/gcc/gcc-common.inc b/meta/recipes-devtools/gcc/gcc-common.inc
> index d20be9f..b1d87fb 100644
> --- a/meta/recipes-devtools/gcc/gcc-common.inc
> +++ b/meta/recipes-devtools/gcc/gcc-common.inc
> @@ -5,7 +5,7 @@ LICENSE = "GPL"
>
>   NATIVEDEPS = ""
>
> -inherit autotools gettext
> +inherit autotools gettext ptest
>
>   def get_gcc_fpu_setting(bb, d):
>       if d.getVar('ARMPKGSFX_EABI', True) == "hf" and d.getVar('TRANSLATED_TARGET_ARCH', True) == "arm":
> diff --git a/meta/recipes-devtools/gcc/gcc-runtime.inc b/meta/recipes-devtools/gcc/gcc-runtime.inc
> index b882889..69a7897 100644
> --- a/meta/recipes-devtools/gcc/gcc-runtime.inc
> +++ b/meta/recipes-devtools/gcc/gcc-runtime.inc
> @@ -9,7 +9,8 @@ EXTRA_OECONF_PATHS = " \
>
>   ARCH_FLAGS_FOR_TARGET += "-isystem${STAGING_INCDIR}"
>
> -EXTRA_OECONF += "--disable-libunwind-exceptions"
> +EXTRA_OECONF += "--disable-libunwind-exceptions \
> +                 ${@base_contains('DISTRO_FEATURES', 'ptest', 1, 0, d)}"
>   EXTRA_OECONF_append_linuxstdbase = " --enable-clocale=gnu"
>
>   RUNTIMETARGET = "libssp libstdc++-v3 libgomp"
> @@ -57,6 +58,23 @@ do_install () {
>   	chown -R root:root ${D}
>   }
>
> +RDEPENDS_${PN}-ptest = "dejagnu make"
> +
> +do_configure_ptest() {
> +    if [ "${PN}" = "${BPN}" ]; then
> +        mkdir -p ${D}${PTEST_PATH}
> +        cp ${S}/../run-ptest ${WORKDIR}
> +    fi
> +}
> +
> +do_compile_ptest() {
> +    oe_runmake -C ${B}/${TARGET_SYS}/libstdc++-v3/testsuite buildtest-TESTS
> +}
> +
> +do_install_ptest() {
> +    oe_runmake -C ${B}/${TARGET_SYS}/libstdc++-v3 install-ptest DEST_DIR=${D}${PTEST_PATH} SOURCE_DIR=${S} BUILD_DIR=${B}/${TARGET_SYS} REPLACE_DIR=${PTEST_PATH}
> +}
> +
>   INHIBIT_DEFAULT_DEPS = "1"
>   DEPENDS = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}g++ libgcc"
>   PROVIDES = "virtual/${TARGET_PREFIX}compilerlibs"
> @@ -81,6 +99,7 @@ PACKAGES = "\
>     libgomp \
>     libgomp-dev \
>     libgomp-staticdev \
> +  ${@base_contains('DISTRO_FEATURES', 'ptest', '${PN}-ptest', '', d)} \
>   "
>   # The base package doesn't exist, so we clear the recommends.
>   RRECOMMENDS_${PN}-dbg = ""
>


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-09-06 18:23 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-06 13:38 [PATCH 1/3] dejagnu: Add recipe Mihaela Sendrea
2013-09-06 13:38 ` [PATCH 2/3] expect: " Mihaela Sendrea
2013-09-06 13:38 ` [PATCH 3/3] gcc-runtime: Add ptest Mihaela Sendrea
2013-09-06 14:34   ` Richard Purdie
2013-09-06 18:22   ` Saul Wold

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox