123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- #include <stdlib.h>
- #define SECTION(x) __asm__ (".section " x )
- asm ("\n#include \"defs.h\"");
- asm ("\n/*@HEADER_ENDS*/");
- asm ("\n/*@TESTS_BEGIN*/");
- extern void dummy (void (*foo) (void));
- void
- dummy (void (*foo) (void))
- {
- if (foo)
- (*foo) ();
- }
- asm ("\n/*@TESTS_END*/");
- asm ("\n/*@_init_PROLOG_BEGINS*/");
- static void
- call_initialize_minimal (void)
- {
- extern void __pthread_initialize_minimal_internal (void)
- __attribute ((visibility ("hidden")));
- __pthread_initialize_minimal_internal ();
- }
- SECTION (".init");
- extern void __attribute__ ((section (".init"))) _init (void);
- void
- _init (void)
- {
-
- call_initialize_minimal ();
- asm ("ALIGN");
- asm("END_INIT");
-
- asm ("\n/*@_init_PROLOG_ENDS*/");
- asm ("\n/*@_init_EPILOG_BEGINS*/");
- SECTION(".init");
- }
- asm ("END_INIT");
- asm ("\n/*@_init_EPILOG_ENDS*/");
- asm ("\n/*@_fini_PROLOG_BEGINS*/");
- SECTION (".fini");
- extern void __attribute__ ((section (".fini"))) _fini (void);
- void
- _fini (void)
- {
-
- asm ("ALIGN");
- asm ("END_FINI");
- asm ("\n/*@_fini_PROLOG_ENDS*/");
- {
-
- extern void i_am_not_a_leaf (void);
- i_am_not_a_leaf ();
- }
-
- asm ("\n/*@_fini_EPILOG_BEGINS*/");
- SECTION (".fini");
- }
- asm ("END_FINI");
- asm ("\n/*@_fini_EPILOG_ENDS*/");
- asm ("\n/*@TRAILER_BEGINS*/");
|