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

Reply via email to