Commit Graph

3625 Commits

Author SHA1 Message Date
jhb
890a8204e8 - Rework the kld support to hook into GDB's shared library support.
kgdb(8) now treats kld's as shared libraries relative to the kernel
  "binary".  Thus, you can use 'info sharedlibrary' to list the kld's
  along with 'sharedlibrary' and 'nosharedlibrary' to manage symbol
  loading and unloading.  Note that there isn't an easy way to force GDB
  to use a specific path for a shared library.  However, you can use
  'nosharedlibrary' to unload all the klds and then use 'sharedlibrary'
  to load specific klds where it gets the kld correct and use
  'add-kld' for the kld's where the default open behavior doesn't work.
  klds opened via 'sharedlibrary' (and during startup) do have their
  sections listed in 'info files'.
- Change the 'add-kld' command to use filename completion to complete its
  argument.
2008-01-29 23:44:34 +00:00
jhb
12a6269e8f Don't close the kernel bfd object during startup. Instead, leave it open
and build a section table from the kernel file so that 'info files' output
for kgdb now matches the usage of gdb on a regular file with the exception
that we don't list sections for memory in the crash dump.
2008-01-29 23:37:59 +00:00
jhb
bddbfed7ec Use target_read_memory() and extract_unsigned_integer() instead of direct
KVM access to read kernel pointers.
2008-01-29 23:36:42 +00:00
jhb
2b547364ab Don't look for "foo.ko.symbols" files. GDB is smart enough to open the
".symbols" file automatically when you tell it to load "foo.ko" because of
the debug link.
2008-01-29 23:36:10 +00:00
jhb
8fe633f266 Use a for loop in find_kld_address() as in kgdb_auto_load_klds() and
replace the remaining goto's with continues as a result.
2008-01-28 21:45:09 +00:00
jhb
a92e1fcff2 Add support for automatically loading symbols for kld's on startup:
- Add a new 'kgdb_auto_load_klds()' routine which is invoked during
  startup that walks the list of linker files and tries to find a matching
  kld on disk for each non-kernel kld.  If a kld file is found, then it
  is added as if the 'add-kld' command is invoked.  One change from
  'add-kld' is that this method attempts to use the 'pathname' from the
  linker_file structure first to try to load the file.  If that fails
  it then looks in the kernel directory followed by the directories in
  the module path.
- Move the kld file suffix handling into a separate routine so that it
  can be called standalone and to reduce duplicate code in find_kld_path().
- Cache the offsets of members of 'struct linker_file' during startup
  instead of computing them for each 'add-kld'.
- Use GDB's target_read_string() instead of direct KVM access.
- Add all resident sections from a kld by using bfd_map_over_sections() to
  build the section list rather than just adding symbols for ".text",
  ".data", ".bss", and ".rodata".
- Change the 'add-kld' command to do a y/n prompt before adding the
  symbols when run interactively to match 'add-symbol-file'.

MFC after:	1 week
2008-01-28 21:40:10 +00:00
jhb
d3871c9ec1 Remove the warnx() from kgdb_lookup() so that we don't emit a warning about
optional symbols that are missing (e.g. kgdb complains about _stoppcbs and
_stopped_cpus on UP kernels).  Instead, callers that really want their
symbols to be present now do explicitly warnx() about the missing symbol.
2008-01-28 20:33:19 +00:00
jhb
df803c74ff If the quiet flag is specified (-q), don't dump the unread portion of
the message buffer on startup.
2008-01-28 20:31:30 +00:00
jhb
6d2956878d Move the code for working with kld's out into its own file. 2008-01-24 19:11:13 +00:00
ru
26a7166ba5 Remove one more alpha leftover. 2008-01-24 07:43:09 +00:00
emaste
3ccc28b1ea Include the thread name (in addition to the proc name) in "info threads." 2008-01-18 18:57:27 +00:00
jhb
7f24f24832 Add a new 'add-kld <kld>' command to kgdb to make it easier to analyze
crash dumps with kernel modules.  The command is basically a wrapper
around add-symbol-file except that it uses the kernel linker data
structures and the ELF section headers of the kld to calculate the
section addresses add-symbol-file needs.

The 'kld' parameter may either be an absolute path or a relative path.
kgdb looks for the kld in several locations checking for variants with
".symbols" or ".debug" suffixes in each location.  The first location it
tries is just opening the specified path (this handles absolute paths and
looks for the kld relative to the current directory otherwise).  Next
it tries to find the module in the same directory of the kernel image
being used.  If that fails it extracts the kern.module_path from the
kernel being debugged and looks in each of those paths.

