elf2flt questions

Bernd Schmidt bernds_cb1 at t-online.de
Thu Jun 5 00:34:52 UTC 2008

Denys Vlasenko wrote:
> I want to do it in "Linux from scratch" style. This way,
> I will get better understanding of the way it is done,
> and possibly stumble upon rough edges in busybox,
> uclubc, etc. This will lead to "itch scratching"
> and bug fixing.

It will also lead to unnecessary pain.

> elf binaries, it says "BINFMT_FLAT: bad magic/rev (0x1010100, need 0x5)".

One thing I just remembered is that we used to have non-standard flat 
files.  Version 5 doesn't exist in any tools/kernels other than ancient 
Blackfin distributions.  Our tools were fixed long ago to generate 
version 4 flat binaries.  With a modern toolchain you can't actually 
produce binaries that will run on the 2005 kernel you're using (never 
mind that it's totally bug-infested anyway), so please upgrade that 
first.  There's a u-boot installed on your board, surely?

> To be honest, building it was somewhat contrived - I copied the directory
> into binutils' build dir and gave it all necessary configure parameters,
> and it still could not find e.g. elf/bfin.h - had to add some include paths
> by hand. (Do you want a more detailed report about this?)

No.  Use the buildscript or look at how it does things.

> Looking into ld-elf2flt makes me doubtful -
> "LINKER="$0.real" # the original renamed-linker" - really? It will rename
> my linker and replace it by itself?

Yes.  There'll be bfin-uclinux-ld and bfin-uclinux-ld.real, the former 
being the ld-elf2flt script which in turn calls the real ld and the 
elf2flt binary.

> This script looks rather contrived,
> will it really work correctly for all possible invocations of ld which
> don't even want to do any elf2flt-ification?

So far we've not had reports to the contrary.

> Can you write up a small explanation what elf2flt does, how to produce
> a flat executable with it? Let's say in my situation - I seem to have
> correctly built static elf bfin busybox, can I make a flat one out of it?

Nope.  It's lacking the relocs.

> What is this ld-elf2flt wrapper - what is it doing?

Calling ld and elf2flt in a way to generate correct flat binaries.

This footer brought to you by insane German lawmakers.
Analog Devices GmbH      Wilhelm-Wagenfeld-Str. 6      80807 Muenchen
Sitz der Gesellschaft Muenchen, Registergericht Muenchen HRB 40368
Geschaeftsfuehrer Thomas Wessel, William A. Martin, Margaret Seif

More information about the uClibc mailing list