]> code.ossystems Code Review - openembedded-core.git/commitdiff
eglibc: fix build with poky-tiny distro
authorNitin A Kamble <nitin.a.kamble@intel.com>
Wed, 9 May 2012 20:42:45 +0000 (13:42 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 11 May 2012 16:50:35 +0000 (17:50 +0100)
This fixes bug [YOCTO #2443]

The prototype of findidx() has changed, but the code in xregex.c is
still using the old prototype. This issue stayed hidden because this
code only gets excercised when OPTION_POSIX_REGEXP_GLIBC is disabled
in the eglibc configuration.
  See the patch for further information.

Signed-off-by: Nitin A Kamble <nitin.a.kamble@intel.com>
meta/recipes-core/eglibc/eglibc-2.15/eglibc_fix_findidx_parameters.patch [new file with mode: 0644]
meta/recipes-core/eglibc/eglibc_2.15.bb

diff --git a/meta/recipes-core/eglibc/eglibc-2.15/eglibc_fix_findidx_parameters.patch b/meta/recipes-core/eglibc/eglibc-2.15/eglibc_fix_findidx_parameters.patch
new file mode 100644 (file)
index 0000000..bbf4605
--- /dev/null
@@ -0,0 +1,38 @@
+Upstream-Status: backport
+
+Imported patch from: http://www.eglibc.org/archives/patches/msg01124.html
+
+Signed-Off-By: Nitin A Kamble <nitin.a.kamble@intel.com>
+2012/05/09
+
+Index: libc/posix/xregex.c
+===================================================================
+--- libc.orig/posix/xregex.c
++++ libc/posix/xregex.c
+@@ -2943,7 +2943,7 @@ PREFIX(regex_compile) (const char *ARG_P
+                                 _NL_CURRENT (LC_COLLATE,
+                                              _NL_COLLATE_INDIRECTWC);
+-                              idx = findidx ((const wint_t**)&cp);
++                              idx = findidx ((const wint_t**)&cp, -1);
+                               if (idx == 0 || cp < (wint_t*) str + c1)
+                                 /* This is no valid character.  */
+                                 FREE_STACK_RETURN (REG_ECOLLATE);
+@@ -3392,7 +3392,7 @@ PREFIX(regex_compile) (const char *ARG_P
+                           indirect = (const int32_t *)
+                             _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB);
+-                          idx = findidx (&cp);
++                          idx = findidx (&cp, -1);
+                           if (idx == 0 || cp < str + c1)
+                             /* This is no valid character.  */
+                             FREE_STACK_RETURN (REG_ECOLLATE);
+@@ -6363,7 +6363,7 @@ byte_re_match_2_internal (struct re_patt
+                     }
+                   str_buf[i] = TRANSLATE(*(d+i));
+                   str_buf[i+1] = '\0'; /* sentinel */
+-                  idx2 = findidx ((const wint_t**)&cp);
++                  idx2 = findidx ((const wint_t**)&cp, -1);
+                 }
+               /* Update d, however d will be incremented at
index 65ce9d3cbc75addfbe83dfb97624e1d63cfbc933..340ec9930f20f4ac9ec9dbe3f8ff9f0b4336fb7c 100644 (file)
@@ -3,7 +3,7 @@ require eglibc.inc
 SRCREV = "17386"
 
 DEPENDS += "gperf-native"
-PR = "r9"
+PR = "r10"
 PR_append = "+svnr${SRCPV}"
 
 EGLIBC_BRANCH="eglibc-2_15"
@@ -24,6 +24,7 @@ SRC_URI = "svn://www.eglibc.org/svn/branches/;module=${EGLIBC_BRANCH};proto=http
            file://GLRO_dl_debug_mask.patch \
            file://initgroups_keys.patch \
            file://use-localstatedir-for-vardbdir.patch \
+           file://eglibc_fix_findidx_parameters.patch \
           "
 LIC_FILES_CHKSUM = "file://LICENSES;md5=98a1128c4b58120182cbea3b1752d8b9 \
       file://COPYING;md5=393a5ca445f6965873eca0259a17f833 \