Commit Graph

50 Commits

Author SHA1 Message Date
Ed Maste
2bd7b9e5cc kldxref: Clean up error reporting
Omit "too many sections" warnings if the ELF file is not dynamically
linked (and is therefore skipped anyway), and otherwise output it only
once.  An errant core file would previously cause kldxref to output a
number of warnings.

Also introduce a MAXSEGS #define and replace literal 2 with it, to make
comparisons clear.

Reviewed by:	kib
Sponsored by:	The FreeBSD Foundation
2014-04-30 18:11:53 +00:00
Jilles Tjoelker
5d452cea64 kldxref: Add static keyword to the new function only used in the same file.
The WARNS level is not such that the omission broke the build.

Reported by:	mdf
2013-10-16 20:04:06 +00:00
Jilles Tjoelker
6d9cb20bd7 kldxref: Do not depend on the directory order.
Sort the filenames to get a consistent result between machines of the same
architecture.

Also, sort FTS_D entries after other entries so kldxref -R works properly in
the uncommon case that a directory contains both subdirectories and modules.
Previously, this may have happened to work, depending on the order of files
in the directory.

PR:		bin/182098
Submitted by:	Derek Schrock (original version)
Tested by:	Derek Schrock
Approved by:	re (delphij)
MFC after:	1 week
2013-10-04 21:25:55 +00:00
Xin LI
c84739b210 Use calloc().
MFC after:	2 weeks
2013-06-05 21:56:29 +00:00
Xin LI
ac8e13960d Remove unneeded reference to link.h (sys/link_elf.h).
MFC after:	2 weeks
2013-06-05 21:55:20 +00:00
Tim Kientzle
5db4d6779f Clarify a warning message. 2012-10-29 03:31:22 +00:00
Eitan Adler
7e22d9ed96 Remove variables which are initialized but never used thereafter reported by gcc46 warning
Approved by:	cperciva
MFC After:	3 days
2012-06-19 06:10:34 +00:00
Ulrich Spörlein
f76b319989 Reencode files to UTF-8. Drop CP1252 em-dash. 2011-12-30 00:59:08 +00:00
Nathan Whitehorn
b12277d1d4 Repair some build breakage introduced in r211725 and garbage collect some
code made obsolete in the same commit.
2010-08-28 15:03:11 +00:00
Warner Losh
25faff346c MFtbemd:
Prefer MACHNE_CPUARCH to MACHINE_ARCH in most contexts where you want
to test of all the CPUs of a given family conform.
2010-08-23 22:24:11 +00:00
Luigi Rizzo
9cb138bb35 various cleanups including:
+ check a possible buffer overflow when creating a temp file,
  submitted by Christoph Mallon
+ remove stale struct definitions
+ clarify the use of dflag and remove useless checks

MFC after:	3 days
2009-01-06 14:23:38 +00:00
Luigi Rizzo
14560a3610 fix a couple of innocuous compiler warnings
MFC after:	3 days
2009-01-06 14:21:17 +00:00
Luigi Rizzo
16c6e0979c correct description of how a string is stored, fix a few
typos and reference the kernel file which processes this info.

All in all, the content of this file should be moved to kldxref.c
or to the kld(4) manpage.

MFC after:	3 days
2009-01-06 14:10:30 +00:00
Luigi Rizzo
ddce581880 Make the linker.hints file have mode 644 instead of 600.
There is nothing secret in the file, and the missing read
permission breaks diskless operation.

MFC after:	4 weeks
2008-11-30 14:20:08 +00:00
John Birrell
0aad0f2282 These are the things that the tinderbox has problems with because it
doesn't use the default CFLAGS which contain -fno-strict-aliasing.

Until the code is cleaned up, just add -fno-strict-aliasing to the
CFLAGS of these for the tinderboxes' sake, allowing the rest of the
tree to have -Werror enabled again.
2007-11-20 02:07:30 +00:00
Warner Losh
2fdfd0fee2 Use safe strlcpy rather than unsafe strncpy. After marcel's last fix,
there was still one overflow possible.  strlcpy is faster anyway
because it doesn't unexpectedly zero the entire length of the string
when copying short strings....
2006-08-05 18:22:11 +00:00
Marcel Moolenaar
b1bc6755d1 Build shared on PowerPC now that the bug has been found and fixed. 2006-08-04 21:29:39 +00:00
Marcel Moolenaar
77a6f8ac6f Fix (static) buffer overflow bug. The dest buffer is of size MAXPATHLEN,
so dest[MAXPATHLEN] falls outside the buffer.  This bug corrupted
arenas[0] defined in libc's malloc.c on PowerPC when kldxref is shared,
which triggered a delayed SIGSERV.
2006-08-04 21:28:42 +00:00
Marcel Moolenaar
acdb66fce6 Use NO_SHARED=YES to force a static link.
Pointed out by: ru@
2006-07-30 20:51:41 +00:00
Marcel Moolenaar
259d74ed53 Link kldxref(8) static on PowerPC to work around a SIGSEGV that
cannot easily be analyzed due to there being no debugger yet.
The SIGSEGV only happens when kldxref is linked shared.
Since kldxref(8) is needed for a release build, having it not
dump core is important.
2006-07-29 19:43:26 +00:00
Marcel Moolenaar
9ceddbd532 Change maketempfile() to return a FILE* so as to eliminate the fopen()
that immediately follows the only call to it. maketempfile() uses
mkstemp(), so the temporary file has already been opened and using
fopen() again just opens the file twice. This also fixes the invalid
mode used on the fopen().
While here, assign NULL to fxref after fclose() because we test for
fxref being !NULL to determine if we have the (temporary) hints file
open.
2006-07-29 19:39:03 +00:00
Jason Evans
609c1c6c22 Use posix_memalign() rather than assuming that malloc() provides adequate
alignment.

