NetBSD/tools/gdb
2020-12-05 21:27:31 +00:00
..
Makefile grab the gdbserver version 2020-09-24 14:53:17 +00:00
mknative-gdb Don't bother with gdbserver for archs that don't build it. 2020-12-05 21:27:31 +00:00
mknative-gdb.old Correct target directory; src/external/gpl3/gdb.old not gdb. 2020-10-09 23:48:42 +00:00
README.mknative Nowadays, mknative-gdb puts files into external/gpl3/gdb/lib, 2020-10-09 23:44:46 +00:00

$NetBSD: README.mknative,v 1.7 2020/10/09 23:44:46 rin Exp $

This file describes how to use the cross-compiler to generate the
native files for GDB on a target platform.

NOTE:  DO NOT RUN "mknative" BY HAND!  It requires the Makefile in this
directory to set up certain environments first.

Since libc's features change over time, the config.h files can change as a
result; thus the instructions below are the same no matter whether
bootstrapping on a cross or native host.  This is important: even on a
"native" host, you should bootstrap the toolchain by building from an
up-to-date source tree to a $DESTDIR using the exact same instructions.

In these notes, MACHINE is the $MACHINE of the target.  These files can be
cross-generated.  Though a $MACHINE_ARCH all uses the same config files, you
must pick a specific $MACHINE so that building the requisite bits below will
work.

1. Set MKMAINTAINERTOOLS=yes in mk.conf.  (Needed so that src/tools/gettext
   gets built, eliciting proper HAVE_*GETTEXT* defns in config.h files.)

2. Build and install a cross toolchain (via "build.sh -U -m MACHINE tools").

3. At top level, do "nbmake-MACHINE obj do-distrib-dirs includes".

4. At top level, do "nbmake-MACHINE -C lib build_install".

5. In src/tools/gdb, do "nbmake-MACHINE obj native-gdb".

   This will do a full configury in ${.OBJDIR}/.native that is a "Canadian"
   cross toolchain (--build reflects the host platform, but --host and
   --target are the target).  The result is a tree that would build a
   native-to-NetBSD GDB on a cross host, and mknative pulls glue data
   from this.

   NOTE: this step writes files under src/external/gpl3/gdb/lib, so you
   need to do it in a writable src tree!

6. Try out a full build using "nbmake-MACHINE" in
   src/external/gpl3/gdb; the result should include a native GDB.

7. If all is well, commit the glue files and directories added to
   src/external/gpl3/gdb/lib.