zte's code,first commit

Change-Id: I9a04da59e459a9bc0d67f101f700d9d7dc8d681b
diff --git a/ap/build/uClibc/libc/sysdeps/linux/nios/crtend.c b/ap/build/uClibc/libc/sysdeps/linux/nios/crtend.c
new file mode 100644
index 0000000..775eb0f
--- /dev/null
+++ b/ap/build/uClibc/libc/sysdeps/linux/nios/crtend.c
@@ -0,0 +1,44 @@
+#include <errno.h>
+#include <stdlib.h>
+#include <unistd.h>
+/*
+static void (*__CTOR_END__[1]) __P((void))
+    __attribute__((section(".ctors"))) = { (void *)-1 };
+
+static void (*__DTOR_END__[1]) __P((void))
+    __attribute__((__unused__))
+    __attribute__((section(".dtors"))) = { (void *)0 };
+*/
+extern void (*__CTOR_END__[]) __P((void));
+static void	__do_global_ctors_aux __P((void));
+
+static void
+__do_global_ctors_aux()
+{
+	void (**p)(void) = __CTOR_END__ - 1;
+
+	while (*p)
+		(**p--)();
+}
+
+static void dummy_init(void) __attribute__((section(".trash")));
+
+void
+dummy_init(void)
+{
+	static smallint initialized;
+	static void (*volatile call__ctors)(void) = __do_global_ctors_aux;
+	/*
+	 * Call global constructors.
+	 * Arrange to call global destructors at exit.
+	 */
+	/* prevent function pointer constant propagation */
+	__asm__ __volatile__ (".section .init");
+
+	if (!initialized) {
+		initialized = 1;
+		(*call__ctors)();
+	}
+	__asm__ __volatile__ (".section .trash");
+
+}
\ No newline at end of file