mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-30 00:56:45 +07:00
1da177e4c3
Initial git repository build. I'm not bothering with the full history, even though we have it. We can create a separate "historical" git archive of that later if we want to, and in the meantime it's about 3.2GB when imported into git - space that would just make the early git days unnecessarily complicated, when we don't have a lot of good infrastructure for it. Let it rip!
47 lines
2.1 KiB
Groff
47 lines
2.1 KiB
Groff
BTFIXUP
|
|
-------
|
|
|
|
To build new kernels you have to issue "make image". The ready kernel
|
|
in ELF format is placed in arch/sparc/boot/image. Explanation is below.
|
|
|
|
BTFIXUP is a unique feature of Linux/sparc among other architectures,
|
|
developed by Jakub Jelinek (I think... Obviously David S. Miller took
|
|
part, too). It allows to boot the same kernel at different
|
|
sub-architectures, such as sun4c, sun4m, sun4d, where SunOS uses
|
|
different kernels. This feature is convinient for people who you move
|
|
disks between boxes and for distrution builders.
|
|
|
|
To function, BTFIXUP must link the kernel "in the draft" first,
|
|
analyze the result, write a special stub code based on that, and
|
|
build the final kernel with the stub (btfix.o).
|
|
|
|
Kai Germaschewski improved the build system of the kernel in the 2.5 series
|
|
significantly. Unfortunately, the traditional way of running the draft
|
|
linking from architecture specific Makefile before the actual linking
|
|
by generic Makefile is nearly impossible to support properly in the
|
|
new build system. Therefore, the way we integrate BTFIXUP with the
|
|
build system was changed in 2.5.40. Now, generic Makefile performs
|
|
the draft linking and stores the result in file vmlinux. Architecture
|
|
specific post-processing invokes BTFIXUP machinery and final linking
|
|
in the same way as other architectures do bootstraps.
|
|
|
|
Implications of that change are as follows.
|
|
|
|
1. Hackers must type "make image" now, instead of just "make", in the same
|
|
way as s390 people do now. It is analogous to "make bzImage" on i386.
|
|
This does NOT affect sparc64, you continue to use "make" to build sparc64
|
|
kernels.
|
|
|
|
2. vmlinux is not the final kernel, so RPM builders have to adjust
|
|
their spec files (if they delivered vmlinux for debugging).
|
|
System.map generated for vmlinux is still valid.
|
|
|
|
3. Scripts that produce a.out images have to be changed. First, if they
|
|
invoke make, they have to use "make image". Second, they have to pick up
|
|
the new kernel in arch/sparc/boot/image instead of vmlinux.
|
|
|
|
4. Since we are compliant with Kai's build system now, make -j is permitted.
|
|
|
|
-- Pete Zaitcev
|
|
zaitcev@yahoo.com
|