Skip to content

Instantly share code, notes, and snippets.

@kragen
Created January 24, 2009 11:08
Show Gist options
  • Save kragen/51416 to your computer and use it in GitHub Desktop.
Save kragen/51416 to your computer and use it in GitHub Desktop.
Here is weakmaina.c:
#include <stdio.h>
int main(int argc, char **argv) __attribute__((weak, alias("maina")));
int maina(int argc, char **argv) {
printf("in A main\n");
return 0;
}
Here is weakmainb.c:
#include <stdio.h>
int main(int argc, char **argv) __attribute__((weak, alias("mainb")));
int mainb(int argc, char **argv) {
printf("in B main\n");
return 0;
}
kragen@inexorable:~/devel$ gcc -c weakmaina.c
kragen@inexorable:~/devel$ gcc -c weakmainb.c
kragen@inexorable:~/devel$ gcc weakmaina.o weakmainb.o -o a-first
kragen@inexorable:~/devel$ gcc weakmainb.o weakmaina.o -o b-first
kragen@inexorable:~/devel$ ./a-first
in A main
kragen@inexorable:~/devel$ ./b-first
in B main
kragen@inexorable:~/devel$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment