 1da177e4c3
			
		
	
	
	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!
		
			
				
	
	
		
			46 lines
		
	
	
	
		
			2.1 KiB
			
		
	
	
	
		
			Groff
		
	
	
	
	
	
			
		
		
	
	
			46 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
 |