Solved: Kernel compile aborts in make bzImage

Aurel Wisse yellowdog-general@lists.terrasoftsolutions.com
Mon Apr 22 20:01:01 2002


Thanks to this useful message from Gary, I was able to
identify my mistake which led to the hundreds of
unresolved references:

I used the Kernel 
Configurator in KDE and solved the result as a .config
file. Thinking I was saving a step, I then 
directly proceeded to make dep/make clean/make
vmlinux. Problem is, which I found 
out after digging a little deeper into the
/usr/src/linux/Makefile, that "make config" or 
"make menuconfig" also writes the file
"/usr/src/linux/include/linux/autoconf.h" which 
contains all the flags for including or excluding
certaint pieces of code to be compiled. 
the way I did it, the file .config and autoconf.h were
incompatible and resulted in 
hundreds of lines of unresolved references because the
functions weren't compiled due 
to flags in autoconf.h, but were needed for linking
from the parameteres in .config.

Thanks again Gary, this was useful.

Aurel
--- ghannon@cspi.com wrote:
> 
> Disclaimer:  *****
> I deleted your initial message, so I'm not sure what
> you are trying to do
> in the first place.
> If you are trying to build the kernel that came with
> the 2.2  release, the
> problem
> may be that you need to copy a config file from the
> /usr/src/linux/configs
> directory
> into /usr/src/linux as .config and then do the
> build.  Take the one that
> applies to
> your machine.
> 
> If you've done that and you are just building a
> kernel with some different
> options
> or modules, then the following applies.
> 
> End Disclaimer ****
> 
> It looks like you need to add some more options to
> your kernel, as there
> are
> functions being called that are not linked in.
> 
> For sk_attach_filter,
> I went to /usr/src/linux/net and did
> 
> grep -r sk_attach_filter *
> 
> which returned the following
> 
> core/filter.c: *        sk_attach_filter - attach a
> socket filter
> core/filter.c:int sk_attach_filter(struct sock_fprog
> *fprog, struct sock
> *sk)
> core/sock.c:                            ret =
> sk_attach_filter(&fprog, sk);
> Binary file core/sock.o matches
> Binary file core/filter.o matches
> Binary file core/core.o matches
> Binary file network.o matches
> 
> then I went into the core subdirectory and looked at
> Makefile to see what
> includes
> filter.o,  the file which would define that routine
> and see:
> 
> obj-$(CONFIG_FILTER) += filter.o
> 
>  meaning that if CONFIG_FILTER is set, then filter.o
> will get included in
> the link.
> 
> So, now you would do make menuconfig or make xconfig
> and set CONFIG_FILTER.
> 
> It may be helpful to also look in the
> directory tree working backwards from core to find a
> Config.in which
> contains CONFIG_FILTER, as it will tell you the text
> to look for in
> configuring
> that parameter.  In this case it's
> /usr/src/linux/net/Config.in and the
> line is
> 
> bool 'Socket Filtering'  CONFIG_FILTER
> 
> Thus in "make menuconfig", when you enable Socket
> Filtering, you will
> get filter.o included and your undefined for
> sk_attach_filter will go away.
> 
> The problem is that sometimes the kernel has
> dependencies which
> are not all protected and these "mismatches" occur.
> 
> Good Luck!
> 
> Gary Hannon
> CSPI
> 
> 
> 
> 
> 
> 
> 
> 
> Aurel Wisse <aurel_wisse@yahoo.com> on 04/18/2002
> 08:11:21 PM
> 
> Please respond to
> yellowdog-general@lists.terrasoftsolutions.com
> 
> To:   yellowdog-general@lists.terrasoftsolutions.com
> cc:    (bcc: Gary Hannon/CSP)
> Subject:  Re: Kernel compile aborts in make bzImage
> 
> 
> 
> 
> Not solved. After reinstalling the kernel sources
> and
> using make vmlinux, the compile now hangs
> systematically with several lines of the form:
> In function 'sock_setsockopt'
> net/network.o(...stuff...): undefined reference to
> ....
> sk_attach_filter
> kmap_high
> kunmap_high
> 
> and several more functions and undefined references.
> 
> 
> Looks like a linker error. How come? What could I
> reinstall/correct to resolve these?
> 
> 
> 
> --- hanai@koto.kpu-m.ac.jp wrote:
> > From: Aurel Wisse <aurel_wisse@yahoo.com>
> > > Running YDL 2.2 in KDE on an iMac Rev. B/160MB
> > RAM.
> >
> > > I am configuring in the Linux Kernel
> Configurator,
> > > putting the .config file in /usr/src/Linux and
> run
> > > make dep, make clean and then make bzImage.
> >
> > "make bzImage" does not work in ppc. use "make
> > vmlinux"
> > (or just "make").
> >
> > HTH,
> > kaz
> > _______________________________________________
> > yellowdog-general mailing list
> > yellowdog-general@lists.terrasoftsolutions.com
> >
>
http://lists.terrasoftsolutions.com/mailman/listinfo/yellowdog-general
> 
> 
> __________________________________________________
> Do You Yahoo!?
> Yahoo! Tax Center - online filing with TurboTax
> http://taxes.yahoo.com/
> _______________________________________________
> yellowdog-general mailing list
> yellowdog-general@lists.terrasoftsolutions.com
>
http://lists.terrasoftsolutions.com/mailman/listinfo/yellowdog-general
> 
> 
> 
> 
> 
> 
> _______________________________________________
> yellowdog-general mailing list
> yellowdog-general@lists.terrasoftsolutions.com
>
http://lists.terrasoftsolutions.com/mailman/listinfo/yellowdog-general


__________________________________________________
Do You Yahoo!?
Yahoo! Games - play chess, backgammon, pool and more
http://games.yahoo.com/