From: Khem Raj <raj.khem@gmail.com>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH 4/4] eglibc: Fixes for running regression tests
Date: Fri, 16 Dec 2011 14:33:38 -0800 [thread overview]
Message-ID: <ba562cb8461b23e9bdc8c9606e8ac39404e7a2d3.1324074518.git.raj.khem@gmail.com> (raw)
In-Reply-To: <afc34eae803b41745a8731bd29c93bb4558ba87d.1324074518.git.raj.khem@gmail.com>
In-Reply-To: <cover.1324074518.git.raj.khem@gmail.com>
Override cxx-sysincludes along with CC and CXX
since it contains path pointing to tcbootstrap
sysroot which does not have c++ headers and libraries
Drop shorten-build-commands patch since it
did not override the include flags for c++ headers
when tests written in c++ are executed the @includes file
does not get updated to add c++ header paths
This patch only reduced the build output anyway
Add a patch to point eglibc to look into c++
headers the way OE installs them its not standard
install e.g. usr/include/c++/GCC_VER but instead
usr/include/c++. This lets g++ find the headers
in right place when compiling c++ testcases
Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
.../eglibc-2.13/shorten-build-commands.patch | 82 --------------------
| 36 +++++++++
.../eglibc-2.14/shorten-build-commands.patch | 82 --------------------
| 36 +++++++++
meta/recipes-core/eglibc/eglibc-testing.inc | 4 +-
meta/recipes-core/eglibc/eglibc_2.13.bb | 4 +-
meta/recipes-core/eglibc/eglibc_2.14.bb | 4 +-
7 files changed, 77 insertions(+), 171 deletions(-)
delete mode 100644 meta/recipes-core/eglibc/eglibc-2.13/shorten-build-commands.patch
create mode 100644 meta/recipes-core/eglibc/eglibc-2.13/use-sysroot-cxx-headers.patch
delete mode 100644 meta/recipes-core/eglibc/eglibc-2.14/shorten-build-commands.patch
create mode 100644 meta/recipes-core/eglibc/eglibc-2.14/use-sysroot-cxx-headers.patch
diff --git a/meta/recipes-core/eglibc/eglibc-2.13/shorten-build-commands.patch b/meta/recipes-core/eglibc/eglibc-2.13/shorten-build-commands.patch
deleted file mode 100644
index 080568d..0000000
--- a/meta/recipes-core/eglibc/eglibc-2.13/shorten-build-commands.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-
-Source: http://sourceware.org/ml/libc-alpha/2010-03/msg00064.html
-
-This patch scratches an itch. Each individual gcc command in the
-glibc build is over 1K, which means it takes up a good chunk of my
-terminal. Most of that is include paths. Any version of GCC new
-enough to build glibc supports response files, which were added in
-2005. So use a response file for the static list of include paths.
-Now the build commands are a lot shorter, and easier to use when
-developing glibc.
-
-Tested on x86_64-linux-gnu. Please apply if acceptable.
-
---
-Daniel Jacobowitz
-CodeSourcery
-
-2010-03-30 Daniel Jacobowitz <dan@codesourcery.com>
-
- * Makeconfig (+common-includes): Define.
- (+includes): Use @$(common-objpfx)includes.
- * Makefile (postclean): Remove includes and includes.mk.
- * Makerules ($(common-objpfx)includes.mk): Include and create
- includes.mk. Create includes.
-
-Upstream-Status: Pending
-
-Index: libc/Makeconfig
-===================================================================
---- libc.orig/Makeconfig 2009-10-13 22:55:12.000000000 -0700
-+++ libc/Makeconfig 2010-03-31 16:02:37.120489733 -0700
-@@ -678,9 +678,10 @@ endif # $(+cflags) == ""
- # library source directory, in the include directory, and in the
- # current directory.
- +sysdep-includes = $(addprefix -I,$(+sysdep_dirs))
-++common-includes = $(+sysdep-includes) $(includes) $(sysincludes)
- +includes = -I$(..)include $(if $(subdir),$(objpfx:%/=-I%)) \
-- $(+sysdep-includes) $(includes) \
-- $(patsubst %/,-I%,$(..)) $(libio-include) -I. $(sysincludes)
-+ @$(common-objpfx)includes \
-+ $(patsubst %/,-I%,$(..)) $(libio-include) -I.
-
- # Since libio has several internal header files, we use a -I instead
- # of many little headers in the include directory.
-Index: libc/Makefile
-===================================================================
---- libc.orig/Makefile 2009-12-09 12:06:28.000000000 -0800
-+++ libc/Makefile 2010-03-31 16:02:37.132481508 -0700
-@@ -247,7 +247,7 @@ parent-mostlyclean: common-mostlyclean #
- parent-clean: parent-mostlyclean common-clean
-
- postclean = $(addprefix $(common-objpfx),$(postclean-generated)) \
-- $(addprefix $(objpfx),sysd-dirs sysd-rules) \
-+ $(addprefix $(objpfx),sysd-dirs sysd-rules includes includes.mk) \
- $(addprefix $(objpfx),sysd-sorted soversions.mk soversions.i)
-
- clean: parent-clean
-Index: libc/Makerules
-===================================================================
---- libc.orig/Makerules 2009-12-09 12:06:28.000000000 -0800
-+++ libc/Makerules 2010-03-31 16:02:37.140481645 -0700
-@@ -254,6 +254,20 @@ ifndef sysd-rules-done
- no_deps=t
- endif
-
-+-include $(common-objpfx)includes.mk
-+ifneq ($(+common-includes),$(saved-includes))
-+# Recreate includes.mk (and includes).
-+includes-force = FORCE
-+FORCE:
-+endif
-+$(common-objpfx)includes.mk: $(includes-force)
-+ -@rm -f $@T $(common-objpfx)includesT
-+ for inc in $(+common-includes); do echo "$$inc"; done \
-+ > $(common-objpfx)includesT
-+ mv -f $(common-objpfx)includesT $(common-objpfx)includes
-+ echo 'saved-includes := $(+common-includes)' > $@T
-+ mv -f $@T $@
-+
- define o-iterator-doit
- $(objpfx)%$o: %.S $(before-compile); $$(compile-command.S)
- endef
--git a/meta/recipes-core/eglibc/eglibc-2.13/use-sysroot-cxx-headers.patch b/meta/recipes-core/eglibc/eglibc-2.13/use-sysroot-cxx-headers.patch
new file mode 100644
index 0000000..c06eebf
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.13/use-sysroot-cxx-headers.patch
@@ -0,0 +1,36 @@
+build system of glibc currently adds the cxx headers path by detecting
+it using provided CXX and expects that they are installed w.r.t to standard
+installation location but in OE we install and use cxx headers from target
+sysroot therefore that code needs to be adapted for OE
+
+Upstream-Status: Inappropriate [OE-specific]
+
+-Khem
+
+
+--- a/configure.in
++++ b/configure.in
+@@ -1118,9 +1118,8 @@ if test -n "$sysheaders"; then
+ SYSINCLUDES="$SYSINCLUDES \
+ -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
+ if test -n "$CXX"; then
+- cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
+ cxxmachine=`$CXX -dumpmachine 2>&AS_MESSAGE_LOG_FD` &&
+- cxxheaders=`$CXX -print-file-name=../../../../include/c++/`"$cxxversion" &&
++ cxxheaders=`$CXX -print-sysroot`"$prefix/include/c++" &&
+ CXX_SYSINCLUDES="-isystem $cxxheaders \
+ -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
+ fi
+--- a/configure
++++ b/configure
+@@ -5544,9 +5544,8 @@ if test -n "$sysheaders"; then
+ SYSINCLUDES="$SYSINCLUDES \
+ -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
+ if test -n "$CXX"; then
+- cxxversion=`$CXX -dumpversion 2>&5` &&
+ cxxmachine=`$CXX -dumpmachine 2>&5` &&
+- cxxheaders=`$CXX -print-file-name=../../../../include/c++/`"$cxxversion" &&
++ cxxheaders=`$CXX -print-sysroot`"$prefix/include/c++" &&
+ CXX_SYSINCLUDES="-isystem $cxxheaders \
+ -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
+ fi
diff --git a/meta/recipes-core/eglibc/eglibc-2.14/shorten-build-commands.patch b/meta/recipes-core/eglibc/eglibc-2.14/shorten-build-commands.patch
deleted file mode 100644
index 080568d..0000000
--- a/meta/recipes-core/eglibc/eglibc-2.14/shorten-build-commands.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-
-Source: http://sourceware.org/ml/libc-alpha/2010-03/msg00064.html
-
-This patch scratches an itch. Each individual gcc command in the
-glibc build is over 1K, which means it takes up a good chunk of my
-terminal. Most of that is include paths. Any version of GCC new
-enough to build glibc supports response files, which were added in
-2005. So use a response file for the static list of include paths.
-Now the build commands are a lot shorter, and easier to use when
-developing glibc.
-
-Tested on x86_64-linux-gnu. Please apply if acceptable.
-
---
-Daniel Jacobowitz
-CodeSourcery
-
-2010-03-30 Daniel Jacobowitz <dan@codesourcery.com>
-
- * Makeconfig (+common-includes): Define.
- (+includes): Use @$(common-objpfx)includes.
- * Makefile (postclean): Remove includes and includes.mk.
- * Makerules ($(common-objpfx)includes.mk): Include and create
- includes.mk. Create includes.
-
-Upstream-Status: Pending
-
-Index: libc/Makeconfig
-===================================================================
---- libc.orig/Makeconfig 2009-10-13 22:55:12.000000000 -0700
-+++ libc/Makeconfig 2010-03-31 16:02:37.120489733 -0700
-@@ -678,9 +678,10 @@ endif # $(+cflags) == ""
- # library source directory, in the include directory, and in the
- # current directory.
- +sysdep-includes = $(addprefix -I,$(+sysdep_dirs))
-++common-includes = $(+sysdep-includes) $(includes) $(sysincludes)
- +includes = -I$(..)include $(if $(subdir),$(objpfx:%/=-I%)) \
-- $(+sysdep-includes) $(includes) \
-- $(patsubst %/,-I%,$(..)) $(libio-include) -I. $(sysincludes)
-+ @$(common-objpfx)includes \
-+ $(patsubst %/,-I%,$(..)) $(libio-include) -I.
-
- # Since libio has several internal header files, we use a -I instead
- # of many little headers in the include directory.
-Index: libc/Makefile
-===================================================================
---- libc.orig/Makefile 2009-12-09 12:06:28.000000000 -0800
-+++ libc/Makefile 2010-03-31 16:02:37.132481508 -0700
-@@ -247,7 +247,7 @@ parent-mostlyclean: common-mostlyclean #
- parent-clean: parent-mostlyclean common-clean
-
- postclean = $(addprefix $(common-objpfx),$(postclean-generated)) \
-- $(addprefix $(objpfx),sysd-dirs sysd-rules) \
-+ $(addprefix $(objpfx),sysd-dirs sysd-rules includes includes.mk) \
- $(addprefix $(objpfx),sysd-sorted soversions.mk soversions.i)
-
- clean: parent-clean
-Index: libc/Makerules
-===================================================================
---- libc.orig/Makerules 2009-12-09 12:06:28.000000000 -0800
-+++ libc/Makerules 2010-03-31 16:02:37.140481645 -0700
-@@ -254,6 +254,20 @@ ifndef sysd-rules-done
- no_deps=t
- endif
-
-+-include $(common-objpfx)includes.mk
-+ifneq ($(+common-includes),$(saved-includes))
-+# Recreate includes.mk (and includes).
-+includes-force = FORCE
-+FORCE:
-+endif
-+$(common-objpfx)includes.mk: $(includes-force)
-+ -@rm -f $@T $(common-objpfx)includesT
-+ for inc in $(+common-includes); do echo "$$inc"; done \
-+ > $(common-objpfx)includesT
-+ mv -f $(common-objpfx)includesT $(common-objpfx)includes
-+ echo 'saved-includes := $(+common-includes)' > $@T
-+ mv -f $@T $@
-+
- define o-iterator-doit
- $(objpfx)%$o: %.S $(before-compile); $$(compile-command.S)
- endef
--git a/meta/recipes-core/eglibc/eglibc-2.14/use-sysroot-cxx-headers.patch b/meta/recipes-core/eglibc/eglibc-2.14/use-sysroot-cxx-headers.patch
new file mode 100644
index 0000000..c06eebf
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.14/use-sysroot-cxx-headers.patch
@@ -0,0 +1,36 @@
+build system of glibc currently adds the cxx headers path by detecting
+it using provided CXX and expects that they are installed w.r.t to standard
+installation location but in OE we install and use cxx headers from target
+sysroot therefore that code needs to be adapted for OE
+
+Upstream-Status: Inappropriate [OE-specific]
+
+-Khem
+
+
+--- a/configure.in
++++ b/configure.in
+@@ -1118,9 +1118,8 @@ if test -n "$sysheaders"; then
+ SYSINCLUDES="$SYSINCLUDES \
+ -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
+ if test -n "$CXX"; then
+- cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
+ cxxmachine=`$CXX -dumpmachine 2>&AS_MESSAGE_LOG_FD` &&
+- cxxheaders=`$CXX -print-file-name=../../../../include/c++/`"$cxxversion" &&
++ cxxheaders=`$CXX -print-sysroot`"$prefix/include/c++" &&
+ CXX_SYSINCLUDES="-isystem $cxxheaders \
+ -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
+ fi
+--- a/configure
++++ b/configure
+@@ -5544,9 +5544,8 @@ if test -n "$sysheaders"; then
+ SYSINCLUDES="$SYSINCLUDES \
+ -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
+ if test -n "$CXX"; then
+- cxxversion=`$CXX -dumpversion 2>&5` &&
+ cxxmachine=`$CXX -dumpmachine 2>&5` &&
+- cxxheaders=`$CXX -print-file-name=../../../../include/c++/`"$cxxversion" &&
++ cxxheaders=`$CXX -print-sysroot`"$prefix/include/c++" &&
+ CXX_SYSINCLUDES="-isystem $cxxheaders \
+ -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
+ fi
diff --git a/meta/recipes-core/eglibc/eglibc-testing.inc b/meta/recipes-core/eglibc/eglibc-testing.inc
index 2cd7c6a..c30409f 100644
--- a/meta/recipes-core/eglibc/eglibc-testing.inc
+++ b/meta/recipes-core/eglibc/eglibc-testing.inc
@@ -66,10 +66,8 @@ fi
echo "# we test using cross compiler from real sysroot therefore override the" > ${B}/configparms
echo "# definitions that come from ${B}/config.make" >> ${B}/configparms
- echo "CC = ${CC}" >> ${B}/configparms
- echo "CXX = ${CXX}" >> ${B}/configparms
+ fgrep tcbootstrap ${B}/config.make > ${B}/configparms
sed -i -e "s/\-tcbootstrap//g" ${B}/configparms
-
wrapper="${S}/scripts/cross-test-ssh.sh \$target"
localedef="${STAGING_BINDIR_NATIVE}/cross-localedef --little-endian --uint32-align=4"
make tests-clean
diff --git a/meta/recipes-core/eglibc/eglibc_2.13.bb b/meta/recipes-core/eglibc/eglibc_2.13.bb
index 9d3ec85..8555985 100644
--- a/meta/recipes-core/eglibc/eglibc_2.13.bb
+++ b/meta/recipes-core/eglibc/eglibc_2.13.bb
@@ -3,14 +3,13 @@ require eglibc.inc
SRCREV = "15508"
DEPENDS += "gperf-native"
-PR = "r19"
+PR = "r20"
PR_append = "+svnr${SRCPV}"
EGLIBC_BRANCH="eglibc-2_13"
SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http \
file://eglibc-svn-arm-lowlevellock-include-tls.patch \
file://IO-acquire-lock-fix.patch \
- file://shorten-build-commands.patch \
file://mips-rld-map-check.patch \
file://stack-protector-test.patch \
file://armv4-eabi-compile-fix.patch \
@@ -18,6 +17,7 @@ SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http
file://generate-supported.mk \
file://ppc-sqrt.patch \
file://multilib_readlib.patch \
+ file://use-sysroot-cxx-headers.patch \
"
LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \
file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \
diff --git a/meta/recipes-core/eglibc/eglibc_2.14.bb b/meta/recipes-core/eglibc/eglibc_2.14.bb
index 8553106..ad2161e 100644
--- a/meta/recipes-core/eglibc/eglibc_2.14.bb
+++ b/meta/recipes-core/eglibc/eglibc_2.14.bb
@@ -3,14 +3,13 @@ require eglibc.inc
SRCREV = "15870"
DEPENDS += "gperf-native"
-PR = "r2"
+PR = "r3"
PR_append = "+svnr${SRCPV}"
EGLIBC_BRANCH="eglibc-2_14"
SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http \
file://eglibc-svn-arm-lowlevellock-include-tls.patch \
file://IO-acquire-lock-fix.patch \
- file://shorten-build-commands.patch \
file://mips-rld-map-check.patch \
file://stack-protector-test.patch \
file://armv4-eabi-compile-fix.patch \
@@ -20,6 +19,7 @@ SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http
file://multilib_readlib.patch \
file://eglibc-rpc-export-again.patch \
file://glibc-2.14-libdl-crash.patch \
+ file://use-sysroot-cxx-headers.patch \
"
LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \
file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \
--
1.7.5.4
next prev parent reply other threads:[~2011-12-16 22:40 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-16 22:33 [PATCH 0/4] Add gcc cross test driver and improve eglibc testing Khem Raj
2011-12-16 22:33 ` [PATCH 1/4] eglibc-testing: Clean the test before running them Khem Raj
2011-12-16 22:33 ` [PATCH 2/4] gcc-cross: Add cross testing driver for running regression testsuites Khem Raj
2011-12-16 22:33 ` [PATCH 3/4] gcc-4.6: Let G++ relocate gxx-include-dir when using --sysroot option Khem Raj
2011-12-16 22:33 ` Khem Raj [this message]
2011-12-19 12:20 ` [PATCH 0/4] Add gcc cross test driver and improve eglibc testing Richard Purdie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=ba562cb8461b23e9bdc8c9606e8ac39404e7a2d3.1324074518.git.raj.khem@gmail.com \
--to=raj.khem@gmail.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.