svn commit: r190349 - in stable/7/usr.sbin/crunch: crunchgen
crunchide
David E. O'Brien
obrien at FreeBSD.org
Mon Mar 23 17:34:56 PDT 2009
Author: obrien
Date: Tue Mar 24 00:34:55 2009
New Revision: 190349
URL: http://svn.freebsd.org/changeset/base/190349
Log:
MFC:
r173412: Cleanup of userland __P use.
r187943: Run with -B and just .POSIX.
r173067: Include <stdlib.h> for the right prototype for exit(3).
r173065: Set the program name if the crunched program is selected
through argv[1] to mimic crt0 behaviour.
Modified:
stable/7/usr.sbin/crunch/crunchgen/crunched_main.c
stable/7/usr.sbin/crunch/crunchgen/crunchgen.c
stable/7/usr.sbin/crunch/crunchide/crunchide.c
Modified: stable/7/usr.sbin/crunch/crunchgen/crunched_main.c
==============================================================================
--- stable/7/usr.sbin/crunch/crunchgen/crunched_main.c Tue Mar 24 00:30:06 2009 (r190348)
+++ stable/7/usr.sbin/crunch/crunchgen/crunched_main.c Tue Mar 24 00:34:55 2009 (r190349)
@@ -34,6 +34,7 @@
* the crunched binary without creating all the links.
*/
#include <stdio.h>
+#include <stdlib.h>
#include <string.h>
struct stub {
@@ -41,6 +42,7 @@ struct stub {
int (*f)();
};
+extern char *__progname;
extern struct stub entry_points[];
int main(int argc, char **argv, char **envp)
@@ -83,12 +85,16 @@ int crunched_here(char *path)
int crunched_main(int argc, char **argv, char **envp)
{
+ char *slash;
struct stub *ep;
int columns, len;
if(argc <= 1)
crunched_usage();
+ slash = strrchr(argv[1], '/');
+ __progname = slash? slash+1 : argv[1];
+
return main(--argc, ++argv, envp);
}
Modified: stable/7/usr.sbin/crunch/crunchgen/crunchgen.c
==============================================================================
--- stable/7/usr.sbin/crunch/crunchgen/crunchgen.c Tue Mar 24 00:30:06 2009 (r190348)
+++ stable/7/usr.sbin/crunch/crunchgen/crunchgen.c Tue Mar 24 00:34:55 2009 (r190349)
@@ -709,12 +709,13 @@ void fillin_program_objs(prog_t *p, char
if (outhdrname[0] != '\0')
fprintf(f, ".include \"%s\"\n", outhdrname);
fprintf(f, ".include \"%s\"\n", path);
+ fprintf(f, ".POSIX:\n");
if (buildopts) {
fprintf(f, "BUILDOPTS+=");
output_strlst(f, buildopts);
}
- fprintf(f, ".if defined(PROG) && !defined(%s)\n", objvar);
- fprintf(f, "%s=${PROG}.o\n", objvar);
+ fprintf(f, ".if defined(PROG)\n");
+ fprintf(f, "%s?=${PROG}.o\n", objvar);
fprintf(f, ".endif\n");
fprintf(f, "loop:\n\t at echo 'OBJS= '${%s}\n", objvar);
@@ -727,7 +728,7 @@ void fillin_program_objs(prog_t *p, char
fclose(f);
- snprintf(line, MAXLINELEN, "cd %s && make -f %s crunchgen_objs",
+ snprintf(line, MAXLINELEN, "cd %s && make -f %s -B crunchgen_objs",
p->srcdir, tempfname);
if ((f = popen(line, "r")) == NULL) {
warn("submake pipe");
Modified: stable/7/usr.sbin/crunch/crunchide/crunchide.c
==============================================================================
--- stable/7/usr.sbin/crunch/crunchide/crunchide.c Tue Mar 24 00:30:06 2009 (r190348)
+++ stable/7/usr.sbin/crunch/crunchide/crunchide.c Tue Mar 24 00:34:55 2009 (r190349)
@@ -87,7 +87,7 @@ int hide_syms(const char *filename);
int verbose;
-int main __P((int, char *[]));
+int main(int, char *[]);
int main(argc, argv)
int argc;
More information about the svn-src-stable-7
mailing list