The upshot is that for the common cases of debugging /boot/kernel/kernel
where the module is in either /boot/kernel or /boot/modules one can merely
do 'add-kld foo.ko'.

MFC after:	1 week
2008-01-17 21:43:12 +00:00
obrien
f0a31230be Use a phony .POSIX target. This seems to be the way to
turn off the stuff in src/usr.bin/make/main.c rev 1.161.
2008-01-16 17:16:36 +00:00
obrien
e5eec05ed2 Use our standard verbose spelling of rules variables.
(as a nice side affect, this will make gnu/usr.bin/cvs/contrib/Makefile
have a later date than contrib/cvs/contrib/Makefile.in - which will help
the build break after the 1.11.22 CVS import...)
2008-01-13 09:45:53 +00:00
obrien
bc09846720 Disable contrib - there is weirdness going on with it. 2008-01-13 08:58:25 +00:00
obrien
b70f24b976 Reenable cvs with the build. 2008-01-13 06:56:31 +00:00
obrien
0526761d4d Disable CVS from the build. 2008-01-13 05:49:03 +00:00
jkoshy
973e739e92 Tweak -lpmc's name. 2007-11-27 10:00:33 +00:00
kensmith
55889a3fe4 While checking over the libraries for 7.0-REL Kris found the following
libraries had not had their versions bumped relative to 6.3-REL but
had indeed been changed.  We need to bump their version so they can be
properly added to the compat6x port:

	libasn1.so.8 libgssapi.so.8 libhdb.so.8 libkadm5clnt.so.8
	libkadm5srv.so.8 libkafs5.so.8 libkrb5.so.8 libobjc.so.2

MFC After:	1 day
2007-11-20 04:20:32 +00:00
ache
86052f1e7e Use LC_ALL=C before awk generating "optionlist"
(and before two other awk calls, just to be safe)
Without it sorting is broken for locales with ASCII collating equivalence
like (v,w) in sv_SE
2007-11-18 11:59:44 +00:00
cognet
6ebbe5e1f8 Add thread support for arm.
MFC After:	1 week
2007-11-17 21:30:03 +00:00
cognet
26544f3861 There's no reason why we couldn't attach to a live process on arm.
MFC After:	1 week
2007-11-17 18:41:04 +00:00
jhb
5b26270d09 Teach kgdb how to handle double fault frames on i386:
- Save td_oncpu in 'struct kthr' so the i386 target code can see which CPU
  a thread is running on.
- Add a new frame unwinder for double fault frames.  This unwinder is used
  when "dblfault_handler" is encountered in the stack.  It uses the CPU of
  the current thread to lookup the base address of the TSS used for the
  double fault from the GDT.  It then fetches the various registers out
  of the TSS similar to how the current trapframe unwinder fetches
  registers out of the trapframe.

MFC after:	3 days
2007-11-16 22:17:37 +00:00
ru
e931a5984e Added ".Lb libkse" support to mdoc(7).
Reviewed by:	deischen, davidxu
2007-10-22 10:01:58 +00:00
ru
fb0e70bcad Introduce FreeBSD 8.0 to mdoc(7). 2007-10-15 08:06:42 +00:00
ru
130dc0a6e8 Back out last commit -- it breaks sparc64 build which has
more than one .c file in SRCS.
2007-10-13 05:50:43 +00:00
obrien
d4ac5dba18 style.Makefile(5) 2007-10-12 18:15:40 +00:00
obrien
c52e58f8fd Minor tweak to finding BEG/END source. 2007-10-12 18:14:41 +00:00
obrien
5847d42878 style.Makefile(5) 2007-10-12 18:03:00 +00:00
obrien
55bf4412df Welcome FreeBSD 8. 2007-10-12 17:49:12 +00:00
rafan
d238007fea - After gcc 4.2 import, include/objc/objc-api.h requires objc-decls.h which
we did not install. Install objc-decls.h to fix.

PR:		116943
Reported by:	beech
Submitted by:	vanilla on -current, kan
MFC after:	1 week
2007-10-12 02:52:46 +00:00
marius
451b3404fc Disable TLS for arm and sparc64 here as binutils 2.15 predate GNU TLS
support for these. This is in line with gnu/lib/libgomp/config.h and
gnu/lib/libstdc++/config.h.

Reviewed by:	cognet, obrien
Approved by:	re (kensmith)
2007-10-08 18:59:34 +00:00
ru
3b7b45908e FreeBSD 6.2 is now known to mdoc.
Approved by:	re (kensmith)
2007-10-04 04:39:06 +00:00
marcel
88e1757c25 Force -O1 compilation when targeted for ia64. GCC 4 generates
bad code at -O2. Since this is likely caused by the low-level
optimizer, testing TARGET_ARCH rather than MACHINE_ARCH should
handle ia64 cross-compilation as well. With this work-around
in place, we can release using the current GCC and Binutils
code at the default optimization level on ia64.

