[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