Problem in compiling Linux-2.4.18 with gcc3

vrihad_at_myway.com
Date: 07/31/03


Date: 31 Jul 2003 05:36:22 -0700

Hi!

I am trying to compile linux-2.4.18 with gcc-3.2.3. Running make
bzImage creates a file bzImage of size 19152 bytes only. This is the
output of ls -l in arch/i386/boot directory:

-rw-r--r-- 1 vrihad users 2833 Aug 6 2001 Makefile
-rwxr-xr-x 1 vrihad users 512 Jul 31 16:17 bbootsect
-rw-r--r-- 1 vrihad users 2332 Jul 31 16:17 bbootsect.o
-rw-r--r-- 1 vrihad users 8718 Jul 31 16:17 bbootsect.s
-rw-r--r-- 1 vrihad users 10623 Nov 10 2001 bootsect.S
-rwxr-xr-x 1 vrihad users 4759 Jul 31 16:52 bsetup
-rw-r--r-- 1 vrihad users 12596 Jul 31 16:52 bsetup.o
-rw-r--r-- 1 vrihad users 48263 Jul 31 16:52 bsetup.s
-rw-r--r-- 1 vrihad users 19152 Jul 31 16:52 bzImage
drwxr-xr-x 2 vrihad users 4096 Jul 31 16:52 compressed
-rw-r--r-- 1 vrihad users 974 Sep 15 2001 install.sh
-rw-r--r-- 1 vrihad users 26229 Feb 26 2002 setup.S
drwxr-xr-x 2 vrihad users 4096 Jul 31 16:18 tools
-rw-r--r-- 1 vrihad users 38962 Jul 5 2001 video.S

The size of vmlinux is over 2.5Mb: ls -l vmlinux

-rwxr-xr-x 1 vrihad users 2595279 Jul 31 16:52 vmlinux

Following is the output of make bzImage from the point where vmlinux
is built:

make[1]: Leaving directory `/usr/local/src/linux-2.4.18/arch/i386/lib'
ld -m elf_i386 -T /usr/local/src/linux-2.4.18/arch/i386/vmlinux.lds -e
stext arch/i386/kernel/head.o arch/i386/kernel/init_task.o init/main.o
init/version.o \
        --start-group \
        arch/i386/kernel/kernel.o arch/i386/mm/mm.o kernel/kernel.o
mm/mm.o fs/fs.o ipc/ipc.o \
         drivers/char/char.o drivers/block/block.o drivers/misc/misc.o
drivers/net/net.o drivers/media/media.o drivers/char/agp/agp.o
drivers/char/drm/drm.o drivers/ide/idedriver.o drivers/cdrom/driver.o
drivers/pci/driver.o drivers/pnp/pnp.o drivers/video/video.o
drivers/usb/usbdrv.o \
        net/network.o \
        /usr/local/src/linux-2.4.18/arch/i386/lib/lib.a
/usr/local/src/linux-2.4.18/lib/lib.a
/usr/local/src/linux-2.4.18/arch/i386/lib/lib.a \
        --end-group \
        -o vmlinux
nm vmlinux | grep -v '\(compiled\)\|\(\.o$\)\|\( [aUw]
\)\|\(\.\.ng$\)\|\(LASH[RL]DI\)' | sort > System.map
make[1]: Entering directory
`/usr/local/src/linux-2.4.18/arch/i386/boot'
gcc -E -D__KERNEL__ -I/usr/local/src/linux-2.4.18/include
-D__BIG_KERNEL__ -D__ASSEMBLY__ -traditional -DSVGA_MODE=NORMAL_VGA
setup.S -o bsetup.s
as -o bsetup.o bsetup.s
bsetup.s: Assembler messages:
bsetup.s:1596: Warning: indirect lcall without `*'
ld -m elf_i386 -Ttext 0x0 -s --oformat binary -e begtext -o bsetup
bsetup.o
make[2]: Entering directory
`/usr/local/src/linux-2.4.18/arch/i386/boot/compressed'
tmppiggy=_tmp_$$piggy; \
rm -f $tmppiggy $tmppiggy.gz $tmppiggy.lnk; \
objcopy -O binary -R .note -R .comment -S
/usr/local/src/linux-2.4.18/vmlinux $tmppiggy; \
gzip -f -9 < $tmppiggy > $tmppiggy.gz; \
echo "SECTIONS { .data : { input_len = .; LONG(input_data_end -
input_data) input_data = .; *(.data) input_data_end = .; }}" >
$tmppiggy.lnk; \
ld -m elf_i386 -r -o piggy.o -b binary $tmppiggy.gz -b elf32-i386 -T
$tmppiggy.lnk; \
rm -f $tmppiggy $tmppiggy.gz $tmppiggy.lnk
ld -m elf_i386 -Ttext 0x100000 -e startup_32 -o bvmlinux head.o misc.o
piggy.o
make[2]: Leaving directory
`/usr/local/src/linux-2.4.18/arch/i386/boot/compressed'
objcopy -O binary -R .note -R .comment -S compressed/bvmlinux
compressed/bvmlinux.out
tools/build -b bbootsect bsetup compressed/bvmlinux.out CURRENT >
bzImage
Root device is (3, 8)
Boot sector 512 bytes.
Setup is 4759 bytes.
System is 13 kB

Only one warning is issued by the assembler; i.e.
bsetup.s:1596: Warning: indirect lcall without `*'

What could be the problem?

Thanks in advance
vrihad



Relevant Pages

  • [RFC PATCH] Make arch/x86/Makefile_{32,64} more similar
    ... # This file is included by the global makefile so that you can add your own ... # do binutils support CFI? ... all: bzImage ... -zImage bzImage: vmlinux ...
    (Linux-Kernel)
  • Re: Re : [PATCH] Compressed ia32 ELF file generation for loading by Gujin 1/3
    ... bzImage for dump captruing purposes. ... If real mode code is linked with vmlinux, then kdump will be broken. ... If we do make the real mode code findable from a set of ELF headers ...
    (Linux-Kernel)
  • Re: bzImage and vmlinux
    ... vmlinux is a an elf file. ... It is your main kernel. ... > are both compressed,compiled kernel file coz bzImage could boot my ...
    (comp.os.linux.development.system)
  • x86_64 KBUILD_IMAGE
    ... and hence defaults to vmlinux. ... the expected bzImage, which is surprisingly unbootable and not what's ... Just setting the variable is enough to convince it to use bzImage properly. ... send the line "unsubscribe linux-kernel" in ...
    (Linux-Kernel)
  • Re: Booting vmlinux with GRUB on x86
    ... bzImage has some real mode code that gets information from the BIOS ... and passes it to the vmlinux ... grub would need to pass this information first before it could execute ...
    (Linux-Kernel)