README.mknative revision 1.4 1 1.4 uwe $NetBSD: README.mknative,v 1.4 2006/11/23 23:33:56 uwe Exp $
2 1.1 nathanw
3 1.1 nathanw This file describes how to use the cross-compiler to generate the
4 1.1 nathanw native files for GDB on a target platform.
5 1.1 nathanw
6 1.1 nathanw NOTE: DO NOT RUN "mknative" BY HAND! It requires the Makefile in this
7 1.1 nathanw directory to set up certain environments first.
8 1.1 nathanw
9 1.1 nathanw Since libc's features change over time, the config.h files can change as a
10 1.1 nathanw result; thus the instructions below are the same no matter whether
11 1.1 nathanw bootstrapping on a cross or native host. This is important: even on a
12 1.1 nathanw "native" host, you should bootstrap the toolchain by building from an
13 1.1 nathanw up-to-date source tree to a $DESTDIR using the exact same instructions.
14 1.1 nathanw
15 1.1 nathanw In these notes, MACHINE is the $MACHINE of the target. These files can be
16 1.1 nathanw cross-generated. Though a $MACHINE_ARCH all uses the same config files, you
17 1.1 nathanw must pick a specific $MACHINE so that building the requisite bits below will
18 1.1 nathanw work.
19 1.1 nathanw
20 1.1 nathanw 1. Set MKMAINTAINERTOOLS=yes in mk.conf. (Needed so that src/tools/gettext
21 1.1 nathanw gets built, eliciting proper HAVE_*GETTEXT* defns in config.h files.)
22 1.1 nathanw
23 1.1 nathanw 2. Build and install a cross toolchain (via "build.sh -m MACHINE tools").
24 1.1 nathanw
25 1.1 nathanw 3. At top level, do "nbmake-MACHINE do-distrib-dirs obj includes".
26 1.1 nathanw
27 1.2 mrg 4. In src/gnu/lib/crtstuff4 do "nbmake-MACHINE depend all install"
28 1.1 nathanw
29 1.3 uwe 5. In src/lib/csu, src/gnu/lib/libgcc4, and src/lib, do
30 1.3 uwe "nbmake-MACHINE all install".
31 1.1 nathanw
32 1.1 nathanw 6. In src/tools/gdb, do "nbmake-MACHINE obj native-gdb".
33 1.1 nathanw
34 1.1 nathanw This will do a full configury in ${.OBJDIR}/.native that is a "Canadian"
35 1.1 nathanw cross toolchain (--build reflects the host platform, but --host and
36 1.1 nathanw --target are the target). The result is a tree that would build a
37 1.1 nathanw native-to-NetBSD GDB on a cross host, and mknative pulls glue data
38 1.1 nathanw from this.
39 1.1 nathanw
40 1.4 uwe NOTE: this step writes files under src/gnu/usr.bin/gdb6, so you
41 1.4 uwe need to do it in a writable src tree!
42 1.4 uwe
43 1.1 nathanw 7. Try out a full build using "nbmake-MACHINE" in
44 1.1 nathanw src/gnu/usr.bin/gdb6; the result should include a native GDB.
45 1.1 nathanw
46 1.1 nathanw 8. If all is well, commit the glue files and directories added to
47 1.1 nathanw src/gnu/usr.bin/gdb6.
48