summaryrefslogtreecommitdiffstats
path: root/meta/recipes-extended
diff options
context:
space:
mode:
authorChristopher Larson <chris_larson@mentor.com>2012-11-14 07:55:09 -0700
committerRichard Purdie <richard.purdie@linuxfoundation.org>2012-11-14 15:58:08 +0000
commit1fd9a16d2a4594a4e9179dc7353ac51ce32eb712 (patch)
treebab1377bacffc78c8f7b775ea410517ec4e9106e /meta/recipes-extended
parentaa75269454ebe7498e59fc2d6ca1fa43ce4b74bd (diff)
downloadpoky-1fd9a16d2a4594a4e9179dc7353ac51ce32eb712.tar.gz
bash: fix mkbuiltins build failure
On hosts with FORTIFY_SOURCES, stringize support is required, as it's used by the macros to wrap functions (e.g. read and open in unistd.h). Those wrappers use the STRING() macro from unistd.h. A header in the bash sources overrides the unistd.h macro to 'x' when HAVE_STRINGIZE is not defined, causing the wrappers to generate calls to 'xread' and 'xopen', which do not exist, resulting in a failure to link. Assume we have stringize support when cross-compiling, which works around the issue. It may be best for upstream to either give up on supporting compilers without stringize support, or to not define STRING() at all when FORTIFY_SOURCES is defined, letting the unistd.h one be used, instead. (From OE-Core rev: f7a25dd72d1d463eb72d48c6f9dd968d376496c0) Signed-off-by: Christopher Larson <chris_larson@mentor.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-extended')
-rw-r--r--meta/recipes-extended/bash/bash-4.2/mkbuiltins_have_stringize.patch26
-rw-r--r--meta/recipes-extended/bash/bash_4.2.bb3
2 files changed, 28 insertions, 1 deletions
diff --git a/meta/recipes-extended/bash/bash-4.2/mkbuiltins_have_stringize.patch b/meta/recipes-extended/bash/bash-4.2/mkbuiltins_have_stringize.patch
new file mode 100644
index 0000000000..a9391d6cac
--- /dev/null
+++ b/meta/recipes-extended/bash/bash-4.2/mkbuiltins_have_stringize.patch
@@ -0,0 +1,26 @@
1On hosts with FORTIFY_SOURCES, stringize support is required, as it's used by
2the macros to wrap functions (e.g. read and open in unistd.h). Those wrappers
3use the STRING() macro from unistd.h. A header in the bash sources overrides
4the unistd.h macro to 'x' when HAVE_STRINGIZE is not defined, causing the
5wrappers to generate calls to 'xread' and 'xopen', which do not exist,
6resulting in a failure to link.
7
8Assume we have stringize support when cross-compiling, which works around the
9issue.
10
11It may be best for upstream to either give up on supporting compilers without
12stringize support, or to not define STRING() at all when FORTIFY_SOURCES is
13defined, letting the unistd.h one be used, instead.
14
15Upstream-Status: Pending
16
17--- bash-4.2.orig/builtins/mkbuiltins.c
18+++ bash-4.2/builtins/mkbuiltins.c
19@@ -28,6 +28,7 @@
20 # define HAVE_STDLIB_H
21
22 # define HAVE_RENAME
23+# define HAVE_STRINGIZE
24 #endif /* CROSS_COMPILING */
25
26 #if defined (HAVE_UNISTD_H)
diff --git a/meta/recipes-extended/bash/bash_4.2.bb b/meta/recipes-extended/bash/bash_4.2.bb
index 5a0f015c79..07dda09e83 100644
--- a/meta/recipes-extended/bash/bash_4.2.bb
+++ b/meta/recipes-extended/bash/bash_4.2.bb
@@ -4,7 +4,7 @@ require bash.inc
4LICENSE = "GPLv3+" 4LICENSE = "GPLv3+"
5LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504" 5LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
6 6
7PR = "r5" 7PR = "r6"
8 8
9SRC_URI = "${GNU_MIRROR}/bash/${BPN}-${PV}.tar.gz;name=tarball \ 9SRC_URI = "${GNU_MIRROR}/bash/${BPN}-${PV}.tar.gz;name=tarball \
10 ${GNU_MIRROR}/bash/bash-4.2-patches/bash42-001;apply=yes;striplevel=0;name=patch001 \ 10 ${GNU_MIRROR}/bash/bash-4.2-patches/bash42-001;apply=yes;striplevel=0;name=patch001 \
@@ -18,6 +18,7 @@ SRC_URI = "${GNU_MIRROR}/bash/${BPN}-${PV}.tar.gz;name=tarball \
18 ${GNU_MIRROR}/bash/bash-4.2-patches/bash42-009;apply=yes;striplevel=0;name=patch009 \ 18 ${GNU_MIRROR}/bash/bash-4.2-patches/bash42-009;apply=yes;striplevel=0;name=patch009 \
19 ${GNU_MIRROR}/bash/bash-4.2-patches/bash42-010;apply=yes;striplevel=0;name=patch010 \ 19 ${GNU_MIRROR}/bash/bash-4.2-patches/bash42-010;apply=yes;striplevel=0;name=patch010 \
20 file://execute_cmd.patch;striplevel=0 \ 20 file://execute_cmd.patch;striplevel=0 \
21 file://mkbuiltins_have_stringize.patch \
21 " 22 "
22 23
23SRC_URI[tarball.md5sum] = "3fb927c7c33022f1c327f14a81c0d4b0" 24SRC_URI[tarball.md5sum] = "3fb927c7c33022f1c327f14a81c0d4b0"