[OSy] Linkovani

Miloslav Beno beno at mbox.dkm.cz
Sun Dec 30 20:42:49 CET 2007


Dobry vecer,

Mame knihovnu libc.a, ve ktere jsou funkce _entry, _main,  printk, kazda ve
svem object souboru.

V uzivatelskem programu pak je funkce main, ze ktere  se vola  printk.
Problem je, ze linker pri sestavovani uzivatelskeho programu do binary
formatu najde a prilinkuje funkce  (libc.a)_entry, (libc.a) _main,
(main.o)main . ale uz neprilinkuje (libc.a)printk. GCC nenahlasi ani, ze
funkce printk neni definovana a pri spusteni uzivatelsky program na tomto
volani padne.

$(LD) --verbose -T ../libc/binary.lds -G 0 -static ../libc/libc.a
$(OFILES_EXE) -o $@


Binary.lds:

STARTUP(../libc/entry.o)
OUTPUT_FORMAT(binary)
OUTPUT_ARCH(mips)

SECTIONS {
	.uspace 0x00000000 : {
		*(.text)
		*(.data)
		*(.rodata .rodata.*)
		*(.bss)
		*(COMMON)
	}
	
	/DISCARD/ : {
		*(.reginfo)
	}
}


Predem dekujeme za reakce.





More information about the NSWI004 mailing list