[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