[ECOS] RE: eCos Loader

David Bonfrer ecos@bonfrer.com
Wed Apr 27 00:21:00 GMT 2005


Hi,

I'm using ELF executable and shared libs.

I know that *diag_printf points to the function diag_printf.

The question is: How do I get this in general?

I don't want to fill my own tables with:

If ("printf"){location = *printf}
If ("scanf") {location = *scanf}
Etc. Can I get a symbol table from eCos for these functionsymbols?

Thanks.

P.S. Anthony, I am in a starting stage for this loader. 

I'm not ready to put it here because it's not finished and it's not very
readable source code yet. 

-----Original Message-----
From: Anthony Tonizzo [mailto:atonizzo@lycos.com] 
Sent: dinsdag 26 april 2005 22:45
To: ecos@bonfrer.com
Subject: eCos Loader

Hi:

I am working on an ecos loader too.

Following some conversations with Nick Garnett on the subject,
I wanted to create an interface that was more similar to Linux
insmod() that to a shared library. In this case, your module
gets compiled with a simple 

gcc -c hello.c

and then the loader must act as linker, and resolve relocation
and references.

I am still involved in the project, but I disagree with DeRocco:
Inventing your own linker format is a bad idea. Because you now
have to use special linkers to compile your module, or worse you
have to write one. eCos libraries are ELF modules, and so should
the libraries.

As far as resolving external symbols, the only valid approach is
a table of this type:

struct
{
    char*   symbol_name;
    void (*fp)(void);
} symbol;

symbol symbol_table[] = { { "diag_printf", diag_printf }, ...

which you can then fill up with the values of the functions you need.
Since this table would be in memory all the time, you can selectively
eliminate the functions you do not need via a CDL option or some
other form of compile time option (for example, you only have
pointers for kernel and semaphores, and nothing else). This should
help in getting a handle on an otherwise huge table.

In my application, I do not need to call external functions, but I
definitely need relocation and symbol resolution. How far away is your
code from prime time? Can I take a look at it to see if I can use it
(and act as a beta tester in the process)?

I am sorry if I replied to you personally, but the ecoscentric reflector
does not seem to like my posting when I am behind my company's
firewall.

Regards
Tony
-- 
_______________________________________________
NEW! Lycos Dating Search. The only place to search multiple dating sites at
once.
http://datingsearch.lycos.com



-- 
No virus found in this incoming message.
Checked by AVG Anti-Virus.
Version: 7.0.308 / Virus Database: 266.10.3 - Release Date: 25-4-2005



-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



More information about the Ecos-discuss mailing list