diff options
author | Kyle Evans <kevans@FreeBSD.org> | 2023-11-10 04:33:58 +0000 |
---|---|---|
committer | Kyle Evans <kevans@FreeBSD.org> | 2023-11-10 04:33:58 +0000 |
commit | 8f2848eafa682f1af629f8ee5e32fec607ab0ba1 (patch) | |
tree | 006833802643b1b38c8b17c6cd997d42fc46d2c9 | |
parent | f0fa40867d1d556ee0400ca6e1483b9ae1a068e2 (diff) | |
download | src-8f2848eafa682f1af629f8ee5e32fec607ab0ba1.tar.gz src-8f2848eafa682f1af629f8ee5e32fec607ab0ba1.zip |
crunchgen: fix "keep" for an ELF world, break it out
"keep" currently adds a leading underscore, which hasn't been useful or
accurate since a.out days. Preserve the symbol name as it's given
rather than mangle it to match ELF-style symbol names.
This was partially fixed back in
6cd35234a092d ("Assume ELF-style symbol names now.") for crunchgen, but
the keeplist wasn't changed to match it.
While we're here, break it out to bsd.crunchgen.mk for later use in
bsdbox.
Reviewed by: adrian, imp
Differential Revision: https://reviews.freebsd.org/D42499
-rw-r--r-- | share/mk/bsd.crunchgen.mk | 4 | ||||
-rw-r--r-- | usr.sbin/crunch/crunchgen/crunchgen.c | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/share/mk/bsd.crunchgen.mk b/share/mk/bsd.crunchgen.mk index 182ca387fe2b..bdbb6c5a22b0 100644 --- a/share/mk/bsd.crunchgen.mk +++ b/share/mk/bsd.crunchgen.mk @@ -18,6 +18,7 @@ # CRUNCH_SRCDIR_${P}: base source directory for program ${P} # CRUNCH_BUILDOPTS_${P}: additional build options for ${P} # CRUNCH_ALIAS_${P}: additional names to be used for ${P} +# CRUNCH_KEEP_${P}: additional symbols to keep for ${P} # # By default, any name appearing in CRUNCH_PROGS or CRUNCH_ALIAS_${P} # will be used to generate a hard link to the resulting binary. @@ -101,6 +102,9 @@ ${CONF}: Makefile .ifdef CRUNCH_LIBS_${P} echo special ${P} lib ${CRUNCH_LIBS_${P}} >>${.TARGET} .endif +.ifdef CRUNCH_KEEP_${P} + echo special ${P} keep ${CRUNCH_KEEP_${P}} >>${.TARGET} +.endif .for A in ${CRUNCH_ALIAS_${P}} echo ln ${P} ${A} >>${.TARGET} .endfor diff --git a/usr.sbin/crunch/crunchgen/crunchgen.c b/usr.sbin/crunch/crunchgen/crunchgen.c index dfde38ed0b70..7b5f892cffbe 100644 --- a/usr.sbin/crunch/crunchgen/crunchgen.c +++ b/usr.sbin/crunch/crunchgen/crunchgen.c @@ -1128,7 +1128,7 @@ prog_makefile_rules(FILE *outmk, prog_t *p) fprintf(outmk, "\n"); fprintf(outmk, "\tcrunchide -k _crunched_%s_stub ", p->ident); for (lst = p->keeplist; lst != NULL; lst = lst->next) - fprintf(outmk, "-k _%s ", lst->str); + fprintf(outmk, "-k %s ", lst->str); fprintf(outmk, "%s.lo\n", p->name); } |