Messages in this thread | | | From | Tom Lees <> | Subject | Re: ELF and a.out as modules in 1.3.85 | Date | 10 Apr 1996 20:51:59 +0100 |
| |
Corey J. Stotts (cstotts@avalon.net) wrote: : Is there any reason that 'make config' allows you to compile kernel support for ELF and : a.out as modules? I've tried this, and when building the kernel there are errors finding : the _start symbol in a couple of objects.
: When it first builds vmlinux (before linking with misc.o, etc) it says:
: ld: waring: cannot find entry symbol _start; defaulting to 000fffe0
: and when it tries to link to misc.o with : 'ld -qmagic -Ttext 0xfe0 -o vmlinux head.o misc.o piggy.o'
: I get
: ld: warning: cannot find enrty symbol _start; defaulting to 00000fe0 : misc.o(.text+0x1ebc): undefined reference to 'input_data' : misc.o(.text+0x1ec1): undefined reference to 'input_len' : misc.o(.text+0x1ed7): undefined reference to 'input_data'
: and then make stops with an error.
: -Corey
You NEED at least one of these binary formats in the kernel: how do you intend to load insmod/modprobe, etc., which will be either a.out or ELF, if you need to use these utilities to load the binary format they need? (The same problem would occur if you compiled the module utilities as ELF, and ELF as a module). Also, the compilation uses the compiled-in binary formats to determine what binary format you are compiling the kernel as, and therefore, in sections where ifdef's are used with each one, i.e.
ifdef ELF ... endif ifdef AOUT ... endif
, no code at all would be compiled at all, or in situations like
ifdef ELF ... else ... endif
, the wrong code could possibly get compiled. Compile with at least the binary format for your init, bash, and module utilities compiled-in. Really, this problem needs fixing in the configuration so that you must select one binary format as compiled-in.
-- Tom Lees <tom@lpsg.demon.co.uk>
Jone's Law: The man who smiles when things go wrong has thought of someone to blame it on.
| |