Approved by:	markm (mentor)
2006-01-12 08:01:38 +00:00
Marcel Moolenaar
757686b115 Make our ELF64 type definitions match standards. In particular this
means:
o  Remove Elf64_Quarter,
o  Redefine Elf64_Half to be 16-bit,
o  Redefine Elf64_Word to be 32-bit,
o  Add Elf64_Xword and Elf64_Sxword for 64-bit entities,
o  Use Elf_Size in MI code to abstract the difference between
   Elf32_Word and Elf64_Word.
o  Add Elf_Ssize as the signed counterpart of Elf_Size.

MFC after: 2 weeks
2005-12-18 04:52:37 +00:00
Marcel Moolenaar
55dfaa9163 Explicitly cast ELF_R_TYPE() to the right type. 2005-12-18 01:38:26 +00:00
Ruslan Ermilov
9f5529b45a Skip .symbols files. 2005-11-11 08:13:18 +00:00
Peter Grehan
ba454f638c Doh, erase unused variable... 2005-03-03 06:38:00 +00:00
Peter Grehan
d6029e94fa PowerPC support for kldxref by handling the PPC-specific relocations. 2005-03-02 12:27:42 +00:00
Ian Dowse
9dba198b0e Explicitly pass in the relocation base and data offset into ef_reloc()
rather than relying on a trick that happens to work for the current
relocation schemes. Also add some comments and improve variable
naming.
2004-08-28 19:31:10 +00:00
Ian Dowse
27ed2177dd Use a temporary void * variable to work around a strict aliasing
warning that gcc generates at -O2 and higher.
2004-08-27 08:54:40 +00:00
Ian Dowse
23d0f849c5 Add MD relocation support for amd64 and i386 platforms. The no-op
relocation is not sufficient for ELF relocatable object format
modules, since accessing the module metadata involves following
pointers between different ELF sections.

This allows kldxref to correctly build linker.hints on the amd64
platform.
2004-08-27 01:06:57 +00:00
Ian Dowse
4a8b7e33b7 Add support for reading ELF relocatable object file format modules. 2004-08-27 00:58:40 +00:00
Ian Dowse
9772dc2aff Call the file format specific code through a table of function
pointers and remove knowledge of the file format from kldxref.c.
This will make it possible to support more than one file format.
2004-08-27 00:51:21 +00:00
Ruslan Ermilov
cb40c7d188 Fixed manpage's synopsis, and synchronized it with the program's usage(). 2004-06-01 09:34:04 +00:00
Maxim Sobolev
b7abc67ea4 Check that specified in the command line path is actually a directory,
otherwise we are risking to coredump later on.
2004-04-30 00:20:58 +00:00
Dag-Erling Smørgrav
76798703a5 Remove bogus (void **) casts. This unbreaks the -O2 build. 2004-03-15 17:43:36 +00:00
Dag-Erling Smørgrav
09e0653941 I don't normally use my middle name, so remove it from attributions in
man pages (though not from copyright notices).  While I'm here, add email
addresses where appropriate.
2004-01-25 11:39:42 +00:00
David E. O'Brien
052238b16c style.Makefile(5) 2003-04-04 17:49:21 +00:00
Ruslan Ermilov
41477f3f5c 3rd party modules live in /boot/modules nowadays. 2003-03-03 22:49:21 +00:00
Jake Burkholder
1eed250ad8 Fix kldxref on sparc64 by allowing non-trivial relocations to be performed
on variables read out of raw kld files.  Unlike other platforms the value
will be in an Elf_Rela, not in the data section of the elf file.

Submitted by:	Hartmut Brandt <brandt@fokus.gmd.de>
PR:		46730
Tested on:	alpha (obrien), i386, sparc64
2003-01-21 03:51:53 +00:00
Peter Wemm
754a3615a0 This is a userland tool, not a kernel component or libstand client. 2002-07-17 23:41:58 +00:00
Philippe Charnier
490d5836b5 The .Nm utility 2002-07-14 14:47:15 +00:00
Dag-Erling Smørgrav
d397408818 Usage style sweep: spell "usage" with a small 'u'.
Also change one case of blatant __progname abuse (several more remain)
This commit does not touch anything in src/{contrib,crypto,gnu}/.
2002-04-22 13:44:47 +00:00
Peter Wemm
f23aa297ee Make kldxref work for Elf64 (which has 32 bit hash tables) 2002-04-11 09:30:15 +00:00
John Baldwin
8c7911ebe2 Remove unnecessary machine/bootinfo.h includes.
Submitted by:	jake
2002-01-03 19:10:49 +00:00
Mike Heffner
28644e448a Reorder WARNS line for style.
Pointed out by:	bde
2001-12-10 21:13:36 +00:00
Mike Heffner
87e5cd7c1a WARNS=2 cleanup.
PR:		bin/32567
MFC after:	2 weeks
2001-12-09 07:22:26 +00:00
Ruslan Ermilov
6f1421099e mdoc(7) police: oops, didn't catch this one without ispell(1). 2001-11-22 12:08:35 +00:00
Ruslan Ermilov
dc37807ea4 mdoc(7) police: tiny markup fixes. 2001-11-22 12:03:31 +00:00
Dag-Erling Smørgrav
3d4630a415 Write a real man page. 2001-10-12 02:06:34 +00:00
Peter Wemm
9c6f92408c Add kldxref(8), for maintaining the linker.hints file for translating
module->pathname.ko.  It supports only ELF for now.

Submitted by:   bp  (with some minor tweaks)
2001-09-11 01:13:15 +00:00