summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/eglibc
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2011-12-16 14:33:38 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-12-19 09:29:18 +0000
commit45987c5135d22757ed2eb06b37e192d73309f59f (patch)
tree9b4ca0be013dbc1bbf8dbdc19c53f0c2104390e9 /meta/recipes-core/eglibc
parentaf9c75c8f5249728877770e3040cbc46c0038f30 (diff)
downloadpoky-45987c5135d22757ed2eb06b37e192d73309f59f.tar.gz
eglibc: Fixes for running regression tests
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 (From OE-Core rev: dc1fbfb2cd3c0d35f212523189ea7b1621906201) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-core/eglibc')
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.13/shorten-build-commands.patch82
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.13/use-sysroot-cxx-headers.patch36
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.14/shorten-build-commands.patch82
-rw-r--r--meta/recipes-core/eglibc/eglibc-2.14/use-sysroot-cxx-headers.patch36
-rw-r--r--meta/recipes-core/eglibc/eglibc-testing.inc4
-rw-r--r--meta/recipes-core/eglibc/eglibc_2.13.bb4
-rw-r--r--meta/recipes-core/eglibc/eglibc_2.14.bb4
7 files changed, 77 insertions, 171 deletions
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 080568d9c2..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.13/shorten-build-commands.patch
+++ /dev/null
@@ -1,82 +0,0 @@
1
2Source: http://sourceware.org/ml/libc-alpha/2010-03/msg00064.html
3
4This patch scratches an itch. Each individual gcc command in the
5glibc build is over 1K, which means it takes up a good chunk of my
6terminal. Most of that is include paths. Any version of GCC new
7enough to build glibc supports response files, which were added in
82005. So use a response file for the static list of include paths.
9Now the build commands are a lot shorter, and easier to use when
10developing glibc.
11
12Tested on x86_64-linux-gnu. Please apply if acceptable.
13
14--
15Daniel Jacobowitz
16CodeSourcery
17
182010-03-30 Daniel Jacobowitz <dan@codesourcery.com>
19
20 * Makeconfig (+common-includes): Define.
21 (+includes): Use @$(common-objpfx)includes.
22 * Makefile (postclean): Remove includes and includes.mk.
23 * Makerules ($(common-objpfx)includes.mk): Include and create
24 includes.mk. Create includes.
25
26Upstream-Status: Pending
27
28Index: libc/Makeconfig
29===================================================================
30--- libc.orig/Makeconfig 2009-10-13 22:55:12.000000000 -0700
31+++ libc/Makeconfig 2010-03-31 16:02:37.120489733 -0700
32@@ -678,9 +678,10 @@ endif # $(+cflags) == ""
33 # library source directory, in the include directory, and in the
34 # current directory.
35 +sysdep-includes = $(addprefix -I,$(+sysdep_dirs))
36++common-includes = $(+sysdep-includes) $(includes) $(sysincludes)
37 +includes = -I$(..)include $(if $(subdir),$(objpfx:%/=-I%)) \
38- $(+sysdep-includes) $(includes) \
39- $(patsubst %/,-I%,$(..)) $(libio-include) -I. $(sysincludes)
40+ @$(common-objpfx)includes \
41+ $(patsubst %/,-I%,$(..)) $(libio-include) -I.
42
43 # Since libio has several internal header files, we use a -I instead
44 # of many little headers in the include directory.
45Index: libc/Makefile
46===================================================================
47--- libc.orig/Makefile 2009-12-09 12:06:28.000000000 -0800
48+++ libc/Makefile 2010-03-31 16:02:37.132481508 -0700
49@@ -247,7 +247,7 @@ parent-mostlyclean: common-mostlyclean #
50 parent-clean: parent-mostlyclean common-clean
51
52 postclean = $(addprefix $(common-objpfx),$(postclean-generated)) \
53- $(addprefix $(objpfx),sysd-dirs sysd-rules) \
54+ $(addprefix $(objpfx),sysd-dirs sysd-rules includes includes.mk) \
55 $(addprefix $(objpfx),sysd-sorted soversions.mk soversions.i)
56
57 clean: parent-clean
58Index: libc/Makerules
59===================================================================
60--- libc.orig/Makerules 2009-12-09 12:06:28.000000000 -0800
61+++ libc/Makerules 2010-03-31 16:02:37.140481645 -0700
62@@ -254,6 +254,20 @@ ifndef sysd-rules-done
63 no_deps=t
64 endif
65
66+-include $(common-objpfx)includes.mk
67+ifneq ($(+common-includes),$(saved-includes))
68+# Recreate includes.mk (and includes).
69+includes-force = FORCE
70+FORCE:
71+endif
72+$(common-objpfx)includes.mk: $(includes-force)
73+ -@rm -f $@T $(common-objpfx)includesT
74+ for inc in $(+common-includes); do echo "$$inc"; done \
75+ > $(common-objpfx)includesT
76+ mv -f $(common-objpfx)includesT $(common-objpfx)includes
77+ echo 'saved-includes := $(+common-includes)' > $@T
78+ mv -f $@T $@
79+
80 define o-iterator-doit
81 $(objpfx)%$o: %.S $(before-compile); $$(compile-command.S)
82 endef
diff --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 0000000000..c06eebfac4
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.13/use-sysroot-cxx-headers.patch
@@ -0,0 +1,36 @@
1build system of glibc currently adds the cxx headers path by detecting
2it using provided CXX and expects that they are installed w.r.t to standard
3installation location but in OE we install and use cxx headers from target
4sysroot therefore that code needs to be adapted for OE
5
6Upstream-Status: Inappropriate [OE-specific]
7
8-Khem
9
10
11--- a/configure.in
12+++ b/configure.in
13@@ -1118,9 +1118,8 @@ if test -n "$sysheaders"; then
14 SYSINCLUDES="$SYSINCLUDES \
15 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
16 if test -n "$CXX"; then
17- cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
18 cxxmachine=`$CXX -dumpmachine 2>&AS_MESSAGE_LOG_FD` &&
19- cxxheaders=`$CXX -print-file-name=../../../../include/c++/`"$cxxversion" &&
20+ cxxheaders=`$CXX -print-sysroot`"$prefix/include/c++" &&
21 CXX_SYSINCLUDES="-isystem $cxxheaders \
22 -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
23 fi
24--- a/configure
25+++ b/configure
26@@ -5544,9 +5544,8 @@ if test -n "$sysheaders"; then
27 SYSINCLUDES="$SYSINCLUDES \
28 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
29 if test -n "$CXX"; then
30- cxxversion=`$CXX -dumpversion 2>&5` &&
31 cxxmachine=`$CXX -dumpmachine 2>&5` &&
32- cxxheaders=`$CXX -print-file-name=../../../../include/c++/`"$cxxversion" &&
33+ cxxheaders=`$CXX -print-sysroot`"$prefix/include/c++" &&
34 CXX_SYSINCLUDES="-isystem $cxxheaders \
35 -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
36 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 080568d9c2..0000000000
--- a/meta/recipes-core/eglibc/eglibc-2.14/shorten-build-commands.patch
+++ /dev/null
@@ -1,82 +0,0 @@
1
2Source: http://sourceware.org/ml/libc-alpha/2010-03/msg00064.html
3
4This patch scratches an itch. Each individual gcc command in the
5glibc build is over 1K, which means it takes up a good chunk of my
6terminal. Most of that is include paths. Any version of GCC new
7enough to build glibc supports response files, which were added in
82005. So use a response file for the static list of include paths.
9Now the build commands are a lot shorter, and easier to use when
10developing glibc.
11
12Tested on x86_64-linux-gnu. Please apply if acceptable.
13
14--
15Daniel Jacobowitz
16CodeSourcery
17
182010-03-30 Daniel Jacobowitz <dan@codesourcery.com>
19
20 * Makeconfig (+common-includes): Define.
21 (+includes): Use @$(common-objpfx)includes.
22 * Makefile (postclean): Remove includes and includes.mk.
23 * Makerules ($(common-objpfx)includes.mk): Include and create
24 includes.mk. Create includes.
25
26Upstream-Status: Pending
27
28Index: libc/Makeconfig
29===================================================================
30--- libc.orig/Makeconfig 2009-10-13 22:55:12.000000000 -0700
31+++ libc/Makeconfig 2010-03-31 16:02:37.120489733 -0700
32@@ -678,9 +678,10 @@ endif # $(+cflags) == ""
33 # library source directory, in the include directory, and in the
34 # current directory.
35 +sysdep-includes = $(addprefix -I,$(+sysdep_dirs))
36++common-includes = $(+sysdep-includes) $(includes) $(sysincludes)
37 +includes = -I$(..)include $(if $(subdir),$(objpfx:%/=-I%)) \
38- $(+sysdep-includes) $(includes) \
39- $(patsubst %/,-I%,$(..)) $(libio-include) -I. $(sysincludes)
40+ @$(common-objpfx)includes \
41+ $(patsubst %/,-I%,$(..)) $(libio-include) -I.
42
43 # Since libio has several internal header files, we use a -I instead
44 # of many little headers in the include directory.
45Index: libc/Makefile
46===================================================================
47--- libc.orig/Makefile 2009-12-09 12:06:28.000000000 -0800
48+++ libc/Makefile 2010-03-31 16:02:37.132481508 -0700
49@@ -247,7 +247,7 @@ parent-mostlyclean: common-mostlyclean #
50 parent-clean: parent-mostlyclean common-clean
51
52 postclean = $(addprefix $(common-objpfx),$(postclean-generated)) \
53- $(addprefix $(objpfx),sysd-dirs sysd-rules) \
54+ $(addprefix $(objpfx),sysd-dirs sysd-rules includes includes.mk) \
55 $(addprefix $(objpfx),sysd-sorted soversions.mk soversions.i)
56
57 clean: parent-clean
58Index: libc/Makerules
59===================================================================
60--- libc.orig/Makerules 2009-12-09 12:06:28.000000000 -0800
61+++ libc/Makerules 2010-03-31 16:02:37.140481645 -0700
62@@ -254,6 +254,20 @@ ifndef sysd-rules-done
63 no_deps=t
64 endif
65
66+-include $(common-objpfx)includes.mk
67+ifneq ($(+common-includes),$(saved-includes))
68+# Recreate includes.mk (and includes).
69+includes-force = FORCE
70+FORCE:
71+endif
72+$(common-objpfx)includes.mk: $(includes-force)
73+ -@rm -f $@T $(common-objpfx)includesT
74+ for inc in $(+common-includes); do echo "$$inc"; done \
75+ > $(common-objpfx)includesT
76+ mv -f $(common-objpfx)includesT $(common-objpfx)includes
77+ echo 'saved-includes := $(+common-includes)' > $@T
78+ mv -f $@T $@
79+
80 define o-iterator-doit
81 $(objpfx)%$o: %.S $(before-compile); $$(compile-command.S)
82 endef
diff --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 0000000000..c06eebfac4
--- /dev/null
+++ b/meta/recipes-core/eglibc/eglibc-2.14/use-sysroot-cxx-headers.patch
@@ -0,0 +1,36 @@
1build system of glibc currently adds the cxx headers path by detecting
2it using provided CXX and expects that they are installed w.r.t to standard
3installation location but in OE we install and use cxx headers from target
4sysroot therefore that code needs to be adapted for OE
5
6Upstream-Status: Inappropriate [OE-specific]
7
8-Khem
9
10
11--- a/configure.in
12+++ b/configure.in
13@@ -1118,9 +1118,8 @@ if test -n "$sysheaders"; then
14 SYSINCLUDES="$SYSINCLUDES \
15 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
16 if test -n "$CXX"; then
17- cxxversion=`$CXX -dumpversion 2>&AS_MESSAGE_LOG_FD` &&
18 cxxmachine=`$CXX -dumpmachine 2>&AS_MESSAGE_LOG_FD` &&
19- cxxheaders=`$CXX -print-file-name=../../../../include/c++/`"$cxxversion" &&
20+ cxxheaders=`$CXX -print-sysroot`"$prefix/include/c++" &&
21 CXX_SYSINCLUDES="-isystem $cxxheaders \
22 -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
23 fi
24--- a/configure
25+++ b/configure
26@@ -5544,9 +5544,8 @@ if test -n "$sysheaders"; then
27 SYSINCLUDES="$SYSINCLUDES \
28 -isystem `echo $sysheaders | sed 's/:/ -isystem /g'`"
29 if test -n "$CXX"; then
30- cxxversion=`$CXX -dumpversion 2>&5` &&
31 cxxmachine=`$CXX -dumpmachine 2>&5` &&
32- cxxheaders=`$CXX -print-file-name=../../../../include/c++/`"$cxxversion" &&
33+ cxxheaders=`$CXX -print-sysroot`"$prefix/include/c++" &&
34 CXX_SYSINCLUDES="-isystem $cxxheaders \
35 -isystem $cxxheaders/$cxxmachine -isystem $cxxheaders/backward"
36 fi
diff --git a/meta/recipes-core/eglibc/eglibc-testing.inc b/meta/recipes-core/eglibc/eglibc-testing.inc
index 2cd7c6ab14..c30409fb94 100644
--- a/meta/recipes-core/eglibc/eglibc-testing.inc
+++ b/meta/recipes-core/eglibc/eglibc-testing.inc
@@ -66,10 +66,8 @@ fi
66 echo "# we test using cross compiler from real sysroot therefore override the" > ${B}/configparms 66 echo "# we test using cross compiler from real sysroot therefore override the" > ${B}/configparms
67 echo "# definitions that come from ${B}/config.make" >> ${B}/configparms 67 echo "# definitions that come from ${B}/config.make" >> ${B}/configparms
68 68
69 echo "CC = ${CC}" >> ${B}/configparms 69 fgrep tcbootstrap ${B}/config.make > ${B}/configparms
70 echo "CXX = ${CXX}" >> ${B}/configparms
71 sed -i -e "s/\-tcbootstrap//g" ${B}/configparms 70 sed -i -e "s/\-tcbootstrap//g" ${B}/configparms
72
73wrapper="${S}/scripts/cross-test-ssh.sh \$target" 71wrapper="${S}/scripts/cross-test-ssh.sh \$target"
74localedef="${STAGING_BINDIR_NATIVE}/cross-localedef --little-endian --uint32-align=4" 72localedef="${STAGING_BINDIR_NATIVE}/cross-localedef --little-endian --uint32-align=4"
75make tests-clean 73make tests-clean
diff --git a/meta/recipes-core/eglibc/eglibc_2.13.bb b/meta/recipes-core/eglibc/eglibc_2.13.bb
index 9d3ec85af6..8555985335 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
3SRCREV = "15508" 3SRCREV = "15508"
4 4
5DEPENDS += "gperf-native" 5DEPENDS += "gperf-native"
6PR = "r19" 6PR = "r20"
7PR_append = "+svnr${SRCPV}" 7PR_append = "+svnr${SRCPV}"
8 8
9EGLIBC_BRANCH="eglibc-2_13" 9EGLIBC_BRANCH="eglibc-2_13"
10SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http \ 10SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http \
11 file://eglibc-svn-arm-lowlevellock-include-tls.patch \ 11 file://eglibc-svn-arm-lowlevellock-include-tls.patch \
12 file://IO-acquire-lock-fix.patch \ 12 file://IO-acquire-lock-fix.patch \
13 file://shorten-build-commands.patch \
14 file://mips-rld-map-check.patch \ 13 file://mips-rld-map-check.patch \
15 file://stack-protector-test.patch \ 14 file://stack-protector-test.patch \
16 file://armv4-eabi-compile-fix.patch \ 15 file://armv4-eabi-compile-fix.patch \
@@ -18,6 +17,7 @@ SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http
18 file://generate-supported.mk \ 17 file://generate-supported.mk \
19 file://ppc-sqrt.patch \ 18 file://ppc-sqrt.patch \
20 file://multilib_readlib.patch \ 19 file://multilib_readlib.patch \
20 file://use-sysroot-cxx-headers.patch \
21 " 21 "
22LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \ 22LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \
23 file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \ 23 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 8553106766..ad2161e1dd 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
3SRCREV = "15870" 3SRCREV = "15870"
4 4
5DEPENDS += "gperf-native" 5DEPENDS += "gperf-native"
6PR = "r2" 6PR = "r3"
7PR_append = "+svnr${SRCPV}" 7PR_append = "+svnr${SRCPV}"
8 8
9EGLIBC_BRANCH="eglibc-2_14" 9EGLIBC_BRANCH="eglibc-2_14"
10SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http \ 10SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http \
11 file://eglibc-svn-arm-lowlevellock-include-tls.patch \ 11 file://eglibc-svn-arm-lowlevellock-include-tls.patch \
12 file://IO-acquire-lock-fix.patch \ 12 file://IO-acquire-lock-fix.patch \
13 file://shorten-build-commands.patch \
14 file://mips-rld-map-check.patch \ 13 file://mips-rld-map-check.patch \
15 file://stack-protector-test.patch \ 14 file://stack-protector-test.patch \
16 file://armv4-eabi-compile-fix.patch \ 15 file://armv4-eabi-compile-fix.patch \
@@ -20,6 +19,7 @@ SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http
20 file://multilib_readlib.patch \ 19 file://multilib_readlib.patch \
21 file://eglibc-rpc-export-again.patch \ 20 file://eglibc-rpc-export-again.patch \
22 file://glibc-2.14-libdl-crash.patch \ 21 file://glibc-2.14-libdl-crash.patch \
22 file://use-sysroot-cxx-headers.patch \
23 " 23 "
24LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \ 24LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \
25 file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \ 25 file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \