"Ronald G. Minnich" rminnich@lanl.gov writes:
This is interesting but not fun.
Consider the file: ./src/arch/i386/lib/console.inc
When I build now I get: linuxbios_c.o: In function `_start': linuxbios_c.o(.text+0x28): undefined reference to `console_tx_al' linuxbios_c.o(.text+0x35): undefined reference to `console_tx_hex8' linuxbios_c.o(.text+0x42): undefined reference to `console_tx_al' linuxbios_c.o(.text+0x7b): undefined reference to `console_tx_al' linuxbios_c.o(.text+0x88): undefined reference to `console_tx_hex8' linuxbios_c.o(.text+0x95): undefined reference to `console_tx_al' linuxbios_c.o(.text+0xa9): undefined reference to `console_tx_al' linuxbios_c.o(.text+0xb6): undefined reference to `console_tx_hex8' linuxbios_c.o(.text+0xc3): undefined reference to `console_tx_al'
It looks like serial.inc or whatever the lowlevel console include is not included. Why the reference have all become lower case is beyond me.
OK, let's try this: .globl console_tx_al console_tx_al: etc. etc.
Now when I build I get:
linuxbios.a(crt0.o): In function `_start': crt0.o(.rom.text+0x27): multiple definition of `_start' c_start.o(.text+0x0): first defined here
What the @@@@?
Well, what happened, is that the .o was pulled out of linuxbios.a since a symbol in that .o was used. But _start was also defined in there, with the result that we get the multiple definition problem.
It looks like you put the .globl in another part and the fact that we are even looking in linuxbios.a may be a problem.
This looks like an outgrowth of the CONFIG_COMPRESS stuff; more as I learn it.
The later failures yes but not the original.
Eric