[OSy] Linkovani
Petr Tuma
petr.tuma at dsrg.mff.cuni.cz
Sun Dec 30 20:46:47 CET 2007
Dobry vecer,
tusim tu pred nejakou dobou pan Decky zminoval, ze kdyz se jako vystupni
format pouziva rovnou binary, linker nehlasi unresolved symbols. Cituji:
"Jiny zadrhel (na ktery jsme tady uz upozornovali) by hypoteticky mohl
byt v tom, ze linker pro MIPS, pokud vytvari primo flat soubor (tj.
OUTPUT(binary)), tak si z nejakeho duvodu vubec nestezuje na chybejici
symboly. Je potreba nejdrive linkovat do ELF a ten teprve pomoci objcopy
zkonvertovat na binary."
Zkuste vystup do elf, jestli dostanete nejakou rozumnou hlasku ?
Petr Tuma
Miloslav Beno wrote:
> 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.
>
>
> _______________________________________________
> OSy mailing list
> OSy at dsrg.mff.cuni.cz
> https://dsrg.mff.cuni.cz/mailman/listinfo/osy
--
Petr Tuma
Distributed Systems Research Group
Department of Software Engineering
Faculty of Mathematics and Physics
Charles University, Czech Republic
http://dsrg.mff.cuni.cz/~ceres
More information about the NSWI004
mailing list