On Mon, May 21, 2007 at 05:08:23PM -0400, Mike Frysinger wrote:
> i'm not terribly familiar with the kconfig/kbuild system so i'm
> looking for some pointers so i can track down the root cause here ...
> 
> some people like to cross-compile the Blackfin kernel on OS X hosts
> and we noticed that in some cases the vmlinux.lds linker script is not
> properly regenerated when changing some options in the kernel config
> menu ... it works just fine on all our Linux hosts :)
> 
> linux/arch/blackfin/kernel/vmlinux.lds.S has this:
> MEMORY
> {
>     ram : ORIGIN = CONFIG_BOOT_LOAD,
> ...
> 
> and in linux/arch/blackfin/Kconfig, we have:
> config BOOT_LOAD
>     hex "Kernel load address"
>     default "0x1000"
> 
> if vmlinux.lds does not exist yet, running `make` generates the proper
> file.  but if we do `make menuconfig` and update just BOOT_LOAD to say
> 0x4000 and then run `make`, vmlinux.lds is not regenerated.
> 
> doing `rm -f` on vmlinux.lds and re-running `make` once again produces
> the correct file
> 
> any pointers on where to dig ? :)

The file arch/blackfin/kernel/.vmlinux.lds.cmd should look like this:
cmd_arch/i386/kernel/vmlinux.lds := i686-unknown-linux-gnu-gcc -m32 -E 
-Wp,-MD,arch/i386/kernel/.vmlinux.lds.d  -nostdinc -isystem 
/opt/crosstool/gcc-4.1.0-glibc-2.3.6/i686-unknown-linux-gnu/lib/gcc/i686-unknown-linux-gnu/4.1.0/include
 -D__KERNEL__ -I/home/sam/kernel/kbuild-fix.git/include -Iinclude 
-I/home/sam/kernel/kbuild-fix.git/include2 -Iinclude2  
-I/home/sam/kernel/kbuild-fix.git/include -include include/linux/autoconf.h -P 
-C -Ui386 -D__ASSEMBLY__ -o arch/i386/kernel/vmlinux.lds 
/home/sam/kernel/kbuild-fix.git/arch/i386/kernel/vmlinux.lds.S

deps_arch/i386/kernel/vmlinux.lds := \
  /home/sam/kernel/kbuild-fix.git/arch/i386/kernel/vmlinux.lds.S \
    $(wildcard include/config/blk/dev/initrd.h) \
  /home/sam/kernel/kbuild-fix.git/include/asm-generic/vmlinux.lds.h \
  include2/asm/thread_info.h \
    $(wildcard include/config/4kstacks.h) \
    $(wildcard include/config/debug/stack/usage.h) \
  /home/sam/kernel/kbuild-fix.git/include/linux/compiler.h \
  ....

Could you please check this.

The line that says:
deps_arch/blackfin/kernel/vmlinux.lds := \ ....
list all the files that the .lds file is dependent on (the prerequisites).
For the config option BOOT_LOAD look for include/config/boot/load

Check that this file gets properly update on OS X.

        Sam

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
kbuild-devel mailing list
kbuild-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/kbuild-devel

Reply via email to