summaryrefslogtreecommitdiffstats
path: root/usr.bin/nm
diff options
context:
space:
mode:
authormarkm <markm@FreeBSD.org>2002-04-28 12:04:20 +0000
committermarkm <markm@FreeBSD.org>2002-04-28 12:04:20 +0000
commitaa3fa5ac74e506a5954588bae03eecd22b6cf568 (patch)
treebf143e42af71e5ea32e106063c8afca13d635914 /usr.bin/nm
parent6e62811ca30b49afadd571304d15357244bd77af (diff)
downloadFreeBSD-src-aa3fa5ac74e506a5954588bae03eecd22b6cf568.zip
FreeBSD-src-aa3fa5ac74e506a5954588bae03eecd22b6cf568.tar.gz
Fix some easy warnings; ANSIfy, constify.
Fix VCS inclusion and deregister.
Diffstat (limited to 'usr.bin/nm')
-rw-r--r--usr.bin/nm/nm.c103
1 files changed, 48 insertions, 55 deletions
diff --git a/usr.bin/nm/nm.c b/usr.bin/nm/nm.c
index 06d1b56..590181e 100644
--- a/usr.bin/nm/nm.c
+++ b/usr.bin/nm/nm.c
@@ -44,11 +44,15 @@ static const char copyright[] =
#if 0
static char sccsid[] = "@(#)nm.c 8.1 (Berkeley) 6/6/93";
#endif
-static const char rcsid[] =
- "$FreeBSD$";
#endif /* not lint */
+#include <sys/cdefs.h>
+__FBSDID("$FreeBSD$");
+
#include <sys/types.h>
+
+#include <arpa/inet.h>
+
#include <a.out.h>
#include <ar.h>
#include <ctype.h>
@@ -70,8 +74,7 @@ int print_weak_symbols;
int fcount;
int rev, table;
-int fname(), rname(), value();
-int (*sfunc)() = fname;
+const char *typestring(u_char);
/* some macros for symbol type (nlist.n_type) handling */
#define IS_DEBUGGER_SYMBOL(x) ((x) & N_STAB)
@@ -79,12 +82,17 @@ int (*sfunc)() = fname;
#define SYMBOL_TYPE(x) ((x) & (N_TYPE | N_STAB))
#define SYMBOL_BIND(x) (((x) >> 4) & 0xf)
-static void usage( void );
-int process_file( char * );
-int show_archive( char *, FILE * );
-int show_objfile( char *, FILE * );
-void print_symbol( char *, struct nlist * );
+static void usage(void);
+int process_file(const char *);
+int show_archive(const char *, FILE *);
+int show_objfile(const char *, FILE *);
+void print_symbol(const char *, struct nlist *);
char typeletter(u_char);
+int fname(const void *, const void *);
+int rname(const void *, const void *);
+int value(const void *, const void *);
+
+int (*sfunc)(const void *, const void *) = fname;
/*
* main()
@@ -92,9 +100,7 @@ char typeletter(u_char);
* specified on the command line.
*/
int
-main(argc, argv)
- int argc;
- char **argv;
+main(int argc, char *argv[])
{
int ch, errors;
@@ -158,28 +164,27 @@ main(argc, argv)
* object files as input.
*/
int
-process_file(fname)
- char *fname;
+process_file(const char *fn)
{
struct exec exec_head;
FILE *fp;
int retval;
char magic[SARMAG];
- if (!(fp = fopen(fname, "r"))) {
- warnx("cannot read %s", fname);
+ if (!(fp = fopen(fn, "r"))) {
+ warnx("cannot read %s", fn);
return(1);
}
if (fcount > 1 && !table)
- (void)printf("\n%s:\n", fname);
+ (void)printf("\n%s:\n", fn);
/*
* first check whether this is an object file - read a object
* header, and skip back to the beginning
*/
if (fread((char *)&exec_head, sizeof(exec_head), (size_t)1, fp) != 1) {
- warnx("%s: bad format", fname);
+ warnx("%s: bad format", fn);
(void)fclose(fp);
return(1);
}
@@ -189,13 +194,13 @@ process_file(fname)
if (N_BADMAG(exec_head)) {
if (fread(magic, sizeof(magic), (size_t)1, fp) != 1 ||
strncmp(magic, ARMAG, SARMAG)) {
- warnx("%s: not object file or archive", fname);
+ warnx("%s: not object file or archive", fn);
(void)fclose(fp);
return(1);
}
- retval = show_archive(fname, fp);
+ retval = show_archive(fn, fp);
} else
- retval = show_objfile(fname, fp);
+ retval = show_objfile(fn, fp);
(void)fclose(fp);
return(retval);
}
@@ -203,7 +208,8 @@ process_file(fname)
/* scat: concatenate strings, returning new concatenation point
* and permitting overlap.
*/
-static char *scat(char *dest, char *src)
+static char
+*scat(char *dest, const char *src)
{
char *end;
int l1 = strlen(dest), l2 = strlen(src);
@@ -220,16 +226,14 @@ static char *scat(char *dest, char *src)
* show symbols in the given archive file
*/
int
-show_archive(fname, fp)
- char *fname;
- FILE *fp;
+show_archive(const char *fn, FILE *fp)
{
struct ar_hdr ar_head;
struct exec exec_head;
int i, rval;
long last_ar_off;
char *p, *name, *ar_name;
- int extra = strlen(fname) + 3;
+ int extra = strlen(fn) + 3;
if ((name = malloc(MAXNAMLEN + extra)) == NULL)
err(1, NULL);
@@ -241,7 +245,7 @@ show_archive(fname, fp)
while (fread((char *)&ar_head, sizeof(ar_head), (size_t)1, fp) == 1) {
/* bad archive entry - stop processing this archive */
if (strncmp(ar_head.ar_fmag, ARFMAG, sizeof(ar_head.ar_fmag))) {
- warnx("%s: bad format archive header", fname);
+ warnx("%s: bad format archive header", fn);
(void)free(name);
return(1);
}
@@ -276,7 +280,7 @@ show_archive(fname, fp)
else
{
p = ar_head.ar_name;
- for (i = 0; i < sizeof(ar_head.ar_name) && p[i] && p[i] != ' '; i++)
+ for (i = 0; i < (int)sizeof(ar_head.ar_name) && p[i] && p[i] != ' '; i++)
ar_name[i] = p[i];
ar_name[i] = 0;
}
@@ -290,7 +294,7 @@ show_archive(fname, fp)
*p = 0;
if (print_file_each_line && !table)
{
- p = scat(p, fname);
+ p = scat(p, fn);
p = scat(p, ":");
}
p = scat(p, ar_name);
@@ -322,7 +326,7 @@ show_archive(fname, fp)
#define even(x) (((x) + 1) & ~1)
skip: if (fseek(fp, last_ar_off + even(atol(ar_head.ar_size)),
SEEK_SET)) {
- warn("%s", fname);
+ warn("%s", fn);
(void)free(name);
return(1);
}
@@ -338,12 +342,10 @@ skip: if (fseek(fp, last_ar_off + even(atol(ar_head.ar_size)),
* header.
*/
int
-show_objfile(objname, fp)
- char *objname;
- FILE *fp;
+show_objfile(const char *objname, FILE *fp)
{
- register struct nlist *names, *np;
- register int i, nnames, nrawnames;
+ struct nlist *names, *np;
+ int i, nnames, nrawnames;
struct exec head;
int32_t stabsize;
char *stab;
@@ -444,7 +446,7 @@ show_objfile(objname, fp)
if (np->n_un.n_strx)
np->n_un.n_name = stab + np->n_un.n_strx;
else
- np->n_un.n_name = "";
+ np->n_un.n_name = strdup("");
names[nnames++] = *np;
}
@@ -466,12 +468,8 @@ show_objfile(objname, fp)
* show one symbol
*/
void
-print_symbol(objname, sym)
- char *objname;
- register struct nlist *sym;
+print_symbol(const char *objname, struct nlist *sym)
{
- char *typestring();
-
if (table) {
printf("%s|", objname);
if (SYMBOL_TYPE(sym->n_type) != N_UNDF)
@@ -533,9 +531,8 @@ print_symbol(objname, sym)
* typestring()
* return the a description string for an STAB entry
*/
-char *
-typestring(type)
- register u_char type;
+const char *
+typestring(u_char type)
{
switch(type) {
case N_BCOMM:
@@ -589,8 +586,7 @@ typestring(type)
* external, lower case for internal symbols.
*/
char
-typeletter(type)
- u_char type;
+typeletter(u_char type)
{
switch(SYMBOL_TYPE(type)) {
case N_ABS:
@@ -615,28 +611,25 @@ typeletter(type)
}
int
-fname(a0, b0)
- void *a0, *b0;
+fname(const void *a0, const void *b0)
{
- struct nlist *a = a0, *b = b0;
+ const struct nlist *a = a0, *b = b0;
return(strcmp(a->n_un.n_name, b->n_un.n_name));
}
int
-rname(a0, b0)
- void *a0, *b0;
+rname(const void *a0, const void *b0)
{
- struct nlist *a = a0, *b = b0;
+ const struct nlist *a = a0, *b = b0;
return(strcmp(b->n_un.n_name, a->n_un.n_name));
}
int
-value(a0, b0)
- void *a0, *b0;
+value(const void *a0, const void *b0)
{
- register struct nlist *a = a0, *b = b0;
+ const struct nlist *a = a0, *b = b0;
if (SYMBOL_TYPE(a->n_type) == N_UNDF)
if (SYMBOL_TYPE(b->n_type) == N_UNDF)
OpenPOWER on IntegriCloud