diff options
| author | Kyle Evans <kevans@FreeBSD.org> | 2020-09-10 18:19:45 +0000 |
|---|---|---|
| committer | Kyle Evans <kevans@FreeBSD.org> | 2020-09-10 18:19:45 +0000 |
| commit | fc90521002fbe200da4bf1bf76c9cf17db629dd3 (patch) | |
| tree | 24d9c13461227b45f222bf53d39f7119140aa4bf /usr.sbin/crunch | |
| parent | 4d6265e3e4f811e015a84bd944ca08993e189f97 (diff) | |
Notes
Diffstat (limited to 'usr.sbin/crunch')
| -rw-r--r-- | usr.sbin/crunch/crunchgen/crunched_main.c | 8 | ||||
| -rw-r--r-- | usr.sbin/crunch/crunchgen/crunchgen.c | 7 |
2 files changed, 11 insertions, 4 deletions
diff --git a/usr.sbin/crunch/crunchgen/crunched_main.c b/usr.sbin/crunch/crunchgen/crunched_main.c index 79531745a8ef..d32589451260 100644 --- a/usr.sbin/crunch/crunchgen/crunched_main.c +++ b/usr.sbin/crunch/crunchgen/crunched_main.c @@ -76,9 +76,11 @@ __FBSDID("$FreeBSD$"); #include <stdlib.h> #include <string.h> +typedef int crunched_stub_t(int, char **, char **); + struct stub { - char *name; - int (*f)(); + const char *name; + crunched_stub_t *f; }; extern const char *__progname; @@ -86,6 +88,8 @@ extern struct stub entry_points[]; static void crunched_usage(void); +crunched_stub_t crunched_main; + static struct stub * find_entry_point(const char *basename) { diff --git a/usr.sbin/crunch/crunchgen/crunchgen.c b/usr.sbin/crunch/crunchgen/crunchgen.c index 5a3200ed7fac..872fa9bfc38f 100644 --- a/usr.sbin/crunch/crunchgen/crunchgen.c +++ b/usr.sbin/crunch/crunchgen/crunchgen.c @@ -934,7 +934,9 @@ gen_output_cfile(void) fprintf(outcf, "%s\n", *cp); for (p = progs; p != NULL; p = p->next) - fprintf(outcf, "extern int _crunched_%s_stub();\n", p->ident); + fprintf(outcf, + "extern crunched_stub_t _crunched_%s_stub;\n", + p->ident); fprintf(outcf, "\nstruct stub entry_points[] = {\n"); for (p = progs; p != NULL; p = p->next) { @@ -1122,9 +1124,10 @@ prog_makefile_rules(FILE *outmk, prog_t *p) fprintf(outmk, "%s_stub.c:\n", p->name); fprintf(outmk, "\techo \"" "extern int main(int argc, char **argv, char **envp); " + "int _crunched_%s_stub(int argc, char **argv, char **envp);" "int _crunched_%s_stub(int argc, char **argv, char **envp)" "{return main(argc,argv,envp);}\" >%s_stub.c\n", - p->ident, p->name); + p->ident, p->ident, p->name); fprintf(outmk, "%s.lo: %s_stub.o $(%s_OBJPATHS)", p->name, p->name, p->ident); if (p->libs) |
