[uClibc]Shared libs, ARM
Shane Nay
shane at minirl.com
Sun Jun 17 14:58:54 UTC 2001
Okay, I'm done for today, may hack on it a bit tonight, but there's good news
:). The code base is a bloody mess right now, but it is getting the load
address properly from the vectors, even with the -e stuff :). I had to add a
"pre loader" in assembler that just loaded up the argc, and put the stack
pointer in reg1 and then called the C code loader. (Also had to change the
dl_boot_2 routine to static, well, through #defines I made dl_boot into
dl_boot_2 #ifdef'd on __arm__)
At this point in time, here's where it's at:
1) Mostly able to print messages to the console, I've gotten quite a few, but
it is chocking on syscall3 on occasion, so I'm guessing this is probably
related to dl_write.
2) It is verifying the ELF signature at the beginning of the executable via
strncmp properly. (I had to do some weird stuff with putting this in as a
char* elf_sig at the top of the file, and then add the load_addr offset at
call time)
3) Right now, it's blowing up somewhere near calculating the actual offset
tables within C code.
Anywhoo, if you want to hack on it Erik, it's on the skiff clusters in
/home2/guest/shane at minirl.com/ . Don't trust any of the ARM_R_ offset code,
I just hacked that up with one eye on glibc, and one eye on the ELF ABI spec
on ARMs site. And I think the assembler for everything but syscall3 is
broken, I haven't really checked yet. (It actually may be functional, but I
switched to the one you had in your stack_test because it looked cleaner)
Thanks for the stack_test code Erik, saved me a *lot* of time.
Thanks,
Shane Nay.
More information about the uClibc
mailing list