/* Ok, now run uClibc's main() -- shouldn't return */
bl __uClibc_main
+/* a little bit of stuff to support C++ */
+ .section .ctors,"aw"
+ .align 4
+ .global __CTOR_LIST__
+__CTOR_LIST__:
+ .long -1
+
+ .section .dtors,"aw"
+ .align 4
+ .global __DTOR_LIST__
+__DTOR_LIST__:
+ .long -1
/* Ok, now run uClibc's main() -- shouldn't return */
call __uClibc_main
+
+/* a little bit of stuff to support C++ */
+ .section .ctors,"aw"
+ .align 4
+ .global __CTOR_LIST__
+__CTOR_LIST__:
+ .long -1
+
+ .section .dtors,"aw"
+ .align 4
+ .global __DTOR_LIST__
+__DTOR_LIST__:
+ .long -1
+
extern void __uClibc_main(int argc,void *argv,void *envp);
+/* a little bit of stuff to support C++ */
+__asm__(".section .ctors,\"aw\"\n.align 4\n.global __CTOR_LIST__\n"
+ "__CTOR_LIST__:\n.long -1\n");
+
+__asm__(".section .dtors,\"aw\"\n.align 4\n.global __DTOR_LIST__\n"
+ "__DTOR_LIST__:\n.long -1\n");
+
void _start(unsigned int first_arg)
{
unsigned int argc;
bl __uClibc_main
+/* a little bit of stuff to support C++ */
+ .section .ctors,"aw"
+ .align 4
+ .global __CTOR_LIST__
+__CTOR_LIST__:
+ .long -1
+
+ .section .dtors,"aw"
+ .align 4
+ .global __DTOR_LIST__
+__DTOR_LIST__:
+ .long -1
"\tstwu 1,-32(1)\n"
"\tmtlr 0\n"
//"\tstw 0,0(1)\n"
- "\tb _start2\n");
+ "\tb _start2\n
+
+ ");
+
+/* a little bit of stuff to support C++ */
+asm(
+ "\t.section .ctors,\"aw\"\n"
+ "\t.align 4\n"
+ "\t.global __CTOR_LIST__\n"
+ "__CTOR_LIST__:\n"
+ "\t.long -1\n"
+ "\t.section .dtors,\"aw\"\n"
+ "\t.align 4\n"
+ "\t.global __DTOR_LIST__\n"
+ "__DTOR_LIST__:\n"
+ "\t.long -1\n"
+ );
void __uClibc_main(int argc,void *argv,void *envp);