1 |
62 |
marcus.erl |
BTFIXUP
|
2 |
|
|
-------
|
3 |
|
|
|
4 |
|
|
To build new kernels you have to issue "make image". The ready kernel
|
5 |
|
|
in ELF format is placed in arch/sparc/boot/image. Explanation is below.
|
6 |
|
|
|
7 |
|
|
BTFIXUP is a unique feature of Linux/sparc among other architectures,
|
8 |
|
|
developed by Jakub Jelinek (I think... Obviously David S. Miller took
|
9 |
|
|
part, too). It allows to boot the same kernel at different
|
10 |
|
|
sub-architectures, such as sun4c, sun4m, sun4d, where SunOS uses
|
11 |
|
|
different kernels. This feature is convinient for people who you move
|
12 |
|
|
disks between boxes and for distrution builders.
|
13 |
|
|
|
14 |
|
|
To function, BTFIXUP must link the kernel "in the draft" first,
|
15 |
|
|
analyze the result, write a special stub code based on that, and
|
16 |
|
|
build the final kernel with the stub (btfix.o).
|
17 |
|
|
|
18 |
|
|
Kai Germaschewski improved the build system of the kernel in the 2.5 series
|
19 |
|
|
significantly. Unfortunately, the traditional way of running the draft
|
20 |
|
|
linking from architecture specific Makefile before the actual linking
|
21 |
|
|
by generic Makefile is nearly impossible to support properly in the
|
22 |
|
|
new build system. Therefore, the way we integrate BTFIXUP with the
|
23 |
|
|
build system was changed in 2.5.40. Now, generic Makefile performs
|
24 |
|
|
the draft linking and stores the result in file vmlinux. Architecture
|
25 |
|
|
specific post-processing invokes BTFIXUP machinery and final linking
|
26 |
|
|
in the same way as other architectures do bootstraps.
|
27 |
|
|
|
28 |
|
|
Implications of that change are as follows.
|
29 |
|
|
|
30 |
|
|
1. Hackers must type "make image" now, instead of just "make", in the same
|
31 |
|
|
way as s390 people do now. It is analogous to "make bzImage" on i386.
|
32 |
|
|
This does NOT affect sparc64, you continue to use "make" to build sparc64
|
33 |
|
|
kernels.
|
34 |
|
|
|
35 |
|
|
2. vmlinux is not the final kernel, so RPM builders have to adjust
|
36 |
|
|
their spec files (if they delivered vmlinux for debugging).
|
37 |
|
|
System.map generated for vmlinux is still valid.
|
38 |
|
|
|
39 |
|
|
3. Scripts that produce a.out images have to be changed. First, if they
|
40 |
|
|
invoke make, they have to use "make image". Second, they have to pick up
|
41 |
|
|
the new kernel in arch/sparc/boot/image instead of vmlinux.
|
42 |
|
|
|
43 |
|
|
4. Since we are compliant with Kai's build system now, make -j is permitted.
|
44 |
|
|
|
45 |
|
|
-- Pete Zaitcev
|
46 |
|
|
zaitcev@yahoo.com
|