This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: sparc elf


2006/6/12, Niklaus <niklaus@gmail.com>:
int main()
{
return 3;
}

i compiled it using sparc-elf-gcc -c test.c.
./sparc-elf-ld --entry=main test.o -o a.out
when i executed a.out on sparc machine it segfaulted and dumped core.

I guess 'cos you set entrypoint=main instead of __start or whatever it is called. You need to load in crtbegin.o (it may be called crt0.o), which contains the correct entry point and calls main() and cleans up after it, not just dive straight into main().

I wuold guess your segfault was caused by whatever non-existent code
your main() "returned" to :)  You could just call _exit(3) instead
probably.

Or use "sparc-elf-gcc test.c", even better...

M


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]