Magellan Linux

Diff of /trunk/glibc/patches/glibc-2.22-roundup.patch

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2697 by niro, Mon Sep 21 09:23:25 2015 UTC revision 2711 by niro, Mon Nov 2 13:15:10 2015 UTC
# Line 1  Line 1 
1  diff --git a/ChangeLog b/ChangeLog  diff --git a/ChangeLog b/ChangeLog
2  index cb9124e..d0d2cbd 100644  index cb9124e..491d5c7 100644
3  --- a/ChangeLog  --- a/ChangeLog
4  +++ b/ChangeLog  +++ b/ChangeLog
5  @@ -1,3 +1,74 @@  @@ -1,3 +1,130 @@
6    +2015-10-09  Carlos O'Donell  <carlos@redhat.com>
7    +
8    + [BZ #18589]
9    + * string/bug-strcoll2.c: Adjust copyright, and remove contributed by.
10    + * string/Makefile ($(objpfx)bug-strcoll2.out): Depend on
11    + $(gen-locales).
12    +
13    +2015-10-08  Carlos O'Donell  <carlos@redhat.com>
14    +
15    + [BZ #18589]
16    + * string/Makefile (tests): Add bug-strcoll2.
17    + (LOCALES): Add cs_CZ.UTF-8.
18    +
19    +2015-09-28  Martin Sebor  <msebor@redhat.com>
20    +
21    + [BZ #18969]
22    + * string/Makefile (LOCALES): Define.
23    + (gen-locales.mk): Include.
24    + (test-strcasecmp.out, test-strncasecmp.out, tst-strxfrm.out)
25    + (tst-strxfrm2.out): Add deppendency on $(gen-locales).
26    + * string/tst-strxfrm2.c (do_test): Print the name of the locale
27    + on setlocale failure.
28    +
29    +2015-10-08  Carlos O'Donell  <carlos@redhat.com>
30    +
31    + [BZ #18589]
32    + * string/bug-strcoll2.c: New file.
33    + * locale/categories.def: Revert commit
34    + f13c2a8dff2329c6692a80176262ceaaf8a6f74e.
35    + * locale/langinfo.h: Likewise.
36    + * locale/localeinfo.h: Likewise.
37    + * locale/C-collate.c: Likewise.
38    + * programs/ld-collate.c (collate_output): Likewise.
39    + * string/strcoll_l.c (STRDIFF): Likewise.
40    + (STRCOLL): Likewise.
41    + * wcsmbs/wcscoll_l.c: Likewise.
42    +
43    +2015-09-15  Roland McGrath  <roland@hack.frob.com>
44    +
45    + * misc/sys/param.h [!MAXHOSTNAMELEN && HOST_NAME_MAX]
46    + (MAXHOSTNAMELEN): Define it to HOST_NAME_MAX.
47    +
48    +2015-09-11  Roland McGrath  <roland@hack.frob.com>
49    +
50    + * sysdeps/nacl/Makefile [$(subdir) = misc] (sysdep_headers):
51    + Use 'override' keyword to freeze the value here, preventing
52    + the addition of sys/mtio.h by sysdeps/gnu/Makefile.
53    +
54    +2015-09-04  Roland McGrath  <roland@hack.frob.com>
55    +
56    + [BZ #18921]
57    + * sysdeps/posix/opendir.c (need_isdir_precheck) [O_DIRECTORY]:
58    + Fix inverted sense of test of 'o_directory_works' value.
59    + Reported by Pádraig Brady <P@draigBrady.com>, diagnosed by
60    + Bernhard Voelker <mail@bernhard-voelker.de>.
61    +
62  +2015-08-31  Brett Neumeier <brett@neumeier.us>  +2015-08-31  Brett Neumeier <brett@neumeier.us>
63  +  +
64  + [BZ #18870]  + [BZ #18870]
# Line 78  index cb9124e..d0d2cbd 100644 Line 134  index cb9124e..d0d2cbd 100644
134    
135   * version.h (RELEASE): Set to "stable".   * version.h (RELEASE): Set to "stable".
136  diff --git a/NEWS b/NEWS  diff --git a/NEWS b/NEWS
137  index 4c31de7..ce0255a 100644  index 4c31de7..9b10bff 100644
138  --- a/NEWS  --- a/NEWS
139  +++ b/NEWS  +++ b/NEWS
140  @@ -5,6 +5,12 @@ See the end for copying conditions.  @@ -5,6 +5,12 @@ See the end for copying conditions.
# Line 89  index 4c31de7..ce0255a 100644 Line 145  index 4c31de7..ce0255a 100644
145  +  +
146  +* The following bugs are resolved with this release:  +* The following bugs are resolved with this release:
147  +  +
148  +  18778, 18781, 18787, 18796, 18870, 18887.  +  18589, 18778, 18781, 18787, 18796, 18870, 18887, 18921, 18969.
149  +  +
150   Version 2.22   Version 2.22
151    
# Line 286  index 539c2a2..b6ebae4 100644 Line 342  index 539c2a2..b6ebae4 100644
342     test_ftello ();     test_ftello ();
343    
344     return 0;     return 0;
345    diff --git a/locale/C-collate.c b/locale/C-collate.c
346    index d7f3c55..06dfdfa 100644
347    --- a/locale/C-collate.c
348    +++ b/locale/C-collate.c
349    @@ -144,8 +144,6 @@ const struct __locale_data _nl_C_LC_COLLATE attribute_hidden =
350         /* _NL_COLLATE_COLLSEQWC */
351         { .string = (const char *) collseqwc },
352         /* _NL_COLLATE_CODESET */
353    -    { .string = _nl_C_codeset },
354    -    /* _NL_COLLATE_ENCODING_TYPE */
355    -    { .word = __cet_8bit }
356    +    { .string = _nl_C_codeset }
357       }
358     };
359    diff --git a/locale/categories.def b/locale/categories.def
360    index 045489d..a8dda53 100644
361    --- a/locale/categories.def
362    +++ b/locale/categories.def
363    @@ -58,7 +58,6 @@ DEFINE_CATEGORY
364       DEFINE_ELEMENT (_NL_COLLATE_COLLSEQMB,        "collate-collseqmb",        std, wstring)
365       DEFINE_ELEMENT (_NL_COLLATE_COLLSEQWC,        "collate-collseqwc",        std, wstring)
366       DEFINE_ELEMENT (_NL_COLLATE_CODESET, "collate-codeset",    std, string)
367    -  DEFINE_ELEMENT (_NL_COLLATE_ENCODING_TYPE,   "collate-encoding-type",    std, word)
368       ), NO_POSTLOAD)
369    
370    
371    diff --git a/locale/langinfo.h b/locale/langinfo.h
372    index ffc5c7f..a565d9d 100644
373    --- a/locale/langinfo.h
374    +++ b/locale/langinfo.h
375    @@ -255,7 +255,6 @@ enum
376       _NL_COLLATE_COLLSEQMB,
377       _NL_COLLATE_COLLSEQWC,
378       _NL_COLLATE_CODESET,
379    -  _NL_COLLATE_ENCODING_TYPE,
380       _NL_NUM_LC_COLLATE,
381    
382       /* LC_CTYPE category: character classification.
383    diff --git a/locale/localeinfo.h b/locale/localeinfo.h
384    index bdab9fe..1d2ee00 100644
385    --- a/locale/localeinfo.h
386    +++ b/locale/localeinfo.h
387    @@ -110,14 +110,6 @@ enum coll_sort_rule
388       sort_mask
389     };
390    
391    -/* Collation encoding type.  */
392    -enum collation_encoding_type
393    -{
394    -  __cet_other,
395    -  __cet_8bit,
396    -  __cet_utf8
397    -};
398    -
399     /* We can map the types of the entries into a few categories.  */
400     enum value_type
401     {
402    diff --git a/locale/programs/ld-collate.c b/locale/programs/ld-collate.c
403    index a39a94f..dc0fe30 100644
404    --- a/locale/programs/ld-collate.c
405    +++ b/locale/programs/ld-collate.c
406    @@ -32,7 +32,6 @@
407     #include "linereader.h"
408     #include "locfile.h"
409     #include "elem-hash.h"
410    -#include "../localeinfo.h"
411    
412     /* Uncomment the following line in the production version.  */
413     /* #define NDEBUG 1 */
414    @@ -2131,8 +2130,6 @@ collate_output (struct localedef_t *locale, const struct charmap_t *charmap,
415      /* The words have to be handled specially.  */
416      if (idx == _NL_ITEM_INDEX (_NL_COLLATE_SYMB_HASH_SIZEMB))
417        add_locale_uint32 (&file, 0);
418    -  else if (idx == _NL_ITEM_INDEX (_NL_COLLATE_ENCODING_TYPE))
419    -    add_locale_uint32 (&file, __cet_other);
420      else
421        add_locale_empty (&file);
422     }
423    @@ -2496,12 +2493,6 @@ collate_output (struct localedef_t *locale, const struct charmap_t *charmap,
424       add_locale_raw_data (&file, collate->mbseqorder, 256);
425       add_locale_collseq_table (&file, &collate->wcseqorder);
426       add_locale_string (&file, charmap->code_set_name);
427    -  if (strcmp (charmap->code_set_name, "UTF-8") == 0)
428    -    add_locale_uint32 (&file, __cet_utf8);
429    -  else if (charmap->mb_cur_max == 1)
430    -    add_locale_uint32 (&file, __cet_8bit);
431    -  else
432    -    add_locale_uint32 (&file, __cet_other);
433       write_locale_data (output_path, LC_COLLATE, "LC_COLLATE", &file);
434    
435       obstack_free (&weightpool, NULL);
436  diff --git a/misc/Makefile b/misc/Makefile  diff --git a/misc/Makefile b/misc/Makefile
437  index aecb0da..2f5edf6 100644  index aecb0da..2f5edf6 100644
438  --- a/misc/Makefile  --- a/misc/Makefile
# Line 335  index 3460989..42394f7 100644 Line 482  index 3460989..42394f7 100644
482    
483      This header is provided only for backward compatibility.      This header is provided only for backward compatibility.
484      It will be removed in the next release of the GNU C Library.      It will be removed in the next release of the GNU C Library.
485    diff --git a/misc/sys/param.h b/misc/sys/param.h
486    index 62b7ed2..1908b93 100644
487    --- a/misc/sys/param.h
488    +++ b/misc/sys/param.h
489    @@ -50,6 +50,9 @@
490     #if !defined NOFILE && defined OPEN_MAX
491     # define NOFILE OPEN_MAX
492     #endif
493    +#if !defined MAXHOSTNAMELEN && defined HOST_NAME_MAX
494    +# define MAXHOSTNAMELEN HOST_NAME_MAX
495    +#endif
496     #ifndef NCARGS
497     # ifdef ARG_MAX
498     #  define NCARGS ARG_MAX
499  diff --git a/misc/tst-mntent-blank-corrupt.c b/misc/tst-mntent-blank-corrupt.c  diff --git a/misc/tst-mntent-blank-corrupt.c b/misc/tst-mntent-blank-corrupt.c
500  new file mode 100644  new file mode 100644
501  index 0000000..92266a3  index 0000000..92266a3
# Line 516  index cac1562..79b2b3e 100755 Line 677  index cac1562..79b2b3e 100755
677       if ($name ne "nss_ldap" && $name ne "db1"       if ($name ne "nss_ldap" && $name ne "db1"
678   && !($name =~/^nss1_/) && $name ne "thread_db"   && !($name =~/^nss1_/) && $name ne "thread_db"
679   && $name ne "nss_test1" && $name ne "libgcc_s") {   && $name ne "nss_test1" && $name ne "libgcc_s") {
680    diff --git a/string/Makefile b/string/Makefile
681    index 8424a61..ebe9354 100644
682    --- a/string/Makefile
683    +++ b/string/Makefile
684    @@ -54,7 +54,7 @@ tests := tester inl-tester noinl-tester testcopy test-ffs \
685       tst-strtok tst-strxfrm bug-strcoll1 tst-strfry \
686       bug-strtok1 $(addprefix test-,$(strop-tests)) \
687       bug-envz1 tst-strxfrm2 tst-endian tst-svc2 \
688    -   tst-strtok_r
689    +   tst-strtok_r bug-strcoll2
690    
691     xtests = tst-strcoll-overflow
692    
693    @@ -75,4 +75,17 @@ ifeq ($(run-built-tests),yes)
694     $(objpfx)tst-svc-cmp.out: tst-svc.expect $(objpfx)tst-svc.out
695     cmp $^ > $@; \
696     $(evaluate-test)
697    +
698    +LOCALES := de_DE.UTF-8 en_US.ISO-8859-1 en_US.UTF-8 \
699    +           tr_TR.ISO-8859-9 tr_TR.UTF-8 cs_CZ.UTF-8 \
700    +   da_DK.ISO-8859-1
701    +include ../gen-locales.mk
702    +
703    +$(objpfx)test-strcasecmp.out: $(gen-locales)
704    +$(objpfx)test-strncasecmp.out: $(gen-locales)
705    +$(objpfx)tst-strxfrm.out: $(gen-locales)
706    +$(objpfx)tst-strxfrm2.out: $(gen-locales)
707    +# bug-strcoll2 needs cs_CZ.UTF-8 and da_DK.ISO-8859-1.
708    +$(objpfx)bug-strcoll2.out: $(gen-locales)
709    +
710     endif
711    diff --git a/string/bug-strcoll2.c b/string/bug-strcoll2.c
712    new file mode 100644
713    index 0000000..72a9ff2
714    --- /dev/null
715    +++ b/string/bug-strcoll2.c
716    @@ -0,0 +1,92 @@
717    +/* Bug 18589: sort-test.sh fails at random.
718    +   Copyright (C) 2015 Free Software Foundation, Inc.
719    +   This file is part of the GNU C Library.
720    +
721    +   The GNU C Library is free software; you can redistribute it and/or
722    +   modify it under the terms of the GNU Lesser General Public
723    +   License as published by the Free Software Foundation; either
724    +   version 2.1 of the License, or (at your option) any later version.
725    +
726    +   The GNU C Library is distributed in the hope that it will be useful,
727    +   but WITHOUT ANY WARRANTY; without even the implied warranty of
728    +   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
729    +   Lesser General Public License for more details.
730    +
731    +   You should have received a copy of the GNU Lesser General Public
732    +   License along with the GNU C Library; if not, see
733    +   <http://www.gnu.org/licenses/>.  */
734    +
735    +#include <stdio.h>
736    +#include <string.h>
737    +#include <locale.h>
738    +
739    +/* An incorrect strcoll optimization resulted in incorrect
740    +   results from strcoll for cs_CZ and da_DK.  */
741    +
742    +int
743    +test_cs_CZ (void)
744    +{
745    +  const char t1[] = "config";
746    +  const char t2[] = "choose";
747    +  if (setlocale (LC_ALL, "cs_CZ.UTF-8") == NULL)
748    +    {
749    +      perror ("setlocale");
750    +      return 1;
751    +    }
752    +  /* In Czech the digraph ch sorts after c, therefore we expect
753    +     config to sort before choose.  */
754    +  int a = strcoll (t1, t2);
755    +  int b = strcoll (t2, t1);
756    +  printf ("strcoll (\"%s\", \"%s\") = %d\n", t1, t2, a);
757    +  printf ("strcoll (\"%s\", \"%s\") = %d\n", t2, t1, b);
758    +  if (a < 0 && b > 0)
759    +    {
760    +      puts ("PASS: config < choose");
761    +      return 0;
762    +    }
763    +  else
764    +    {
765    +      puts ("FAIL: Wrong sorting in cs_CZ.UTF-8.");
766    +      return 1;
767    +    }
768    +}
769    +
770    +int
771    +test_da_DK (void)
772    +{
773    +  const char t1[] = "AS";
774    +  const char t2[] = "AA";
775    +  if (setlocale (LC_ALL, "da_DK.ISO-8859-1") == NULL)
776    +    {
777    +      perror ("setlocale");
778    +      return 1;
779    +    }
780    +  /* AA should be treated as the last letter of the Danish alphabet,
781    +     hence sorting after AS.  */
782    +  int a = strcoll (t1, t2);
783    +  int b = strcoll (t2, t1);
784    +  printf ("strcoll (\"%s\", \"%s\") = %d\n", t1, t2, a);
785    +  printf ("strcoll (\"%s\", \"%s\") = %d\n", t2, t1, b);
786    +  if (a < 0 && b > 0)
787    +    {
788    +      puts ("PASS: AS < AA");
789    +      return 0;
790    +    }
791    +  else
792    +    {
793    +      puts ("FAIL: Wrong sorting in da_DK.ISO-8859-1");
794    +      return 1;
795    +    }
796    +}
797    +
798    +static int
799    +do_test (void)
800    +{
801    +  int err = 0;
802    +  err |= test_cs_CZ ();
803    +  err |= test_da_DK ();
804    +  return err;
805    +}
806    +
807    +#define TEST_FUNCTION do_test ()
808    +#include "../test-skeleton.c"
809    diff --git a/string/strcoll_l.c b/string/strcoll_l.c
810    index 8f1225f..35bc0e4 100644
811    --- a/string/strcoll_l.c
812    +++ b/string/strcoll_l.c
813    @@ -29,7 +29,6 @@
814     # define STRING_TYPE char
815     # define USTRING_TYPE unsigned char
816     # define STRCOLL __strcoll_l
817    -# define STRDIFF __strdiff
818     # define STRCMP strcmp
819     # define WEIGHT_H "../locale/weight.h"
820     # define SUFFIX MB
821    @@ -42,20 +41,6 @@
822     #include "../locale/localeinfo.h"
823     #include WEIGHT_H
824    
825    -#define MASK_UTF8_7BIT  (1 << 7)
826    -#define MASK_UTF8_START (3 << 6)
827    -
828    -size_t
829    -STRDIFF (const STRING_TYPE *s, const STRING_TYPE *t)
830    -{
831    -  size_t n;
832    -
833    -  for (n = 0; *s != '\0' && *s++ == *t++; ++n)
834    -    continue;
835    -
836    -  return n;
837    -}
838    -
839     /* Track status while looking for sequences in a string.  */
840     typedef struct
841     {
842    @@ -269,29 +254,9 @@ STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, __locale_t l)
843       const USTRING_TYPE *extra;
844       const int32_t *indirect;
845    
846    -  /* In case there is no locale specific sort order (C / POSIX).  */
847       if (nrules == 0)
848         return STRCMP (s1, s2);
849    
850    -  /* Fast forward to the position of the first difference.  Needs to be
851    -     encoding aware as the byte-by-byte comparison can stop in the middle
852    -     of a char sequence for multibyte encodings like UTF-8.  */
853    -  uint_fast32_t encoding =
854    -    current->values[_NL_ITEM_INDEX (_NL_COLLATE_ENCODING_TYPE)].word;
855    -  if (encoding != __cet_other)
856    -    {
857    -      size_t diff = STRDIFF (s1, s2);
858    -      if (diff > 0)
859    - {
860    -  if (encoding == __cet_utf8 && (*(s1 + diff) & MASK_UTF8_7BIT) != 0)
861    -    do
862    -      diff--;
863    -    while (diff > 0 && (*(s1 + diff) & MASK_UTF8_START) != MASK_UTF8_START);
864    -  s1 += diff;
865    -  s2 += diff;
866    - }
867    -    }
868    -
869       /* Catch empty strings.  */
870       if (__glibc_unlikely (*s1 == '\0') || __glibc_unlikely (*s2 == '\0'))
871         return (*s1 != '\0') - (*s2 != '\0');
872    @@ -358,8 +323,7 @@ STRCOLL (const STRING_TYPE *s1, const STRING_TYPE *s2, __locale_t l)
873         byte-level comparison to ensure that we don't waste time
874         going through multiple passes for totally equal strings
875         before proceeding to subsequent passes.  */
876    -  if (pass == 0 && encoding == __cet_other &&
877    -      STRCMP (s1, s2) == 0)
878    +  if (pass == 0 && STRCMP (s1, s2) == 0)
879        return result;
880      else
881        break;
882    diff --git a/string/tst-strxfrm2.c b/string/tst-strxfrm2.c
883    index d5a1115..bea5aa2 100644
884    --- a/string/tst-strxfrm2.c
885    +++ b/string/tst-strxfrm2.c
886    @@ -5,6 +5,8 @@
887     static int
888     do_test (void)
889     {
890    +  static const char test_locale[] = "de_DE.UTF-8";
891    +
892       int res = 0;
893    
894       char buf[20];
895    @@ -38,9 +40,9 @@ do_test (void)
896           res = 1;
897         }
898    
899    -  if (setlocale (LC_ALL, "de_DE.UTF-8") == NULL)
900    +  if (setlocale (LC_ALL, test_locale) == NULL)
901         {
902    -      puts ("setlocale failed");
903    +      printf ("cannot set locale \"%s\"\n", test_locale);
904           res = 1;
905         }
906       else
907  diff --git a/sysdeps/hppa/dl-symaddr.c b/sysdeps/hppa/dl-symaddr.c  diff --git a/sysdeps/hppa/dl-symaddr.c b/sysdeps/hppa/dl-symaddr.c
908  index b707c19..89d8baf 100644  index b707c19..89d8baf 100644
909  --- a/sysdeps/hppa/dl-symaddr.c  --- a/sysdeps/hppa/dl-symaddr.c
# Line 525  index b707c19..89d8baf 100644 Line 913  index b707c19..89d8baf 100644
913       return (void *) value;       return (void *) value;
914   }   }
915  +rtld_hidden_def (_dl_symbol_address)  +rtld_hidden_def (_dl_symbol_address)
916    diff --git a/sysdeps/nacl/Makefile b/sysdeps/nacl/Makefile
917    index 6749a44..1748886 100644
918    --- a/sysdeps/nacl/Makefile
919    +++ b/sysdeps/nacl/Makefile
920    @@ -132,4 +132,13 @@ ifeq ($(subdir),misc)
921     # sysdeps/.../linux/ directories, but it's still a sysdeps decision to
922     # install it.
923     sysdep_headers += bits/mman-linux.h
924    +
925    +# This defeats sysdeps/gnu/Makefile's addition of sys/mtio.h, which
926    +# we do not want.  This is a total kludge, but it seems no worse for
927    +# now than making the sysdeps/gnu/Makefile code conditional on a
928    +# variable we set here.  If some sysdeps/.../Makefile that is later
929    +# in the list than sysdeps/gnu needed to add to sysdep_headers, this
930    +# would break it.  But sysdeps/gnu is close to last in the list and
931    +# this coming up seems unlikely.
932    +override sysdep_headers := $(sysdep_headers)
933     endif
934  diff --git a/sysdeps/nacl/start.c b/sysdeps/nacl/start.c  diff --git a/sysdeps/nacl/start.c b/sysdeps/nacl/start.c
935  index a4b6dd3..8e8bc1a 100644  index a4b6dd3..8e8bc1a 100644
936  --- a/sysdeps/nacl/start.c  --- a/sysdeps/nacl/start.c
# Line 549  index a4b6dd3..8e8bc1a 100644 Line 955  index a4b6dd3..8e8bc1a 100644
955       nacl_startup_argc (info),       nacl_startup_argc (info),
956       nacl_startup_argv (info),       nacl_startup_argv (info),
957       nacl_startup_auxv (info),       nacl_startup_auxv (info),
958    diff --git a/sysdeps/posix/opendir.c b/sysdeps/posix/opendir.c
959    index 6509f5c..9edf056 100644
960    --- a/sysdeps/posix/opendir.c
961    +++ b/sysdeps/posix/opendir.c
962    @@ -105,7 +105,7 @@ need_isdir_precheck (void)
963         tryopen_o_directory ();
964    
965       /* We can skip the expensive `stat' call if O_DIRECTORY works.  */
966    -  return o_directory_works > 0;
967    +  return o_directory_works < 0;
968     #endif
969       return true;
970     }
971  diff --git a/sysdeps/sparc/sparc32/sem_open.c b/sysdeps/sparc/sparc32/sem_open.c  diff --git a/sysdeps/sparc/sparc32/sem_open.c b/sysdeps/sparc/sparc32/sem_open.c
972  index 16cb9ad..59df2d7 100644  index 16cb9ad..59df2d7 100644
973  --- a/sysdeps/sparc/sparc32/sem_open.c  --- a/sysdeps/sparc/sparc32/sem_open.c
# Line 664  index 6777123..ad8e31d 100644 Line 1083  index 6777123..ad8e31d 100644
1083     return SYSCALL_CANCEL (openat, fd, file, oflag, mode);     return SYSCALL_CANCEL (openat, fd, file, oflag, mode);
1084   }   }
1085   libc_hidden_def (__OPENAT)   libc_hidden_def (__OPENAT)
1086    diff --git a/wcsmbs/wcscoll_l.c b/wcsmbs/wcscoll_l.c
1087    index 6d9384a..87f240d 100644
1088    --- a/wcsmbs/wcscoll_l.c
1089    +++ b/wcsmbs/wcscoll_l.c
1090    @@ -23,7 +23,6 @@
1091     #define STRING_TYPE wchar_t
1092     #define USTRING_TYPE wint_t
1093     #define STRCOLL __wcscoll_l
1094    -#define STRDIFF __wcsdiff
1095     #define STRCMP __wcscmp
1096     #define WEIGHT_H "../locale/weightwc.h"
1097     #define SUFFIX WC

Legend:
Removed from v.2697  
changed lines
  Added in v.2711