[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
---
(藤原)