about summary refs log tree commit diff
path: root/elf
diff options
context:
space:
mode:
Diffstat (limited to 'elf')
-rw-r--r--elf/dl-minimal.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/elf/dl-minimal.c b/elf/dl-minimal.c
index 001fc6dcd5..efdc26dc62 100644
--- a/elf/dl-minimal.c
+++ b/elf/dl-minimal.c
@@ -291,3 +291,45 @@ _itoa (value, buflim, base, upper_case)
   return bp;
 }
 #endif
+
+
+/* The following is not a complete strsep implementation.  It cannot
+   handle empty delimiter strings.  But this isn't necessary for the
+   execution of ld.so.  */
+#undef strsep
+#undef __strsep
+char *
+__strsep (char **stringp, const char *delim)
+{
+  char *begin;
+
+  begin = *stringp;
+  if (begin != NULL)
+    {
+      char *end = begin;
+
+      while (*end != '\0' || (end = NULL))
+	{
+	  const char *dp = delim;
+
+	  do
+	    if (*dp == *end)
+	      break;
+	  while (*++dp != '\0');
+
+	  if (*dp != '\0')
+	    {
+	      *end++ = '\0';
+	      break;
+	    }
+
+	  ++end;
+	}
+
+      *stringp = end;
+    }
+
+  return begin;
+}
+weak_alias (__strsep, strsep)
+strong_alias (__strsep, __strsep_g)