On Sunday 22 February 2009 02:36:53 Rob Landley wrote: > Disassembly of section .init: > > 00000000 <.init>: > 0: c6 2f mov.l r12,@-r15 > 2: e6 2f mov.l r14,@-r15 > 4: 22 4f sts.l pr,@-r15 > 6: f3 6e mov r15,r14 > 8: 00 a0 bra 0xc > a: 09 00 nop > Disassembly of section .fini: > > 00000000 <.fini>: > 0: c6 2f mov.l r12,@-r15 > 2: e6 2f mov.l r14,@-r15 > 4: 22 4f sts.l pr,@-r15 > 6: f3 6e mov r15,r14 > 8: 00 a0 bra 0xc > a: 09 00 nop > > I looked at uClibc/libc/sysdeps/linux/sh/crti.S and tried removing the > "hidden" directives for both those, but it didn't help.
Hmmm... I tried hexediting the . into a _, for both symbols, and that didn't affect the linker issue at all. (Weird. Possibly a shared string table entry between the section name and the function name? I need to go look at the ELF header stuff by hand, don't I? Where'd I leave the references for that...) I compared libc/sysdeps/linux/sh/crt1.S with crti.S and tweaked them to look more alike (removed the .init and .fini sections and change the @ to an % in the function line) and the result failed to boot (couldn't run PID 1). I suspect I'm going to have to stick printf()s into the linker. I have no idea why the cross compiler works (builds a complete root filesystem that boots when I don't fiddle with it like this), but the native compiler can't build hello world. I don't know a darn thing about sh4, other than I finally got a kernel .config and qemu version that could boot me to a shell prompt under it... Anybody? Rob _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
