| #include <string.h> | |
| #include <unistd.h> | |
| static void | |
| init_0 (int argc __attribute__ ((unused)), char **argv) | |
| { | |
| char *p = strrchr (argv [0], '/'); | |
| if (p == NULL) | |
| return; | |
| p++; | |
| size_t len = strlen (p); | |
| write (STDOUT_FILENO, "init array in DSO: ", 19); | |
| write (STDOUT_FILENO, p, len); | |
| write (STDOUT_FILENO, "\n", 1); | |
| } | |
| void (*const init_array []) (int, char **) | |
| __attribute__ ((section (".init_array"), aligned (sizeof (void *)))) = | |
| { | |
| &init_0, | |
| }; |