LINUX.ORG.RU

История изменений

Исправление backbone, (текущая версия) :

Убейте, не вижу:

 18 #include <string.h>
 19 #include <memcopy.h>
 20
 21 #undef strcmp
 22
 23 /* Compare S1 and S2, returning less than, equal to or
 24    greater than zero if S1 is lexicographically less than,
 25    equal to or greater than S2.  */
 26 int
 27 strcmp (p1, p2)
 28      const char *p1;
 29      const char *p2;
 30 {
 31   const unsigned char *s1 = (const unsigned char *) p1;
 32   const unsigned char *s2 = (const unsigned char *) p2;
 33   unsigned char c1, c2;
 34
 35   do
 36     {
 37       c1 = (unsigned char) *s1++;
 38       c2 = (unsigned char) *s2++;
 39       if (c1 == '\0')
 40     return c1 - c2;
 41     }
 42   while (c1 == c2);
 43
 44   return c1 - c2;
 45 }
 46 libc_hidden_builtin_def (strcmp)    
(не говорю, что вы не правы, просто не найду, где, интересно)

Up. Вижу, sysdeps/x86_64/multiarch/strcmp-sse42.S, спасибо.

Исправление backbone, :

Убейте, не вижу:

 18 #include <string.h>
 19 #include <memcopy.h>
 20
 21 #undef strcmp
 22
 23 /* Compare S1 and S2, returning less than, equal to or
 24    greater than zero if S1 is lexicographically less than,
 25    equal to or greater than S2.  */
 26 int
 27 strcmp (p1, p2)
 28      const char *p1;
 29      const char *p2;
 30 {
 31   const unsigned char *s1 = (const unsigned char *) p1;
 32   const unsigned char *s2 = (const unsigned char *) p2;
 33   unsigned char c1, c2;
 34
 35   do
 36     {
 37       c1 = (unsigned char) *s1++;
 38       c2 = (unsigned char) *s2++;
 39       if (c1 == '\0')
 40     return c1 - c2;
 41     }
 42   while (c1 == c2);
 43
 44   return c1 - c2;
 45 }
 46 libc_hidden_builtin_def (strcmp)    
(не говорю, что вы не правы, просто не найду, где, интересно)

Исправление backbone, :

Убейте, не вижу:

 18 #include <string.h>
 19 #include <memcopy.h>
 20
 21 #undef strcmp
 22
 23 /* Compare S1 and S2, returning less than, equal to or
 24    greater than zero if S1 is lexicographically less than,
 25    equal to or greater than S2.  */
 26 int
 27 strcmp (p1, p2)
 28      const char *p1;
 29      const char *p2;
 30 {
 31   const unsigned char *s1 = (const unsigned char *) p1;
 32   const unsigned char *s2 = (const unsigned char *) p2;
 33   unsigned char c1, c2;
 34
 35   do
 36     {
 37       c1 = (unsigned char) *s1++;
 38       c2 = (unsigned char) *s2++;
 39       if (c1 == '\0')
 40     return c1 - c2;
 41     }
 42   while (c1 == c2);
 43
 44   return c1 - c2;
 45 }
 46 libc_hidden_builtin_def (strcmp)    

Исходная версия backbone, :

Убейте, не вижу:

 18 #include <string.h>                                                                                                                                             
 19 #include <memcopy.h>                                                                                                                                            
 20                                                                                                                                                                 
 21 #undef strcmp                                                                                                                                                   
 22                                                                                                                                                                 
 23 /* Compare S1 and S2, returning less than, equal to or                                                                                                          
 24    greater than zero if S1 is lexicographically less than,                                                                                                      
 25    equal to or greater than S2.  */                                                                                                                             
 26 int                                                                                                                                                             
 27 strcmp (p1, p2)                                                                                                                                                 
 28      const char *p1;                                                                                                                                            
 29      const char *p2;                                                                                                                                            
 30 {                                                                                                                                                               
 31   const unsigned char *s1 = (const unsigned char *) p1;                                                                                                         
 32   const unsigned char *s2 = (const unsigned char *) p2;                                                                                                         
 33   unsigned char c1, c2;                                                                                                                                         
 34                                                                                                                                                                 
 35   do                                                                                                                                                            
 36     {                                                                                                                                                           
 37       c1 = (unsigned char) *s1++;                                                                                                                               
 38       c2 = (unsigned char) *s2++;                                                                                                                               
 39       if (c1 == '\0')                                                                                                                                           
 40     return c1 - c2;                                                                                                                                             
 41     }                                                                                                                                                           
 42   while (c1 == c2);                                                                                                                                             
 43                                                                                                                                                                 
 44   return c1 - c2;                                                                                                                                               
 45 }                                                                                                                                                               
 46 libc_hidden_builtin_def (strcmp)