The obsolete functions bcopy, index, etc. are not supposed to be used within
uClibc itself. Hence, there is no libc_hidden_def for them, but the previous
patch did not just move libc_hidden_protos, it also added new ones for the
legacy functions. As a result, programs which use these functions can no
longer link with uClibc.
This fixes it by removing the unnecessary libc_hidden_protos. I've also
removed all inclusions of <strings.h> from uClibc source files: since we
define _GNU_SOURCE, it is sufficient to include <string.h>. We then do not
need to duplicate the libc_hidden_proto block in <strings.h>.
libc_hidden_proto(__bzero)
#endif
#ifdef __USE_BSD
-# ifdef __UCLIBC_SUSV3_LEGACY__
-libc_hidden_proto(bcopy)
-libc_hidden_proto(bzero)
-libc_hidden_proto(bcmp)
-libc_hidden_proto(index)
-libc_hidden_proto(rindex)
-# endif
+/* No libc_hidden_proto for bcopy etc., since uClibc doesn't itself use the
+ legacy functions. */
libc_hidden_proto(ffs)
#if 0 /*def __USE_GNU*/
libc_hidden_proto(ffsl)
#ifdef UCLIBC_INTERNAL
-/* In the same order and with the same defines */
-# ifdef __UCLIBC_SUSV3_LEGACY__
-libc_hidden_proto(bcopy)
-libc_hidden_proto(bzero)
-libc_hidden_proto(bcmp)
-libc_hidden_proto(index)
-libc_hidden_proto(rindex)
-# endif
-libc_hidden_proto(ffs)
-# if 0 /*def __USE_GNU*/
-libc_hidden_proto(ffsl)
-# ifdef __GNUC__
-libc_hidden_proto(ffsll)
-# endif
-# endif
-libc_hidden_proto(strcasecmp)
-libc_hidden_proto(strncasecmp)
+#error "<strings.h> should not be included from libc."
#endif
#define __FORCE_GLIBC
#include <features.h>
#include <string.h>
-#include <strings.h>
#include <stdio.h>
#include <signal.h>
#include <errno.h>
#include <stdlib.h>
#include <string.h>
#include <malloc.h>
-#include <strings.h>
#include <unistd.h>
/* Experimentally off - libc_hidden_proto(strcat) */
#include <stdbool.h>
#include <stdint.h>
#include <string.h>
-#include <strings.h>
#include <stdlib.h>
#ifdef __UCLIBC_HAS_WCHAR__
#define RE_ENABLE_I18N
#include <stdlib.h>
#include <stddef.h>
#include <string.h>
-#include <strings.h>
#include <time.h>
#include <sys/time.h>
#include <limits.h>
#include <iconv.h>
#include <string.h>
-#include <strings.h>
#include <endian.h>
#include <byteswap.h>
#include <unistd.h>
#include <stdio.h>
#include <string.h>
-#include <strings.h>
#include <limits.h> /* for PATH_MAX */
#include <sys/param.h> /* for MAXPATHLEN */
#include <errno.h>
/* ffsl,ffsll */
#include "_string.h"
-#include <strings.h>
/* Experimentally off - libc_hidden_proto(ffs) */
*/
#include "_string.h"
-#include <strings.h>
#include <ctype.h>
#include <locale.h>
*/
#include "_string.h"
-#include <strings.h>
#include <ctype.h>
#include <locale.h>