[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ld.elf_so -> syncicache.o



>                                            千葉市中央区長洲
>                                                    藤原  誠
objdump -d ld.elf_so したりして見て特にその中の __syncicache
に注目しているのですが、

(1.6E の) gcc-2.95.3 で -O -fno-strict-aliasing して見ても、
とくださんのところで唯一動いている、椿井版の ld.elf_so に
入っている syncicache.o の部分が同じにならないのですが、これは
どうやって作られているのでしょう。

 --- 椿井版 ---
00008948 <__syncicache>:
    8948:       94 21 ff e0     stwu    r1,-32(r1)
    894c:       7c 08 02 a6     mflr    r0
    8950:       93 a1 00 14     stw     r29,20(r1)
    8954:       93 c1 00 18     stw     r30,24(r1)
    8958:       93 e1 00 1c     stw     r31,28(r1)
    895c:       90 01 00 24     stw     r0,36(r1)
    8960:       48 00 32 99     bl      bbf8 <_DYNAMIC+0x208>
    8964:       7f c8 02 a6     mflr    r30
    8968:       7c 7d 1b 78     mr      r29,r3
    896c:       7c 9f 23 78     mr      r31,r4
    8970:       81 3e 02 44     lwz     r9,580(r30)
    8974:       80 09 00 00     lwz     r0,0(r9)
    8978:       2c 00 00 00     cmpwi   r0,0
    897c:       40 82 00 08     bne     8984 <__syncicache+0x3c>
 
 --- -O -fno-strict-aliasing も付けた場合
000089b0 <__syncicache>:
    89b0:       94 21 ff e0     stwu    r1,-32(r1)
    89b4:       7c 08 02 a6     mflr    r0
    89b8:       93 a1 00 14     stw     r29,20(r1)
    89bc:       93 c1 00 18     stw     r30,24(r1)
    89c0:       93 e1 00 1c     stw     r31,28(r1)
    89c4:       90 01 00 24     stw     r0,36(r1)
    89c8:       48 00 00 05     bl      89cc <__syncicache+0x1c>
    89cc:       7f c8 02 a6     mflr    r30
    89d0:       80 1e ff e0     lwz     r0,-32(r30)
    89d4:       7f c0 f2 14     add     r30,r0,r30
    89d8:       7c 7d 1b 78     mr      r29,r3
    89dc:       7c 9f 23 78     mr      r31,r4
    89e0:       81 3e 80 08     lwz     r9,-32760(r30)
    89e4:       80 09 00 00     lwz     r0,0(r9)
    89e8:       2c 00 00 00     cmpwi   r0,0
    89ec:       40 82 00 08     bne     89f4 <__syncicache+0x44>

指定の全ては(いまは) 次のようになっていると思います。
/export/current-ts/20020801/tools/obj/tools.NetBSD-1.6E-powerpc/bin/powerpc--netbsd-gcc
-O -fno-strict-aliasing -DALL_STATE -DUSG_COMPAT -Wall
-Wstrict-prototypes -Wmissing-prototypes -Wpointer-arith
-Wno-uninitialized -Wreturn-type -Wswitch -Wshadow -Werror -D_LIBC
-DLIBC_SCCS -DSYSLIBC_SCCS -D_REENTRANT
-I/export/current-ts/src/lib/libc/include -DHESIOD -DINET6 -DNLS -DYP
-D__DBINTERFACE_PRIVATE
-I/export/current-ts/src/lib/libc/../../libexec/ld.elf_so
-I/export/current-ts/src/lib/libc/dlfcn -DI18NMODULE_MAJOR=4
-DWITH_RUNE -I/export/current-ts/src/lib/libc -DRESOLVSORT
-I. -DPOSIX_MISTAKE -DPORTMAP -DFLOATING_POINT -nostdinc -isystem
/usr/include -c
/export/current-ts/20020801/lib/libc/arch/powerpc/gen/syncicache.c
---
(藤原)