Approved by: re (kensmith)
2007-09-26 01:31:28 +00:00
edwin
c2ea759143 Fix possible uninitialized variable insert due to previous commit.
Pointy hat to: me and my absence of -Wall in my CFLAGS.

MFC will happen at the same time of the earlier commit.

Thanks to ru@ for spotting.

Approved by:	re (Ken Smith), grog@ (mentor)
2007-09-25 21:41:22 +00:00
edwin
4c08b03e8e man(1) can't handle compressed included files.
Some ports will install with compressed manpages. man handles
	this by looking for the .gz version of a man source file.
	It is also common to include other files with the .so
	directive where commands or functions share a man page.
	Traditionally ports have had to handle this by either not
	compressing the manpages, or using the _MLINKS macro in the
	port makefile to create symlinks to the actual source file,
	rather than using .so versions. Notably, the current version
	of Xorg port breaks. See ports/113096 and ports/115845.

PR:		bin/115850
Submitted by:	Callum Gibson <callumgibson@optusnet.com.au>
Approved by:	re@ (ken smith), grog@ (mentor)
MFC after:	1 week
2007-09-20 21:37:29 +00:00
obrien
b96c04d717 Catch up with the demise of /usr/X11R6
Approved by:	re(ken)
2007-09-19 14:21:18 +00:00
obrien
1bfcd498fa Reduce diff to vendor for maintance purposes.
Approved by:	re(ken)
2007-09-19 14:19:32 +00:00
thomas
3e11a3177a In the case of a native build, set NATIVE to yes so that the code circuits
that need to be activated specifically for the case of a native linker
actually are enabled. Specifically, this makes ld(1) look for shared
libraries in LD_LIBRARY_PATH in the native case, as documented in the
man page.

PR:		gnu/96481
Approved by:	re (kensmith)
MFC after:	2 weeks
2007-09-19 12:17:39 +00:00
cognet
c4bc8a1abf Make gcc default to big endian when building it for a big endian target.
This was lost while migrating to gcc4.

Reported by:	Michael Reifenberger <mike at Reifenberger dot com>
Approved by:	re (blanket)
2007-09-18 23:34:42 +00:00
ache
320c840549 Fix stack overflow with too many items return list in 'dialog' program.
(Noticed in ghostscript-gpl core dump)

Approved by:    re@ (bmah)
2007-08-24 16:26:24 +00:00
jhb
f6ef728f95 NMIs now come from 'nmi_calltrap' rather than 'calltrap', so teach 'kgdb'
to treat the frame under 'nmi_calltrap' as a trapframe.

MFC after:	3 days
Approved by:	re (bmah)
2007-08-22 20:28:13 +00:00
kan
2bd799c9ea Install etx/numeric_traits.h.
PR:		gnu/115250
Approved by:	re (blanket)
2007-08-16 23:02:00 +00:00
kan
db6e95501b Remove comment that was added by mistakes and which prevented _eprintf
and gcc_bcmp to be added to static libgcc.a.

Approved by:	re (kensmith)
2007-08-14 20:49:57 +00:00
rafan
5fd49d94d5 - Bump share library version which were missed in last bump
Reported by: 	     jhb
Discussed with:	     deischen, des, doubg, harti
Approved by:	     re (kensmith)
2007-06-18 18:47:54 +00:00
delphij
6a4276ae14 Fix build on arm: time_t on arm is 64 bits while long is
32 bits, so subsequent compile time assertion:

	sizeof inf->stat.st_mtime <= sizeof sec

Would fail because of that.  This change is suitable for
general consumption as well, but fix it in our local
patchset as we are near a code freeze.

Submitted by:	cognet
2007-06-17 00:43:50 +00:00
delphij
33aeb00c4d Update build skeleton after diffutils 2.8.7 update. 2007-06-15 07:09:34 +00:00
philip
c14d50d1f4 Don't lie about saved reports.
PR:		gnu/89777
Submitted by:	edwin
MFC after:	1 day
2007-06-02 18:06:08 +00:00
kan
20dd9c1275 Install omp.h file.
Submitted by:	Pieter de Goeje (pieter at degoejes dot nl)
2007-05-31 13:21:30 +00:00
kan
8343d42419 Fix compiles when user chooses to disable both ObjC and C++ support in
GCC.

Reported by: bz
2007-05-28 00:25:07 +00:00