diff options
author | H. Peter Anvin <hpa@zytor.com> | 2007-07-11 15:18:56 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-07-12 13:55:55 -0400 |
commit | 4fd06960f120e02e9abc802a09f9511c400042a5 (patch) | |
tree | 4a7f26188d63ab01269aa6c6adfef01df3064ccd /arch/i386/boot/Makefile | |
parent | f2d98ae63dc64dedb00499289e13a50677f771f9 (diff) |
Use the new x86 setup code for i386
This patch hooks the new x86 setup code into the Makefile machinery. It
also adapts boot/tools/build.c to a two-file (as opposed to three-file)
universe, and simplifies it substantially.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/i386/boot/Makefile')
-rw-r--r-- | arch/i386/boot/Makefile | 48 |
1 files changed, 41 insertions, 7 deletions
diff --git a/arch/i386/boot/Makefile b/arch/i386/boot/Makefile index bfbc32098a4a..08678a0a3d19 100644 --- a/arch/i386/boot/Makefile +++ b/arch/i386/boot/Makefile | |||
@@ -25,27 +25,56 @@ SVGA_MODE := -DSVGA_MODE=NORMAL_VGA | |||
25 | 25 | ||
26 | #RAMDISK := -DRAMDISK=512 | 26 | #RAMDISK := -DRAMDISK=512 |
27 | 27 | ||
28 | targets := vmlinux.bin bootsect bootsect.o \ | 28 | targets := vmlinux.bin setup.bin setup.elf zImage bzImage |
29 | setup setup.o zImage bzImage | ||
30 | subdir- := compressed | 29 | subdir- := compressed |
31 | 30 | ||
31 | setup-y += a20.o apm.o cmdline.o copy.o cpu.o cpucheck.o edd.o | ||
32 | setup-y += header.o main.o mca.o memory.o pm.o pmjump.o | ||
33 | setup-y += printf.o string.o tty.o video.o version.o voyager.o | ||
34 | |||
35 | # The link order of the video-*.o modules can matter. In particular, | ||
36 | # video-vga.o *must* be listed first, followed by video-vesa.o. | ||
37 | # Hardware-specific drivers should follow in the order they should be | ||
38 | # probed, and video-bios.o should typically be last. | ||
39 | setup-y += video-vga.o | ||
40 | setup-y += video-vesa.o | ||
41 | setup-y += video-bios.o | ||
42 | |||
32 | hostprogs-y := tools/build | 43 | hostprogs-y := tools/build |
33 | 44 | ||
34 | HOSTCFLAGS_build.o := $(LINUXINCLUDE) | 45 | HOSTCFLAGS_build.o := $(LINUXINCLUDE) |
35 | 46 | ||
36 | # --------------------------------------------------------------------------- | 47 | # --------------------------------------------------------------------------- |
37 | 48 | ||
49 | # How to compile the 16-bit code. Note we always compile for -march=i386, | ||
50 | # that way we can complain to the user if the CPU is insufficient. | ||
51 | cflags-i386 := | ||
52 | cflags-x86_64 := -m32 | ||
53 | CFLAGS := $(LINUXINCLUDE) -g -Os -D_SETUP -D__KERNEL__ \ | ||
54 | $(cflags-$(ARCH)) \ | ||
55 | -Wall -Wstrict-prototypes \ | ||
56 | -march=i386 -mregparm=3 \ | ||
57 | -include $(srctree)/$(src)/code16gcc.h \ | ||
58 | -fno-strict-aliasing -fomit-frame-pointer \ | ||
59 | $(call cc-option, -ffreestanding) \ | ||
60 | $(call cc-option, -fno-toplevel-reorder,\ | ||
61 | $(call cc-option, -fno-unit-at-a-time)) \ | ||
62 | $(call cc-option, -fno-stack-protector) \ | ||
63 | $(call cc-option, -mpreferred-stack-boundary=2) | ||
64 | AFLAGS := $(CFLAGS) -D__ASSEMBLY__ | ||
65 | |||
38 | $(obj)/zImage: IMAGE_OFFSET := 0x1000 | 66 | $(obj)/zImage: IMAGE_OFFSET := 0x1000 |
39 | $(obj)/zImage: EXTRA_AFLAGS := $(SVGA_MODE) $(RAMDISK) | 67 | $(obj)/zImage: EXTRA_AFLAGS := $(SVGA_MODE) $(RAMDISK) |
40 | $(obj)/bzImage: IMAGE_OFFSET := 0x100000 | 68 | $(obj)/bzImage: IMAGE_OFFSET := 0x100000 |
69 | $(obj)/bzImage: EXTRA_CFLAGS := -D__BIG_KERNEL__ | ||
41 | $(obj)/bzImage: EXTRA_AFLAGS := $(SVGA_MODE) $(RAMDISK) -D__BIG_KERNEL__ | 70 | $(obj)/bzImage: EXTRA_AFLAGS := $(SVGA_MODE) $(RAMDISK) -D__BIG_KERNEL__ |
42 | $(obj)/bzImage: BUILDFLAGS := -b | 71 | $(obj)/bzImage: BUILDFLAGS := -b |
43 | 72 | ||
44 | quiet_cmd_image = BUILD $@ | 73 | quiet_cmd_image = BUILD $@ |
45 | cmd_image = $(obj)/tools/build $(BUILDFLAGS) $(obj)/bootsect $(obj)/setup \ | 74 | cmd_image = $(obj)/tools/build $(BUILDFLAGS) $(obj)/setup.bin \ |
46 | $(obj)/vmlinux.bin $(ROOT_DEV) > $@ | 75 | $(obj)/vmlinux.bin $(ROOT_DEV) > $@ |
47 | 76 | ||
48 | $(obj)/zImage $(obj)/bzImage: $(obj)/bootsect $(obj)/setup \ | 77 | $(obj)/zImage $(obj)/bzImage: $(obj)/setup.bin \ |
49 | $(obj)/vmlinux.bin $(obj)/tools/build FORCE | 78 | $(obj)/vmlinux.bin $(obj)/tools/build FORCE |
50 | $(call if_changed,image) | 79 | $(call if_changed,image) |
51 | @echo 'Kernel: $@ is ready' ' (#'`cat .version`')' | 80 | @echo 'Kernel: $@ is ready' ' (#'`cat .version`')' |
@@ -53,12 +82,17 @@ $(obj)/zImage $(obj)/bzImage: $(obj)/bootsect $(obj)/setup \ | |||
53 | $(obj)/vmlinux.bin: $(obj)/compressed/vmlinux FORCE | 82 | $(obj)/vmlinux.bin: $(obj)/compressed/vmlinux FORCE |
54 | $(call if_changed,objcopy) | 83 | $(call if_changed,objcopy) |
55 | 84 | ||
56 | LDFLAGS_bootsect := -Ttext 0x0 -s --oformat binary | 85 | SETUP_OBJS = $(addprefix $(obj)/,$(setup-y)) |
57 | LDFLAGS_setup := -Ttext 0x0 -s --oformat binary -e begtext | ||
58 | 86 | ||
59 | $(obj)/setup $(obj)/bootsect: %: %.o FORCE | 87 | LDFLAGS_setup.elf := -T |
88 | $(obj)/setup.elf: $(src)/setup.ld $(SETUP_OBJS) FORCE | ||
60 | $(call if_changed,ld) | 89 | $(call if_changed,ld) |
61 | 90 | ||
91 | OBJCOPYFLAGS_setup.bin := -O binary | ||
92 | |||
93 | $(obj)/setup.bin: $(obj)/setup.elf FORCE | ||
94 | $(call if_changed,objcopy) | ||
95 | |||
62 | $(obj)/compressed/vmlinux: FORCE | 96 | $(obj)/compressed/vmlinux: FORCE |
63 | $(Q)$(MAKE) $(build)=$(obj)/compressed IMAGE_OFFSET=$(IMAGE_OFFSET) $@ | 97 | $(Q)$(MAKE) $(build)=$(obj)/compressed IMAGE_OFFSET=$(IMAGE_OFFSET) $@ |
64 | 98 | ||