On Wed, 2008-06-25 at 07:44 +0200, Jens Gehrlein wrote: > I have the same problem. When I modify the source code the compiler may > or may not rearrange the functions. It is not guaranteed, that the main > function always starts at the same address. > > How can this be solved? Is it possible/meaningful to put the main > function into a separate linker segment? Any suggestions?
The simplest way I've found is to make the following C file:
--- _start.c ---
void _start(void)
{
extern int main(int argc, char **argv);
char *args[] = { "myprogramname", "-foo", "bar", /* etc. etc. */ };
main(sizeof(args)/sizeof(args[0]), args);
/* Wait forever after the program ends */
for (;;);
}
-----------------
Then, link '_start.o' before *any* other objects in your link step.
Voila! The text entry should be _start!
Feel free to add BSS initialization, etc. in _start as needed.
Jason McMullan
MTS SW
System Firmware
NetApp
724.741.5011 Fax
724.741.5166 Direct
412.656.3519 Mobile
[EMAIL PROTECTED]
www.netapp.com
signature.asc
Description: This is a digitally signed message part
------------------------------------------------------------------------- Check out the new SourceForge.net Marketplace. It's the best place to buy or sell services for just about anything Open Source. http://sourceforge.net/services/buy/index.php
_______________________________________________ U-Boot-Users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/u-boot-users
