aboutsummaryrefslogtreecommitdiff
path: root/usr.sbin/crunch
diff options
context:
space:
mode:
authorKyle Evans <kevans@FreeBSD.org>2020-09-10 18:19:45 +0000
committerKyle Evans <kevans@FreeBSD.org>2020-09-10 18:19:45 +0000
commitfc90521002fbe200da4bf1bf76c9cf17db629dd3 (patch)
tree24d9c13461227b45f222bf53d39f7119140aa4bf /usr.sbin/crunch
parent4d6265e3e4f811e015a84bd944ca08993e189f97 (diff)
Notes
Diffstat (limited to 'usr.sbin/crunch')
-rw-r--r--usr.sbin/crunch/crunchgen/crunched_main.c8
-rw-r--r--usr.sbin/crunch/crunchgen/crunchgen.c7
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)