[Midnightbsd-cvs] src: usr.sbin/kldxref: Sync this with other changes to the kernel.
laffer1 at midnightbsd.org
laffer1 at midnightbsd.org
Thu Dec 4 12:04:25 EST 2008
Log Message:
-----------
Sync this with other changes to the kernel.
Modified Files:
--------------
src/usr.sbin/kldxref:
Makefile (r1.1.1.1 -> r1.2)
ef.c (r1.1.1.2 -> r1.2)
ef.h (r1.1.1.2 -> r1.2)
ef_amd64.c (r1.1.1.2 -> r1.2)
ef_i386.c (r1.1.1.2 -> r1.2)
ef_obj.c (r1.1.1.2 -> r1.2)
ef_sparc64.c (r1.1.1.2 -> r1.2)
kldxref.c (r1.1.1.1 -> r1.2)
Removed Files:
-------------
src/usr.sbin/kldxref:
ef_powerpc.c
-------------- next part --------------
Index: kldxref.c
===================================================================
RCS file: /home/cvs/src/usr.sbin/kldxref/kldxref.c,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -L usr.sbin/kldxref/kldxref.c -L usr.sbin/kldxref/kldxref.c -u -r1.1.1.1 -r1.2
--- usr.sbin/kldxref/kldxref.c
+++ usr.sbin/kldxref/kldxref.c
@@ -29,7 +29,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/usr.sbin/kldxref/kldxref.c,v 1.10 2004/08/27 00:58:40 iedowse Exp $
+ * $FreeBSD: src/usr.sbin/kldxref/kldxref.c,v 1.14 2006/08/05 18:22:11 imp Exp $
*/
#include <sys/types.h>
@@ -86,7 +86,7 @@
static char recbuf[MAXRECSIZE];
static int recpos, reccnt;
-void maketempfile(char *, const char *);
+FILE *maketempfile(char *, const char *);
static void usage(void);
static void
@@ -187,7 +187,7 @@
printf(" module %s\n", cval);
break;
default:
- warnx("unknown metdata record %d in file %s", md->md_type, kldname);
+ warnx("unknown metadata record %d in file %s", md->md_type, kldname);
}
if (!error)
record_end();
@@ -226,8 +226,7 @@
cp = strrchr(kldname, '.');
nmlen = cp ? min(MAXMODNAME, cp - kldname) :
min(MAXMODNAME, strlen(kldname));
- strncpy(kldmodname, kldname, nmlen);
- kldmodname[nmlen] = '\0';
+ strlcpy(kldmodname, kldname, nmlen);
/* fprintf(fxref, "%s:%s:%d\n", kldmodname, kldname, 0);*/
}
do {
@@ -253,21 +252,21 @@
return error;
}
-void
+FILE *
maketempfile(char *dest, const char *root)
{
char *p;
+ int fd;
- strncpy(dest, root, MAXPATHLEN - 1);
- dest[MAXPATHLEN] = '\0';
+ strlcpy(dest, root, MAXPATHLEN);
if ((p = strrchr(dest, '/')) != 0)
p++;
else
p = dest;
strcpy(p, "lhint.XXXXXX");
- if (mkstemp(dest) == -1)
- err(1, "%s", dest);
+ fd = mkstemp(dest);
+ return ((fd == -1) ? NULL : fdopen(fd, "w+"));
}
static char xrefname[MAXPATHLEN], tempname[MAXPATHLEN];
@@ -322,6 +321,7 @@
p = fts_read(ftsp);
if ((p == NULL || p->fts_info == FTS_D) && !dflag && fxref) {
fclose(fxref);
+ fxref = NULL;
if (reccnt) {
rename(tempname, xrefname);
} else {
@@ -334,8 +334,7 @@
if (p && p->fts_info == FTS_D && !dflag) {
snprintf(xrefname, sizeof(xrefname), "%s/%s",
ftsp->fts_path, xref_file);
- maketempfile(tempname, ftsp->fts_path);
- fxref = fopen(tempname, "w+t");
+ fxref = maketempfile(tempname, ftsp->fts_path);
if (fxref == NULL)
err(1, "can't create %s", tempname);
ival = 1;
@@ -344,6 +343,9 @@
}
if (p->fts_info != FTS_F)
continue;
+ if (p->fts_namelen >= 8 &&
+ strcmp(p->fts_name + p->fts_namelen - 8, ".symbols") == 0)
+ continue;
read_kld(p->fts_path, p->fts_name);
}
fts_close(ftsp);
Index: ef_amd64.c
===================================================================
RCS file: /home/cvs/src/usr.sbin/kldxref/ef_amd64.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -L usr.sbin/kldxref/ef_amd64.c -L usr.sbin/kldxref/ef_amd64.c -u -r1.1.1.2 -r1.2
--- usr.sbin/kldxref/ef_amd64.c
+++ usr.sbin/kldxref/ef_amd64.c
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/usr.sbin/kldxref/ef_amd64.c,v 1.2.4.1 2005/12/30 22:13:59 marcel Exp $
+ * $FreeBSD: src/usr.sbin/kldxref/ef_amd64.c,v 1.3 2005/12/18 04:52:37 marcel Exp $
*/
#include <sys/types.h>
Index: ef_i386.c
===================================================================
RCS file: /home/cvs/src/usr.sbin/kldxref/ef_i386.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -L usr.sbin/kldxref/ef_i386.c -L usr.sbin/kldxref/ef_i386.c -u -r1.1.1.2 -r1.2
--- usr.sbin/kldxref/ef_i386.c
+++ usr.sbin/kldxref/ef_i386.c
@@ -24,7 +24,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/usr.sbin/kldxref/ef_i386.c,v 1.2.4.1 2005/12/30 22:13:59 marcel Exp $
+ * $FreeBSD: src/usr.sbin/kldxref/ef_i386.c,v 1.3 2005/12/18 04:52:37 marcel Exp $
*/
#include <sys/types.h>
Index: ef.c
===================================================================
RCS file: /home/cvs/src/usr.sbin/kldxref/ef.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -L usr.sbin/kldxref/ef.c -L usr.sbin/kldxref/ef.c -u -r1.1.1.2 -r1.2
--- usr.sbin/kldxref/ef.c
+++ usr.sbin/kldxref/ef.c
@@ -29,7 +29,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/usr.sbin/kldxref/ef.c,v 1.8.2.1 2005/12/30 22:13:59 marcel Exp $
+ * $FreeBSD: src/usr.sbin/kldxref/ef.c,v 1.9 2005/12/18 04:52:37 marcel Exp $
*/
#include <sys/param.h>
Index: ef_obj.c
===================================================================
RCS file: /home/cvs/src/usr.sbin/kldxref/ef_obj.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -L usr.sbin/kldxref/ef_obj.c -L usr.sbin/kldxref/ef_obj.c -u -r1.1.1.2 -r1.2
--- usr.sbin/kldxref/ef_obj.c
+++ usr.sbin/kldxref/ef_obj.c
@@ -31,7 +31,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/usr.sbin/kldxref/ef_obj.c,v 1.3.4.1 2005/12/30 22:13:59 marcel Exp $
+ * $FreeBSD: src/usr.sbin/kldxref/ef_obj.c,v 1.5 2006/01/12 08:01:38 jasone Exp $
*/
#include <sys/param.h>
@@ -335,8 +335,8 @@
Elf_Sym *es;
char *mapbase;
void *vtmp;
- size_t mapsize;
- int alignmask, error, fd, pb, ra, res, rl;
+ size_t mapsize, alignmask, max_addralign;
+ int error, fd, pb, ra, res, rl;
int i, j, nbytes, nsym, shstrindex, symstrindex, symtabindex;
if (filename == NULL)
@@ -468,12 +468,15 @@
/* Size up code/data(progbits) and bss(nobits). */
alignmask = 0;
+ max_addralign = 0;
mapsize = 0;
for (i = 0; i < hdr->e_shnum; i++) {
switch (shdr[i].sh_type) {
case SHT_PROGBITS:
case SHT_NOBITS:
alignmask = shdr[i].sh_addralign - 1;
+ if (shdr[i].sh_addralign > max_addralign)
+ max_addralign = shdr[i].sh_addralign;
mapsize += alignmask;
mapsize &= ~alignmask;
mapsize += shdr[i].sh_size;
@@ -482,10 +485,9 @@
}
/* We know how much space we need for the text/data/bss/etc. */
- ef->address = malloc(mapsize);
ef->size = mapsize;
- if (ef->address == NULL) {
- printf("malloc failed\n");
+ if (posix_memalign((void **)&ef->address, max_addralign, mapsize)) {
+ printf("posix_memalign failed\n");
goto out;
}
mapbase = ef->address;
Index: ef.h
===================================================================
RCS file: /home/cvs/src/usr.sbin/kldxref/ef.h,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -L usr.sbin/kldxref/ef.h -L usr.sbin/kldxref/ef.h -u -r1.1.1.2 -r1.2
--- usr.sbin/kldxref/ef.h
+++ usr.sbin/kldxref/ef.h
@@ -1,4 +1,4 @@
-/* $FreeBSD: src/usr.sbin/kldxref/ef.h,v 1.5.2.1 2005/12/30 22:13:59 marcel Exp $ */
+/* $FreeBSD: src/usr.sbin/kldxref/ef.h,v 1.6 2005/12/18 04:52:37 marcel Exp $ */
#ifndef _EF_H_
#define _EF_H_
--- usr.sbin/kldxref/ef_powerpc.c
+++ /dev/null
@@ -1,74 +0,0 @@
-/*-
- * Copyright (c) 2005 Peter Grehan.
- * Copyright 1996-1998 John D. Polstra.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * $FreeBSD: src/usr.sbin/kldxref/ef_powerpc.c,v 1.2.2.1 2005/12/30 22:13:59 marcel Exp $
- */
-
-#include <sys/types.h>
-#include <machine/elf.h>
-
-#include <err.h>
-#include <errno.h>
-#include <string.h>
-
-#include "ef.h"
-
-#include <stdio.h>
-
-/*
- * Apply relocations to the values obtained from the file. `relbase' is the
- * target relocation address of the section, and `dataoff/len' is the region
- * that is to be relocated, and has been copied to *dest
- */
-int
-ef_reloc(struct elf_file *ef, const void *reldata, int reltype, Elf_Off relbase,
- Elf_Off dataoff, size_t len, void *dest)
-{
- Elf_Addr *where, addend;
- Elf_Size rtype, symidx;
- const Elf_Rela *rela;
-
- if (reltype != EF_RELOC_RELA)
- return (EINVAL);
-
- rela = (const Elf_Rela *)reldata;
- where = (Elf_Addr *) ((Elf_Off)dest - dataoff + rela->r_offset);
- addend = rela->r_addend;
- rtype = ELF_R_TYPE(rela->r_info);
- symidx = ELF_R_SYM(rela->r_info);
-
- if ((char *)where < (char *)dest || (char *)where >= (char *)dest + len)
- return (0);
-
- switch(rtype) {
- case R_PPC_RELATIVE: /* word32 B + A */
- *where = relbase + addend;
- break;
- default:
- warnx("unhandled relocation type %d", rtype);
- }
- return (0);
-}
Index: Makefile
===================================================================
RCS file: /home/cvs/src/usr.sbin/kldxref/Makefile,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -L usr.sbin/kldxref/Makefile -L usr.sbin/kldxref/Makefile -u -r1.1.1.1 -r1.2
--- usr.sbin/kldxref/Makefile
+++ usr.sbin/kldxref/Makefile
@@ -1,4 +1,4 @@
-# $FreeBSD: src/usr.sbin/kldxref/Makefile,v 1.7 2004/08/27 00:58:40 iedowse Exp $
+# $FreeBSD: src/usr.sbin/kldxref/Makefile,v 1.10 2006/08/04 21:29:39 marcel Exp $
PROG= kldxref
MAN= kldxref.8
Index: ef_sparc64.c
===================================================================
RCS file: /home/cvs/src/usr.sbin/kldxref/ef_sparc64.c,v
retrieving revision 1.1.1.2
retrieving revision 1.2
diff -L usr.sbin/kldxref/ef_sparc64.c -L usr.sbin/kldxref/ef_sparc64.c -u -r1.1.1.2 -r1.2
--- usr.sbin/kldxref/ef_sparc64.c
+++ usr.sbin/kldxref/ef_sparc64.c
@@ -23,7 +23,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
- * $FreeBSD: src/usr.sbin/kldxref/ef_sparc64.c,v 1.3.2.1 2005/12/30 22:13:59 marcel Exp $
+ * $FreeBSD: src/usr.sbin/kldxref/ef_sparc64.c,v 1.5 2005/12/18 04:52:37 marcel Exp $
*/
#include <sys/types.h>
More information about the Midnightbsd-cvs
mailing list