* kbuild O= support broken?
@ 2007-03-30 15:00 Fuxin Zhang
0 siblings, 0 replies; only message in thread
From: Fuxin Zhang @ 2007-03-30 15:00 UTC (permalink / raw)
To: linux-mips
Hello,
Recently I meet a strange error when building a kernel: if I build the
kernel in the source tree, then it will work well; but if I build it
with O=../build, then the resulting kernel is unstable.
Looking into the problem, I find that these two kernel is quite
different, e.g.
ls -l */built-in.o in build/ dir:
-rw-r--r-- 1 loongson loongson 155239 2007-03-30 10:21 block/built-in.o
-rw-r--r-- 1 loongson loongson 18923 2007-03-30 10:20 crypto/built-in.o
-rw-r--r-- 1 loongson loongson 1498144 2007-03-30 10:30 drivers/built-in.o
-rw-r--r-- 1 loongson loongson 1075678 2007-03-30 10:20 fs/built-in.o
-rw-r--r-- 1 loongson loongson 48747 2007-03-30 22:24 init/built-in.o
-rw-r--r-- 1 loongson loongson 38110 2007-03-30 10:20 ipc/built-in.o
-rw-r--r-- 1 loongson loongson 468469 2007-03-30 10:18 kernel/built-in.o
-rw-r--r-- 1 loongson loongson 18898 2007-03-30 10:41 lib/built-in.o
-rw-r--r-- 1 loongson loongson 313511 2007-03-30 10:12 mm/built-in.o
-rw-r--r-- 1 loongson loongson 974689 2007-03-30 10:40 net/built-in.o
-rw-r--r-- 1 loongson loongson 6774 2007-03-30 10:20 security/built-in.o
-rw-r--r-- 1 loongson loongson 8 2007-03-30 22:43 sound/built-in.o
-rw-r--r-- 1 loongson loongson 913 2007-03-30 10:07 usr/built-in.o
ls -l */built-in.o in src tree:
-rw-r--r-- 1 loongson loongson 155484 2007-03-29 23:03 block/built-in.o
-rw-r--r-- 1 loongson loongson 21702 2007-03-29 23:01 crypto/built-in.o
-rw-r--r-- 1 loongson loongson 1771957 2007-03-29 23:26 drivers/built-in.o
-rw-r--r-- 1 loongson loongson 1087193 2007-03-29 23:00 fs/built-in.o
-rw-r--r-- 1 loongson loongson 48747 2007-03-30 22:21 init/built-in.o
-rw-r--r-- 1 loongson loongson 54546 2007-03-29 23:01 ipc/built-in.o
-rw-r--r-- 1 loongson loongson 470917 2007-03-30 10:16 kernel/built-in.o
-rw-r--r-- 1 loongson loongson 23356 2007-03-29 23:51 lib/built-in.o
-rw-r--r-- 1 loongson loongson 314543 2007-03-29 22:30 mm/built-in.o
-rw-r--r-- 1 loongson loongson 935894 2007-03-29 23:50 net/built-in.o
-rw-r--r-- 1 loongson loongson 6774 2007-03-29 23:01 security/built-in.o
-rw-r--r-- 1 loongson loongson 12154 2007-03-30 22:21 sound/built-in.o
-rw-r--r-- 1 loongson loongson 894 2007-03-29 22:20 usr/built-in.o
loongson@debian:~/old$ ls -l vmlinux ../build-old/vmlinux
-rwxr-xr-x 1 loongson loongson 3856719 2007-03-30 22:24 ../build-old/vmlinux
-rwxr-xr-x 1 loongson loongson 4079730 2007-03-30 22:21 vmlinux
the size different is around 200K!
Take the "sound" subdir for example, I use Make V=1 to check the output
and find that
while in the src tree, obj-y is correctly set to soundcore.o, so
built-in.o will be linked
using: (CONFIG_SOUND=y)
make -f scripts/Makefile.build obj=sound
ld -m elf32ltsmip -r -o sound/built-in.o sound/soundcore.o
while with O= option:
make -f /home/loongson/old/scripts/Makefile.build obj=sound
rm -f sound/built-in.o; ar rcs sound/built-in.o
check scripts/Makefile.build we can find that it indicates that obj-y is
null:
around line 260:
ifdef builtin-target
quiet_cmd_link_o_target = LD $@
# If the list of objects to link is empty, just create an empty built-in.o
cmd_link_o_target = $(if $(strip $(obj-y)),\
$(LD) $(ld_flags) -r -o $@ $(filter $(obj-y), $^),\
rm -f $@; $(AR) rcs $@)
$(builtin-target): $(obj-y) FORCE
$(call if_changed,link_o_target)
Anybody can help explain this?
Thank you.
yours
Fuxin Zhang
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2007-03-30 14:50 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-30 15:00 kbuild O= support broken? Fuxin Zhang
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.