| Submitter | Alexandru DAMIAN |
|---|---|
| Date | March 11, 2013, 3:26 p.m. |
| Message ID | <1363015599-26709-1-git-send-email-alexandru.damian@intel.com> |
| Download | mbox | patch |
| Permalink | /patch/45939/ |
| State | New |
| Headers | show |
Comments
Please fix the subject to reflect which recipe you are affecting. grep: Always use locale.h (see below also) On 03/11/2013 08:26 AM, Alex DAMIAN wrote: > From: Alexandru DAMIAN <alexandru.damian@intel.com> > > The changes in the grep 2.5 configuration always leave out > HAVE_LOCALE_H - it has been removed from other files, but > not from everywhere. > > This leads to a crash in certain configurations where the > size of int is not the size of pointer due to using > setlocale() while being undeclared. > Nice pickup on fixing this bug! > [YOCTO #3959] > --- > .../grep/grep-2.5.1a/fix64-int-to-pointer.patch | 17 +++++++++++++++++ > meta/recipes-extended/grep/grep_2.5.1a.bb | 3 ++- > 2 files changed, 19 insertions(+), 1 deletion(-) > create mode 100644 meta/recipes-extended/grep/grep-2.5.1a/fix64-int-to-pointer.patch > > diff --git a/meta/recipes-extended/grep/grep-2.5.1a/fix64-int-to-pointer.patch b/meta/recipes-extended/grep/grep-2.5.1a/fix64-int-to-pointer.patch > new file mode 100644 > index 0000000..3b91520 > --- /dev/null > +++ b/meta/recipes-extended/grep/grep-2.5.1a/fix64-int-to-pointer.patch > @@ -0,0 +1,17 @@ > +Always use locale.h as HAVE_LOCALE_H is no longer handled by ./configure > +Upstream-Status: Inappropriate [ old version that will not be maintained ] > +Signed-off-by: Alex DAMIAN <alexandru.damian@intel.com> > + > +diff --recursive --unified grep-2.5.1a-orig/lib/hard-locale.c grep-2.5.1a/lib/hard-locale.c > +--- grep-2.5.1a-orig/lib/hard-locale.c 2001-03-04 07:33:12.000000000 +0200 > ++++ grep-2.5.1a/lib/hard-locale.c 2013-03-11 17:05:52.086444891 +0200 > +@@ -38,9 +38,7 @@ > + # endif > + #endif > + > +-#if HAVE_LOCALE_H > + # include <locale.h> > +-#endif > + > + #if HAVE_STRING_H > + # include <string.h> > diff --git a/meta/recipes-extended/grep/grep_2.5.1a.bb b/meta/recipes-extended/grep/grep_2.5.1a.bb > index ebcbe23..b534066 100644 > --- a/meta/recipes-extended/grep/grep_2.5.1a.bb > +++ b/meta/recipes-extended/grep/grep_2.5.1a.bb > @@ -11,6 +11,7 @@ SRC_URI = "${GNU_MIRROR}/grep/grep-${PV}.tar.bz2 \ > file://uclibc-fix.patch \ > file://grep_fix_for_automake-1.12.patch \ > file://gettext.patch \ > + file://fix64-int-to-pointer.patch \ > file://Makevars \ > " > > @@ -21,7 +22,7 @@ inherit autotools gettext > > EXTRA_OECONF = "--disable-perl-regexp --disable-ncurses" > > -CFLAGS += "-D PROTOTYPES" > +CFLAGS += "-O0 -D PROTOTYPES" You are also changing the CFLAGS here, does this need to be removed or documented. Sau! > do_configure_prepend () { > rm -f ${S}/m4/init.m4 > cp -f ${WORKDIR}/Makevars ${S}/po/ >
Patch
diff --git a/meta/recipes-extended/grep/grep-2.5.1a/fix64-int-to-pointer.patch b/meta/recipes-extended/grep/grep-2.5.1a/fix64-int-to-pointer.patch new file mode 100644 index 0000000..3b91520 --- /dev/null +++ b/meta/recipes-extended/grep/grep-2.5.1a/fix64-int-to-pointer.patch @@ -0,0 +1,17 @@ +Always use locale.h as HAVE_LOCALE_H is no longer handled by ./configure +Upstream-Status: Inappropriate [ old version that will not be maintained ] +Signed-off-by: Alex DAMIAN <alexandru.damian@intel.com> + +diff --recursive --unified grep-2.5.1a-orig/lib/hard-locale.c grep-2.5.1a/lib/hard-locale.c +--- grep-2.5.1a-orig/lib/hard-locale.c 2001-03-04 07:33:12.000000000 +0200 ++++ grep-2.5.1a/lib/hard-locale.c 2013-03-11 17:05:52.086444891 +0200 +@@ -38,9 +38,7 @@ + # endif + #endif + +-#if HAVE_LOCALE_H + # include <locale.h> +-#endif + + #if HAVE_STRING_H + # include <string.h> diff --git a/meta/recipes-extended/grep/grep_2.5.1a.bb b/meta/recipes-extended/grep/grep_2.5.1a.bb index ebcbe23..b534066 100644 --- a/meta/recipes-extended/grep/grep_2.5.1a.bb +++ b/meta/recipes-extended/grep/grep_2.5.1a.bb @@ -11,6 +11,7 @@ SRC_URI = "${GNU_MIRROR}/grep/grep-${PV}.tar.bz2 \ file://uclibc-fix.patch \ file://grep_fix_for_automake-1.12.patch \ file://gettext.patch \ + file://fix64-int-to-pointer.patch \ file://Makevars \ " @@ -21,7 +22,7 @@ inherit autotools gettext EXTRA_OECONF = "--disable-perl-regexp --disable-ncurses" -CFLAGS += "-D PROTOTYPES" +CFLAGS += "-O0 -D PROTOTYPES" do_configure_prepend () { rm -f ${S}/m4/init.m4 cp -f ${WORKDIR}/Makevars ${S}/po/
From: Alexandru DAMIAN <alexandru.damian@intel.com> The changes in the grep 2.5 configuration always leave out HAVE_LOCALE_H - it has been removed from other files, but not from everywhere. This leads to a crash in certain configurations where the size of int is not the size of pointer due to using setlocale() while being undeclared. [YOCTO #3959] --- .../grep/grep-2.5.1a/fix64-int-to-pointer.patch | 17 +++++++++++++++++ meta/recipes-extended/grep/grep_2.5.1a.bb | 3 ++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 meta/recipes-extended/grep/grep-2.5.1a/fix64-int-to-pointer.patch